@ai-matrx/design-system 0.60.1 → 0.60.6
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.
- package/CHANGELOG.md +41 -0
- package/dist/desktop-lint.mjs +218 -0
- package/dist/desktop.cjs +3565 -0
- package/dist/desktop.cjs.map +1 -0
- package/dist/desktop.css +234 -0
- package/dist/desktop.d.cts +484 -0
- package/dist/desktop.d.ts +484 -0
- package/dist/desktop.js +3533 -0
- package/dist/desktop.js.map +1 -0
- package/dist/index.d.cts +14 -876
- package/dist/index.d.ts +14 -876
- package/dist/organization-picker-mLqIcesx.d.cts +875 -0
- package/dist/organization-picker-mLqIcesx.d.ts +875 -0
- package/package.json +13 -1
package/dist/desktop.css
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/* @ai-matrx/design-system/desktop.css — THE DESKTOP STANDARD (macOS-class apps).
|
|
2
|
+
|
|
3
|
+
Importing this file IS the opt-in. A desktop host (Matrx 2) imports it from its Tailwind entry
|
|
4
|
+
stylesheet AFTER theme.css; the web app never imports it, so nothing here changes the web look
|
|
5
|
+
(FEATURE.md: a look that suits one app is an option, never the new default).
|
|
6
|
+
|
|
7
|
+
@import "tailwindcss";
|
|
8
|
+
@import "@ai-matrx/design-system/theme.css";
|
|
9
|
+
@import "@ai-matrx/design-system/styles.css";
|
|
10
|
+
@import "@ai-matrx/design-system/desktop.css";
|
|
11
|
+
|
|
12
|
+
Reference: Apple Human Interface Guidelines for macOS — Finder, System Settings, Xcode, Mail.
|
|
13
|
+
Every size an app may use is named here. App code composes `@ai-matrx/design-system/desktop`
|
|
14
|
+
components and these named utilities only; raw pixel values, raw colours and Tailwind's
|
|
15
|
+
palette are banned in desktop app code by lint (see DESKTOP.md in this folder).
|
|
16
|
+
|
|
17
|
+
Values are defaults. A host owns its brand by re-declaring a token (window, content, tint)
|
|
18
|
+
in its own stylesheet; it never adds a new size. */
|
|
19
|
+
|
|
20
|
+
@source "./";
|
|
21
|
+
|
|
22
|
+
@layer matrx-design-system-tokens {
|
|
23
|
+
:root {
|
|
24
|
+
/* Labels: four levels of text emphasis (NSColor.labelColor … quaternaryLabelColor). */
|
|
25
|
+
--mx-label: rgb(0 0 0 / 0.85);
|
|
26
|
+
--mx-label-secondary: rgb(0 0 0 / 0.55);
|
|
27
|
+
--mx-label-tertiary: rgb(0 0 0 / 0.32);
|
|
28
|
+
--mx-label-quaternary: rgb(0 0 0 / 0.14);
|
|
29
|
+
|
|
30
|
+
/* Hairlines and fills (separatorColor, fill levels for controls and hover/pressed). */
|
|
31
|
+
--mx-separator: rgb(0 0 0 / 0.1);
|
|
32
|
+
--mx-fill: rgb(0 0 0 / 0.04);
|
|
33
|
+
--mx-fill-secondary: rgb(0 0 0 / 0.07);
|
|
34
|
+
--mx-fill-tertiary: rgb(0 0 0 / 0.11);
|
|
35
|
+
|
|
36
|
+
/* Surfaces: the window chrome, the content page, a grouped box on the page, a raised control. */
|
|
37
|
+
--mx-window: #f6f6f6;
|
|
38
|
+
--mx-content: #ffffff;
|
|
39
|
+
--mx-group: rgb(0 0 0 / 0.025);
|
|
40
|
+
--mx-control: #ffffff;
|
|
41
|
+
--mx-control-edge: rgb(0 0 0 / 0.14);
|
|
42
|
+
--mx-elevated: #ffffff;
|
|
43
|
+
|
|
44
|
+
/* The tint (controlAccentColor) and selection. */
|
|
45
|
+
--mx-tint: #007aff;
|
|
46
|
+
--mx-tint-label: #ffffff;
|
|
47
|
+
--mx-selection: var(--mx-tint);
|
|
48
|
+
--mx-selection-label: #ffffff;
|
|
49
|
+
--mx-selection-muted: rgb(0 0 0 / 0.07);
|
|
50
|
+
--mx-focus: color-mix(in srgb, var(--mx-tint) 50%, transparent);
|
|
51
|
+
|
|
52
|
+
/* System colours: status only, never decoration. */
|
|
53
|
+
--mx-red: #ff3b30;
|
|
54
|
+
--mx-orange: #ff9500;
|
|
55
|
+
--mx-yellow: #ffcc00;
|
|
56
|
+
--mx-green: #28cd41;
|
|
57
|
+
--mx-blue: #007aff;
|
|
58
|
+
--mx-purple: #af52de;
|
|
59
|
+
--mx-gray: #8e8e93;
|
|
60
|
+
|
|
61
|
+
/* Elevation. */
|
|
62
|
+
--mx-shadow-control: 0 0 0 0.5px var(--mx-control-edge), 0 0.5px 1.5px rgb(0 0 0 / 0.12);
|
|
63
|
+
--mx-shadow-raised: 0 0 0 0.5px rgb(0 0 0 / 0.08), 0 1px 3px rgb(0 0 0 / 0.08);
|
|
64
|
+
--mx-shadow-popover: 0 0 0 0.5px rgb(0 0 0 / 0.12), 0 8px 28px rgb(0 0 0 / 0.16);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.dark {
|
|
68
|
+
--mx-label: rgb(255 255 255 / 0.88);
|
|
69
|
+
--mx-label-secondary: rgb(255 255 255 / 0.58);
|
|
70
|
+
--mx-label-tertiary: rgb(255 255 255 / 0.32);
|
|
71
|
+
--mx-label-quaternary: rgb(255 255 255 / 0.14);
|
|
72
|
+
|
|
73
|
+
--mx-separator: rgb(255 255 255 / 0.1);
|
|
74
|
+
--mx-fill: rgb(255 255 255 / 0.065);
|
|
75
|
+
--mx-fill-secondary: rgb(255 255 255 / 0.1);
|
|
76
|
+
--mx-fill-tertiary: rgb(255 255 255 / 0.16);
|
|
77
|
+
|
|
78
|
+
--mx-window: #1e1e1e;
|
|
79
|
+
--mx-content: #252525;
|
|
80
|
+
--mx-group: rgb(255 255 255 / 0.035);
|
|
81
|
+
--mx-control: rgb(255 255 255 / 0.1);
|
|
82
|
+
--mx-control-edge: rgb(255 255 255 / 0.06);
|
|
83
|
+
--mx-elevated: #2c2c2c;
|
|
84
|
+
|
|
85
|
+
--mx-tint: #0a84ff;
|
|
86
|
+
--mx-selection-muted: rgb(255 255 255 / 0.08);
|
|
87
|
+
|
|
88
|
+
--mx-red: #ff453a;
|
|
89
|
+
--mx-orange: #ff9f0a;
|
|
90
|
+
--mx-yellow: #ffd60a;
|
|
91
|
+
--mx-green: #32d74b;
|
|
92
|
+
--mx-blue: #0a84ff;
|
|
93
|
+
--mx-purple: #bf5af2;
|
|
94
|
+
--mx-gray: #98989d;
|
|
95
|
+
|
|
96
|
+
--mx-shadow-control: 0 0 0 0.5px var(--mx-control-edge), 0 0.5px 1.5px rgb(0 0 0 / 0.3);
|
|
97
|
+
--mx-shadow-raised: 0 0 0 0.5px rgb(255 255 255 / 0.06), 0 1px 3px rgb(0 0 0 / 0.35);
|
|
98
|
+
--mx-shadow-popover: 0 0 0 0.5px rgb(255 255 255 / 0.1), 0 8px 28px rgb(0 0 0 / 0.45);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* THE NAMED SCALE. Each line below becomes a Tailwind utility (text-body, h-control, rounded-group,
|
|
103
|
+
bg-content, text-label-secondary, max-w-page …). These are the only sizes desktop code uses. */
|
|
104
|
+
@theme inline {
|
|
105
|
+
/* Type — the macOS text styles (13 pt body). */
|
|
106
|
+
--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI Variable", "Segoe UI", sans-serif;
|
|
107
|
+
--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
|
|
108
|
+
--text-title-large: 26px;
|
|
109
|
+
--text-title-large--line-height: 32px;
|
|
110
|
+
--text-title-large--font-weight: 700;
|
|
111
|
+
--text-title-1: 22px;
|
|
112
|
+
--text-title-1--line-height: 28px;
|
|
113
|
+
--text-title-1--font-weight: 700;
|
|
114
|
+
--text-title-2: 17px;
|
|
115
|
+
--text-title-2--line-height: 22px;
|
|
116
|
+
--text-title-2--font-weight: 600;
|
|
117
|
+
--text-title-3: 15px;
|
|
118
|
+
--text-title-3--line-height: 20px;
|
|
119
|
+
--text-title-3--font-weight: 600;
|
|
120
|
+
--text-headline: 13px;
|
|
121
|
+
--text-headline--line-height: 16px;
|
|
122
|
+
--text-headline--font-weight: 600;
|
|
123
|
+
--text-body: 13px;
|
|
124
|
+
--text-body--line-height: 16px;
|
|
125
|
+
--text-callout: 12px;
|
|
126
|
+
--text-callout--line-height: 15px;
|
|
127
|
+
--text-caption: 11px;
|
|
128
|
+
--text-caption--line-height: 14px;
|
|
129
|
+
|
|
130
|
+
/* Controls and rows (heights). The spacing grid itself is Tailwind's 4 px step: 1 = 4 px. */
|
|
131
|
+
--spacing-control-sm: 22px;
|
|
132
|
+
--spacing-control: 28px;
|
|
133
|
+
--spacing-control-lg: 32px;
|
|
134
|
+
--spacing-row-compact: 24px;
|
|
135
|
+
--spacing-sidebar-row: 28px;
|
|
136
|
+
--spacing-row: 36px;
|
|
137
|
+
--spacing-row-tall: 48px;
|
|
138
|
+
--spacing-toolbar: 52px;
|
|
139
|
+
--spacing-icon-sm: 14px;
|
|
140
|
+
--spacing-icon: 16px;
|
|
141
|
+
--spacing-icon-lg: 20px;
|
|
142
|
+
--spacing-icon-xl: 32px;
|
|
143
|
+
|
|
144
|
+
/* Content widths. */
|
|
145
|
+
--container-form: 640px;
|
|
146
|
+
--container-page: 880px;
|
|
147
|
+
--container-wide: 1120px;
|
|
148
|
+
|
|
149
|
+
/* Radii. */
|
|
150
|
+
--radius-control: 6px;
|
|
151
|
+
--radius-group: 10px;
|
|
152
|
+
--radius-panel: 12px;
|
|
153
|
+
|
|
154
|
+
/* Colours (semantic names only). */
|
|
155
|
+
--color-label: var(--mx-label);
|
|
156
|
+
--color-label-secondary: var(--mx-label-secondary);
|
|
157
|
+
--color-label-tertiary: var(--mx-label-tertiary);
|
|
158
|
+
--color-label-quaternary: var(--mx-label-quaternary);
|
|
159
|
+
--color-separator: var(--mx-separator);
|
|
160
|
+
--color-fill: var(--mx-fill);
|
|
161
|
+
--color-fill-secondary: var(--mx-fill-secondary);
|
|
162
|
+
--color-fill-tertiary: var(--mx-fill-tertiary);
|
|
163
|
+
--color-window: var(--mx-window);
|
|
164
|
+
--color-content: var(--mx-content);
|
|
165
|
+
--color-group: var(--mx-group);
|
|
166
|
+
--color-control: var(--mx-control);
|
|
167
|
+
--color-elevated: var(--mx-elevated);
|
|
168
|
+
--color-tint: var(--mx-tint);
|
|
169
|
+
--color-tint-label: var(--mx-tint-label);
|
|
170
|
+
--color-selection: var(--mx-selection);
|
|
171
|
+
--color-selection-label: var(--mx-selection-label);
|
|
172
|
+
--color-selection-muted: var(--mx-selection-muted);
|
|
173
|
+
--color-focus: var(--mx-focus);
|
|
174
|
+
--color-system-red: var(--mx-red);
|
|
175
|
+
--color-system-orange: var(--mx-orange);
|
|
176
|
+
--color-system-yellow: var(--mx-yellow);
|
|
177
|
+
--color-system-green: var(--mx-green);
|
|
178
|
+
--color-system-blue: var(--mx-blue);
|
|
179
|
+
--color-system-purple: var(--mx-purple);
|
|
180
|
+
--color-system-gray: var(--mx-gray);
|
|
181
|
+
|
|
182
|
+
--shadow-control: var(--mx-shadow-control);
|
|
183
|
+
--shadow-raised: var(--mx-shadow-raised);
|
|
184
|
+
--shadow-popover: var(--mx-shadow-popover);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* The one focus ring: macOS draws a soft tint halo outside the control's edge. */
|
|
188
|
+
@utility focus-ring {
|
|
189
|
+
outline: none;
|
|
190
|
+
&:focus-visible {
|
|
191
|
+
outline: 3px solid var(--mx-focus);
|
|
192
|
+
outline-offset: 0;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* Native window chrome: what drags the window, and what never does. */
|
|
197
|
+
@utility window-drag {
|
|
198
|
+
-webkit-app-region: drag;
|
|
199
|
+
}
|
|
200
|
+
@utility window-no-drag {
|
|
201
|
+
-webkit-app-region: no-drag;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@layer base {
|
|
205
|
+
html {
|
|
206
|
+
font-family: var(--font-sans);
|
|
207
|
+
font-size: 13px;
|
|
208
|
+
line-height: 16px;
|
|
209
|
+
color: var(--mx-label);
|
|
210
|
+
-webkit-font-smoothing: antialiased;
|
|
211
|
+
-moz-osx-font-smoothing: grayscale;
|
|
212
|
+
font-synthesis: none;
|
|
213
|
+
text-rendering: optimizeLegibility;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
::selection {
|
|
217
|
+
background: color-mix(in srgb, var(--mx-tint) 28%, transparent);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* The activity indicator (NSProgressIndicator, spinning style): twelve spokes, stepped. */
|
|
222
|
+
@keyframes mx-spokes {
|
|
223
|
+
to {
|
|
224
|
+
transform: rotate(360deg);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
.mx-spinner {
|
|
228
|
+
animation: mx-spokes 0.9s steps(12, end) infinite;
|
|
229
|
+
}
|
|
230
|
+
@media (prefers-reduced-motion: reduce) {
|
|
231
|
+
.mx-spinner {
|
|
232
|
+
animation-duration: 2.4s;
|
|
233
|
+
}
|
|
234
|
+
}
|