@m3ui-vue/m3ui-vue 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 (185) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +102 -0
  3. package/dist/components/MAlert.vue.d.ts +27 -0
  4. package/dist/components/MAppBar.vue.d.ts +24 -0
  5. package/dist/components/MAvatar.vue.d.ts +9 -0
  6. package/dist/components/MBadge.vue.d.ts +22 -0
  7. package/dist/components/MBottomSheet.vue.d.ts +26 -0
  8. package/dist/components/MBreadcrumbs.vue.d.ts +19 -0
  9. package/dist/components/MButton.vue.d.ts +32 -0
  10. package/dist/components/MCalendar.vue.d.ts +23 -0
  11. package/dist/components/MCard.vue.d.ts +28 -0
  12. package/dist/components/MChart.vue.d.ts +13 -0
  13. package/dist/components/MCheckbox.vue.d.ts +26 -0
  14. package/dist/components/MChip.vue.d.ts +33 -0
  15. package/dist/components/MCodeEditor.vue.d.ts +35 -0
  16. package/dist/components/MColorPicker.vue.d.ts +18 -0
  17. package/dist/components/MCommandPalette.vue.d.ts +29 -0
  18. package/dist/components/MConfirmDialog.vue.d.ts +23 -0
  19. package/dist/components/MContainer.vue.d.ts +24 -0
  20. package/dist/components/MContextMenu.vue.d.ts +35 -0
  21. package/dist/components/MDataTable.vue.d.ts +83 -0
  22. package/dist/components/MDatePicker.vue.d.ts +21 -0
  23. package/dist/components/MDateRangePicker.vue.d.ts +24 -0
  24. package/dist/components/MDialog.vue.d.ts +30 -0
  25. package/dist/components/MDivider.vue.d.ts +11 -0
  26. package/dist/components/MDragDropList.vue.d.ts +40 -0
  27. package/dist/components/MEmptyState.vue.d.ts +21 -0
  28. package/dist/components/MExpansionPanel.vue.d.ts +28 -0
  29. package/dist/components/MFab.vue.d.ts +28 -0
  30. package/dist/components/MFileUpload.vue.d.ts +25 -0
  31. package/dist/components/MGrid.vue.d.ts +26 -0
  32. package/dist/components/MHotkeys.vue.d.ts +16 -0
  33. package/dist/components/MIcon.vue.d.ts +9 -0
  34. package/dist/components/MIconButton.vue.d.ts +14 -0
  35. package/dist/components/MInfiniteScroll.vue.d.ts +34 -0
  36. package/dist/components/MJsonEditor.vue.d.ts +17 -0
  37. package/dist/components/MJsonViewer.vue.d.ts +14 -0
  38. package/dist/components/MKanban.vue.d.ts +53 -0
  39. package/dist/components/MLoadingOverlay.vue.d.ts +28 -0
  40. package/dist/components/MMarkdown.vue.d.ts +11 -0
  41. package/dist/components/MMasonry.vue.d.ts +23 -0
  42. package/dist/components/MMenu.vue.d.ts +27 -0
  43. package/dist/components/MMenuItem.vue.d.ts +16 -0
  44. package/dist/components/MMultiSelect.vue.d.ts +34 -0
  45. package/dist/components/MNavigationBar.vue.d.ts +18 -0
  46. package/dist/components/MNavigationDrawer.vue.d.ts +41 -0
  47. package/dist/components/MNavigationRail.vue.d.ts +32 -0
  48. package/dist/components/MPagination.vue.d.ts +12 -0
  49. package/dist/components/MProgressBar.vue.d.ts +13 -0
  50. package/dist/components/MRadio.vue.d.ts +17 -0
  51. package/dist/components/MRadioGroup.vue.d.ts +24 -0
  52. package/dist/components/MRating.vue.d.ts +23 -0
  53. package/dist/components/MResult.vue.d.ts +20 -0
  54. package/dist/components/MRichTextEditor.vue.d.ts +17 -0
  55. package/dist/components/MScheduler.vue.d.ts +35 -0
  56. package/dist/components/MSegmentedButton.vue.d.ts +24 -0
  57. package/dist/components/MSelect.vue.d.ts +29 -0
  58. package/dist/components/MSideSheet.vue.d.ts +28 -0
  59. package/dist/components/MSkeleton.vue.d.ts +14 -0
  60. package/dist/components/MSlider.vue.d.ts +24 -0
  61. package/dist/components/MSnackbar.vue.d.ts +3 -0
  62. package/dist/components/MSpinner.vue.d.ts +10 -0
  63. package/dist/components/MSplitter.vue.d.ts +26 -0
  64. package/dist/components/MSpotlightSearch.vue.d.ts +34 -0
  65. package/dist/components/MStack.vue.d.ts +30 -0
  66. package/dist/components/MStatCard.vue.d.ts +24 -0
  67. package/dist/components/MStepper.vue.d.ts +33 -0
  68. package/dist/components/MSwitch.vue.d.ts +14 -0
  69. package/dist/components/MTable.vue.d.ts +73 -0
  70. package/dist/components/MTabs.vue.d.ts +20 -0
  71. package/dist/components/MTerminal.vue.d.ts +25 -0
  72. package/dist/components/MTextField.vue.d.ts +41 -0
  73. package/dist/components/MTimePicker.vue.d.ts +20 -0
  74. package/dist/components/MTimeline.vue.d.ts +31 -0
  75. package/dist/components/MTooltip.vue.d.ts +21 -0
  76. package/dist/components/MTopAppBar.vue.d.ts +29 -0
  77. package/dist/components/MTour.vue.d.ts +19 -0
  78. package/dist/components/MTransferList.vue.d.ts +23 -0
  79. package/dist/components/MTree.vue.d.ts +68 -0
  80. package/dist/components/MTreeTable.vue.d.ts +57 -0
  81. package/dist/components/MVirtualTable.vue.d.ts +40 -0
  82. package/dist/components/_MContextMenuPanel.vue.d.ts +13 -0
  83. package/dist/components/_MTreeNode.vue.d.ts +26 -0
  84. package/dist/composables/useColorPalette.d.ts +11 -0
  85. package/dist/composables/useFieldBg.d.ts +13 -0
  86. package/dist/composables/useTheme.d.ts +5 -0
  87. package/dist/composables/useToast.d.ts +59 -0
  88. package/dist/index.d.ts +112 -0
  89. package/dist/m3ui.css +2 -0
  90. package/dist/m3ui.js +7432 -0
  91. package/dist/m3ui.js.map +1 -0
  92. package/dist/plugin.d.ts +9 -0
  93. package/dist/styles/palettes.css +1253 -0
  94. package/dist/styles/theme.css +249 -0
  95. package/package.json +166 -0
  96. package/src/components/MAlert.vue +69 -0
  97. package/src/components/MAppBar.vue +40 -0
  98. package/src/components/MAvatar.vue +21 -0
  99. package/src/components/MBadge.vue +46 -0
  100. package/src/components/MBottomSheet.vue +113 -0
  101. package/src/components/MBreadcrumbs.vue +52 -0
  102. package/src/components/MButton.vue +111 -0
  103. package/src/components/MCalendar.vue +173 -0
  104. package/src/components/MCard.vue +56 -0
  105. package/src/components/MChart.vue +158 -0
  106. package/src/components/MCheckbox.vue +48 -0
  107. package/src/components/MChip.vue +87 -0
  108. package/src/components/MCodeEditor.vue +179 -0
  109. package/src/components/MColorPicker.vue +305 -0
  110. package/src/components/MCommandPalette.vue +213 -0
  111. package/src/components/MConfirmDialog.vue +43 -0
  112. package/src/components/MContainer.vue +36 -0
  113. package/src/components/MContextMenu.vue +66 -0
  114. package/src/components/MDataTable.vue +376 -0
  115. package/src/components/MDatePicker.vue +253 -0
  116. package/src/components/MDateRangePicker.vue +265 -0
  117. package/src/components/MDialog.vue +90 -0
  118. package/src/components/MDivider.vue +26 -0
  119. package/src/components/MDragDropList.vue +111 -0
  120. package/src/components/MEmptyState.vue +40 -0
  121. package/src/components/MExpansionPanel.vue +112 -0
  122. package/src/components/MFab.vue +220 -0
  123. package/src/components/MFileUpload.vue +206 -0
  124. package/src/components/MGrid.vue +99 -0
  125. package/src/components/MHotkeys.vue +122 -0
  126. package/src/components/MIcon.vue +9 -0
  127. package/src/components/MIconButton.vue +49 -0
  128. package/src/components/MInfiniteScroll.vue +68 -0
  129. package/src/components/MJsonEditor.vue +118 -0
  130. package/src/components/MJsonViewer.vue +106 -0
  131. package/src/components/MKanban.vue +147 -0
  132. package/src/components/MLoadingOverlay.vue +52 -0
  133. package/src/components/MMarkdown.vue +123 -0
  134. package/src/components/MMasonry.vue +87 -0
  135. package/src/components/MMenu.vue +113 -0
  136. package/src/components/MMenuItem.vue +15 -0
  137. package/src/components/MMultiSelect.vue +306 -0
  138. package/src/components/MNavigationBar.vue +62 -0
  139. package/src/components/MNavigationDrawer.vue +157 -0
  140. package/src/components/MNavigationRail.vue +80 -0
  141. package/src/components/MPagination.vue +37 -0
  142. package/src/components/MProgressBar.vue +200 -0
  143. package/src/components/MRadio.vue +89 -0
  144. package/src/components/MRadioGroup.vue +41 -0
  145. package/src/components/MRating.vue +108 -0
  146. package/src/components/MResult.vue +62 -0
  147. package/src/components/MRichTextEditor.vue +199 -0
  148. package/src/components/MScheduler.vue +225 -0
  149. package/src/components/MSegmentedButton.vue +75 -0
  150. package/src/components/MSelect.vue +259 -0
  151. package/src/components/MSideSheet.vue +112 -0
  152. package/src/components/MSkeleton.vue +60 -0
  153. package/src/components/MSlider.vue +188 -0
  154. package/src/components/MSnackbar.vue +244 -0
  155. package/src/components/MSpinner.vue +122 -0
  156. package/src/components/MSplitter.vue +97 -0
  157. package/src/components/MSpotlightSearch.vue +244 -0
  158. package/src/components/MStack.vue +67 -0
  159. package/src/components/MStatCard.vue +56 -0
  160. package/src/components/MStepper.vue +161 -0
  161. package/src/components/MSwitch.vue +63 -0
  162. package/src/components/MTable.vue +404 -0
  163. package/src/components/MTabs.vue +97 -0
  164. package/src/components/MTerminal.vue +146 -0
  165. package/src/components/MTextField.vue +180 -0
  166. package/src/components/MTimePicker.vue +227 -0
  167. package/src/components/MTimeline.vue +117 -0
  168. package/src/components/MTooltip.vue +82 -0
  169. package/src/components/MTopAppBar.vue +62 -0
  170. package/src/components/MTour.vue +226 -0
  171. package/src/components/MTransferList.vue +181 -0
  172. package/src/components/MTree.vue +164 -0
  173. package/src/components/MTreeTable.vue +159 -0
  174. package/src/components/MVirtualTable.vue +155 -0
  175. package/src/components/_MContextMenuPanel.vue +129 -0
  176. package/src/components/_MTreeNode.vue +171 -0
  177. package/src/composables/useColorPalette.ts +60 -0
  178. package/src/composables/useFieldBg.ts +91 -0
  179. package/src/composables/useTheme.ts +55 -0
  180. package/src/composables/useToast.ts +51 -0
  181. package/src/env.d.ts +1 -0
  182. package/src/index.ts +119 -0
  183. package/src/plugin.ts +18 -0
  184. package/src/styles/palettes.css +1253 -0
  185. package/src/styles/theme.css +249 -0
@@ -0,0 +1,249 @@
1
+ /* Enable class-based dark mode for Tailwind v4 */
2
+ @custom-variant dark (&:where(.dark, .dark *));
3
+
4
+ /* ---------------------------------------------------------------------- */
5
+ /* Material 3 design tokens — light theme (baseline purple) */
6
+ /* ---------------------------------------------------------------------- */
7
+ @theme {
8
+ --font-sans: 'Roboto', system-ui, -apple-system, sans-serif;
9
+
10
+ /* Color roles */
11
+ --color-primary: #6750a4;
12
+ --color-on-primary: #ffffff;
13
+ --color-primary-container: #eaddff;
14
+ --color-on-primary-container: #21005d;
15
+
16
+ --color-secondary: #625b71;
17
+ --color-on-secondary: #ffffff;
18
+ --color-secondary-container: #e8def8;
19
+ --color-on-secondary-container: #1d192b;
20
+
21
+ --color-tertiary: #7d5260;
22
+ --color-on-tertiary: #ffffff;
23
+ --color-tertiary-container: #ffd8e4;
24
+ --color-on-tertiary-container: #31111d;
25
+
26
+ --color-error: #b3261e;
27
+ --color-on-error: #ffffff;
28
+ --color-error-container: #f9dedc;
29
+ --color-on-error-container: #410e0b;
30
+
31
+ --color-success: #2e7d32;
32
+ --color-on-success: #ffffff;
33
+ --color-success-container: #c8e6c9;
34
+ --color-on-success-container: #0d3311;
35
+
36
+ --color-background: #fffbfe;
37
+ --color-on-background: #1c1b1f;
38
+
39
+ --color-surface: #fffbfe;
40
+ --color-on-surface: #1c1b1f;
41
+ --color-surface-variant: #e7e0ec;
42
+ --color-on-surface-variant: #49454f;
43
+
44
+ --color-surface-dim: #ded8e1;
45
+ --color-surface-bright: #fffbfe;
46
+ --color-surface-container-lowest: #ffffff;
47
+ --color-surface-container-low: #f7f2fa;
48
+ --color-surface-container: #f3edf7;
49
+ --color-surface-container-high: #ece6f0;
50
+ --color-surface-container-highest: #e6e0e9;
51
+
52
+ --color-outline: #79747e;
53
+ --color-outline-variant: #cac4d0;
54
+ --color-shadow: #000000;
55
+
56
+ --color-inverse-surface: #313033;
57
+ --color-inverse-on-surface: #f4eff4;
58
+ --color-inverse-primary: #d0bcff;
59
+
60
+ /* Shape (corner radius) scale */
61
+ --radius-xs: 4px;
62
+ --radius-sm: 8px;
63
+ --radius-md: 12px;
64
+ --radius-lg: 16px;
65
+ --radius-xl: 28px;
66
+
67
+ /* Elevation */
68
+ --shadow-elevation-1: 0px 1px 2px 0px rgb(0 0 0 / 0.3), 0px 1px 3px 1px rgb(0 0 0 / 0.15);
69
+ --shadow-elevation-2: 0px 1px 2px 0px rgb(0 0 0 / 0.3), 0px 2px 6px 2px rgb(0 0 0 / 0.15);
70
+ --shadow-elevation-3: 0px 1px 3px 0px rgb(0 0 0 / 0.3), 0px 4px 8px 3px rgb(0 0 0 / 0.15);
71
+
72
+ /* Type scale */
73
+ --text-display-small: 2.25rem;
74
+ --text-display-small--line-height: 2.75rem;
75
+
76
+ --text-headline-large: 2rem;
77
+ --text-headline-large--line-height: 2.5rem;
78
+ --text-headline-medium: 1.75rem;
79
+ --text-headline-medium--line-height: 2.25rem;
80
+ --text-headline-small: 1.5rem;
81
+ --text-headline-small--line-height: 2rem;
82
+
83
+ --text-title-large: 1.375rem;
84
+ --text-title-large--line-height: 1.75rem;
85
+ --text-title-medium: 1rem;
86
+ --text-title-medium--line-height: 1.5rem;
87
+ --text-title-small: 0.875rem;
88
+ --text-title-small--line-height: 1.25rem;
89
+
90
+ --text-body-large: 1rem;
91
+ --text-body-large--line-height: 1.5rem;
92
+ --text-body-medium: 0.875rem;
93
+ --text-body-medium--line-height: 1.25rem;
94
+ --text-body-small: 0.75rem;
95
+ --text-body-small--line-height: 1rem;
96
+
97
+ --text-label-large: 0.875rem;
98
+ --text-label-large--line-height: 1.25rem;
99
+ --text-label-medium: 0.75rem;
100
+ --text-label-medium--line-height: 1rem;
101
+ --text-label-small: 0.6875rem;
102
+ --text-label-small--line-height: 1rem;
103
+ }
104
+
105
+ /* ---------------------------------------------------------------------- */
106
+ /* Dark theme overrides — M3 baseline purple dark scheme */
107
+ /* ---------------------------------------------------------------------- */
108
+ .dark {
109
+ color-scheme: dark;
110
+
111
+ --color-primary: #d0bcff;
112
+ --color-on-primary: #381e72;
113
+ --color-primary-container: #4f378b;
114
+ --color-on-primary-container: #eaddff;
115
+
116
+ --color-secondary: #ccc2dc;
117
+ --color-on-secondary: #332d41;
118
+ --color-secondary-container: #4a4458;
119
+ --color-on-secondary-container: #e8def8;
120
+
121
+ --color-tertiary: #efb8c8;
122
+ --color-on-tertiary: #492532;
123
+ --color-tertiary-container: #633b48;
124
+ --color-on-tertiary-container: #ffd8e4;
125
+
126
+ --color-error: #f2b8b5;
127
+ --color-on-error: #601410;
128
+ --color-error-container: #8c1d18;
129
+ --color-on-error-container: #f9dedc;
130
+
131
+ --color-success: #81c784;
132
+ --color-on-success: #1b5e20;
133
+ --color-success-container: #2e7d32;
134
+ --color-on-success-container: #c8e6c9;
135
+
136
+ --color-background: #141218;
137
+ --color-on-background: #e6e1e5;
138
+
139
+ --color-surface: #141218;
140
+ --color-on-surface: #e6e1e5;
141
+ --color-surface-variant: #49454f;
142
+ --color-on-surface-variant: #cac4d0;
143
+
144
+ --color-surface-dim: #141218;
145
+ --color-surface-bright: #3b383e;
146
+ --color-surface-container-lowest: #0f0d13;
147
+ --color-surface-container-low: #1d1b20;
148
+ --color-surface-container: #211f26;
149
+ --color-surface-container-high: #2b2930;
150
+ --color-surface-container-highest: #36343b;
151
+
152
+ --color-outline: #938f99;
153
+ --color-outline-variant: #49454f;
154
+ --color-shadow: #000000;
155
+
156
+ --color-inverse-surface: #e6e1e5;
157
+ --color-inverse-on-surface: #313033;
158
+ --color-inverse-primary: #6750a4;
159
+ }
160
+
161
+ /* ---------------------------------------------------------------------- */
162
+ /* Base styles */
163
+ /* ---------------------------------------------------------------------- */
164
+ @layer base {
165
+ :root {
166
+ --field-bg: var(--color-surface);
167
+ }
168
+
169
+ html {
170
+ color-scheme: light;
171
+ }
172
+
173
+ html.dark {
174
+ color-scheme: dark;
175
+ }
176
+
177
+ body {
178
+ @apply bg-surface text-on-surface font-sans text-body-large antialiased;
179
+ }
180
+
181
+ ::selection {
182
+ @apply bg-primary-container text-on-primary-container;
183
+ }
184
+ }
185
+
186
+ .material-symbols-outlined {
187
+ font-family: 'Material Symbols Outlined';
188
+ font-weight: normal;
189
+ font-style: normal;
190
+ font-size: 24px;
191
+ line-height: 1;
192
+ letter-spacing: normal;
193
+ text-transform: none;
194
+ display: inline-block;
195
+ white-space: nowrap;
196
+ word-wrap: normal;
197
+ direction: ltr;
198
+ -webkit-font-feature-settings: 'liga';
199
+ -webkit-font-smoothing: antialiased;
200
+ }
201
+
202
+ * {
203
+ scrollbar-width: thin;
204
+ scrollbar-color: var(--color-outline-variant) transparent;
205
+ }
206
+
207
+ /* ---------------------------------------------------------------------- */
208
+ /* Animations */
209
+ /* ---------------------------------------------------------------------- */
210
+ @keyframes m3-progress-indeterminate {
211
+ 0% { left: -50%; width: 40% }
212
+ 60% { left: 110%; width: 40% }
213
+ 100% { left: 110%; width: 40% }
214
+ }
215
+
216
+ html.theme-transitioning *,
217
+ html.theme-transitioning *::before,
218
+ html.theme-transitioning *::after {
219
+ transition: color 250ms ease, background-color 250ms ease, border-color 250ms ease,
220
+ box-shadow 250ms ease, fill 250ms ease, stroke 250ms ease !important;
221
+ }
222
+
223
+ @keyframes m3-ripple {
224
+ from { transform: scale(0); opacity: 0.15; }
225
+ to { transform: scale(1); opacity: 0; }
226
+ }
227
+
228
+ .m3-ripple {
229
+ position: absolute;
230
+ border-radius: 50%;
231
+ background: currentColor;
232
+ pointer-events: none;
233
+ animation: m3-ripple 450ms cubic-bezier(0.2, 0, 0.8, 1) forwards;
234
+ }
235
+
236
+ @keyframes m3-ctx-in {
237
+ from { transform: translateY(-6px) scale(0.94); }
238
+ to { transform: translateY(0) scale(1); }
239
+ }
240
+
241
+ .m3-ctx-panel {
242
+ animation: m3-ctx-in 140ms cubic-bezier(0.2, 0, 0, 1) both;
243
+ transform-origin: top left;
244
+ }
245
+
246
+ @keyframes m3-wavy-spin {
247
+ 0% { transform: rotate(0deg); }
248
+ 100% { transform: rotate(360deg); }
249
+ }