@noxlovette/material 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +1 -0
  2. package/dist/actions/index.d.ts +1 -0
  3. package/dist/actions/index.js +1 -0
  4. package/dist/actions/rovingFocusGroup.d.ts +20 -0
  5. package/dist/actions/rovingFocusGroup.js +82 -0
  6. package/dist/components/badge/theme.d.ts +8 -8
  7. package/dist/components/buttons/button-group/ButtonGroup.stories.svelte +83 -0
  8. package/dist/components/buttons/button-group/ButtonGroup.stories.svelte.d.ts +19 -0
  9. package/dist/components/buttons/button-group/ButtonGroup.svelte +10 -29
  10. package/dist/components/buttons/button-group/ButtonGroup.svelte.d.ts +7 -3
  11. package/dist/components/buttons/button-group/index.d.ts +0 -1
  12. package/dist/components/buttons/button-group/index.js +3 -1
  13. package/dist/components/buttons/button-group/theme.d.ts +17 -103
  14. package/dist/components/buttons/button-group/theme.js +7 -35
  15. package/dist/components/buttons/button-group/types.d.ts +9 -20
  16. package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte +118 -0
  17. package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte.d.ts +19 -0
  18. package/dist/components/buttons/connected/ConnectedButtonGroup.svelte +52 -0
  19. package/dist/components/buttons/connected/ConnectedButtonGroup.svelte.d.ts +12 -0
  20. package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte +37 -0
  21. package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte.d.ts +9 -0
  22. package/dist/components/buttons/connected/index.d.ts +3 -1
  23. package/dist/components/buttons/connected/index.js +3 -1
  24. package/dist/components/buttons/connected/theme.d.ts +125 -0
  25. package/dist/components/buttons/connected/theme.js +38 -0
  26. package/dist/components/buttons/connected/types.d.ts +32 -13
  27. package/dist/components/buttons/index.d.ts +1 -0
  28. package/dist/components/buttons/index.js +1 -0
  29. package/dist/components/buttons/split-button/SplitButton.stories.svelte +103 -0
  30. package/dist/components/buttons/split-button/SplitButton.stories.svelte.d.ts +19 -0
  31. package/dist/components/buttons/split-button/SplitButton.svelte +104 -0
  32. package/dist/components/buttons/split-button/SplitButton.svelte.d.ts +19 -0
  33. package/dist/components/buttons/split-button/index.d.ts +3 -0
  34. package/dist/components/{containers/panes → buttons/split-button}/index.js +1 -3
  35. package/dist/components/buttons/split-button/theme.d.ts +35 -0
  36. package/dist/components/buttons/split-button/theme.js +26 -0
  37. package/dist/components/buttons/split-button/types.d.ts +33 -0
  38. package/dist/components/buttons/theme.d.ts +142 -142
  39. package/dist/components/buttons/theme.js +2 -2
  40. package/dist/components/cards/Card.stories.svelte +58 -0
  41. package/dist/components/cards/Card.stories.svelte.d.ts +2 -17
  42. package/dist/components/cards/Card.svelte +76 -8
  43. package/dist/components/cards/theme.d.ts +26 -14
  44. package/dist/components/cards/theme.js +5 -1
  45. package/dist/components/cards/types.d.ts +39 -1
  46. package/dist/components/chips/Chip.stories.svelte +64 -0
  47. package/dist/components/chips/Chip.stories.svelte.d.ts +19 -0
  48. package/dist/components/chips/Chip.svelte +115 -0
  49. package/dist/components/chips/Chip.svelte.d.ts +14 -0
  50. package/dist/components/chips/index.d.ts +3 -0
  51. package/dist/components/chips/index.js +6 -0
  52. package/dist/components/chips/theme.d.ts +78 -0
  53. package/dist/components/chips/theme.js +72 -0
  54. package/dist/components/chips/types.d.ts +43 -0
  55. package/dist/components/containers/action-rail/ActionRail.stories.svelte +36 -0
  56. package/dist/components/containers/{panes/SinglePane.stories.svelte.d.ts → action-rail/ActionRail.stories.svelte.d.ts} +4 -4
  57. package/dist/components/containers/action-rail/ActionRail.svelte +35 -0
  58. package/dist/components/containers/action-rail/ActionRail.svelte.d.ts +17 -0
  59. package/dist/components/containers/action-rail/index.d.ts +3 -0
  60. package/dist/components/containers/action-rail/index.js +6 -0
  61. package/dist/components/containers/action-rail/theme.d.ts +45 -0
  62. package/dist/components/containers/action-rail/theme.js +26 -0
  63. package/dist/components/containers/action-rail/types.d.ts +20 -0
  64. package/dist/components/containers/action-rail/types.js +1 -0
  65. package/dist/components/containers/app/App.svelte +6 -6
  66. package/dist/components/containers/app/App.svelte.d.ts +4 -2
  67. package/dist/components/containers/app/theme.d.ts +1 -1
  68. package/dist/components/containers/app/types.d.ts +9 -4
  69. package/dist/components/containers/bottom-sheet/BottomSheet.stories.svelte +1 -1
  70. package/dist/components/containers/bottom-sheet/BottomSheet.svelte +1 -1
  71. package/dist/components/containers/context-menu/ContextMenu.stories.svelte +44 -0
  72. package/dist/components/containers/context-menu/ContextMenu.svelte +21 -5
  73. package/dist/components/containers/context-menu/ContextMenu.svelte.d.ts +11 -0
  74. package/dist/components/containers/context-menu/theme.d.ts +20 -2
  75. package/dist/components/containers/context-menu/theme.js +31 -8
  76. package/dist/components/containers/context-menu/types.d.ts +14 -2
  77. package/dist/components/containers/dialogue/theme.d.ts +20 -20
  78. package/dist/components/containers/divider/theme.d.ts +17 -17
  79. package/dist/components/containers/index.d.ts +2 -3
  80. package/dist/components/containers/index.js +2 -3
  81. package/dist/components/containers/link-preview/theme.d.ts +11 -11
  82. package/dist/components/containers/list/ListItem.stories.svelte +100 -0
  83. package/dist/components/containers/list/ListItem.stories.svelte.d.ts +19 -0
  84. package/dist/components/containers/list/theme.d.ts +14 -14
  85. package/dist/components/containers/list/theme.js +3 -3
  86. package/dist/components/containers/menu/Menu.stories.svelte +105 -3
  87. package/dist/components/containers/menu/Menu.stories.svelte.d.ts +2 -17
  88. package/dist/components/containers/menu/Menu.svelte +9 -7
  89. package/dist/components/containers/menu/MenuCheckboxItem.svelte +55 -0
  90. package/dist/components/containers/menu/MenuCheckboxItem.svelte.d.ts +25 -0
  91. package/dist/components/containers/menu/MenuGroup.svelte +43 -0
  92. package/dist/components/containers/menu/MenuGroup.svelte.d.ts +28 -0
  93. package/dist/components/containers/menu/MenuRadioGroup.svelte +39 -0
  94. package/dist/components/containers/menu/MenuRadioGroup.svelte.d.ts +27 -0
  95. package/dist/components/containers/menu/MenuRadioItem.svelte +49 -0
  96. package/dist/components/containers/menu/MenuRadioItem.svelte.d.ts +17 -0
  97. package/dist/components/containers/menu/MenuSub.svelte +91 -0
  98. package/dist/components/containers/menu/MenuSub.svelte.d.ts +29 -0
  99. package/dist/components/containers/menu/index.d.ts +7 -0
  100. package/dist/components/containers/menu/index.js +8 -0
  101. package/dist/components/containers/menu/menu-item/MenuItem.svelte +71 -0
  102. package/dist/components/containers/{menu-item → menu/menu-item}/MenuItem.svelte.d.ts +2 -1
  103. package/dist/components/containers/{menu-item → menu/menu-item}/types.d.ts +5 -1
  104. package/dist/components/containers/menu/menu-item/types.js +1 -0
  105. package/dist/components/containers/menu/theme.d.ts +68 -0
  106. package/dist/components/containers/menu/theme.js +36 -0
  107. package/dist/components/containers/menu/types.d.ts +113 -2
  108. package/dist/components/containers/pane/DraggablePane.stories.svelte +199 -0
  109. package/dist/components/containers/pane/DraggablePane.stories.svelte.d.ts +4 -0
  110. package/dist/components/containers/pane/DraggablePane.svelte +533 -0
  111. package/dist/components/containers/pane/DraggablePane.svelte.d.ts +29 -0
  112. package/dist/components/containers/pane/Pane.stories.svelte +104 -0
  113. package/dist/components/containers/pane/Pane.stories.svelte.d.ts +19 -0
  114. package/dist/components/containers/pane/Pane.svelte +78 -0
  115. package/dist/components/containers/pane/Pane.svelte.d.ts +18 -0
  116. package/dist/components/containers/pane/PaneGrid.stories.svelte +134 -0
  117. package/dist/components/containers/pane/PaneGrid.stories.svelte.d.ts +19 -0
  118. package/dist/components/containers/pane/PaneGrid.svelte +43 -0
  119. package/dist/components/containers/pane/PaneGrid.svelte.d.ts +13 -0
  120. package/dist/components/containers/pane/PaneHandle.svelte +90 -0
  121. package/dist/components/containers/pane/PaneHandle.svelte.d.ts +12 -0
  122. package/dist/components/containers/pane/dragStore.svelte.d.ts +16 -0
  123. package/dist/components/containers/pane/dragStore.svelte.js +38 -0
  124. package/dist/components/containers/pane/index.d.ts +8 -0
  125. package/dist/components/containers/pane/index.js +11 -0
  126. package/dist/components/containers/pane/resizeStore.svelte.d.ts +10 -0
  127. package/dist/components/containers/pane/resizeStore.svelte.js +30 -0
  128. package/dist/components/containers/pane/theme.d.ts +571 -0
  129. package/dist/components/containers/pane/theme.js +211 -0
  130. package/dist/components/containers/pane/types.d.ts +249 -0
  131. package/dist/components/containers/pane/types.js +1 -0
  132. package/dist/components/containers/popover/Popover.stories.svelte +4 -4
  133. package/dist/components/containers/popover/Popover.svelte +3 -1
  134. package/dist/components/containers/popover/theme.d.ts +20 -20
  135. package/dist/components/containers/popover/types.d.ts +6 -2
  136. package/dist/components/containers/scroll-area/theme.d.ts +2 -2
  137. package/dist/components/containers/side-sheet/SideSheet.stories.svelte +16 -24
  138. package/dist/components/containers/side-sheet/SideSheet.svelte +73 -7
  139. package/dist/components/containers/side-sheet/SideSheet.svelte.d.ts +5 -0
  140. package/dist/components/containers/stack/theme.d.ts +44 -44
  141. package/dist/components/date/DateField.stories.svelte +57 -0
  142. package/dist/components/{containers/panes/SplitPane.stories.svelte.d.ts → date/DateField.stories.svelte.d.ts} +4 -4
  143. package/dist/components/date/DateField.svelte +11 -2
  144. package/dist/components/date/DateRangeField.stories.svelte +53 -0
  145. package/dist/components/{containers/panes/SupportingPane.stories.svelte.d.ts → date/DateRangeField.stories.svelte.d.ts} +4 -4
  146. package/dist/components/date/DateRangeField.svelte +2 -1
  147. package/dist/components/date/theme.d.ts +73 -4
  148. package/dist/components/date/theme.js +95 -26
  149. package/dist/components/date/types.d.ts +5 -0
  150. package/dist/components/forms/checkbox/Checkbox.svelte +7 -9
  151. package/dist/components/forms/checkbox/theme.d.ts +8 -8
  152. package/dist/components/forms/checkbox/theme.js +31 -9
  153. package/dist/components/forms/command/Command.stories.svelte +86 -0
  154. package/dist/components/forms/command/Command.stories.svelte.d.ts +19 -0
  155. package/dist/components/forms/command/theme.d.ts +35 -35
  156. package/dist/components/forms/command/theme.js +4 -4
  157. package/dist/components/forms/pin/theme.d.ts +2 -2
  158. package/dist/components/forms/radio-group/theme.d.ts +2 -2
  159. package/dist/components/forms/search/theme.d.ts +8 -8
  160. package/dist/components/forms/select/Select.svelte +3 -2
  161. package/dist/components/forms/select/theme.d.ts +26 -2
  162. package/dist/components/forms/select/theme.js +56 -22
  163. package/dist/components/forms/slider/theme.d.ts +20 -20
  164. package/dist/components/forms/switch/theme.d.ts +2 -2
  165. package/dist/components/forms/textfield/Textfield.stories.svelte +22 -0
  166. package/dist/components/forms/textfield/Textfield.svelte +10 -1
  167. package/dist/components/forms/textfield/theme.d.ts +44 -2
  168. package/dist/components/forms/textfield/theme.js +56 -16
  169. package/dist/components/forms/toggle-group/ToggleGroup.svelte +2 -2
  170. package/dist/components/forms/toggle-group/ToggleGroup.svelte.d.ts +2 -2
  171. package/dist/components/forms/toggle-group/ToggleGroupItem.svelte +1 -1
  172. package/dist/components/forms/toggle-group/ToggleGroupItem.svelte.d.ts +1 -1
  173. package/dist/components/forms/toggle-group/theme.d.ts +16 -16
  174. package/dist/components/forms/toggle-group/types.d.ts +2 -2
  175. package/dist/components/forms/tooltip/Tooltip.stories.svelte +90 -0
  176. package/dist/components/forms/tooltip/Tooltip.stories.svelte.d.ts +19 -0
  177. package/dist/components/forms/tooltip/Tooltip.svelte +5 -4
  178. package/dist/components/forms/tooltip/theme.d.ts +5 -2
  179. package/dist/components/forms/tooltip/theme.js +6 -5
  180. package/dist/components/index.d.ts +1 -0
  181. package/dist/components/index.js +1 -0
  182. package/dist/components/misc/Avatar.stories.svelte +63 -0
  183. package/dist/components/misc/Avatar.stories.svelte.d.ts +19 -0
  184. package/dist/components/misc/Avatar.svelte +35 -10
  185. package/dist/components/misc/DicebearAvatarBuilder.d.ts +59 -0
  186. package/dist/components/misc/DicebearAvatarBuilder.js +115 -0
  187. package/dist/components/misc/ThemeSettings.svelte +1 -1
  188. package/dist/components/misc/ThemeSwitcher.svelte +2 -2
  189. package/dist/components/misc/dicebearStyles.d.ts +21 -0
  190. package/dist/components/misc/dicebearStyles.js +169 -0
  191. package/dist/components/misc/index.d.ts +3 -0
  192. package/dist/components/misc/index.js +3 -0
  193. package/dist/components/misc/materialAvatarPalette.d.ts +6 -0
  194. package/dist/components/misc/materialAvatarPalette.js +44 -0
  195. package/dist/components/misc/theme.d.ts +20 -2
  196. package/dist/components/misc/theme.js +9 -3
  197. package/dist/components/misc/types.d.ts +20 -2
  198. package/dist/components/nav/appbar/AppBar.stories.svelte +1 -1
  199. package/dist/components/nav/appbar/AppBar.svelte +46 -15
  200. package/dist/components/nav/appbar/AppBar.svelte.d.ts +5 -0
  201. package/dist/components/nav/appbar/theme.d.ts +20 -14
  202. package/dist/components/nav/appbar/theme.js +11 -7
  203. package/dist/components/nav/appbar/types.d.ts +3 -1
  204. package/dist/components/nav/breadcrumb/Breadcrumb.stories.svelte +50 -0
  205. package/dist/components/nav/breadcrumb/Breadcrumb.stories.svelte.d.ts +19 -0
  206. package/dist/components/nav/breadcrumb/Breadcrumb.svelte +46 -0
  207. package/dist/components/nav/breadcrumb/Breadcrumb.svelte.d.ts +13 -0
  208. package/dist/components/nav/breadcrumb/index.d.ts +3 -0
  209. package/dist/components/nav/breadcrumb/index.js +6 -0
  210. package/dist/components/nav/breadcrumb/theme.d.ts +84 -0
  211. package/dist/components/nav/breadcrumb/theme.js +35 -0
  212. package/dist/components/nav/breadcrumb/types.d.ts +14 -0
  213. package/dist/components/nav/breadcrumb/types.js +1 -0
  214. package/dist/components/nav/index.d.ts +1 -0
  215. package/dist/components/nav/index.js +1 -0
  216. package/dist/components/nav/navbar/theme.d.ts +19 -19
  217. package/dist/components/nav/rail/Rail.stories.svelte +1 -5
  218. package/dist/components/nav/rail/Rail.svelte +3 -25
  219. package/dist/components/nav/rail/theme.d.ts +4 -4
  220. package/dist/components/nav/rail/types.d.ts +0 -5
  221. package/dist/components/nav/tabs/TabHolder.svelte +2 -1
  222. package/dist/components/nav/tabs/theme.d.ts +21 -21
  223. package/dist/components/nav/tabs/theme.js +6 -0
  224. package/dist/components/nav/tabs/types.d.ts +2 -2
  225. package/dist/components/pill/theme.d.ts +35 -35
  226. package/dist/components/snackbar/theme.d.ts +8 -8
  227. package/dist/components/table/Table.stories.svelte +267 -0
  228. package/dist/components/table/Table.stories.svelte.d.ts +19 -0
  229. package/dist/components/table/Table.svelte +1 -1
  230. package/dist/components/table/TableBody.svelte +16 -3
  231. package/dist/components/table/TableBody.svelte.d.ts +5 -1
  232. package/dist/components/table/TableRow.svelte +1 -1
  233. package/dist/components/table/theme.d.ts +2 -2
  234. package/dist/components/table/theme.js +2 -2
  235. package/dist/components/table/types.d.ts +7 -0
  236. package/dist/components/time/theme.d.ts +29 -29
  237. package/dist/components/time/theme.js +2 -2
  238. package/dist/components/toolbar/Toolbar.stories.svelte +71 -0
  239. package/dist/components/toolbar/Toolbar.stories.svelte.d.ts +19 -0
  240. package/dist/components/toolbar/Toolbar.svelte +19 -3
  241. package/dist/components/toolbar/Toolbar.svelte.d.ts +8 -2
  242. package/dist/components/toolbar/ToolbarButton.svelte +28 -4
  243. package/dist/components/toolbar/ToolbarDivider.svelte +4 -3
  244. package/dist/components/toolbar/ToolbarGroup.svelte +7 -2
  245. package/dist/components/toolbar/ToolbarGroupItem.svelte +29 -4
  246. package/dist/components/toolbar/ToolbarSection.svelte +35 -0
  247. package/dist/components/toolbar/ToolbarSection.svelte.d.ts +9 -0
  248. package/dist/components/toolbar/ToolbarSpacer.svelte +18 -0
  249. package/dist/components/toolbar/ToolbarSpacer.svelte.d.ts +9 -0
  250. package/dist/components/toolbar/index.d.ts +2 -0
  251. package/dist/components/toolbar/index.js +2 -0
  252. package/dist/components/toolbar/theme.d.ts +36 -21
  253. package/dist/components/toolbar/theme.js +27 -11
  254. package/dist/components/toolbar/types.d.ts +37 -4
  255. package/dist/components/typography/body/theme.d.ts +14 -14
  256. package/dist/components/typography/display/theme.d.ts +14 -14
  257. package/dist/components/typography/headline/theme.d.ts +14 -14
  258. package/dist/components/typography/kbd/Kbd.stories.svelte +41 -0
  259. package/dist/components/typography/kbd/Kbd.stories.svelte.d.ts +19 -0
  260. package/dist/components/typography/kbd/theme.d.ts +9 -9
  261. package/dist/components/typography/kbd/theme.js +2 -2
  262. package/dist/components/typography/label/theme.d.ts +14 -14
  263. package/dist/components/typography/title/theme.d.ts +14 -14
  264. package/dist/styles/component.css +126 -4
  265. package/dist/styles/motion.css +6 -3
  266. package/dist/utils/Layer.svelte +7 -3
  267. package/dist/utils/Theme.svelte +20 -20
  268. package/dist/utils/ThemeScript.svelte +1 -1
  269. package/dist/utils/icon/theme.d.ts +14 -14
  270. package/package.json +38 -37
  271. package/bin/install-skill.js +0 -29
  272. package/dist/components/buttons/button-group/ButtonGroupItem.svelte +0 -41
  273. package/dist/components/buttons/button-group/ButtonGroupItem.svelte.d.ts +0 -8
  274. package/dist/components/buttons/connected/ConnectedButtons.svelte +0 -14
  275. package/dist/components/buttons/connected/ConnectedButtons.svelte.d.ts +0 -8
  276. package/dist/components/containers/menu-item/MenuItem.svelte +0 -74
  277. package/dist/components/containers/merger/InputMerger.svelte +0 -29
  278. package/dist/components/containers/merger/InputMerger.svelte.d.ts +0 -14
  279. package/dist/components/containers/merger/index.d.ts +0 -1
  280. package/dist/components/containers/merger/index.js +0 -3
  281. package/dist/components/containers/panes/SinglePane.stories.svelte +0 -67
  282. package/dist/components/containers/panes/SinglePane.svelte +0 -32
  283. package/dist/components/containers/panes/SinglePane.svelte.d.ts +0 -5
  284. package/dist/components/containers/panes/SplitPane.stories.svelte +0 -124
  285. package/dist/components/containers/panes/SplitPane.svelte +0 -144
  286. package/dist/components/containers/panes/SplitPane.svelte.d.ts +0 -8
  287. package/dist/components/containers/panes/SupportingPane.stories.svelte +0 -113
  288. package/dist/components/containers/panes/SupportingPane.svelte +0 -175
  289. package/dist/components/containers/panes/SupportingPane.svelte.d.ts +0 -9
  290. package/dist/components/containers/panes/index.d.ts +0 -5
  291. package/dist/components/containers/panes/theme.d.ts +0 -490
  292. package/dist/components/containers/panes/theme.js +0 -185
  293. package/dist/components/containers/panes/types.d.ts +0 -108
  294. package/dist/components/nav/rail/RailNavContext.svelte +0 -14
  295. package/dist/components/nav/rail/RailNavContext.svelte.d.ts +0 -8
  296. /package/dist/components/{containers/menu-item → buttons/split-button}/types.js +0 -0
  297. /package/dist/components/{containers/panes → chips}/types.js +0 -0
  298. /package/dist/components/containers/{menu-item → menu/menu-item}/index.d.ts +0 -0
  299. /package/dist/components/containers/{menu-item → menu/menu-item}/index.js +0 -0
@@ -13,5 +13,5 @@ Add this to your root +layout.svelte (or any layout that wraps the whole app):
13
13
  </script>
14
14
 
15
15
  <svelte:head>
16
- {@html `<script>${THEME_INIT_SCRIPT}</script>`}
16
+ {@html '<' + 'script>' + THEME_INIT_SCRIPT + '</' + 'script>'}
17
17
  </svelte:head>
@@ -2,29 +2,29 @@ import { type VariantProps } from 'tailwind-variants';
2
2
  export type LoadingIndicatorVariants = VariantProps<typeof loadingIndicator>;
3
3
  export declare const loadingIndicator: import("tailwind-variants").TVReturnType<{
4
4
  center: {
5
- true: string;
6
- false: string;
5
+ true: "mx-auto";
6
+ false: "";
7
7
  };
8
8
  container: {
9
- true: string;
10
- false: string;
9
+ true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
10
+ false: "text-md-sys-color-primary";
11
11
  };
12
12
  }, undefined, "rounded-full", {
13
13
  center: {
14
- true: string;
15
- false: string;
14
+ true: "mx-auto";
15
+ false: "";
16
16
  };
17
17
  container: {
18
- true: string;
19
- false: string;
18
+ true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
19
+ false: "text-md-sys-color-primary";
20
20
  };
21
- }, undefined, import("tailwind-variants").TVReturnType<{
21
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
22
22
  center: {
23
- true: string;
24
- false: string;
23
+ true: "mx-auto";
24
+ false: "";
25
25
  };
26
26
  container: {
27
- true: string;
28
- false: string;
27
+ true: "text-md-sys-color-on-primary-container bg-md-sys-color-primary-container";
28
+ false: "text-md-sys-color-primary";
29
29
  };
30
- }, undefined, "rounded-full", unknown, unknown, undefined>>;
30
+ }, undefined>>;
package/package.json CHANGED
@@ -1,23 +1,22 @@
1
1
  {
2
2
  "name": "@noxlovette/material",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
7
- "url": "git+https://github.com/noxlovette/material.git"
7
+ "url": "git+https://codeberg.org/noxlovette/material.git"
8
8
  },
9
9
  "scripts": {
10
- "build": "svelte-package && bun scripts/copy-skill.ts",
10
+ "build": "svelte-package",
11
+ "watch": "svelte-package --watch",
11
12
  "prepublishOnly": "bun run build",
12
13
  "check": "svelte-kit sync && svelte-check",
13
14
  "test": "vitest run",
14
15
  "format": "prettier --write .",
15
16
  "dev": "vite dev",
16
17
  "storybook": "storybook dev -p 6006",
17
- "build-storybook": "storybook build"
18
- },
19
- "bin": {
20
- "material-claude-skill": "./bin/install-skill.js"
18
+ "build-storybook": "storybook build",
19
+ "index": "bun run scripts/generate-components-index.ts"
21
20
  },
22
21
  "files": [
23
22
  "dist",
@@ -48,51 +47,53 @@
48
47
  "devDependencies": {
49
48
  "@eslint/compat": "^2.1.0",
50
49
  "@eslint/js": "^10.0.1",
51
- "@storybook/addon-a11y": "10.5.2",
52
- "@storybook/addon-docs": "10.5.2",
50
+ "@storybook/addon-a11y": "10.5.10",
51
+ "@storybook/addon-docs": "10.5.10",
53
52
  "@storybook/addon-svelte-csf": "5.1.2",
54
- "@storybook/svelte-vite": "10.5.2",
53
+ "@storybook/svelte-vite": "10.5.10",
55
54
  "@sveltejs/adapter-static": "^3.0.10",
56
- "@sveltejs/kit": "^2.69.3",
55
+ "@sveltejs/kit": "^2.70.3",
57
56
  "@sveltejs/package": "^2.5.8",
58
- "@sveltejs/vite-plugin-svelte": "6.2.4",
59
- "@tailwindcss/cli": "^4.3.2",
57
+ "@sveltejs/vite-plugin-svelte": "7.3.0",
58
+ "@tailwindcss/cli": "^4.3.3",
60
59
  "@tailwindcss/typography": "^0.5.20",
61
- "@tailwindcss/vite": "^4.3.2",
62
- "@types/node": "^25.9.5",
63
- "eslint": "^10.7.0",
60
+ "@tailwindcss/vite": "^4.3.3",
61
+ "@types/node": "^26.4.0",
62
+ "eslint": "^10.9.1",
64
63
  "eslint-config-prettier": "^10.1.8",
65
- "eslint-plugin-svelte": "^3.20.0",
66
- "globals": "^17.7.0",
67
- "lefthook": "^2.1.10",
68
- "prettier": "^3.9.5",
64
+ "eslint-plugin-svelte": "^3.23.0",
65
+ "globals": "^17.11.0",
66
+ "lefthook": "^2.1.12",
67
+ "prettier": "^3.9.6",
69
68
  "prettier-plugin-organize-imports": "^4.3.0",
70
69
  "prettier-plugin-svelte": "^4.1.1",
71
- "prettier-plugin-tailwindcss": "^0.8.0",
72
- "publint": "^0.3.21",
73
- "shiki": "^4.3.1",
74
- "storybook": "10.5.2",
75
- "svelte": "^5.56.5",
76
- "svelte-check": "^4.7.2",
70
+ "prettier-plugin-tailwindcss": "^0.8.1",
71
+ "publint": "^0.3.24",
72
+ "shiki": "^4.4.3",
73
+ "storybook": "10.5.10",
74
+ "svelte": "^5.57.0",
75
+ "svelte-check": "^4.7.6",
77
76
  "sveltekit-superforms": "^2.30.2",
78
77
  "tailwind-scrollbar": "^4.0.2",
79
- "tailwindcss": "^4.3.2",
80
- "typescript": "^6.0.3",
81
- "typescript-eslint": "^8.64.0",
82
- "vite": "7.3.6",
83
- "vite-plugin-devtools-json": "^1.0.0",
84
- "vitest": "^4.1.10",
85
- "zod": "^4.4.3"
78
+ "tailwindcss": "^4.3.3",
79
+ "typescript": "6",
80
+ "typescript-eslint": "^8.69.0",
81
+ "vite": "8.2.2",
82
+ "vite-plugin-devtools-json": "^1.1.0",
83
+ "vitest": "^4.1.11",
84
+ "zod": "^4.5.4"
86
85
  },
87
86
  "dependencies": {
87
+ "@dicebear/core": "^10.7.0",
88
+ "@dicebear/styles": "^10.6.0",
88
89
  "@floating-ui/dom": "^1.8.0",
89
- "@internationalized/date": "^3.12.2",
90
+ "@internationalized/date": "^3.12.3",
90
91
  "@ktibow/material-color-utilities-nightly": "^0.4.1772748028000",
91
- "bits-ui": "^2.18.1",
92
+ "bits-ui": "^2.19.0",
92
93
  "clsx": "^2.1.1",
93
94
  "mode-watcher": "^1.1.0",
94
- "nanoid": "^5.1.16",
95
+ "nanoid": "^6.0.1",
95
96
  "tailwind-merge": "^3.6.0",
96
- "tailwind-variants": "^3.2.2"
97
+ "tailwind-variants": "^3.3.1"
97
98
  }
98
99
  }
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env node
2
- import { cpSync, existsSync, mkdirSync } from 'node:fs';
3
- import { dirname, join } from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
-
6
- const __dirname = dirname(fileURLToPath(import.meta.url));
7
- const source = join(__dirname, '..', 'claude-skill', 'material-design');
8
- const destDir = join(process.cwd(), '.claude', 'skills');
9
- const dest = join(destDir, 'material-design');
10
- const force = process.argv.includes('--force');
11
-
12
- if (!existsSync(source)) {
13
- console.error(
14
- 'Could not find the bundled material-design skill. Reinstall @noxlovette/material and try again.'
15
- );
16
- process.exit(1);
17
- }
18
-
19
- if (existsSync(dest) && !force) {
20
- console.error(
21
- `.claude/skills/material-design already exists. Re-run with --force to overwrite it.`
22
- );
23
- process.exit(1);
24
- }
25
-
26
- mkdirSync(destDir, { recursive: true });
27
- cpSync(source, dest, { recursive: true, force: true });
28
-
29
- console.log(`Installed the material-design Claude Code skill to .claude/skills/material-design`);
@@ -1,41 +0,0 @@
1
- <!--
2
- @component
3
- A single button within a ButtonGroup.
4
- Displays a leading check icon when selected, per M3 spec.
5
- -->
6
- <script lang="ts">
7
- import { ToggleGroup } from 'bits-ui';
8
- import clsx from 'clsx';
9
- import { getContext } from 'svelte';
10
- import { Icon, Layer } from '../../../utils/index.js';
11
- import { buttonGroupItem } from './theme.js';
12
- import type { ButtonGroupItemProps } from './types.js';
13
-
14
- let {
15
- value,
16
- label,
17
- iconProps,
18
- disabled = false,
19
- class: className
20
- }: ButtonGroupItemProps = $props();
21
-
22
- const buttonGroupCtx = getContext<{ orientation: 'horizontal' | 'vertical' } | undefined>(
23
- 'buttonGroup'
24
- );
25
- const orientation = $derived(buttonGroupCtx?.orientation ?? 'horizontal');
26
- const { base, checkIcon, icon } = $derived(buttonGroupItem({ orientation }));
27
- </script>
28
-
29
- <ToggleGroup.Item {value} {disabled} class={base({ class: clsx(className) })}>
30
- {#snippet children({ pressed })}
31
- {#if pressed}
32
- <Icon name="check" class={checkIcon()} />
33
- {:else if iconProps}
34
- <Icon {...iconProps} class={icon()} />
35
- {/if}
36
- {#if label}
37
- <span>{label}</span>
38
- {/if}
39
- <Layer />
40
- {/snippet}
41
- </ToggleGroup.Item>
@@ -1,8 +0,0 @@
1
- import type { ButtonGroupItemProps } from './types.js';
2
- /**
3
- * A single button within a ButtonGroup.
4
- * Displays a leading check icon when selected, per M3 spec.
5
- */
6
- declare const ButtonGroupItem: import("svelte").Component<ButtonGroupItemProps, {}, "">;
7
- type ButtonGroupItem = ReturnType<typeof ButtonGroupItem>;
8
- export default ButtonGroupItem;
@@ -1,14 +0,0 @@
1
- <!--
2
- @component
3
- A container for grouping buttons with shared borders and rounding.
4
- Typically used for segmented controls or closely related actions.
5
- -->
6
- <script lang="ts">
7
- import type { ConnectedButtonsProps } from './types.js';
8
-
9
- let { children, ...rest }: ConnectedButtonsProps = $props();
10
- </script>
11
-
12
- <div class="grid auto-cols-fr grid-flow-col gap-0.5 overflow-hidden rounded-full" {...rest}>
13
- {@render children()}
14
- </div>
@@ -1,8 +0,0 @@
1
- import type { ConnectedButtonsProps } from './types.js';
2
- /**
3
- * A container for grouping buttons with shared borders and rounding.
4
- * Typically used for segmented controls or closely related actions.
5
- */
6
- declare const ConnectedButtons: import("svelte").Component<ConnectedButtonsProps, {}, "">;
7
- type ConnectedButtons = ReturnType<typeof ConnectedButtons>;
8
- export default ConnectedButtons;
@@ -1,74 +0,0 @@
1
- <!--
2
- @component
3
- A single interactive row inside a `Menu`.
4
-
5
- `MenuItem` is the leaf node of the menu system. It wraps bits-ui's
6
- `DropdownMenu.Item` so each row automatically gets keyboard navigation,
7
- focus management, and the ARIA `menuitem` role.
8
-
9
- Pass `onclick` (or `onSelect`) for the action; use `iconProps` for a
10
- leading icon and `helper` for a supporting line below the label.
11
-
12
- Contrast with `Menu`, which is just the shell (open state + floating panel),
13
- and `ContextMenu`, which owns its own item list and is right-click triggered.
14
-
15
- @see https://m3.material.io/components/menus/guidelines
16
- -->
17
- <script lang="ts">
18
- import type { MenuItemProps } from './types.js';
19
- import Icon from '../../../utils/icon/Icon.svelte';
20
- import Layer from '../../../utils/Layer.svelte';
21
- import { DropdownMenu } from 'bits-ui';
22
- import { tv } from 'tailwind-variants';
23
-
24
- let {
25
- iconProps,
26
- disabled = false,
27
- onclick,
28
- onSelect,
29
- selected,
30
- helper,
31
- children,
32
- ...restProps
33
- }: MenuItemProps & Record<string, any> = $props();
34
-
35
- // bits-ui fires onSelect at the Item level; avoid wiring onclick to the
36
- // native button as well or it would fire twice on every click.
37
- const handleSelect = $derived(onSelect ?? (onclick ? () => onclick() : undefined));
38
-
39
- const itemClass = $derived(
40
- tv({
41
- base: 'relative flex w-full cursor-pointer items-start gap-3 border-none bg-transparent px-4 py-3 text-left md-sys-typescale-body-large whitespace-nowrap text-md-sys-color-on-surface hover:bg-md-sys-color-on-surface/8 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-md-sys-color-primary disabled:cursor-not-allowed disabled:opacity-38',
42
- variants: {
43
- selected: {
44
- true: 'bg-md-sys-color-secondary-container text-md-sys-color-on-secondary-container'
45
- }
46
- }
47
- })({ selected })
48
- );
49
- </script>
50
-
51
- <DropdownMenu.Item {disabled} onSelect={handleSelect}>
52
- <button {...restProps} type="button" class={itemClass} {disabled}>
53
- {#if iconProps}
54
- <Icon class="text-md-sys-color-on-surface-variant size-6 text-[24px]" {...iconProps} />
55
- {/if}
56
-
57
- <div class="flex flex-1 flex-col gap-1">
58
- <span class="md-sys-typescale-body-large text-md-sys-color-on-surface">
59
- {@render children()}
60
- </span>
61
- {#if helper}
62
- <span class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant">
63
- {helper}
64
- </span>
65
- {/if}
66
- </div>
67
-
68
- {#if selected}
69
- <Icon aria-hidden="true" name="check" />
70
- {/if}
71
-
72
- <Layer />
73
- </button>
74
- </DropdownMenu.Item>
@@ -1,29 +0,0 @@
1
- <!--
2
- @component
3
- InputMerger is a container that groups multiple input components together visually.
4
- -->
5
- <script lang="ts">
6
- import clsx from 'clsx';
7
-
8
- interface Props {
9
- /**
10
- * The input components to be merged.
11
- */
12
- children: import('svelte').Snippet;
13
- /**
14
- * Additional CSS classes for the container.
15
- */
16
- class?: string;
17
- }
18
-
19
- let { children, class: className = '' }: Props = $props();
20
- </script>
21
-
22
- <div
23
- class={clsx(
24
- className,
25
- 'border-primary padding-default gap-narrow grid max-h-max w-full shrink rounded-none border-x-0 px-0 md:rounded-2xl md:border-x-2 md:px-2.5'
26
- )}
27
- >
28
- {@render children()}
29
- </div>
@@ -1,14 +0,0 @@
1
- interface Props {
2
- /**
3
- * The input components to be merged.
4
- */
5
- children: import('svelte').Snippet;
6
- /**
7
- * Additional CSS classes for the container.
8
- */
9
- class?: string;
10
- }
11
- /** InputMerger is a container that groups multiple input components together visually. */
12
- declare const InputMerger: import("svelte").Component<Props, {}, "">;
13
- type InputMerger = ReturnType<typeof InputMerger>;
14
- export default InputMerger;
@@ -1 +0,0 @@
1
- export { default as InputMerger } from './InputMerger.svelte';
@@ -1,3 +0,0 @@
1
- // THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
2
- // default exports for components in this folder
3
- export { default as InputMerger } from './InputMerger.svelte';
@@ -1,67 +0,0 @@
1
- <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import SinglePane from './SinglePane.svelte';
4
-
5
- const { Story } = defineMeta({
6
- title: 'Containers/Single Pane',
7
- component: SinglePane,
8
- argTypes: {
9
- centered: {
10
- control: 'select',
11
- options: ['none', 'narrow', 'medium']
12
- },
13
- padding: {
14
- control: 'select',
15
- options: ['none', 'sm', 'md', 'lg']
16
- },
17
- gap: {
18
- control: 'select',
19
- options: ['none', 'sm', 'md', 'lg', 'xl']
20
- },
21
- background: { control: 'boolean' },
22
- full: { control: 'boolean' },
23
- rounded: { control: 'boolean' }
24
- },
25
- args: {
26
- centered: 'medium',
27
- padding: 'md',
28
- gap: 'md',
29
- background: true,
30
- full: false,
31
- rounded: true
32
- }
33
- });
34
- </script>
35
-
36
- <Story name="Playground">
37
- {#snippet template(args)}
38
- <SinglePane
39
- centered={args.centered}
40
- padding={args.padding}
41
- gap={args.gap}
42
- background={args.background}
43
- full={args.full}
44
- rounded={args.rounded}
45
- >
46
- <div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block one</div>
47
- <div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block two</div>
48
- <div class="bg-md-sys-color-surface-container-high rounded-lg p-6">Block three</div>
49
- </SinglePane>
50
- {/snippet}
51
- </Story>
52
-
53
- <Story name="Centered Widths" asChild>
54
- <div class="flex flex-col gap-6">
55
- <SinglePane centered="narrow" background={false}>
56
- <div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">narrow</div>
57
- </SinglePane>
58
- <SinglePane centered="medium" background={false}>
59
- <div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">medium</div>
60
- </SinglePane>
61
- <SinglePane centered="none" background={false}>
62
- <div class="bg-md-sys-color-secondary-container rounded-lg p-4 text-sm">
63
- none (full width)
64
- </div>
65
- </SinglePane>
66
- </div>
67
- </Story>
@@ -1,32 +0,0 @@
1
- <!--
2
- @component
3
- SinglePane provides a centered or full-width container for content.
4
- -->
5
- <script lang="ts">
6
- import clsx from 'clsx';
7
- import { singlePane } from './theme.js';
8
- import type { SinglePaneProps } from './types.js';
9
-
10
- const {
11
- children,
12
- centered = 'none',
13
- background = true,
14
- full = true,
15
- padding = 'md',
16
- gap = 'md',
17
- rounded = true,
18
- class: className,
19
- contentClass,
20
- ...rest
21
- }: SinglePaneProps = $props();
22
-
23
- const { base, content } = $derived(
24
- singlePane({ padding, gap, centered, full, background, rounded })
25
- );
26
- </script>
27
-
28
- <div class={base({ class: clsx(className) })} {...rest}>
29
- <div class={content({ class: clsx(contentClass) })}>
30
- {@render children()}
31
- </div>
32
- </div>
@@ -1,5 +0,0 @@
1
- import type { SinglePaneProps } from './types.js';
2
- /** SinglePane provides a centered or full-width container for content. */
3
- declare const SinglePane: import("svelte").Component<SinglePaneProps, {}, "">;
4
- type SinglePane = ReturnType<typeof SinglePane>;
5
- export default SinglePane;
@@ -1,124 +0,0 @@
1
- <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import SplitPane from './SplitPane.svelte';
4
-
5
- const { Story } = defineMeta({
6
- title: 'Containers/Split Pane',
7
- component: SplitPane,
8
- argTypes: {
9
- anchor: {
10
- control: 'select',
11
- options: ['viewport', 'parent', 'sticky']
12
- },
13
- resizable: { control: 'boolean' },
14
- leftWidth: { control: 'number' },
15
- minLeft: { control: 'number' },
16
- maxLeft: { control: 'number' },
17
- full: { control: 'boolean' },
18
- rounded: { control: 'boolean' },
19
- mobilePane: {
20
- control: 'select',
21
- options: ['left', 'right']
22
- }
23
- },
24
- args: {
25
- anchor: 'parent',
26
- resizable: true,
27
- leftWidth: 320,
28
- minLeft: 240,
29
- maxLeft: 560,
30
- full: false,
31
- rounded: true,
32
- mobilePane: 'right'
33
- }
34
- });
35
- </script>
36
-
37
- <!--
38
- Playground uses anchor="parent" (bounded/relative container) since it's the
39
- only mode that demos meaningfully inside Storybook's iframe canvas — "viewport"
40
- fixes to the true browser edge and "sticky" needs a real scrolling page.
41
- -->
42
- <Story name="Playground">
43
- {#snippet template(args)}
44
- <div
45
- class="relative h-[420px] overflow-hidden rounded-lg border border-md-sys-color-outline-variant"
46
- >
47
- <SplitPane {...args}>
48
- {#snippet left()}
49
- <div class="p-4">
50
- <p class="md-sys-typescale-title-small mb-2">Left pane</p>
51
- <p class="text-md-sys-color-on-surface-variant text-sm">
52
- Drag the handle to resize. Persisted to localStorage when resizable.
53
- </p>
54
- </div>
55
- {/snippet}
56
- {#snippet right()}
57
- <div class="p-4">
58
- <p class="md-sys-typescale-title-small mb-2">Right pane</p>
59
- <p class="text-md-sys-color-on-surface-variant text-sm">Main content area.</p>
60
- </div>
61
- {/snippet}
62
- </SplitPane>
63
- </div>
64
- {/snippet}
65
- </Story>
66
-
67
- <!--
68
- anchor="viewport" — left pane fixes to the true browser edge. Meant for a
69
- full-page app layout where SplitPane is the outermost positioned element
70
- (e.g. the root Rail). Shown here at a reduced height so the fixed left pane
71
- is still visible inside the story canvas.
72
- -->
73
- <Story name="Anchor Viewport" asChild>
74
- <div
75
- class="relative h-[420px] overflow-hidden rounded-lg border border-md-sys-color-outline-variant"
76
- >
77
- <SplitPane anchor="viewport" resizable={false} leftWidth={280}>
78
- {#snippet left()}
79
- <div class="p-4">
80
- <p class="md-sys-typescale-title-small mb-2">Fixed to viewport edge</p>
81
- <p class="text-md-sys-color-on-surface-variant text-sm">
82
- In a real page this pane is position: fixed to the true left edge of the browser.
83
- </p>
84
- </div>
85
- {/snippet}
86
- {#snippet right()}
87
- <div class="p-4">
88
- <p class="text-md-sys-color-on-surface-variant text-sm">Right / main content.</p>
89
- </div>
90
- {/snippet}
91
- </SplitPane>
92
- </div>
93
- </Story>
94
-
95
- <!--
96
- anchor="sticky" — left/right sit in normal flex flow and the left pane
97
- sticks (position: sticky) as the page scrolls. Used for a sidebar nested
98
- inside other already-offset content, e.g. the docs secondary nav. Paired
99
- with resizable={false} for a static, non-draggable sidebar. Needs a tall
100
- scrollable right pane to demonstrate the sticky behaviour.
101
- -->
102
- <Story name="Anchor Sticky" asChild>
103
- <div class="h-[420px] overflow-y-auto rounded-lg border border-md-sys-color-outline-variant">
104
- <SplitPane anchor="sticky" resizable={false} leftWidth={240} rounded={false}>
105
- {#snippet left()}
106
- <div class="p-4">
107
- <p class="md-sys-typescale-title-small mb-2">Sticky nav</p>
108
- <p class="text-md-sys-color-on-surface-variant text-sm">
109
- Stays pinned to the top of the viewport while the right pane scrolls past it.
110
- </p>
111
- </div>
112
- {/snippet}
113
- {#snippet right()}
114
- <div class="flex flex-col gap-4 p-4">
115
- {#each Array(12) as _, i}
116
- <div class="bg-md-sys-color-surface-container-high rounded-lg p-6">
117
- Scrollable content block {i + 1}
118
- </div>
119
- {/each}
120
- </div>
121
- {/snippet}
122
- </SplitPane>
123
- </div>
124
- </Story>