material 3.2.6 → 3.3.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 (577) hide show
  1. package/README.md +1 -1
  2. package/dist/components/badge/badge.d.ts +0 -59
  3. package/dist/components/badge/constants.d.ts +0 -15
  4. package/dist/components/badge/index.d.ts +0 -6
  5. package/dist/components/badge/types.d.ts +0 -244
  6. package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +0 -10
  7. package/dist/components/bottom-app-bar/constants.d.ts +0 -9
  8. package/dist/components/bottom-app-bar/index.d.ts +0 -4
  9. package/dist/components/bottom-app-bar/types.d.ts +0 -76
  10. package/dist/components/bottom-sheet/bottom-sheet.d.ts +0 -21
  11. package/dist/components/bottom-sheet/constants.d.ts +0 -29
  12. package/dist/components/bottom-sheet/types.d.ts +0 -89
  13. package/dist/components/button/button.d.ts +0 -62
  14. package/dist/components/button/constants.d.ts +0 -41
  15. package/dist/components/button/index.d.ts +0 -4
  16. package/dist/components/button/types.d.ts +0 -347
  17. package/dist/components/button-group/button-group.d.ts +0 -51
  18. package/dist/components/button-group/constants.d.ts +0 -83
  19. package/dist/components/button-group/index.d.ts +0 -10
  20. package/dist/components/button-group/types.d.ts +0 -234
  21. package/dist/components/card/card.d.ts +0 -64
  22. package/dist/components/card/constants.d.ts +0 -33
  23. package/dist/components/card/content.d.ts +0 -86
  24. package/dist/components/card/index.d.ts +0 -66
  25. package/dist/components/card/types.d.ts +0 -366
  26. package/dist/components/carousel/carousel.d.ts +0 -22
  27. package/dist/components/carousel/constants.d.ts +0 -16
  28. package/dist/components/carousel/types.d.ts +0 -29
  29. package/dist/components/checkbox/checkbox.d.ts +0 -61
  30. package/dist/components/checkbox/constants.d.ts +0 -33
  31. package/dist/components/checkbox/index.d.ts +0 -25
  32. package/dist/components/checkbox/types.d.ts +0 -206
  33. package/dist/components/chips/chips.d.ts +0 -14
  34. package/dist/components/chips/constants.d.ts +0 -1
  35. package/dist/components/chips/factories.d.ts +0 -4
  36. package/dist/components/chips/types.d.ts +0 -278
  37. package/dist/components/datepicker/constants.d.ts +0 -56
  38. package/dist/components/datepicker/datepicker.d.ts +0 -5
  39. package/dist/components/datepicker/types.d.ts +12 -257
  40. package/dist/components/dialog/constants.d.ts +0 -65
  41. package/dist/components/dialog/dialog.d.ts +0 -86
  42. package/dist/components/dialog/index.d.ts +0 -12
  43. package/dist/components/dialog/types.d.ts +0 -511
  44. package/dist/components/divider/config.d.ts +0 -130
  45. package/dist/components/divider/constants.d.ts +0 -27
  46. package/dist/components/divider/divider.d.ts +0 -36
  47. package/dist/components/divider/index.d.ts +0 -29
  48. package/dist/components/divider/types.d.ts +0 -126
  49. package/dist/components/drawer/constants.d.ts +0 -53
  50. package/dist/components/drawer/drawer.d.ts +0 -56
  51. package/dist/components/drawer/index.d.ts +0 -4
  52. package/dist/components/drawer/types.d.ts +0 -200
  53. package/dist/components/extended-fab/config.js +3 -2
  54. package/dist/components/extended-fab/constants.d.ts +0 -46
  55. package/dist/components/extended-fab/extended-fab.d.ts +0 -58
  56. package/dist/components/extended-fab/index.d.ts +1 -35
  57. package/dist/components/extended-fab/types.d.ts +2 -654
  58. package/dist/components/fab/config.js +3 -2
  59. package/dist/components/fab/constants.d.ts +0 -40
  60. package/dist/components/fab/fab.d.ts +0 -42
  61. package/dist/components/fab/index.d.ts +1 -34
  62. package/dist/components/fab/types.d.ts +2 -543
  63. package/dist/components/fab-menu/constants.d.ts +0 -22
  64. package/dist/components/fab-menu/fab-menu.d.ts +0 -36
  65. package/dist/components/fab-menu/types.d.ts +0 -80
  66. package/dist/components/icon-button/constants.d.ts +0 -90
  67. package/dist/components/icon-button/icon-button.d.ts +0 -83
  68. package/dist/components/icon-button/index.d.ts +0 -44
  69. package/dist/components/icon-button/types.d.ts +0 -314
  70. package/dist/components/index.d.ts +0 -9
  71. package/dist/components/list/constants.d.ts +0 -47
  72. package/dist/components/list/index.d.ts +0 -1
  73. package/dist/components/list/list.d.ts +0 -26
  74. package/dist/components/list/types.d.ts +0 -263
  75. package/dist/components/loading-indicator/constants.d.ts +0 -35
  76. package/dist/components/loading-indicator/features/renderer.d.ts +0 -14
  77. package/dist/components/loading-indicator/loading-indicator.d.ts +0 -6
  78. package/dist/components/loading-indicator/types.d.ts +0 -35
  79. package/dist/components/menu/constants.d.ts +0 -79
  80. package/dist/components/menu/index.d.ts +0 -25
  81. package/dist/components/menu/inner.d.ts +0 -3
  82. package/dist/components/menu/menu.d.ts +0 -26
  83. package/dist/components/menu/types.d.ts +0 -423
  84. package/dist/components/navigation-bar/navigation-bar.d.ts +0 -7
  85. package/dist/components/navigation-bar/types.d.ts +0 -25
  86. package/dist/components/navigation-rail/constants.d.ts +0 -2
  87. package/dist/components/navigation-rail/navigation-rail.d.ts +0 -5
  88. package/dist/components/navigation-rail/types.d.ts +0 -22
  89. package/dist/components/progress/constants.d.ts +24 -56
  90. package/dist/components/progress/progress.d.ts +0 -21
  91. package/dist/components/progress/types.d.ts +0 -251
  92. package/dist/components/radios/constants.d.ts +0 -22
  93. package/dist/components/radios/radios.d.ts +0 -5
  94. package/dist/components/radios/types.d.ts +0 -142
  95. package/dist/components/search/constants.d.ts +0 -59
  96. package/dist/components/search/search.d.ts +0 -32
  97. package/dist/components/search/types.d.ts +0 -159
  98. package/dist/components/select/constants.d.ts +0 -60
  99. package/dist/components/select/index.d.ts +0 -22
  100. package/dist/components/select/select.d.ts +0 -33
  101. package/dist/components/select/types.d.ts +0 -241
  102. package/dist/components/side-sheet/constants.d.ts +0 -28
  103. package/dist/components/side-sheet/side-sheet.d.ts +0 -21
  104. package/dist/components/side-sheet/types.d.ts +0 -82
  105. package/dist/components/slider/constants.d.ts +0 -86
  106. package/dist/components/slider/slider.d.ts +0 -16
  107. package/dist/components/slider/types.d.ts +0 -184
  108. package/dist/components/snackbar/constants.d.ts +0 -73
  109. package/dist/components/snackbar/snackbar.d.ts +0 -13
  110. package/dist/components/snackbar/types.d.ts +0 -147
  111. package/dist/components/split-button/constants.d.ts +0 -33
  112. package/dist/components/split-button/split-button.d.ts +0 -21
  113. package/dist/components/split-button/types.d.ts +0 -81
  114. package/dist/components/switch/constants.d.ts +0 -49
  115. package/dist/components/switch/switch.d.ts +0 -5
  116. package/dist/components/switch/types.d.ts +0 -80
  117. package/dist/components/tabs/constants.d.ts +0 -76
  118. package/dist/components/tabs/indicator.d.ts +0 -27
  119. package/dist/components/tabs/responsive.d.ts +0 -30
  120. package/dist/components/tabs/tab.d.ts +0 -13
  121. package/dist/components/tabs/tabs.d.ts +0 -24
  122. package/dist/components/tabs/types.d.ts +0 -335
  123. package/dist/components/tabs/utils.d.ts +0 -66
  124. package/dist/components/text-field/constants.d.ts +0 -82
  125. package/dist/components/text-field/features/trailing-icon.d.ts +0 -61
  126. package/dist/components/text-field/text-field.d.ts +0 -33
  127. package/dist/components/text-field/types.d.ts +0 -123
  128. package/dist/components/timepicker/constants.d.ts +0 -88
  129. package/dist/components/timepicker/types.d.ts +0 -268
  130. package/dist/components/toolbar/constants.d.ts +0 -27
  131. package/dist/components/toolbar/toolbar.d.ts +0 -25
  132. package/dist/components/toolbar/types.d.ts +0 -102
  133. package/dist/components/tooltip/constants.d.ts +0 -58
  134. package/dist/components/tooltip/tooltip.d.ts +0 -5
  135. package/dist/components/tooltip/types.d.ts +0 -140
  136. package/dist/components/top-app-bar/constants.d.ts +0 -41
  137. package/dist/components/top-app-bar/index.d.ts +0 -4
  138. package/dist/components/top-app-bar/top-app-bar.d.ts +0 -10
  139. package/dist/components/top-app-bar/types.d.ts +0 -94
  140. package/dist/core/canvas/animation.d.ts +0 -13
  141. package/dist/core/canvas/drawing.d.ts +18 -55
  142. package/dist/core/canvas/index.d.ts +0 -4
  143. package/dist/core/canvas/resize.d.ts +0 -13
  144. package/dist/core/canvas/utils.d.ts +0 -62
  145. package/dist/core/compose/base.d.ts +0 -22
  146. package/dist/core/compose/cleanup.d.ts +0 -2
  147. package/dist/core/compose/component.d.ts +0 -31
  148. package/dist/core/compose/features/badge.d.ts +0 -25
  149. package/dist/core/compose/features/checkable.d.ts +0 -36
  150. package/dist/core/compose/features/debounce.d.ts +0 -57
  151. package/dist/core/compose/features/disabled.d.ts +0 -31
  152. package/dist/core/compose/features/events.d.ts +0 -38
  153. package/dist/core/compose/features/icon.d.ts +0 -49
  154. package/dist/core/compose/features/input.d.ts +0 -82
  155. package/dist/core/compose/features/lifecycle.d.ts +0 -36
  156. package/dist/core/compose/features/position.d.ts +0 -27
  157. package/dist/core/compose/features/ripple.d.ts +0 -29
  158. package/dist/core/compose/features/size.d.ts +0 -9
  159. package/dist/core/compose/features/style.d.ts +0 -9
  160. package/dist/core/compose/features/text.d.ts +0 -45
  161. package/dist/core/compose/features/textinput.d.ts +0 -88
  162. package/dist/core/compose/features/textlabel.d.ts +0 -44
  163. package/dist/core/compose/features/throttle.d.ts +0 -54
  164. package/dist/core/compose/features/track.d.ts +0 -34
  165. package/dist/core/compose/features/variant.d.ts +0 -9
  166. package/dist/core/compose/features/withEvents.d.ts +0 -30
  167. package/dist/core/compose/index.d.ts +0 -4
  168. package/dist/core/compose/pipe.d.ts +0 -55
  169. package/dist/core/compose/utils/type-guards.d.ts +0 -15
  170. package/dist/core/config/component.d.ts +0 -45
  171. package/dist/core/config/global.d.ts +0 -43
  172. package/dist/core/config.d.ts +0 -59
  173. package/dist/core/dom/attributes.d.ts +0 -41
  174. package/dist/core/dom/classes.d.ts +0 -49
  175. package/dist/core/dom/create.d.ts +0 -98
  176. package/dist/core/dom/events.d.ts +0 -52
  177. package/dist/core/dom/focus.d.ts +0 -32
  178. package/dist/core/dom/html.d.ts +0 -24
  179. package/dist/core/dom/layer.d.ts +0 -98
  180. package/dist/core/dom/roving.d.ts +0 -19
  181. package/dist/core/index.d.ts +0 -9
  182. package/dist/core/navigation/destinations.d.ts +0 -23
  183. package/dist/core/shapes/cubic.d.ts +24 -19
  184. package/dist/core/shapes/material.d.ts +0 -64
  185. package/dist/core/shapes/polygon.d.ts +6 -16
  186. package/dist/core/state/emitter.d.ts +0 -36
  187. package/dist/core/state/events.d.ts +0 -29
  188. package/dist/core/state/store.d.ts +0 -70
  189. package/dist/core/theme/index.d.ts +0 -3
  190. package/dist/core/theme/shape.d.ts +0 -7
  191. package/dist/core/theme/tokens.d.ts +48 -32
  192. package/dist/core/utils/background.d.ts +0 -29
  193. package/dist/core/utils/color.d.ts +0 -13
  194. package/dist/core/utils/index.d.ts +0 -11
  195. package/dist/core/utils/mobile.d.ts +0 -31
  196. package/dist/core/utils/object.d.ts +0 -11
  197. package/dist/core/utils/performance.d.ts +0 -70
  198. package/dist/core/utils/theme.d.ts +0 -36
  199. package/dist/core/utils/url.d.ts +0 -17
  200. package/dist/elements/adapter.d.ts +13 -62
  201. package/dist/elements/badge.d.ts +0 -17
  202. package/dist/elements/bottom-app-bar.d.ts +7 -17
  203. package/dist/elements/bottom-sheet.d.ts +9 -38
  204. package/dist/elements/button-group.d.ts +0 -31
  205. package/dist/elements/button.d.ts +24 -18
  206. package/dist/elements/button.js +12 -0
  207. package/dist/elements/card.d.ts +12 -24
  208. package/dist/elements/card.js +3 -2
  209. package/dist/elements/carousel.d.ts +5 -29
  210. package/dist/elements/checkbox.d.ts +5 -15
  211. package/dist/elements/chips.d.ts +0 -33
  212. package/dist/elements/css/extended-fab.css +1 -1
  213. package/dist/elements/css/extended-fab.js +1 -1
  214. package/dist/elements/css/fab-menu.css +1 -1
  215. package/dist/elements/css/fab-menu.js +1 -1
  216. package/dist/elements/css/fab.css +1 -1
  217. package/dist/elements/css/fab.js +1 -1
  218. package/dist/elements/css/hosts/extended-fab.css +1 -1
  219. package/dist/elements/css/hosts/fab.css +1 -1
  220. package/dist/elements/datepicker.d.ts +4 -48
  221. package/dist/elements/define.d.ts +3 -161
  222. package/dist/elements/dialog.d.ts +8 -39
  223. package/dist/elements/divider.d.ts +0 -14
  224. package/dist/elements/drawer.d.ts +0 -35
  225. package/dist/elements/extended-fab.d.ts +10 -18
  226. package/dist/elements/extended-fab.js +3 -1
  227. package/dist/elements/fab-menu.d.ts +5 -30
  228. package/dist/elements/fab.d.ts +8 -17
  229. package/dist/elements/fab.js +3 -1
  230. package/dist/elements/floating-placement.js +1 -0
  231. package/dist/elements/icon-button.d.ts +5 -26
  232. package/dist/elements/index.d.ts +0 -16
  233. package/dist/elements/list.d.ts +0 -34
  234. package/dist/elements/loading-indicator.d.ts +4 -13
  235. package/dist/elements/menu.d.ts +5 -51
  236. package/dist/elements/navigation-bar.d.ts +4 -29
  237. package/dist/elements/navigation-rail.d.ts +8 -49
  238. package/dist/elements/preupgrade/badge.css +1 -1
  239. package/dist/elements/preupgrade/bottom-app-bar.css +1 -1
  240. package/dist/elements/preupgrade/bottom-sheet.css +1 -1
  241. package/dist/elements/preupgrade/button-group.css +1 -1
  242. package/dist/elements/preupgrade/button.css +2 -2
  243. package/dist/elements/preupgrade/card.css +2 -2
  244. package/dist/elements/preupgrade/carousel.css +1 -1
  245. package/dist/elements/preupgrade/checkbox.css +1 -1
  246. package/dist/elements/preupgrade/chips.css +1 -1
  247. package/dist/elements/preupgrade/datepicker.css +1 -1
  248. package/dist/elements/preupgrade/dialog.css +1 -1
  249. package/dist/elements/preupgrade/divider.css +1 -1
  250. package/dist/elements/preupgrade/drawer.css +1 -1
  251. package/dist/elements/preupgrade/extended-fab.css +2 -2
  252. package/dist/elements/preupgrade/fab-menu.css +1 -1
  253. package/dist/elements/preupgrade/fab.css +2 -2
  254. package/dist/elements/preupgrade/icon-button.css +1 -1
  255. package/dist/elements/preupgrade/list.css +1 -1
  256. package/dist/elements/preupgrade/loading-indicator.css +1 -1
  257. package/dist/elements/preupgrade/menu.css +1 -1
  258. package/dist/elements/preupgrade/navigation-bar.css +1 -1
  259. package/dist/elements/preupgrade/navigation-rail.css +1 -1
  260. package/dist/elements/preupgrade/progress.css +1 -1
  261. package/dist/elements/preupgrade/radios.css +1 -1
  262. package/dist/elements/preupgrade/search.css +1 -1
  263. package/dist/elements/preupgrade/select.css +1 -1
  264. package/dist/elements/preupgrade/side-sheet.css +1 -1
  265. package/dist/elements/preupgrade/slider.css +1 -1
  266. package/dist/elements/preupgrade/snackbar.css +1 -1
  267. package/dist/elements/preupgrade/split-button.css +1 -1
  268. package/dist/elements/preupgrade/switch.css +1 -1
  269. package/dist/elements/preupgrade/tabs.css +1 -1
  270. package/dist/elements/preupgrade/text-field.css +1 -1
  271. package/dist/elements/preupgrade/timepicker.css +1 -1
  272. package/dist/elements/preupgrade/toolbar.css +1 -1
  273. package/dist/elements/preupgrade/tooltip.css +1 -1
  274. package/dist/elements/preupgrade/top-app-bar.css +1 -1
  275. package/dist/elements/preupgrade.css +2 -2
  276. package/dist/elements/preupgrade.d.ts +0 -1
  277. package/dist/elements/preupgrade.js +1 -1
  278. package/dist/elements/progress.d.ts +0 -15
  279. package/dist/elements/radios.d.ts +0 -22
  280. package/dist/elements/search.d.ts +5 -53
  281. package/dist/elements/select.d.ts +0 -31
  282. package/dist/elements/side-sheet.d.ts +7 -29
  283. package/dist/elements/slider.d.ts +3 -22
  284. package/dist/elements/snackbar.d.ts +4 -28
  285. package/dist/elements/split-button.d.ts +0 -30
  286. package/dist/elements/styles.d.ts +0 -63
  287. package/dist/elements/switch.d.ts +5 -17
  288. package/dist/elements/tabs.d.ts +0 -22
  289. package/dist/elements/text-field.d.ts +4 -38
  290. package/dist/elements/timepicker.d.ts +4 -44
  291. package/dist/elements/toolbar.d.ts +8 -25
  292. package/dist/elements/tooltip.d.ts +4 -30
  293. package/dist/elements/top-app-bar.d.ts +7 -23
  294. package/dist/index.d.ts +0 -11
  295. package/dist/package.json +1 -1
  296. package/dist/react/create.d.ts +0 -42
  297. package/dist/react/index.d.ts +0 -6
  298. package/dist/react/jsx.d.ts +0 -13
  299. package/dist/solid/create.d.ts +0 -48
  300. package/dist/solid/index.d.ts +0 -6
  301. package/dist/solid/jsx.d.ts +1 -10
  302. package/dist/ssr/index.d.ts +0 -49
  303. package/dist/ssr/solid.d.ts +0 -4
  304. package/dist/ssr/svelte.d.ts +0 -4
  305. package/dist/ssr/vue.d.ts +0 -4
  306. package/dist/styles/badge.css +1 -1
  307. package/dist/styles/base.css +1 -1
  308. package/dist/styles/bottom-app-bar.css +1 -1
  309. package/dist/styles/bottom-sheet.css +1 -1
  310. package/dist/styles/button-group.css +1 -1
  311. package/dist/styles/button.css +1 -1
  312. package/dist/styles/card.css +1 -1
  313. package/dist/styles/carousel.css +1 -1
  314. package/dist/styles/checkbox.css +1 -1
  315. package/dist/styles/chips.css +1 -1
  316. package/dist/styles/contrast.css +1 -1
  317. package/dist/styles/datepicker.css +1 -1
  318. package/dist/styles/dialog.css +1 -1
  319. package/dist/styles/divider.css +1 -1
  320. package/dist/styles/drawer.css +1 -1
  321. package/dist/styles/extended-fab.css +2 -2
  322. package/dist/styles/fab-menu.css +2 -2
  323. package/dist/styles/fab.css +2 -2
  324. package/dist/styles/icon-button.css +1 -1
  325. package/dist/styles/list.css +1 -1
  326. package/dist/styles/loading-indicator.css +1 -1
  327. package/dist/styles/menu.css +1 -1
  328. package/dist/styles/navigation-bar.css +1 -1
  329. package/dist/styles/navigation-rail.css +1 -1
  330. package/dist/styles/progress.css +1 -1
  331. package/dist/styles/radios.css +1 -1
  332. package/dist/styles/search.css +1 -1
  333. package/dist/styles/select.css +1 -1
  334. package/dist/styles/side-sheet.css +1 -1
  335. package/dist/styles/slider.css +1 -1
  336. package/dist/styles/snackbar.css +1 -1
  337. package/dist/styles/split-button.css +1 -1
  338. package/dist/styles/switch.css +1 -1
  339. package/dist/styles/tabs.css +1 -1
  340. package/dist/styles/text-field.css +1 -1
  341. package/dist/styles/timepicker.css +1 -1
  342. package/dist/styles/toolbar.css +1 -1
  343. package/dist/styles/tooltip.css +1 -1
  344. package/dist/styles/top-app-bar.css +1 -1
  345. package/dist/styles/typography.css +1 -1
  346. package/dist/styles/utilities.css +1 -1
  347. package/dist/styles.css +2 -2
  348. package/dist/svelte/Button.svelte +5 -4
  349. package/dist/svelte/runtime.d.ts +8 -62
  350. package/dist/themes/autumn-contrast.css +1 -1
  351. package/dist/themes/autumn.css +1 -1
  352. package/dist/themes/baseline-contrast.css +1 -1
  353. package/dist/themes/baseline.css +1 -1
  354. package/dist/themes/brownbeige-contrast.css +1 -1
  355. package/dist/themes/brownbeige.css +1 -1
  356. package/dist/themes/content-contrast.css +1 -1
  357. package/dist/themes/content.css +1 -1
  358. package/dist/themes/desert-contrast.css +1 -1
  359. package/dist/themes/desert.css +1 -1
  360. package/dist/themes/expressive-contrast.css +1 -1
  361. package/dist/themes/expressive.css +1 -1
  362. package/dist/themes/fidelity-contrast.css +1 -1
  363. package/dist/themes/fidelity.css +1 -1
  364. package/dist/themes/forest-contrast.css +1 -1
  365. package/dist/themes/forest.css +1 -1
  366. package/dist/themes/fruit-salad-contrast.css +1 -1
  367. package/dist/themes/fruit-salad.css +1 -1
  368. package/dist/themes/highcontrast-contrast.css +1 -1
  369. package/dist/themes/highcontrast.css +1 -1
  370. package/dist/themes/monochrome-contrast.css +1 -1
  371. package/dist/themes/monochrome.css +1 -1
  372. package/dist/themes/neutral-contrast.css +1 -1
  373. package/dist/themes/neutral.css +1 -1
  374. package/dist/themes/ocean-contrast.css +1 -1
  375. package/dist/themes/ocean.css +1 -1
  376. package/dist/themes/rainbow-contrast.css +1 -1
  377. package/dist/themes/rainbow.css +1 -1
  378. package/dist/themes/sageivory-contrast.css +1 -1
  379. package/dist/themes/sageivory.css +1 -1
  380. package/dist/themes/spring-contrast.css +1 -1
  381. package/dist/themes/spring.css +1 -1
  382. package/dist/themes/summer-contrast.css +1 -1
  383. package/dist/themes/summer.css +1 -1
  384. package/dist/themes/sunset-contrast.css +1 -1
  385. package/dist/themes/sunset.css +1 -1
  386. package/dist/themes/tealcaramel-contrast.css +1 -1
  387. package/dist/themes/tealcaramel.css +1 -1
  388. package/dist/themes/vibrant-contrast.css +1 -1
  389. package/dist/themes/vibrant.css +1 -1
  390. package/dist/vue/create.d.ts +15 -58
  391. package/dist/vue/index.d.ts +0 -6
  392. package/package.json +1 -1
  393. package/src/styles/abstract/_floating-placement.scss +12 -0
  394. package/src/styles/components/_extended-fab.scss +34 -8
  395. package/src/styles/components/_fab-menu.scss +58 -8
  396. package/src/styles/components/_fab.scss +34 -8
  397. package/src/styles/elements/_button.scss +27 -5
  398. package/src/styles/elements/_card.scss +14 -0
  399. package/src/styles/elements/_extended-fab.scss +2 -0
  400. package/src/styles/elements/_fab.scss +2 -0
  401. package/dist/components/badge/api.d.ts +0 -41
  402. package/dist/components/badge/config.d.ts +0 -631
  403. package/dist/components/badge/features.d.ts +0 -38
  404. package/dist/components/bottom-app-bar/config.d.ts +0 -16
  405. package/dist/components/bottom-sheet/api.d.ts +0 -44
  406. package/dist/components/bottom-sheet/config.d.ts +0 -547
  407. package/dist/components/bottom-sheet/features/drag.d.ts +0 -35
  408. package/dist/components/bottom-sheet/features/index.d.ts +0 -3
  409. package/dist/components/bottom-sheet/features/state.d.ts +0 -31
  410. package/dist/components/bottom-sheet/features/structure.d.ts +0 -26
  411. package/dist/components/button/api.d.ts +0 -68
  412. package/dist/components/button/config.d.ts +0 -594
  413. package/dist/components/button/features/progress.d.ts +0 -43
  414. package/dist/components/button/features/toggle.d.ts +0 -43
  415. package/dist/components/button-group/config.d.ts +0 -147
  416. package/dist/components/card/api.d.ts +0 -24
  417. package/dist/components/card/config.d.ts +0 -635
  418. package/dist/components/card/features.d.ts +0 -124
  419. package/dist/components/carousel/api.d.ts +0 -20
  420. package/dist/components/carousel/arrangement.d.ts +0 -23
  421. package/dist/components/carousel/config.d.ts +0 -540
  422. package/dist/components/carousel/features/index.d.ts +0 -2
  423. package/dist/components/carousel/features/scroll.d.ts +0 -20
  424. package/dist/components/carousel/features/slides.d.ts +0 -18
  425. package/dist/components/carousel/keylines.d.ts +0 -68
  426. package/dist/components/carousel/strategy.d.ts +0 -36
  427. package/dist/components/checkbox/api.d.ts +0 -7
  428. package/dist/components/checkbox/config.d.ts +0 -568
  429. package/dist/components/chips/api.d.ts +0 -62
  430. package/dist/components/chips/chip/chip.d.ts +0 -4
  431. package/dist/components/chips/chip/constants.d.ts +0 -38
  432. package/dist/components/chips/chip/index.d.ts +0 -1
  433. package/dist/components/chips/config.d.ts +0 -583
  434. package/dist/components/chips/features/chip-items.d.ts +0 -39
  435. package/dist/components/chips/features/container.d.ts +0 -75
  436. package/dist/components/chips/features/controller.d.ts +0 -61
  437. package/dist/components/chips/features/dom.d.ts +0 -24
  438. package/dist/components/chips/features/index.d.ts +0 -4
  439. package/dist/components/chips/schema.d.ts +0 -35
  440. package/dist/components/datepicker/api.d.ts +0 -7
  441. package/dist/components/datepicker/config.d.ts +0 -542
  442. package/dist/components/datepicker/render.d.ts +0 -3
  443. package/dist/components/datepicker/utils.d.ts +0 -84
  444. package/dist/components/dialog/api.d.ts +0 -66
  445. package/dist/components/dialog/config.d.ts +0 -583
  446. package/dist/components/dialog/features.d.ts +0 -42
  447. package/dist/components/divider/features.d.ts +0 -6
  448. package/dist/components/drawer/api.d.ts +0 -55
  449. package/dist/components/drawer/config.d.ts +0 -620
  450. package/dist/components/drawer/features/headline.d.ts +0 -27
  451. package/dist/components/drawer/features/index.d.ts +0 -3
  452. package/dist/components/drawer/features/items.d.ts +0 -32
  453. package/dist/components/drawer/features/state.d.ts +0 -22
  454. package/dist/components/extended-fab/api.d.ts +0 -96
  455. package/dist/components/extended-fab/config.d.ts +0 -600
  456. package/dist/components/fab/api.d.ts +0 -74
  457. package/dist/components/fab/config.d.ts +0 -596
  458. package/dist/components/fab-menu/config.d.ts +0 -11
  459. package/dist/components/fab-menu/stagger.d.ts +0 -10
  460. package/dist/components/icon-button/api.d.ts +0 -84
  461. package/dist/components/icon-button/config.d.ts +0 -624
  462. package/dist/components/icon-button/features/toggle.d.ts +0 -133
  463. package/dist/components/list/api.d.ts +0 -156
  464. package/dist/components/list/config.d.ts +0 -625
  465. package/dist/components/list/features/anatomy.d.ts +0 -6
  466. package/dist/components/list/features/index.d.ts +0 -2
  467. package/dist/components/list/features/renderer.d.ts +0 -8
  468. package/dist/components/list/features/selection.d.ts +0 -3
  469. package/dist/components/loading-indicator/api.d.ts +0 -14
  470. package/dist/components/loading-indicator/config.d.ts +0 -557
  471. package/dist/components/loading-indicator/features/motion.d.ts +0 -22
  472. package/dist/components/menu/api.d.ts +0 -63
  473. package/dist/components/menu/config.d.ts +0 -576
  474. package/dist/components/menu/features/controller.d.ts +0 -15
  475. package/dist/components/menu/features/index.d.ts +0 -5
  476. package/dist/components/menu/features/keyboard.d.ts +0 -23
  477. package/dist/components/menu/features/layer.d.ts +0 -15
  478. package/dist/components/menu/features/loader.d.ts +0 -35
  479. package/dist/components/menu/features/opener.d.ts +0 -16
  480. package/dist/components/menu/features/position.d.ts +0 -18
  481. package/dist/components/menu/features/registry.d.ts +0 -37
  482. package/dist/components/menu/features/submenu.d.ts +0 -28
  483. package/dist/components/menu/features/tasks.d.ts +0 -9
  484. package/dist/components/navigation-bar/config.d.ts +0 -2
  485. package/dist/components/navigation-rail/config.d.ts +0 -2
  486. package/dist/components/progress/api.d.ts +0 -81
  487. package/dist/components/progress/config.d.ts +0 -620
  488. package/dist/components/progress/features/canvas.d.ts +0 -60
  489. package/dist/components/progress/features/circular.d.ts +0 -19
  490. package/dist/components/progress/features/colors.d.ts +0 -17
  491. package/dist/components/progress/features/index.d.ts +0 -8
  492. package/dist/components/progress/features/linear.d.ts +0 -25
  493. package/dist/components/progress/features/motion.d.ts +0 -43
  494. package/dist/components/progress/features/resize-observer.d.ts +0 -5
  495. package/dist/components/progress/features/state.d.ts +0 -44
  496. package/dist/components/radios/api.d.ts +0 -37
  497. package/dist/components/radios/config.d.ts +0 -568
  498. package/dist/components/radios/radio.d.ts +0 -26
  499. package/dist/components/search/api.d.ts +0 -63
  500. package/dist/components/search/config.d.ts +0 -657
  501. package/dist/components/search/features/index.d.ts +0 -4
  502. package/dist/components/search/features/input.d.ts +0 -93
  503. package/dist/components/search/features/states.d.ts +0 -111
  504. package/dist/components/search/features/structure.d.ts +0 -16
  505. package/dist/components/search/features/suggestions.d.ts +0 -60
  506. package/dist/components/select/api.d.ts +0 -8
  507. package/dist/components/select/config.d.ts +0 -18
  508. package/dist/components/select/features.d.ts +0 -14
  509. package/dist/components/side-sheet/api.d.ts +0 -34
  510. package/dist/components/side-sheet/config.d.ts +0 -547
  511. package/dist/components/side-sheet/features/index.d.ts +0 -2
  512. package/dist/components/side-sheet/features/state.d.ts +0 -28
  513. package/dist/components/side-sheet/features/structure.d.ts +0 -21
  514. package/dist/components/slider/api.d.ts +0 -65
  515. package/dist/components/slider/config.d.ts +0 -605
  516. package/dist/components/slider/features/axis.d.ts +0 -42
  517. package/dist/components/slider/features/controller.d.ts +0 -528
  518. package/dist/components/slider/features/dom.d.ts +0 -22
  519. package/dist/components/slider/features/handlers.d.ts +0 -16
  520. package/dist/components/slider/features/index.d.ts +0 -5
  521. package/dist/components/slider/features/range.d.ts +0 -14
  522. package/dist/components/slider/features/states.d.ts +0 -76
  523. package/dist/components/slider/features/tracks.d.ts +0 -50
  524. package/dist/components/snackbar/api.d.ts +0 -7
  525. package/dist/components/snackbar/config.d.ts +0 -596
  526. package/dist/components/snackbar/features.d.ts +0 -26
  527. package/dist/components/snackbar/layer.d.ts +0 -23
  528. package/dist/components/snackbar/position.d.ts +0 -16
  529. package/dist/components/snackbar/queue.d.ts +0 -15
  530. package/dist/components/split-button/api.d.ts +0 -14
  531. package/dist/components/split-button/config.d.ts +0 -553
  532. package/dist/components/split-button/features/buttons.d.ts +0 -8
  533. package/dist/components/split-button/features/menu.d.ts +0 -10
  534. package/dist/components/switch/api.d.ts +0 -7
  535. package/dist/components/switch/config.d.ts +0 -558
  536. package/dist/components/switch/features.d.ts +0 -63
  537. package/dist/components/tabs/api.d.ts +0 -54
  538. package/dist/components/tabs/config.d.ts +0 -31
  539. package/dist/components/tabs/features.d.ts +0 -131
  540. package/dist/components/tabs/scroll-indicators.d.ts +0 -18
  541. package/dist/components/tabs/state.d.ts +0 -48
  542. package/dist/components/text-field/api.d.ts +0 -29
  543. package/dist/components/text-field/config.d.ts +0 -560
  544. package/dist/components/text-field/features/counter.d.ts +0 -29
  545. package/dist/components/text-field/features/density.d.ts +0 -28
  546. package/dist/components/text-field/features/error.d.ts +0 -55
  547. package/dist/components/text-field/features/field.d.ts +0 -37
  548. package/dist/components/text-field/features/index.d.ts +0 -20
  549. package/dist/components/text-field/features/leading-icon.d.ts +0 -68
  550. package/dist/components/text-field/features/placement.d.ts +0 -30
  551. package/dist/components/text-field/features/prefix-text.d.ts +0 -67
  552. package/dist/components/text-field/features/required.d.ts +0 -33
  553. package/dist/components/text-field/features/suffix-text.d.ts +0 -67
  554. package/dist/components/text-field/features/supporting-text.d.ts +0 -59
  555. package/dist/components/timepicker/api.d.ts +0 -26
  556. package/dist/components/timepicker/config.d.ts +0 -570
  557. package/dist/components/timepicker/dial.d.ts +0 -35
  558. package/dist/components/timepicker/render.d.ts +0 -9
  559. package/dist/components/timepicker/utils.d.ts +0 -55
  560. package/dist/components/toolbar/config.d.ts +0 -19
  561. package/dist/components/tooltip/api.d.ts +0 -18
  562. package/dist/components/tooltip/config.d.ts +0 -563
  563. package/dist/components/top-app-bar/config.d.ts +0 -16
  564. package/dist/core/compose/features/constants.d.ts +0 -8
  565. package/dist/core/dom/direction.d.ts +0 -16
  566. package/dist/core/dom/form-value.d.ts +0 -24
  567. package/dist/core/dom/utils.d.ts +0 -33
  568. package/dist/core/navigation/ripple.d.ts +0 -2
  569. package/dist/core/utils/attributes.d.ts +0 -29
  570. package/dist/core/utils/validate.d.ts +0 -73
  571. package/dist/core/utils/warn.d.ts +0 -16
  572. package/dist/elements/form-button.d.ts +0 -29
  573. package/dist/elements/lifecycle.d.ts +0 -4
  574. package/dist/elements/sheet.d.ts +0 -44
  575. package/dist/react/shadow.d.ts +0 -2
  576. package/dist/solid/shadow.d.ts +0 -3
  577. package/dist/vue/shadow.d.ts +0 -7
@@ -2,733 +2,81 @@ import type { TouchEvents } from "../../core/utils/mobile.js";
2
2
  import type { IconManager } from "../../core/compose/features/icon.js";
3
3
  import type { TextManager } from "../../core/compose/features/text.js";
4
4
  import type { ForwardedEventPayload } from "../../core/dom/index.js";
5
- /**
6
- * Extended FAB variants following Material Design 3 guidelines
7
- *
8
- * Material Design 3 offers different color variants for the Extended FAB
9
- * to match visual hierarchy and application color schemes.
10
- *
11
- * @category Components
12
- * @remarks
13
- * - primary-container, secondary-container, tertiary-container: container styles
14
- * - primary, secondary, tertiary: tone styles
15
- * - surface: deprecated; use a container or tone style instead
16
- * Default: primary-container.
17
- */
18
5
  export type ExtendedFabVariant = "primary-container" | "secondary-container" | "tertiary-container" | "primary" | "secondary" | "tertiary";
19
- /**
20
- * Expressive extended FAB size: small 56dp, medium 80dp, large 96dp.
21
- * @category Components
22
- */
23
6
  export type ExtendedFabSize = "small" | "medium" | "large";
24
- /**
25
- * Extended FAB width behavior
26
- *
27
- * Controls how the Extended FAB's width is calculated.
28
- *
29
- * @category Components
30
- * @remarks
31
- * - fixed: Maintains a constant width regardless of content (default)
32
- * - fluid: Adjusts width based on content length
33
- */
34
7
  export type ExtendedFabWidth = "fixed" | "fluid";
35
- /**
36
- * Extended FAB position on the screen
37
- *
38
- * Predefined positions for the Extended FAB when used as a floating element.
39
- * These positions automatically apply appropriate margins and positioning.
40
- *
41
- * @category Components
42
- * @remarks
43
- * Common patterns:
44
- * - bottom-right: Most common position for primary actions
45
- * - bottom-left: Alternative position on left-to-right interfaces
46
- * - top-right: Used for actions related to top content
47
- * - top-left: Less common but available for special layouts
48
- */
49
8
  export type ExtendedFabPosition = "top-right" | "top-left" | "bottom-right" | "bottom-left";
50
- /**
51
- * Configuration interface for the Extended FAB component
52
- *
53
- * Comprehensive options for creating and customizing an Extended Floating Action Button
54
- * according to Material Design 3 guidelines.
55
- *
56
- * @category Components
57
- * @see https://m3.material.io/components/extended-fab/overview
58
- */
9
+ export type ExtendedFabPlacement = "none" | "top-start" | "top-end" | "bottom-start" | "bottom-end";
59
10
  export interface ExtendedFabConfig {
60
- /** Expressive container, icon and label size. @default 'small' */
61
11
  size?: ExtendedFabSize;
62
- /**
63
- * Extended FAB variant that determines visual styling
64
- *
65
- * The color variant affects the Extended FAB's background color, text color, and elevation.
66
- *
67
- * @default 'primary-container'
68
- *
69
- * @example
70
- * ```typescript
71
- * // Create a tertiary Extended FAB
72
- * createExtendedFab({ variant: 'tertiary', text: 'Archive' })
73
- * ```
74
- */
75
12
  variant?: ExtendedFabVariant | string;
76
- /**
77
- * Whether the Extended FAB is initially disabled
78
- *
79
- * When disabled, the Extended FAB will have a visually muted appearance
80
- * and won't respond to user interactions.
81
- *
82
- * @default false
83
- *
84
- * @example
85
- * ```typescript
86
- * // Create a disabled Extended FAB
87
- * const fab = createExtendedFab({ text: 'Submit', disabled: true });
88
- *
89
- * // Later enable it when form is valid
90
- * validateForm().then(isValid => {
91
- * if (isValid) fab.enable();
92
- * });
93
- * ```
94
- */
95
13
  disabled?: boolean;
96
- /**
97
- * Extended FAB icon HTML content.
98
- * Markup (HTML). Not sanitized by default: see Markup and sanitizing.
99
- *
100
- * The icon content can be any valid HTML, but typically contains an SVG icon
101
- * or a Material Icons ligature. Icons should be 24x24dp following Material guidelines.
102
- *
103
- * @example
104
- * ```typescript
105
- * // Using an SVG icon
106
- * createExtendedFab({
107
- * text: 'Add',
108
- * icon: '<svg width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>'
109
- * });
110
- *
111
- * // Using a Material Icons ligature
112
- * createExtendedFab({
113
- * text: 'Add',
114
- * icon: '<span class="material-icons">add</span>'
115
- * });
116
- * ```
117
- */
118
14
  icon?: string;
119
- /**
120
- * Icon size in pixels or other CSS units
121
- *
122
- * Allows customizing the icon size beyond the default 24px size.
123
- *
124
- * @example
125
- * ```typescript
126
- * // Create an Extended FAB with larger icon
127
- * createExtendedFab({
128
- * text: 'Edit',
129
- * icon: '<svg>...</svg>',
130
- * iconSize: '32px'
131
- * });
132
- * ```
133
- */
134
15
  iconSize?: string;
135
- /**
136
- * Position of the icon relative to the text
137
- *
138
- * Controls whether the icon appears before or after the text label.
139
- * Material Design 3 guidelines typically recommend the icon at the start position.
140
- *
141
- * @default 'start'
142
- *
143
- * @example
144
- * ```typescript
145
- * // Create an Extended FAB with icon after text
146
- * createExtendedFab({
147
- * text: 'Next',
148
- * icon: '<span class="material-icons">arrow_forward</span>',
149
- * iconPosition: 'end'
150
- * });
151
- * ```
152
- */
153
16
  iconPosition?: "start" | "end";
154
- /**
155
- * Text label for the Extended FAB
156
- *
157
- * The text should be short, typically one or two words describing the primary action.
158
- * Material Design guidelines recommend action verbs that clearly describe the action.
159
- *
160
- * @example
161
- * ```typescript
162
- * // Good text labels for Extended FABs
163
- * createExtendedFab({ text: 'Create' });
164
- * createExtendedFab({ text: 'Add Task' });
165
- * createExtendedFab({ text: 'Submit' });
166
- * ```
167
- */
168
17
  text?: string;
169
- /**
170
- * Additional CSS classes to add to the Extended FAB
171
- *
172
- * Custom classes for styling or identifying the Extended FAB.
173
- * These classes will be applied in addition to the component's built-in classes.
174
- *
175
- * @example
176
- * ```typescript
177
- * createExtendedFab({
178
- * text: 'Create',
179
- * class: 'home-page-fab custom-shadow'
180
- * });
181
- * ```
182
- */
183
18
  class?: string;
184
- /**
185
- * Button value attribute
186
- *
187
- * Sets the HTML value attribute of the button element, useful when using
188
- * the Extended FAB in a form context.
189
- *
190
- * @example
191
- * ```typescript
192
- * createExtendedFab({
193
- * text: 'Submit',
194
- * type: 'submit',
195
- * value: 'form-submitted'
196
- * });
197
- * ```
198
- */
199
19
  value?: string;
200
- /**
201
- * Position of the Extended FAB on the screen
202
- *
203
- * Configures the Extended FAB for floating positioning on the screen.
204
- * Applies appropriate CSS classes to position the Extended FAB in one of the corners.
205
- *
206
- * @example
207
- * ```typescript
208
- * // Position in the bottom-right corner (common for primary actions)
209
- * createExtendedFab({
210
- * text: 'Create',
211
- * position: 'bottom-right'
212
- * });
213
- *
214
- * // Position in the top-left corner
215
- * createExtendedFab({
216
- * text: 'Go back',
217
- * position: 'top-left'
218
- * });
219
- * ```
220
- */
221
20
  position?: ExtendedFabPosition | string;
222
- /**
223
- * Button type attribute
224
- *
225
- * Sets the HTML type attribute of the button element.
226
- *
227
- * @default 'button'
228
- *
229
- * @example
230
- * ```typescript
231
- * // Use as a form submit button
232
- * createExtendedFab({
233
- * text: 'Submit',
234
- * type: 'submit'
235
- * });
236
- * ```
237
- */
21
+ placement?: ExtendedFabPlacement;
238
22
  type?: "button" | "submit" | "reset";
239
- /**
240
- * Accessible label for screen readers
241
- *
242
- * Sets the aria-label attribute. The visible text already names the
243
- * Extended FAB, so set this only when the name should differ from it or
244
- * there is no text. Nothing is derived from `text` or `icon` (#232).
245
- *
246
- * @example
247
- * ```typescript
248
- * createExtendedFab({
249
- * text: 'Create',
250
- * icon: '<svg>...</svg>',
251
- * ariaLabel: 'Create new document'
252
- * });
253
- * ```
254
- */
255
23
  ariaLabel?: string;
256
- /**
257
- * Whether to enable ripple effect
258
- *
259
- * The ripple effect provides visual feedback when the user interacts
260
- * with the Extended FAB. Follows Material Design interaction patterns.
261
- *
262
- * @default true
263
- *
264
- * @example
265
- * ```typescript
266
- * // Disable the ripple effect
267
- * createExtendedFab({
268
- * text: 'Create',
269
- * ripple: false
270
- * });
271
- * ```
272
- */
273
24
  ripple?: boolean;
274
- /**
275
- * Component prefix for class names
276
- *
277
- * The prefix used for BEM-style class names.
278
- *
279
- * @default 'mtrl'
280
- *
281
- * @example
282
- * ```typescript
283
- * // Use a custom prefix for class names
284
- * createExtendedFab({
285
- * text: 'Create',
286
- * prefix: 'app'
287
- * });
288
- * // Results in classes like: 'app-extended-fab app-extended-fab--primary'
289
- * ```
290
- */
291
25
  prefix?: string;
292
- /**
293
- * Component name used in class generation
294
- *
295
- * @internal
296
- */
297
26
  componentName?: string;
298
- /**
299
- * Ripple effect configuration
300
- *
301
- * Fine-grained control over the ripple effect appearance and behavior.
302
- *
303
- * @example
304
- * ```typescript
305
- * // Customize ripple effect
306
- * createExtendedFab({
307
- * text: 'Create',
308
- * rippleConfig: {
309
- * duration: 400
310
- * }
311
- * });
312
- * ```
313
- */
314
27
  rippleConfig?: {
315
- /** How long, in milliseconds, a released wave lingers before it is removed */
316
28
  duration?: number;
317
29
  };
318
- /**
319
- * Whether to show the Extended FAB with an entrance animation
320
- *
321
- * When true, the Extended FAB will animate into view when added to the DOM.
322
- *
323
- * @default false
324
- *
325
- * @example
326
- * ```typescript
327
- * // Create an animated entrance Extended FAB
328
- * createExtendedFab({
329
- * text: 'Create',
330
- * animate: true
331
- * });
332
- * ```
333
- */
334
30
  animate?: boolean;
335
- /**
336
- * Width behavior of the Extended FAB
337
- *
338
- * Controls how the Extended FAB's width is calculated:
339
- * - 'fixed': Maintains a constant width regardless of content (default)
340
- * - 'fluid': Adjusts width based on content length
341
- *
342
- * @default 'fixed'
343
- *
344
- * @example
345
- * ```typescript
346
- * // Create an Extended FAB that adjusts width based on text length
347
- * createExtendedFab({
348
- * text: 'Add to favorites',
349
- * width: 'fluid'
350
- * });
351
- * ```
352
- */
353
31
  width?: ExtendedFabWidth | string;
354
- /**
355
- * Whether the Extended FAB should collapse to a standard FAB on scroll
356
- *
357
- * When true, the Extended FAB will automatically shrink to a circular FAB
358
- * (hiding the text) when the user scrolls down, and expand back to the Extended FAB
359
- * when scrolling up.
360
- *
361
- * @default false
362
- *
363
- * @example
364
- * ```typescript
365
- * // Create a collapsible Extended FAB
366
- * createExtendedFab({
367
- * text: 'Create',
368
- * icon: '<svg>...</svg>',
369
- * collapseOnScroll: true
370
- * });
371
- * ```
372
- */
373
32
  collapseOnScroll?: boolean;
374
- /**
375
- * Index signature for additional configuration options
376
- * Required for compatibility with core feature interfaces
377
- */
378
33
  [key: string]: unknown;
379
34
  }
380
- /**
381
- * Native events forwarded through the Extended FAB's emitter.
382
- * Collapse and expand are DOM-only events; listen on `element` for those.
383
- * Lifecycle callbacks are registered through the lifecycle API.
384
- */
385
35
  export interface ExtendedFabEvents extends TouchEvents {
386
- /** Clicks are not forwarded while the button is disabled. */
387
36
  click: (payload: ForwardedEventPayload<MouseEvent, HTMLButtonElement>) => void;
388
- /** The button took focus. */
389
37
  focus: (payload: ForwardedEventPayload<FocusEvent, HTMLButtonElement>) => void;
390
- /** The button lost focus. */
391
38
  blur: (payload: ForwardedEventPayload<FocusEvent, HTMLButtonElement>) => void;
392
- /** `collapse()` ran, by call or on scroll */
393
39
  collapse: () => void;
394
- /** `expand()` ran, by call or on scroll */
395
40
  expand: () => void;
396
41
  }
397
- /**
398
- * Extended FAB component interface
399
- *
400
- * Provides methods for interacting with and manipulating an Extended Floating Action Button.
401
- *
402
- * @category Components
403
- */
404
42
  export interface ExtendedFabComponent {
405
- /**
406
- * The Extended FAB's DOM element
407
- *
408
- * Direct access to the underlying button element for DOM manipulation.
409
- */
410
43
  element: HTMLButtonElement;
411
- /**
412
- * API for managing Extended FAB icons
413
- *
414
- * Access to low-level icon methods and elements.
415
- */
416
44
  icon: {
417
- /** Sets the icon HTML content */
418
45
  setIcon: (html: string) => IconManager;
419
- /** Gets the current icon HTML content */
420
46
  getIcon: () => string;
421
- /** Gets the icon DOM element */
422
47
  getElement: () => HTMLElement | null;
423
48
  };
424
- /**
425
- * API for managing text content
426
- *
427
- * Access to low-level text methods and elements.
428
- */
429
49
  text: {
430
- /** Sets the text content */
431
50
  setText: (text: string) => TextManager;
432
- /** Gets the current text content */
433
51
  getText: () => string;
434
- /** Gets the text DOM element */
435
52
  getElement: () => HTMLElement | null;
436
53
  };
437
- /**
438
- * API for managing disabled state
439
- *
440
- * Access to low-level disabled state methods.
441
- */
442
54
  disabled: {
443
- /** Enables the Extended FAB */
444
55
  enable: () => void;
445
- /** Disables the Extended FAB */
446
56
  disable: () => void;
447
- /** Checks if the Extended FAB is disabled */
448
57
  isDisabled: () => boolean;
449
58
  };
450
- /**
451
- * API for managing component lifecycle
452
- *
453
- * Access to low-level lifecycle methods.
454
- */
455
59
  lifecycle: {
456
- /** Destroys the component and cleans up resources */
457
60
  destroy: () => void;
458
61
  };
459
- /**
460
- * Gets a class name with the component's prefix
461
- *
462
- * @param name - Base class name
463
- * @returns Prefixed class name
464
- *
465
- * @example
466
- * ```typescript
467
- * const fab = createExtendedFab({ text: 'Create' });
468
- * const className = fab.getClass('icon'); // Returns 'mtrl-extended-fab__icon'
469
- * ```
470
- */
471
62
  getClass: (name: string) => string;
472
- /**
473
- * Gets the Extended FAB's value attribute
474
- *
475
- * @returns Extended FAB value
476
- *
477
- * @example
478
- * ```typescript
479
- * const fab = createExtendedFab({ text: 'Submit', value: 'form-data' });
480
- * const value = fab.getValue(); // Returns 'form-data'
481
- * ```
482
- */
483
63
  getValue: () => string;
484
- /**
485
- * Sets the Extended FAB's value attribute
486
- *
487
- * @param value - New value
488
- * @returns The Extended FAB component for chaining
489
- *
490
- * @example
491
- * ```typescript
492
- * const fab = createExtendedFab({ text: 'Submit' });
493
- * fab.setValue('completed');
494
- * ```
495
- */
496
64
  setValue: (value: string) => ExtendedFabComponent;
497
- /**
498
- * Enables the Extended FAB (removes disabled attribute)
499
- *
500
- * Makes the Extended FAB interactive and visually enabled.
501
- *
502
- * @returns The Extended FAB component for chaining
503
- *
504
- * @example
505
- * ```typescript
506
- * // Enable a previously disabled Extended FAB
507
- * fab.enable();
508
- * ```
509
- */
510
65
  enable: () => ExtendedFabComponent;
511
- /**
512
- * Disables the Extended FAB (adds disabled attribute)
513
- *
514
- * Makes the Extended FAB non-interactive and visually disabled.
515
- *
516
- * @returns The Extended FAB component for chaining
517
- *
518
- * @example
519
- * ```typescript
520
- * // Disable the Extended FAB during an async operation
521
- * fab.disable();
522
- * await saveData();
523
- * fab.enable();
524
- * ```
525
- */
526
66
  disable: () => ExtendedFabComponent;
527
- /** Whether the extended FAB is disabled */
528
67
  isDisabled: () => boolean;
529
- /**
530
- * Sets the Extended FAB's icon
531
- *
532
- * @param icon - Icon HTML content
533
- * @returns The Extended FAB component for chaining
534
- *
535
- * @example
536
- * ```typescript
537
- * // Change the icon dynamically
538
- * fab.setIcon('<svg>...</svg>');
539
- *
540
- * // Change to a Material Icons ligature
541
- * fab.setIcon('<span class="material-icons">edit</span>');
542
- * ```
543
- */
544
68
  setIcon: (icon: string) => ExtendedFabComponent;
545
- /**
546
- * Gets the Extended FAB's icon HTML content
547
- *
548
- * @returns Icon HTML
549
- *
550
- * @example
551
- * ```typescript
552
- * const iconHtml = fab.getIcon();
553
- * ```
554
- */
555
69
  getIcon: () => string;
556
- /**
557
- * Sets the Extended FAB's text content
558
- *
559
- * @param text - Text content
560
- * @returns The Extended FAB component for chaining
561
- *
562
- * @example
563
- * ```typescript
564
- * // Change text dynamically based on state
565
- * if (isEditing) {
566
- * fab.setText('Save');
567
- * } else {
568
- * fab.setText('Edit');
569
- * }
570
- * ```
571
- */
572
70
  setText: (text: string) => ExtendedFabComponent;
573
- /**
574
- * Gets the Extended FAB's text content
575
- *
576
- * @returns Text content
577
- *
578
- * @example
579
- * ```typescript
580
- * const currentText = fab.getText();
581
- * ```
582
- */
583
71
  getText: () => string;
584
- /**
585
- * Sets the Extended FAB's position
586
- *
587
- * Positions the Extended FAB in one of the four corners of the viewport.
588
- *
589
- * @param position - Position value ('top-right', 'bottom-left', etc.)
590
- * @returns The Extended FAB component for chaining
591
- *
592
- * @example
593
- * ```typescript
594
- * // Move the Extended FAB to the bottom-left corner
595
- * fab.setPosition('bottom-left');
596
- * ```
597
- */
598
72
  setPosition: (position: string) => ExtendedFabComponent;
599
- /**
600
- * Gets the current position of the Extended FAB
601
- *
602
- * @returns Current position or null if not positioned
603
- *
604
- * @example
605
- * ```typescript
606
- * const position = fab.getPosition(); // Returns 'bottom-right', 'top-left', etc.
607
- * ```
608
- */
609
73
  getPosition: () => string | null;
610
- /**
611
- * Lowers the Extended FAB (useful for pressed state)
612
- *
613
- * Visually lowers the Extended FAB by reducing its elevation,
614
- * typically used to indicate a pressed or active state.
615
- *
616
- * @returns The Extended FAB component for chaining
617
- *
618
- * @example
619
- * ```typescript
620
- * // Visually lower the Extended FAB when a long operation starts
621
- * fab.lower();
622
- * await longOperation();
623
- * fab.raise();
624
- * ```
625
- */
626
74
  lower: () => ExtendedFabComponent;
627
- /**
628
- * Raises the Extended FAB back to its default elevation
629
- *
630
- * Restores the default elevation after it has been lowered.
631
- *
632
- * @returns The Extended FAB component for chaining
633
- *
634
- * @example
635
- * ```typescript
636
- * // Restore normal elevation
637
- * fab.raise();
638
- * ```
639
- */
640
75
  raise: () => ExtendedFabComponent;
641
- /**
642
- * Collapses the Extended FAB into a standard FAB
643
- *
644
- * Hides the text label, showing only the icon in a circular container.
645
- * Useful for saving space or to emphasize other content.
646
- *
647
- * @returns The Extended FAB component for chaining
648
- *
649
- * @example
650
- * ```typescript
651
- * // Collapse the Extended FAB programmatically
652
- * fab.collapse();
653
- * ```
654
- */
655
76
  collapse: () => ExtendedFabComponent;
656
- /**
657
- * Expands a collapsed Extended FAB back to its full size
658
- *
659
- * Shows the text label alongside the icon.
660
- *
661
- * @returns The Extended FAB component for chaining
662
- *
663
- * @example
664
- * ```typescript
665
- * // Expand the Extended FAB programmatically
666
- * fab.expand();
667
- * ```
668
- */
669
77
  expand: () => ExtendedFabComponent;
670
- /**
671
- * Destroys the Extended FAB component and cleans up resources
672
- *
673
- * Removes event listeners and prepares the component for garbage collection.
674
- * Call this method when the Extended FAB is no longer needed.
675
- *
676
- * @example
677
- * ```typescript
678
- * // Clean up when the component is no longer needed
679
- * fab.destroy();
680
- * ```
681
- */
682
78
  destroy: () => void;
683
- /**
684
- * Adds an event listener to the Extended FAB
685
- *
686
- * @param event - Forwarded event name: 'click', 'focus', or 'blur'
687
- * @param handler - Receives the native event and the button root in a payload
688
- * @returns The Extended FAB component for chaining
689
- *
690
- * @example
691
- * ```typescript
692
- * // Add click handler
693
- * fab.on('click', () => {
694
- * console.log('Extended FAB clicked');
695
- * });
696
- *
697
- * // Collapse and expand reach both the emitter and the DOM element
698
- * fab.on('collapse', () => {
699
- * console.log('Extended FAB collapsed');
700
- * });
701
- * ```
702
- */
703
79
  on: <K extends keyof ExtendedFabEvents>(event: K, handler: ExtendedFabEvents[K]) => ExtendedFabComponent;
704
- /**
705
- * Removes an event listener from the Extended FAB
706
- *
707
- * @param event - Event name
708
- * @param handler - Event handler function
709
- * @returns The Extended FAB component for chaining
710
- *
711
- * @example
712
- * ```typescript
713
- * // Remove a previously added event handler
714
- * const handler = () => console.log('Clicked');
715
- * fab.on('click', handler);
716
- * // Later...
717
- * fab.off('click', handler);
718
- * ```
719
- */
720
80
  off: <K extends keyof ExtendedFabEvents>(event: K, handler: ExtendedFabEvents[K]) => ExtendedFabComponent;
721
- /**
722
- * Adds CSS classes to the Extended FAB element
723
- *
724
- * @param classes - One or more class names to add
725
- * @returns The Extended FAB component for chaining
726
- *
727
- * @example
728
- * ```typescript
729
- * // Add multiple classes
730
- * fab.addClass('highlight', 'pulse-animation');
731
- * ```
732
- */
733
81
  addClass: (...classes: string[]) => ExtendedFabComponent;
734
82
  }