@noxlovette/material 0.1.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 (537) hide show
  1. package/dist/actions/clickOutside.d.ts +3 -0
  2. package/dist/actions/clickOutside.js +13 -0
  3. package/dist/actions/floating.d.ts +20 -0
  4. package/dist/actions/floating.js +87 -0
  5. package/dist/actions/index.d.ts +4 -0
  6. package/dist/actions/index.js +4 -0
  7. package/dist/actions/keyboard.d.ts +3 -0
  8. package/dist/actions/keyboard.js +14 -0
  9. package/dist/actions/positionFloating.d.ts +10 -0
  10. package/dist/actions/positionFloating.js +59 -0
  11. package/dist/animation/containerTransform.d.ts +13 -0
  12. package/dist/animation/containerTransform.js +138 -0
  13. package/dist/animation/easing.d.ts +6 -0
  14. package/dist/animation/easing.js +78 -0
  15. package/dist/animation/enterExit.d.ts +3 -0
  16. package/dist/animation/enterExit.js +23 -0
  17. package/dist/animation/index.d.ts +5 -0
  18. package/dist/animation/index.js +5 -0
  19. package/dist/animation/outroClass.d.ts +3 -0
  20. package/dist/animation/outroClass.js +20 -0
  21. package/dist/animation/shapes.d.ts +35 -0
  22. package/dist/animation/shapes.js +37 -0
  23. package/dist/animation/shapesAnimatable.d.ts +35 -0
  24. package/dist/animation/shapesAnimatable.js +41 -0
  25. package/dist/animation/shapesAnimatableSmall.d.ts +29 -0
  26. package/dist/animation/shapesAnimatableSmall.js +33 -0
  27. package/dist/animation/sharedAxisTransition.d.ts +38 -0
  28. package/dist/animation/sharedAxisTransition.js +23 -0
  29. package/dist/animation/transition.d.ts +4 -0
  30. package/dist/animation/transition.js +4 -0
  31. package/dist/animation/transitionTypes.d.ts +8 -0
  32. package/dist/animation/transitionTypes.js +1 -0
  33. package/dist/components/badge/Badge.svelte +26 -0
  34. package/dist/components/badge/Badge.svelte.d.ts +12 -0
  35. package/dist/components/badge/index.d.ts +3 -0
  36. package/dist/components/badge/index.js +6 -0
  37. package/dist/components/badge/theme.d.ts +16 -0
  38. package/dist/components/badge/theme.js +10 -0
  39. package/dist/components/badge/types.d.ts +18 -0
  40. package/dist/components/badge/types.js +1 -0
  41. package/dist/components/buttons/Button.svelte +53 -0
  42. package/dist/components/buttons/Button.svelte.d.ts +16 -0
  43. package/dist/components/buttons/ButtonIcon.svelte +79 -0
  44. package/dist/components/buttons/ButtonIcon.svelte.d.ts +14 -0
  45. package/dist/components/buttons/FAB.svelte +81 -0
  46. package/dist/components/buttons/FAB.svelte.d.ts +14 -0
  47. package/dist/components/buttons/FABMenu.svelte +86 -0
  48. package/dist/components/buttons/FABMenu.svelte.d.ts +8 -0
  49. package/dist/components/buttons/FABMenuItem.svelte +38 -0
  50. package/dist/components/buttons/FABMenuItem.svelte.d.ts +5 -0
  51. package/dist/components/buttons/Toggle.svelte +62 -0
  52. package/dist/components/buttons/Toggle.svelte.d.ts +11 -0
  53. package/dist/components/buttons/connected/ConnectedButtons.svelte +14 -0
  54. package/dist/components/buttons/connected/ConnectedButtons.svelte.d.ts +8 -0
  55. package/dist/components/buttons/connected/index.d.ts +2 -0
  56. package/dist/components/buttons/connected/index.js +5 -0
  57. package/dist/components/buttons/connected/types.d.ts +14 -0
  58. package/dist/components/buttons/connected/types.js +1 -0
  59. package/dist/components/buttons/index.d.ts +9 -0
  60. package/dist/components/buttons/index.js +13 -0
  61. package/dist/components/buttons/theme.d.ts +539 -0
  62. package/dist/components/buttons/theme.js +495 -0
  63. package/dist/components/buttons/types.d.ts +201 -0
  64. package/dist/components/buttons/types.js +1 -0
  65. package/dist/components/cards/Card.svelte +39 -0
  66. package/dist/components/cards/Card.svelte.d.ts +13 -0
  67. package/dist/components/cards/index.d.ts +3 -0
  68. package/dist/components/cards/index.js +6 -0
  69. package/dist/components/cards/theme.d.ts +37 -0
  70. package/dist/components/cards/theme.js +34 -0
  71. package/dist/components/cards/types.d.ts +31 -0
  72. package/dist/components/cards/types.js +1 -0
  73. package/dist/components/containers/app/App.svelte +32 -0
  74. package/dist/components/containers/app/App.svelte.d.ts +8 -0
  75. package/dist/components/containers/app/index.d.ts +3 -0
  76. package/dist/components/containers/app/index.js +6 -0
  77. package/dist/components/containers/app/theme.d.ts +3 -0
  78. package/dist/components/containers/app/theme.js +4 -0
  79. package/dist/components/containers/app/types.d.ts +25 -0
  80. package/dist/components/containers/app/types.js +1 -0
  81. package/dist/components/containers/bottom-sheet/BottomSheet.svelte +125 -0
  82. package/dist/components/containers/bottom-sheet/BottomSheet.svelte.d.ts +12 -0
  83. package/dist/components/containers/bottom-sheet/index.d.ts +2 -0
  84. package/dist/components/containers/bottom-sheet/index.js +5 -0
  85. package/dist/components/containers/bottom-sheet/types.d.ts +16 -0
  86. package/dist/components/containers/bottom-sheet/types.js +1 -0
  87. package/dist/components/containers/context-menu/ContextMenu.svelte +152 -0
  88. package/dist/components/containers/context-menu/ContextMenu.svelte.d.ts +23 -0
  89. package/dist/components/containers/context-menu/index.d.ts +3 -0
  90. package/dist/components/containers/context-menu/index.js +6 -0
  91. package/dist/components/containers/context-menu/theme.d.ts +51 -0
  92. package/dist/components/containers/context-menu/theme.js +21 -0
  93. package/dist/components/containers/context-menu/types.d.ts +45 -0
  94. package/dist/components/containers/context-menu/types.js +1 -0
  95. package/dist/components/containers/dialogue/Dialogue.svelte +134 -0
  96. package/dist/components/containers/dialogue/Dialogue.svelte.d.ts +14 -0
  97. package/dist/components/containers/dialogue/index.d.ts +3 -0
  98. package/dist/components/containers/dialogue/index.js +6 -0
  99. package/dist/components/containers/dialogue/theme.d.ts +51 -0
  100. package/dist/components/containers/dialogue/theme.js +10 -0
  101. package/dist/components/containers/dialogue/types.d.ts +46 -0
  102. package/dist/components/containers/dialogue/types.js +1 -0
  103. package/dist/components/containers/divider/Divider.svelte +100 -0
  104. package/dist/components/containers/divider/Divider.svelte.d.ts +13 -0
  105. package/dist/components/containers/divider/index.d.ts +3 -0
  106. package/dist/components/containers/divider/index.js +6 -0
  107. package/dist/components/containers/divider/theme.d.ts +33 -0
  108. package/dist/components/containers/divider/theme.js +15 -0
  109. package/dist/components/containers/divider/types.d.ts +27 -0
  110. package/dist/components/containers/divider/types.js +1 -0
  111. package/dist/components/containers/index.d.ts +15 -0
  112. package/dist/components/containers/index.js +17 -0
  113. package/dist/components/containers/link-preview/LinkPreview.svelte +64 -0
  114. package/dist/components/containers/link-preview/LinkPreview.svelte.d.ts +10 -0
  115. package/dist/components/containers/link-preview/index.d.ts +3 -0
  116. package/dist/components/containers/link-preview/index.js +6 -0
  117. package/dist/components/containers/link-preview/theme.d.ts +33 -0
  118. package/dist/components/containers/link-preview/theme.js +7 -0
  119. package/dist/components/containers/link-preview/types.d.ts +22 -0
  120. package/dist/components/containers/link-preview/types.js +1 -0
  121. package/dist/components/containers/list/ListItem.svelte +79 -0
  122. package/dist/components/containers/list/ListItem.svelte.d.ts +4 -0
  123. package/dist/components/containers/list/index.d.ts +3 -0
  124. package/dist/components/containers/list/index.js +6 -0
  125. package/dist/components/containers/list/theme.d.ts +67 -0
  126. package/dist/components/containers/list/theme.js +27 -0
  127. package/dist/components/containers/list/types.d.ts +48 -0
  128. package/dist/components/containers/list/types.js +1 -0
  129. package/dist/components/containers/menu/Menu.svelte +70 -0
  130. package/dist/components/containers/menu/Menu.svelte.d.ts +20 -0
  131. package/dist/components/containers/menu/index.d.ts +2 -0
  132. package/dist/components/containers/menu/index.js +5 -0
  133. package/dist/components/containers/menu/types.d.ts +40 -0
  134. package/dist/components/containers/menu/types.js +1 -0
  135. package/dist/components/containers/menu-item/MenuItem.svelte +75 -0
  136. package/dist/components/containers/menu-item/MenuItem.svelte.d.ts +20 -0
  137. package/dist/components/containers/menu-item/index.d.ts +2 -0
  138. package/dist/components/containers/menu-item/index.js +5 -0
  139. package/dist/components/containers/menu-item/types.d.ts +36 -0
  140. package/dist/components/containers/menu-item/types.js +1 -0
  141. package/dist/components/containers/merger/InputMerger.svelte +29 -0
  142. package/dist/components/containers/merger/InputMerger.svelte.d.ts +14 -0
  143. package/dist/components/containers/merger/index.d.ts +1 -0
  144. package/dist/components/containers/merger/index.js +3 -0
  145. package/dist/components/containers/panes/SinglePane.svelte +29 -0
  146. package/dist/components/containers/panes/SinglePane.svelte.d.ts +5 -0
  147. package/dist/components/containers/panes/SplitPane.svelte +132 -0
  148. package/dist/components/containers/panes/SplitPane.svelte.d.ts +5 -0
  149. package/dist/components/containers/panes/SupportingPane.svelte +81 -0
  150. package/dist/components/containers/panes/SupportingPane.svelte.d.ts +9 -0
  151. package/dist/components/containers/panes/index.d.ts +5 -0
  152. package/dist/components/containers/panes/index.js +8 -0
  153. package/dist/components/containers/panes/theme.d.ts +331 -0
  154. package/dist/components/containers/panes/theme.js +152 -0
  155. package/dist/components/containers/panes/types.d.ts +81 -0
  156. package/dist/components/containers/panes/types.js +1 -0
  157. package/dist/components/containers/popover/Popover.svelte +82 -0
  158. package/dist/components/containers/popover/Popover.svelte.d.ts +10 -0
  159. package/dist/components/containers/popover/index.d.ts +3 -0
  160. package/dist/components/containers/popover/index.js +6 -0
  161. package/dist/components/containers/popover/theme.d.ts +51 -0
  162. package/dist/components/containers/popover/theme.js +10 -0
  163. package/dist/components/containers/popover/types.d.ts +22 -0
  164. package/dist/components/containers/popover/types.js +1 -0
  165. package/dist/components/containers/scroll-area/ScrollArea.svelte +41 -0
  166. package/dist/components/containers/scroll-area/ScrollArea.svelte.d.ts +5 -0
  167. package/dist/components/containers/scroll-area/index.d.ts +3 -0
  168. package/dist/components/containers/scroll-area/index.js +6 -0
  169. package/dist/components/containers/scroll-area/theme.d.ts +55 -0
  170. package/dist/components/containers/scroll-area/theme.js +26 -0
  171. package/dist/components/containers/scroll-area/types.d.ts +26 -0
  172. package/dist/components/containers/scroll-area/types.js +1 -0
  173. package/dist/components/containers/side-sheet/SideSheet.svelte +21 -0
  174. package/dist/components/containers/side-sheet/SideSheet.svelte.d.ts +9 -0
  175. package/dist/components/containers/side-sheet/index.d.ts +2 -0
  176. package/dist/components/containers/side-sheet/index.js +5 -0
  177. package/dist/components/containers/side-sheet/types.d.ts +18 -0
  178. package/dist/components/containers/side-sheet/types.js +1 -0
  179. package/dist/components/containers/stack/HStack.svelte +23 -0
  180. package/dist/components/containers/stack/HStack.svelte.d.ts +5 -0
  181. package/dist/components/containers/stack/VStack.svelte +23 -0
  182. package/dist/components/containers/stack/VStack.svelte.d.ts +5 -0
  183. package/dist/components/containers/stack/index.d.ts +4 -0
  184. package/dist/components/containers/stack/index.js +7 -0
  185. package/dist/components/containers/stack/theme.d.ts +60 -0
  186. package/dist/components/containers/stack/theme.js +24 -0
  187. package/dist/components/containers/stack/types.d.ts +12 -0
  188. package/dist/components/containers/stack/types.js +1 -0
  189. package/dist/components/date/DateField.svelte +155 -0
  190. package/dist/components/date/DateField.svelte.d.ts +12 -0
  191. package/dist/components/date/DateRangeField.svelte +211 -0
  192. package/dist/components/date/DateRangeField.svelte.d.ts +13 -0
  193. package/dist/components/date/index.d.ts +4 -0
  194. package/dist/components/date/index.js +7 -0
  195. package/dist/components/date/theme.d.ts +158 -0
  196. package/dist/components/date/theme.js +149 -0
  197. package/dist/components/date/types.d.ts +64 -0
  198. package/dist/components/date/types.js +1 -0
  199. package/dist/components/forms/checkbox/Checkbox.svelte +66 -0
  200. package/dist/components/forms/checkbox/Checkbox.svelte.d.ts +10 -0
  201. package/dist/components/forms/checkbox/index.d.ts +3 -0
  202. package/dist/components/forms/checkbox/index.js +6 -0
  203. package/dist/components/forms/checkbox/theme.d.ts +141 -0
  204. package/dist/components/forms/checkbox/theme.js +69 -0
  205. package/dist/components/forms/checkbox/types.d.ts +39 -0
  206. package/dist/components/forms/checkbox/types.js +1 -0
  207. package/dist/components/forms/command/Command.svelte +14 -0
  208. package/dist/components/forms/command/Command.svelte.d.ts +5 -0
  209. package/dist/components/forms/command/CommandEmpty.svelte +14 -0
  210. package/dist/components/forms/command/CommandEmpty.svelte.d.ts +4 -0
  211. package/dist/components/forms/command/CommandGroup.svelte +17 -0
  212. package/dist/components/forms/command/CommandGroup.svelte.d.ts +4 -0
  213. package/dist/components/forms/command/CommandInput.svelte +18 -0
  214. package/dist/components/forms/command/CommandInput.svelte.d.ts +4 -0
  215. package/dist/components/forms/command/CommandItem.svelte +14 -0
  216. package/dist/components/forms/command/CommandItem.svelte.d.ts +4 -0
  217. package/dist/components/forms/command/CommandList.svelte +14 -0
  218. package/dist/components/forms/command/CommandList.svelte.d.ts +4 -0
  219. package/dist/components/forms/command/CommandSeparator.svelte +12 -0
  220. package/dist/components/forms/command/CommandSeparator.svelte.d.ts +4 -0
  221. package/dist/components/forms/command/index.d.ts +9 -0
  222. package/dist/components/forms/command/index.js +12 -0
  223. package/dist/components/forms/command/theme.d.ts +81 -0
  224. package/dist/components/forms/command/theme.js +15 -0
  225. package/dist/components/forms/command/types.d.ts +31 -0
  226. package/dist/components/forms/command/types.js +1 -0
  227. package/dist/components/forms/index.d.ts +12 -0
  228. package/dist/components/forms/index.js +14 -0
  229. package/dist/components/forms/multipart/Multipart.svelte +532 -0
  230. package/dist/components/forms/multipart/Multipart.svelte.d.ts +51 -0
  231. package/dist/components/forms/multipart/index.d.ts +1 -0
  232. package/dist/components/forms/multipart/index.js +3 -0
  233. package/dist/components/forms/pin/PinInput.svelte +51 -0
  234. package/dist/components/forms/pin/PinInput.svelte.d.ts +10 -0
  235. package/dist/components/forms/pin/index.d.ts +3 -0
  236. package/dist/components/forms/pin/index.js +6 -0
  237. package/dist/components/forms/pin/theme.d.ts +60 -0
  238. package/dist/components/forms/pin/theme.js +33 -0
  239. package/dist/components/forms/pin/types.d.ts +29 -0
  240. package/dist/components/forms/pin/types.js +1 -0
  241. package/dist/components/forms/radio-group/RadioGroup.svelte +61 -0
  242. package/dist/components/forms/radio-group/RadioGroup.svelte.d.ts +10 -0
  243. package/dist/components/forms/radio-group/index.d.ts +3 -0
  244. package/dist/components/forms/radio-group/index.js +6 -0
  245. package/dist/components/forms/radio-group/theme.d.ts +132 -0
  246. package/dist/components/forms/radio-group/theme.js +48 -0
  247. package/dist/components/forms/radio-group/types.d.ts +24 -0
  248. package/dist/components/forms/radio-group/types.js +1 -0
  249. package/dist/components/forms/search/Search.svelte +52 -0
  250. package/dist/components/forms/search/Search.svelte.d.ts +11 -0
  251. package/dist/components/forms/search/index.d.ts +3 -0
  252. package/dist/components/forms/search/index.js +6 -0
  253. package/dist/components/forms/search/theme.d.ts +33 -0
  254. package/dist/components/forms/search/theme.js +15 -0
  255. package/dist/components/forms/search/types.d.ts +34 -0
  256. package/dist/components/forms/search/types.js +1 -0
  257. package/dist/components/forms/select/Select.svelte +141 -0
  258. package/dist/components/forms/select/Select.svelte.d.ts +13 -0
  259. package/dist/components/forms/select/SelectGroup.svelte +19 -0
  260. package/dist/components/forms/select/SelectGroup.svelte.d.ts +8 -0
  261. package/dist/components/forms/select/SelectItem.svelte +35 -0
  262. package/dist/components/forms/select/SelectItem.svelte.d.ts +14 -0
  263. package/dist/components/forms/select/SelectLabel.svelte +19 -0
  264. package/dist/components/forms/select/SelectLabel.svelte.d.ts +8 -0
  265. package/dist/components/forms/select/SelectSeparator.svelte +13 -0
  266. package/dist/components/forms/select/SelectSeparator.svelte.d.ts +6 -0
  267. package/dist/components/forms/select/index.d.ts +7 -0
  268. package/dist/components/forms/select/index.js +10 -0
  269. package/dist/components/forms/select/theme.d.ts +84 -0
  270. package/dist/components/forms/select/theme.js +87 -0
  271. package/dist/components/forms/select/types.d.ts +63 -0
  272. package/dist/components/forms/select/types.js +1 -0
  273. package/dist/components/forms/slider/Slider.svelte +201 -0
  274. package/dist/components/forms/slider/Slider.svelte.d.ts +12 -0
  275. package/dist/components/forms/slider/index.d.ts +3 -0
  276. package/dist/components/forms/slider/index.js +6 -0
  277. package/dist/components/forms/slider/theme.d.ts +78 -0
  278. package/dist/components/forms/slider/theme.js +33 -0
  279. package/dist/components/forms/slider/types.d.ts +56 -0
  280. package/dist/components/forms/slider/types.js +1 -0
  281. package/dist/components/forms/switch/Switch.svelte +74 -0
  282. package/dist/components/forms/switch/Switch.svelte.d.ts +12 -0
  283. package/dist/components/forms/switch/index.d.ts +3 -0
  284. package/dist/components/forms/switch/index.js +6 -0
  285. package/dist/components/forms/switch/theme.d.ts +51 -0
  286. package/dist/components/forms/switch/theme.js +71 -0
  287. package/dist/components/forms/switch/types.d.ts +25 -0
  288. package/dist/components/forms/switch/types.js +1 -0
  289. package/dist/components/forms/textfield/Textfield.svelte +82 -0
  290. package/dist/components/forms/textfield/Textfield.svelte.d.ts +11 -0
  291. package/dist/components/forms/textfield/index.d.ts +3 -0
  292. package/dist/components/forms/textfield/index.js +6 -0
  293. package/dist/components/forms/textfield/theme.d.ts +75 -0
  294. package/dist/components/forms/textfield/theme.js +74 -0
  295. package/dist/components/forms/textfield/types.d.ts +60 -0
  296. package/dist/components/forms/textfield/types.js +1 -0
  297. package/dist/components/forms/toggle-group/ToggleGroup.svelte +38 -0
  298. package/dist/components/forms/toggle-group/ToggleGroup.svelte.d.ts +11 -0
  299. package/dist/components/forms/toggle-group/ToggleGroupItem.svelte +36 -0
  300. package/dist/components/forms/toggle-group/ToggleGroupItem.svelte.d.ts +8 -0
  301. package/dist/components/forms/toggle-group/index.d.ts +4 -0
  302. package/dist/components/forms/toggle-group/index.js +7 -0
  303. package/dist/components/forms/toggle-group/theme.d.ts +74 -0
  304. package/dist/components/forms/toggle-group/theme.js +20 -0
  305. package/dist/components/forms/toggle-group/types.d.ts +25 -0
  306. package/dist/components/forms/toggle-group/types.js +1 -0
  307. package/dist/components/forms/tooltip/Tooltip.svelte +104 -0
  308. package/dist/components/forms/tooltip/Tooltip.svelte.d.ts +11 -0
  309. package/dist/components/forms/tooltip/index.d.ts +3 -0
  310. package/dist/components/forms/tooltip/index.js +6 -0
  311. package/dist/components/forms/tooltip/theme.d.ts +105 -0
  312. package/dist/components/forms/tooltip/theme.js +52 -0
  313. package/dist/components/forms/tooltip/types.d.ts +29 -0
  314. package/dist/components/forms/tooltip/types.js +1 -0
  315. package/dist/components/index.d.ts +15 -0
  316. package/dist/components/index.js +17 -0
  317. package/dist/components/misc/Avatar.svelte +70 -0
  318. package/dist/components/misc/Avatar.svelte.d.ts +9 -0
  319. package/dist/components/misc/ThemeSettings.svelte +88 -0
  320. package/dist/components/misc/ThemeSettings.svelte.d.ts +18 -0
  321. package/dist/components/misc/ThemeSwitcher.svelte +21 -0
  322. package/dist/components/misc/ThemeSwitcher.svelte.d.ts +3 -0
  323. package/dist/components/misc/index.d.ts +5 -0
  324. package/dist/components/misc/index.js +8 -0
  325. package/dist/components/misc/theme.d.ts +52 -0
  326. package/dist/components/misc/theme.js +25 -0
  327. package/dist/components/misc/types.d.ts +18 -0
  328. package/dist/components/misc/types.js +1 -0
  329. package/dist/components/nav/appbar/AppBar.svelte +60 -0
  330. package/dist/components/nav/appbar/AppBar.svelte.d.ts +12 -0
  331. package/dist/components/nav/appbar/index.d.ts +3 -0
  332. package/dist/components/nav/appbar/index.js +6 -0
  333. package/dist/components/nav/appbar/theme.d.ts +99 -0
  334. package/dist/components/nav/appbar/theme.js +33 -0
  335. package/dist/components/nav/appbar/types.d.ts +20 -0
  336. package/dist/components/nav/appbar/types.js +1 -0
  337. package/dist/components/nav/index.d.ts +5 -0
  338. package/dist/components/nav/index.js +8 -0
  339. package/dist/components/nav/navbar/Navbar.svelte +33 -0
  340. package/dist/components/nav/navbar/Navbar.svelte.d.ts +18 -0
  341. package/dist/components/nav/navbar/NavbarItem.svelte +66 -0
  342. package/dist/components/nav/navbar/NavbarItem.svelte.d.ts +9 -0
  343. package/dist/components/nav/navbar/index.d.ts +4 -0
  344. package/dist/components/nav/navbar/index.js +7 -0
  345. package/dist/components/nav/navbar/theme.d.ts +95 -0
  346. package/dist/components/nav/navbar/theme.js +31 -0
  347. package/dist/components/nav/navbar/types.d.ts +29 -0
  348. package/dist/components/nav/navbar/types.js +1 -0
  349. package/dist/components/nav/rail/Rail.svelte +75 -0
  350. package/dist/components/nav/rail/Rail.svelte.d.ts +11 -0
  351. package/dist/components/nav/rail/RailItem.svelte +104 -0
  352. package/dist/components/nav/rail/RailItem.svelte.d.ts +9 -0
  353. package/dist/components/nav/rail/index.d.ts +4 -0
  354. package/dist/components/nav/rail/index.js +7 -0
  355. package/dist/components/nav/rail/theme.d.ts +218 -0
  356. package/dist/components/nav/rail/theme.js +107 -0
  357. package/dist/components/nav/rail/types.d.ts +44 -0
  358. package/dist/components/nav/rail/types.js +1 -0
  359. package/dist/components/nav/tabs/Tab.svelte +49 -0
  360. package/dist/components/nav/tabs/Tab.svelte.d.ts +9 -0
  361. package/dist/components/nav/tabs/TabContent.svelte +11 -0
  362. package/dist/components/nav/tabs/TabContent.svelte.d.ts +8 -0
  363. package/dist/components/nav/tabs/TabHolder.svelte +44 -0
  364. package/dist/components/nav/tabs/TabHolder.svelte.d.ts +16 -0
  365. package/dist/components/nav/tabs/index.d.ts +5 -0
  366. package/dist/components/nav/tabs/index.js +8 -0
  367. package/dist/components/nav/tabs/theme.d.ts +92 -0
  368. package/dist/components/nav/tabs/theme.js +37 -0
  369. package/dist/components/nav/tabs/types.d.ts +39 -0
  370. package/dist/components/nav/tabs/types.js +1 -0
  371. package/dist/components/nav/types.d.ts +6 -0
  372. package/dist/components/nav/types.js +1 -0
  373. package/dist/components/pill/Pill.svelte +17 -0
  374. package/dist/components/pill/Pill.svelte.d.ts +5 -0
  375. package/dist/components/pill/index.d.ts +3 -0
  376. package/dist/components/pill/index.js +6 -0
  377. package/dist/components/pill/theme.d.ts +27 -0
  378. package/dist/components/pill/theme.js +16 -0
  379. package/dist/components/pill/types.d.ts +6 -0
  380. package/dist/components/pill/types.js +1 -0
  381. package/dist/components/progress/CircularProgress.svelte +58 -0
  382. package/dist/components/progress/CircularProgress.svelte.d.ts +16 -0
  383. package/dist/components/progress/LinearProgress.svelte +45 -0
  384. package/dist/components/progress/LinearProgress.svelte.d.ts +15 -0
  385. package/dist/components/progress/WavyLinearProgress.svelte +58 -0
  386. package/dist/components/progress/WavyLinearProgress.svelte.d.ts +19 -0
  387. package/dist/components/progress/_wavy.d.ts +2 -0
  388. package/dist/components/progress/_wavy.js +32 -0
  389. package/dist/components/progress/index.d.ts +4 -0
  390. package/dist/components/progress/index.js +7 -0
  391. package/dist/components/snackbar/Snackbar.svelte +102 -0
  392. package/dist/components/snackbar/Snackbar.svelte.d.ts +9 -0
  393. package/dist/components/snackbar/index.d.ts +3 -0
  394. package/dist/components/snackbar/index.js +6 -0
  395. package/dist/components/snackbar/theme.d.ts +36 -0
  396. package/dist/components/snackbar/theme.js +16 -0
  397. package/dist/components/snackbar/types.d.ts +33 -0
  398. package/dist/components/snackbar/types.js +1 -0
  399. package/dist/components/table/Table.svelte +26 -0
  400. package/dist/components/table/Table.svelte.d.ts +8 -0
  401. package/dist/components/table/TableBody.svelte +17 -0
  402. package/dist/components/table/TableBody.svelte.d.ts +5 -0
  403. package/dist/components/table/TableCell.svelte +24 -0
  404. package/dist/components/table/TableCell.svelte.d.ts +8 -0
  405. package/dist/components/table/TableFoot.svelte +17 -0
  406. package/dist/components/table/TableFoot.svelte.d.ts +5 -0
  407. package/dist/components/table/TableHead.svelte +18 -0
  408. package/dist/components/table/TableHead.svelte.d.ts +8 -0
  409. package/dist/components/table/TableHeader.svelte +43 -0
  410. package/dist/components/table/TableHeader.svelte.d.ts +8 -0
  411. package/dist/components/table/TableRow.svelte +24 -0
  412. package/dist/components/table/TableRow.svelte.d.ts +8 -0
  413. package/dist/components/table/index.d.ts +9 -0
  414. package/dist/components/table/index.js +12 -0
  415. package/dist/components/table/theme.d.ts +165 -0
  416. package/dist/components/table/theme.js +50 -0
  417. package/dist/components/table/types.d.ts +44 -0
  418. package/dist/components/table/types.js +1 -0
  419. package/dist/components/time/TimeField.svelte +111 -0
  420. package/dist/components/time/TimeField.svelte.d.ts +28 -0
  421. package/dist/components/time/TimepickerInput.svelte +75 -0
  422. package/dist/components/time/TimepickerInput.svelte.d.ts +10 -0
  423. package/dist/components/time/index.d.ts +4 -0
  424. package/dist/components/time/index.js +7 -0
  425. package/dist/components/time/theme.d.ts +69 -0
  426. package/dist/components/time/theme.js +13 -0
  427. package/dist/components/time/types.d.ts +34 -0
  428. package/dist/components/time/types.js +1 -0
  429. package/dist/components/toolbar/Toolbar.svelte +26 -0
  430. package/dist/components/toolbar/Toolbar.svelte.d.ts +10 -0
  431. package/dist/components/toolbar/ToolbarButton.svelte +25 -0
  432. package/dist/components/toolbar/ToolbarButton.svelte.d.ts +5 -0
  433. package/dist/components/toolbar/ToolbarDivider.svelte +6 -0
  434. package/dist/components/toolbar/ToolbarDivider.svelte.d.ts +18 -0
  435. package/dist/components/toolbar/ToolbarGroup.svelte +18 -0
  436. package/dist/components/toolbar/ToolbarGroup.svelte.d.ts +5 -0
  437. package/dist/components/toolbar/ToolbarGroupItem.svelte +27 -0
  438. package/dist/components/toolbar/ToolbarGroupItem.svelte.d.ts +8 -0
  439. package/dist/components/toolbar/index.d.ts +7 -0
  440. package/dist/components/toolbar/index.js +10 -0
  441. package/dist/components/toolbar/theme.d.ts +106 -0
  442. package/dist/components/toolbar/theme.js +27 -0
  443. package/dist/components/toolbar/types.d.ts +20 -0
  444. package/dist/components/toolbar/types.js +1 -0
  445. package/dist/components/typography/body/Body.svelte +33 -0
  446. package/dist/components/typography/body/Body.svelte.d.ts +10 -0
  447. package/dist/components/typography/body/index.d.ts +3 -0
  448. package/dist/components/typography/body/index.js +6 -0
  449. package/dist/components/typography/body/theme.d.ts +30 -0
  450. package/dist/components/typography/body/theme.js +14 -0
  451. package/dist/components/typography/body/types.d.ts +21 -0
  452. package/dist/components/typography/body/types.js +1 -0
  453. package/dist/components/typography/display/Display.svelte +27 -0
  454. package/dist/components/typography/display/Display.svelte.d.ts +10 -0
  455. package/dist/components/typography/display/index.d.ts +3 -0
  456. package/dist/components/typography/display/index.js +6 -0
  457. package/dist/components/typography/display/theme.d.ts +30 -0
  458. package/dist/components/typography/display/theme.js +14 -0
  459. package/dist/components/typography/display/types.d.ts +21 -0
  460. package/dist/components/typography/display/types.js +1 -0
  461. package/dist/components/typography/headline/Headline.svelte +27 -0
  462. package/dist/components/typography/headline/Headline.svelte.d.ts +10 -0
  463. package/dist/components/typography/headline/index.d.ts +3 -0
  464. package/dist/components/typography/headline/index.js +6 -0
  465. package/dist/components/typography/headline/theme.d.ts +30 -0
  466. package/dist/components/typography/headline/theme.js +14 -0
  467. package/dist/components/typography/headline/types.d.ts +21 -0
  468. package/dist/components/typography/headline/types.js +1 -0
  469. package/dist/components/typography/index.d.ts +6 -0
  470. package/dist/components/typography/index.js +8 -0
  471. package/dist/components/typography/kbd/Kbd.svelte +18 -0
  472. package/dist/components/typography/kbd/Kbd.svelte.d.ts +5 -0
  473. package/dist/components/typography/kbd/index.d.ts +3 -0
  474. package/dist/components/typography/kbd/index.js +6 -0
  475. package/dist/components/typography/kbd/theme.d.ts +18 -0
  476. package/dist/components/typography/kbd/theme.js +10 -0
  477. package/dist/components/typography/kbd/types.d.ts +17 -0
  478. package/dist/components/typography/kbd/types.js +1 -0
  479. package/dist/components/typography/label/Label.svelte +25 -0
  480. package/dist/components/typography/label/Label.svelte.d.ts +10 -0
  481. package/dist/components/typography/label/index.d.ts +3 -0
  482. package/dist/components/typography/label/index.js +6 -0
  483. package/dist/components/typography/label/theme.d.ts +28 -0
  484. package/dist/components/typography/label/theme.js +14 -0
  485. package/dist/components/typography/label/types.d.ts +23 -0
  486. package/dist/components/typography/label/types.js +1 -0
  487. package/dist/components/typography/title/Title.svelte +27 -0
  488. package/dist/components/typography/title/Title.svelte.d.ts +10 -0
  489. package/dist/components/typography/title/index.d.ts +3 -0
  490. package/dist/components/typography/title/index.js +6 -0
  491. package/dist/components/typography/title/theme.d.ts +30 -0
  492. package/dist/components/typography/title/theme.js +14 -0
  493. package/dist/components/typography/title/types.d.ts +21 -0
  494. package/dist/components/typography/title/types.js +1 -0
  495. package/dist/index.css +6 -0
  496. package/dist/index.d.ts +4 -0
  497. package/dist/index.js +4 -0
  498. package/dist/styles/component.css +154 -0
  499. package/dist/styles/elevation.css +45 -0
  500. package/dist/styles/motion.css +51 -0
  501. package/dist/styles/prose.css +48 -0
  502. package/dist/styles/rounding.css +11 -0
  503. package/dist/styles/theme/dark-hc.css +53 -0
  504. package/dist/styles/theme/dark-mc.css +53 -0
  505. package/dist/styles/theme/dark.css +51 -0
  506. package/dist/styles/theme/light-hc.css +53 -0
  507. package/dist/styles/theme/light-mc.css +53 -0
  508. package/dist/styles/theme/light.css +51 -0
  509. package/dist/styles/typescale.css +63 -0
  510. package/dist/utils/Layer.svelte +217 -0
  511. package/dist/utils/Layer.svelte.d.ts +3 -0
  512. package/dist/utils/Theme.svelte +90 -0
  513. package/dist/utils/icon/Icon.svelte +24 -0
  514. package/dist/utils/icon/Icon.svelte.d.ts +4 -0
  515. package/dist/utils/icon/LoadingIndicator.svelte +39 -0
  516. package/dist/utils/icon/LoadingIndicator.svelte.d.ts +4 -0
  517. package/dist/utils/icon/MaterialSymbolsProvider.svelte +38 -0
  518. package/dist/utils/icon/MaterialSymbolsProvider.svelte.d.ts +8 -0
  519. package/dist/utils/icon/base-icons.d.ts +1 -0
  520. package/dist/utils/icon/base-icons.js +29 -0
  521. package/dist/utils/icon/index.d.ts +6 -0
  522. package/dist/utils/icon/index.js +6 -0
  523. package/dist/utils/icon/theme.d.ts +30 -0
  524. package/dist/utils/icon/theme.js +14 -0
  525. package/dist/utils/icon/types.d.ts +23 -0
  526. package/dist/utils/icon/types.js +1 -0
  527. package/dist/utils/index.d.ts +7 -0
  528. package/dist/utils/index.js +6 -0
  529. package/dist/utils/theme.svelte.d.ts +24 -0
  530. package/dist/utils/theme.svelte.js +156 -0
  531. package/dist/utils/tutorial.d.ts +9 -0
  532. package/dist/utils/tutorial.js +46 -0
  533. package/dist/utils/types.d.ts +18 -0
  534. package/dist/utils/types.js +5 -0
  535. package/dist/utils/ui.d.ts +6 -0
  536. package/dist/utils/ui.js +56 -0
  537. package/package.json +85 -0
@@ -0,0 +1,39 @@
1
+ <!--
2
+ @component
3
+ Cards contain content and actions about a single subject.
4
+
5
+ Material 3 cards come in three types: elevated, filled, and outlined.
6
+ They can be used to display information, provide a way for users to interact with it,
7
+ and serve as an entry point to more detailed information.
8
+
9
+ @see https://m3.material.io/components/cards/overview
10
+ -->
11
+ <script lang="ts">
12
+ import type { CardProps } from './types.js';
13
+ import { card } from './theme.js';
14
+ import clsx from 'clsx';
15
+ import { Layer } from '../../utils/index.js';
16
+
17
+ let {
18
+ children,
19
+ type = 'filled',
20
+ class: className,
21
+ href,
22
+ hoverable = !!href,
23
+ ...restProps
24
+ }: CardProps = $props();
25
+
26
+ const { base } = $derived(card({ type, hoverable }));
27
+ </script>
28
+
29
+ {#if href}
30
+ <a {href} class={base({ class: clsx(className) })} {...restProps}>
31
+ {#if hoverable}<Layer />{/if}
32
+ {@render children?.()}
33
+ </a>
34
+ {:else}
35
+ <div class={base({ class: clsx(className) })} {...restProps}>
36
+ {#if hoverable}<Layer />{/if}
37
+ {@render children?.()}
38
+ </div>
39
+ {/if}
@@ -0,0 +1,13 @@
1
+ import type { CardProps } from './types.js';
2
+ /**
3
+ * Cards contain content and actions about a single subject.
4
+ *
5
+ * Material 3 cards come in three types: elevated, filled, and outlined.
6
+ * They can be used to display information, provide a way for users to interact with it,
7
+ * and serve as an entry point to more detailed information.
8
+ *
9
+ * @see https://m3.material.io/components/cards/overview
10
+ */
11
+ declare const Card: import("svelte").Component<CardProps, {}, "">;
12
+ type Card = ReturnType<typeof Card>;
13
+ export default Card;
@@ -0,0 +1,3 @@
1
+ export * from './theme.js';
2
+ export * from './types.js';
3
+ export { default as Card } from './Card.svelte';
@@ -0,0 +1,6 @@
1
+ // THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
2
+ // re-export TS/JS modules from this folder
3
+ export * from './theme.js';
4
+ export * from './types.js';
5
+ // default exports for components in this folder
6
+ export { default as Card } from './Card.svelte';
@@ -0,0 +1,37 @@
1
+ export declare const card: import("tailwind-variants").TVReturnType<{
2
+ type: {
3
+ elevated: string;
4
+ filled: string;
5
+ outlined: string;
6
+ };
7
+ hoverable: {
8
+ true: string;
9
+ };
10
+ }, {
11
+ base: string;
12
+ icon: string;
13
+ }, undefined, {
14
+ type: {
15
+ elevated: string;
16
+ filled: string;
17
+ outlined: string;
18
+ };
19
+ hoverable: {
20
+ true: string;
21
+ };
22
+ }, {
23
+ base: string;
24
+ icon: string;
25
+ }, import("tailwind-variants").TVReturnType<{
26
+ type: {
27
+ elevated: string;
28
+ filled: string;
29
+ outlined: string;
30
+ };
31
+ hoverable: {
32
+ true: string;
33
+ };
34
+ }, {
35
+ base: string;
36
+ icon: string;
37
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,34 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const card = tv({
3
+ slots: {
4
+ base: 'relative flex flex-col rounded-lg disabled:opacity-[0.38] disabled:bg-sys-color-surface-variant state-layer before:rounded-lg focus:outline-3 focus:outline-md-sys-color-secondary p-4 [transition:box-shadow_var(--md-sys-motion-duration,200ms)_var(--md-sys-motion-timing-function,cubic-bezier(0.34,0.8,0.34,1))]',
5
+ icon: 'size-6 text-[24px] text-md-sys-color-primary'
6
+ },
7
+ variants: {
8
+ type: {
9
+ elevated: 'shadow-elevation-1 bg-md-sys-color-surface-container-low',
10
+ filled: 'bg-md-sys-color-surface-container-high',
11
+ outlined: 'bg-md-sys-color-surface outline-1 outline-md-sys-color-outline-variant'
12
+ },
13
+ hoverable: {
14
+ true: ''
15
+ }
16
+ },
17
+ compoundVariants: [
18
+ {
19
+ type: 'elevated',
20
+ hoverable: true,
21
+ class: 'hover:shadow-elevation-2'
22
+ },
23
+ {
24
+ type: 'filled',
25
+ hoverable: true,
26
+ class: 'hover:shadow-elevation-1'
27
+ },
28
+ {
29
+ type: 'outlined',
30
+ hoverable: true,
31
+ class: 'hover:shadow-elevation-1'
32
+ }
33
+ ]
34
+ });
@@ -0,0 +1,31 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAnchorAttributes, HTMLAttributes } from 'svelte/elements';
3
+ import type { VariantProps } from 'tailwind-variants';
4
+ import type { card } from './theme.js';
5
+ export type CardVariants = VariantProps<typeof card>;
6
+ /**
7
+ * Props for the Card component.
8
+ * Supports both div (default) and anchor (when href is provided) elements.
9
+ */
10
+ export type CardProps = CardVariants & HTMLAttributes<HTMLDivElement> & HTMLAnchorAttributes & {
11
+ /** The content to be rendered inside the card. */
12
+ children: Snippet;
13
+ /**
14
+ * An optional URL that the card should link to.
15
+ * If provided, the card will be rendered as an `<a>` element.
16
+ */
17
+ href?: string;
18
+ /**
19
+ * The visual style of the card.
20
+ * - 'elevated': Cards with a shadow, used for separating content from the background.
21
+ * - 'filled': Cards with a solid background color, providing subtle separation.
22
+ * - 'outlined': Cards with a visual boundary, providing the least amount of separation.
23
+ * @default 'filled'
24
+ */
25
+ type?: CardVariants['type'];
26
+ /**
27
+ * Whether the card should show a state layer on hover.
28
+ * Defaults to true if `href` is provided.
29
+ */
30
+ hoverable?: boolean;
31
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ <!--
2
+ @component
3
+ The core App wrapper that gives default backgrounds and sets up tooltips and icons.
4
+ It manages the Material 3 Dynamic Theme, dark mode, and icon providers.
5
+ -->
6
+ <script lang="ts">
7
+ import { MaterialSymbolsProvider, Theme } from '../../../utils/index.js';
8
+ import { Tooltip } from 'bits-ui';
9
+ import { app } from './theme';
10
+ import type { AppProps } from './types';
11
+ import { ModeWatcher } from 'mode-watcher';
12
+
13
+ let {
14
+ children,
15
+ class: className,
16
+ iconProviderProps = {},
17
+ themeConfig,
18
+ isDark,
19
+ ...restProps
20
+ }: AppProps = $props();
21
+
22
+ const baseCls = $derived(app({ class: [className, isDark ? 'dark' : ''] }));
23
+ </script>
24
+
25
+ <Theme config={themeConfig} {isDark} />
26
+ <MaterialSymbolsProvider {...iconProviderProps} />
27
+ <ModeWatcher />
28
+ <Tooltip.Provider>
29
+ <div class={baseCls} {...restProps}>
30
+ {@render children()}
31
+ </div>
32
+ </Tooltip.Provider>
@@ -0,0 +1,8 @@
1
+ import type { AppProps } from './types';
2
+ /**
3
+ * The core App wrapper that gives default backgrounds and sets up tooltips and icons.
4
+ * It manages the Material 3 Dynamic Theme, dark mode, and icon providers.
5
+ */
6
+ declare const App: import("svelte").Component<AppProps, {}, "">;
7
+ type App = ReturnType<typeof App>;
8
+ export default App;
@@ -0,0 +1,3 @@
1
+ export * from './theme.js';
2
+ export * from './types.js';
3
+ export { default as App } from './App.svelte';
@@ -0,0 +1,6 @@
1
+ // THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
2
+ // re-export TS/JS modules from this folder
3
+ export * from './theme.js';
4
+ export * from './types.js';
5
+ // default exports for components in this folder
6
+ export { default as App } from './App.svelte';
@@ -0,0 +1,3 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ export type AppVariants = VariantProps<typeof app>;
3
+ export declare const app: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-md-sys-color-surface-container text-md-sys-color-on-background min-h-dvh caret-md-sys-color-primary selection:bg-md-sys-color-primary-container selection:text-md-sys-color-on-primary-container relative min-h-dvh pt-[env(safe-area-inset-top)] pr-[env(safe-area-inset-right)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] antialiased", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-md-sys-color-surface-container text-md-sys-color-on-background min-h-dvh caret-md-sys-color-primary selection:bg-md-sys-color-primary-container selection:text-md-sys-color-on-primary-container relative min-h-dvh pt-[env(safe-area-inset-top)] pr-[env(safe-area-inset-right)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] antialiased", unknown, unknown, undefined>>;
@@ -0,0 +1,4 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const app = tv({
3
+ base: 'bg-md-sys-color-surface-container text-md-sys-color-on-background min-h-dvh caret-md-sys-color-primary selection:bg-md-sys-color-primary-container selection:text-md-sys-color-on-primary-container relative min-h-dvh pt-[env(safe-area-inset-top)] pr-[env(safe-area-inset-right)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] antialiased'
4
+ });
@@ -0,0 +1,25 @@
1
+ import type { MaterialSymbolsProviderProps } from '../../../utils/index.js';
2
+ import type { ThemeConfig } from '../../../utils/theme.svelte.js';
3
+ import type { DivAttrs } from '../../../utils/types.js';
4
+ import type { Snippet } from 'svelte';
5
+ export type AppProps = DivAttrs & {
6
+ /** Content for the core app */
7
+ children: Snippet;
8
+ /** Additional classes */
9
+ class?: string;
10
+ /** Props to pass to the material symbols provider */
11
+ iconProviderProps?: Partial<MaterialSymbolsProviderProps>;
12
+ /**
13
+ * Optional CSS generated on the server to prevent FOUC.
14
+ */
15
+ ssrThemeCSS?: string;
16
+ /**
17
+ * Optional theme configuration passed from the server.
18
+ * If provided, the App component will generate the theme CSS automatically.
19
+ */
20
+ themeConfig?: ThemeConfig;
21
+ /**
22
+ * Optional dark mode state passed from the server to prevent flashing.
23
+ */
24
+ isDark?: boolean;
25
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,125 @@
1
+ <!--
2
+ @component
3
+ Bottom sheets are surfaces containing supplementary content that are anchored to the bottom of the screen.
4
+
5
+ They provide access to supplementary content and actions, such as navigation or a menu,
6
+ while keeping the main screen content visible.
7
+
8
+ @see https://m3.material.io/components/bottom-sheets/overview
9
+ -->
10
+ <script lang="ts">
11
+ import type { BottomSheetProps } from './types.js';
12
+ import type { TransitionConfig } from 'svelte/transition';
13
+ import { easeEmphasizedAccel, easeEmphasizedDecel } from '../../../animation/easing.js';
14
+ import { outroClass } from '../../../animation/outroClass.js';
15
+
16
+ let { children, close }: BottomSheetProps = $props();
17
+
18
+ let height = $state(480);
19
+ let container: HTMLDivElement | undefined = $state();
20
+ let isDragging = $state(false);
21
+ let startY = $state(0);
22
+
23
+ const open = (node: HTMLDialogElement) => node.showModal();
24
+
25
+ const heightAnim = (
26
+ node: HTMLDialogElement,
27
+ options: { duration: number; easing: typeof easeEmphasizedDecel }
28
+ ): TransitionConfig => {
29
+ if (node.clientHeight < height) height = node.clientHeight;
30
+ return {
31
+ duration: options.duration,
32
+ easing: options.easing,
33
+ css: (t) => `max-height: ${t * height}px`
34
+ };
35
+ };
36
+
37
+ const moveWheel = (e: WheelEvent) => {
38
+ e.preventDefault();
39
+ height += e.deltaY;
40
+ if (container && container.clientHeight < height) height = container.clientHeight;
41
+ };
42
+
43
+ const moveMouse = (e: { clientY: number }) => {
44
+ if (isDragging) {
45
+ const distance = e.clientY - startY;
46
+ height -= distance;
47
+ startY = e.clientY;
48
+ }
49
+ };
50
+
51
+ $effect(() => {
52
+ if (height < 48) close('low');
53
+ });
54
+ </script>
55
+
56
+ <svelte:window
57
+ onmousemove={moveMouse}
58
+ onmouseup={() => (isDragging = false)}
59
+ ontouchmove={(e) => moveMouse(e.touches[0])}
60
+ ontouchend={() => (isDragging = false)}
61
+ />
62
+
63
+ <dialog
64
+ class="bg-md-sys-color-surface-container-low text-md-sys-color-on-surface m-0 mt-auto w-full max-w-2xl overflow-hidden rounded-t-[28px] border-none p-0"
65
+ style:max-height="{height}px"
66
+ use:open
67
+ use:outroClass
68
+ oncancel={(e) => {
69
+ e.preventDefault();
70
+ close('esc');
71
+ }}
72
+ onmousedown={(e) => {
73
+ if (e.target != e.currentTarget) return;
74
+ close('click');
75
+ }}
76
+ onwheel={moveWheel}
77
+ in:heightAnim={{ easing: easeEmphasizedDecel, duration: 400 }}
78
+ out:heightAnim={{ easing: easeEmphasizedAccel, duration: 300 }}
79
+ >
80
+ <div class="px-4" bind:this={container}>
81
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
82
+ <div
83
+ class="flex h-12 w-full cursor-grab items-center justify-center"
84
+ onmousedown={(e) => {
85
+ e.preventDefault();
86
+ isDragging = true;
87
+ startY = e.clientY;
88
+ }}
89
+ ontouchstart={(e) => {
90
+ isDragging = true;
91
+ startY = e.touches[0].clientY;
92
+ }}
93
+ >
94
+ <div class="bg-md-sys-color-on-surface-variant/40 h-1 w-8 rounded-full"></div>
95
+ </div>
96
+ {@render children()}
97
+ </div>
98
+ </dialog>
99
+
100
+ <style>
101
+ dialog::backdrop {
102
+ background-color: rgba(0, 0, 0, 0.5);
103
+ animation: backdrop 400ms;
104
+ }
105
+ dialog:global(.leaving)::backdrop {
106
+ background-color: transparent;
107
+ animation: backdropReverse 400ms;
108
+ }
109
+ @keyframes backdrop {
110
+ from {
111
+ background-color: transparent;
112
+ }
113
+ to {
114
+ background-color: rgba(0, 0, 0, 0.5);
115
+ }
116
+ }
117
+ @keyframes backdropReverse {
118
+ from {
119
+ background-color: rgba(0, 0, 0, 0.5);
120
+ }
121
+ to {
122
+ background-color: transparent;
123
+ }
124
+ }
125
+ </style>
@@ -0,0 +1,12 @@
1
+ import type { BottomSheetProps } from './types.js';
2
+ /**
3
+ * Bottom sheets are surfaces containing supplementary content that are anchored to the bottom of the screen.
4
+ *
5
+ * They provide access to supplementary content and actions, such as navigation or a menu,
6
+ * while keeping the main screen content visible.
7
+ *
8
+ * @see https://m3.material.io/components/bottom-sheets/overview
9
+ */
10
+ declare const BottomSheet: import("svelte").Component<BottomSheetProps, {}, "">;
11
+ type BottomSheet = ReturnType<typeof BottomSheet>;
12
+ export default BottomSheet;
@@ -0,0 +1,2 @@
1
+ export * from './types.js';
2
+ export { default as BottomSheet } from './BottomSheet.svelte';
@@ -0,0 +1,5 @@
1
+ // THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
2
+ // re-export TS/JS modules from this folder
3
+ export * from './types.js';
4
+ // default exports for components in this folder
5
+ export { default as BottomSheet } from './BottomSheet.svelte';
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte';
2
+ /**
3
+ * Props for the BottomSheet component.
4
+ */
5
+ export interface BottomSheetProps {
6
+ /**
7
+ * The content to be rendered inside the bottom sheet.
8
+ * Typically includes a list of actions or supplementary information.
9
+ */
10
+ children: Snippet;
11
+ /**
12
+ * Callback function to close the bottom sheet.
13
+ * @param reason The reason for closing ('esc' key, 'click' outside, or 'low' drag height).
14
+ */
15
+ close: (reason: 'esc' | 'click' | 'low') => void;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,152 @@
1
+ <!--
2
+ @component
3
+ Context menus appear on right-click and provide actions related to the clicked element.
4
+
5
+ @example
6
+ ```svelte
7
+ <ContextMenu
8
+ items={[
9
+ { label: 'Edit', value: 'edit', iconProps: { name: 'edit' } },
10
+ { separator: true },
11
+ { label: 'Delete', value: 'delete', color: 'error' }
12
+ ]}
13
+ onselect={(value) => console.log(value)}
14
+ >
15
+ <div class="p-10 bg-surface">Right click me</div>
16
+ </ContextMenu>
17
+ ```
18
+
19
+ @see https://m3.material.io/components/menus/guidelines
20
+ -->
21
+ <script lang="ts">
22
+ import { ContextMenu as BitsContextMenu } from 'bits-ui';
23
+ import { contextMenu } from './theme.js';
24
+ import type { ContextMenuProps, ContextMenuDataItem } from './types.js';
25
+ import Icon from '../../../utils/icon/Icon.svelte';
26
+ import Divider from '../divider/Divider.svelte';
27
+ import { enterExit } from '../../../animation/enterExit.js';
28
+ import { easeEmphasizedDecel } from '../../../animation/easing.js';
29
+ import clsx from 'clsx';
30
+
31
+ let {
32
+ items = [],
33
+ selected,
34
+ children,
35
+ onselect,
36
+ itemDataCyPrefix = 'context-menu-item',
37
+ disabled = false
38
+ }: ContextMenuProps = $props();
39
+
40
+ const theme = $derived(contextMenu());
41
+
42
+ const toDataCy = (value?: string) => (value ? value.replace(/[^a-zA-Z0-9-_]+/g, '-') : 'item');
43
+ </script>
44
+
45
+ {#snippet MenuItem(item: ContextMenuDataItem)}
46
+ {#if item.separator}
47
+ <Divider class="my-1" />
48
+ {:else if item.items && item.items.length > 0}
49
+ <BitsContextMenu.Sub>
50
+ <BitsContextMenu.SubTrigger
51
+ class={theme.subTrigger()}
52
+ disabled={item.disabled}
53
+ data-cy={`${itemDataCyPrefix}-${toDataCy(item.value)}`}
54
+ >
55
+ {#if item.iconProps}
56
+ <Icon class={theme.icon()} {...item.iconProps} />
57
+ {/if}
58
+ <div class={theme.itemContent()}>
59
+ <span class={theme.label()}>{item.label}</span>
60
+ {#if item.helper}
61
+ <span class={theme.helper()}>{item.helper}</span>
62
+ {/if}
63
+ </div>
64
+ <Icon name="chevron_right" class={theme.rightSlot()} />
65
+ </BitsContextMenu.SubTrigger>
66
+ <BitsContextMenu.Portal>
67
+ <BitsContextMenu.SubContent forceMount class={theme.content()}>
68
+ {#snippet child({ wrapperProps, props, open })}
69
+ {#if open}
70
+ <div {...wrapperProps} class={wrapperProps.class as any}>
71
+ <div
72
+ {...props}
73
+ class={props.class as any}
74
+ transition:enterExit={{
75
+ duration: 200,
76
+ easing: easeEmphasizedDecel,
77
+ mode: 'scale'
78
+ }}
79
+ >
80
+ {#each item.items as subItem}
81
+ {@render MenuItem(subItem)}
82
+ {/each}
83
+ </div>
84
+ </div>
85
+ {/if}
86
+ {/snippet}
87
+ </BitsContextMenu.SubContent>
88
+ </BitsContextMenu.Portal>
89
+ </BitsContextMenu.Sub>
90
+ {:else}
91
+ {@const isSelected = item.selected || (selected !== undefined && item.value === selected)}
92
+ <BitsContextMenu.Item
93
+ class={theme.item({ selected: isSelected })}
94
+ disabled={item.disabled}
95
+ onSelect={() => {
96
+ if (item.value !== undefined) {
97
+ item.onselect?.(item.value);
98
+ onselect?.(item.value);
99
+ }
100
+ }}
101
+ data-cy={`${itemDataCyPrefix}-${toDataCy(item.value)}`}
102
+ >
103
+ {#if item.iconProps}
104
+ <Icon class={theme.icon()} {...item.iconProps} />
105
+ {/if}
106
+ <div class={theme.itemContent()}>
107
+ <span class={theme.label()}>{item.label}</span>
108
+ {#if item.helper}
109
+ <span class={theme.helper()}>{item.helper}</span>
110
+ {/if}
111
+ </div>
112
+
113
+ {#if isSelected}
114
+ <Icon name="check" class={theme.rightSlot()} />
115
+ {/if}
116
+ </BitsContextMenu.Item>
117
+ {/if}
118
+ {/snippet}
119
+
120
+ <BitsContextMenu.Root>
121
+ <BitsContextMenu.Trigger {disabled}>
122
+ {#snippet child({ props })}
123
+ <div {...props}>
124
+ {@render children()}
125
+ </div>
126
+ {/snippet}
127
+ </BitsContextMenu.Trigger>
128
+
129
+ <BitsContextMenu.Portal>
130
+ <BitsContextMenu.Content forceMount class={theme.content()}>
131
+ {#snippet child({ wrapperProps, props, open })}
132
+ {#if open}
133
+ <div {...wrapperProps} class={wrapperProps.class as any}>
134
+ <div
135
+ {...props}
136
+ class={props.class as any}
137
+ transition:enterExit={{
138
+ duration: 200,
139
+ easing: easeEmphasizedDecel,
140
+ mode: 'scale'
141
+ }}
142
+ >
143
+ {#each items as item}
144
+ {@render MenuItem(item)}
145
+ {/each}
146
+ </div>
147
+ </div>
148
+ {/if}
149
+ {/snippet}
150
+ </BitsContextMenu.Content>
151
+ </BitsContextMenu.Portal>
152
+ </BitsContextMenu.Root>
@@ -0,0 +1,23 @@
1
+ import type { ContextMenuProps } from './types.js';
2
+ /**
3
+ * Context menus appear on right-click and provide actions related to the clicked element.
4
+ *
5
+ * @example
6
+ * ```svelte
7
+ * <ContextMenu
8
+ * items={[
9
+ * { label: 'Edit', value: 'edit', iconProps: { name: 'edit' } },
10
+ * { separator: true },
11
+ * { label: 'Delete', value: 'delete', color: 'error' }
12
+ * ]}
13
+ * onselect={(value) => console.log(value)}
14
+ * >
15
+ * <div class="p-10 bg-surface">Right click me</div>
16
+ * </ContextMenu>
17
+ * ```
18
+ *
19
+ * @see https://m3.material.io/components/menus/guidelines
20
+ */
21
+ declare const ContextMenu: import("svelte").Component<ContextMenuProps, {}, "">;
22
+ type ContextMenu = ReturnType<typeof ContextMenu>;
23
+ export default ContextMenu;
@@ -0,0 +1,3 @@
1
+ export * from './theme.js';
2
+ export * from './types.js';
3
+ export { default as ContextMenu } from './ContextMenu.svelte';
@@ -0,0 +1,6 @@
1
+ // THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
2
+ // re-export TS/JS modules from this folder
3
+ export * from './theme.js';
4
+ export * from './types.js';
5
+ // default exports for components in this folder
6
+ export { default as ContextMenu } from './ContextMenu.svelte';