@fluid-app/portal-sdk 0.1.51 → 0.1.52
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/package.json +13 -13
- package/styles/globals.css +164 -166
- package/styles/theme.css +0 -169
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-app/portal-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.52",
|
|
4
4
|
"description": "SDK for building custom Fluid portals",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -62,41 +62,41 @@
|
|
|
62
62
|
"tsdown": "^0.21.0",
|
|
63
63
|
"typescript": "^5",
|
|
64
64
|
"zod": "4.3.5",
|
|
65
|
-
"@fluid-app/auth": "0.1.0",
|
|
66
65
|
"@fluid-app/api-client-core": "0.1.0",
|
|
67
|
-
"@fluid-app/
|
|
68
|
-
"@fluid-app/
|
|
66
|
+
"@fluid-app/company-switcher-core": "0.1.0",
|
|
67
|
+
"@fluid-app/auth": "0.1.0",
|
|
69
68
|
"@fluid-app/company-switcher-ui": "0.1.0",
|
|
70
69
|
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
71
|
-
"@fluid-app/
|
|
72
|
-
"@fluid-app/messaging-api-client": "0.1.0",
|
|
70
|
+
"@fluid-app/contacts-ui": "0.1.0",
|
|
73
71
|
"@fluid-app/fluid-pay-api-client": "0.1.0",
|
|
74
|
-
"@fluid-app/
|
|
75
|
-
"@fluid-app/
|
|
72
|
+
"@fluid-app/fluidos-api-client": "0.1.0",
|
|
73
|
+
"@fluid-app/messaging-api-client": "0.1.0",
|
|
76
74
|
"@fluid-app/messaging-ui": "0.1.0",
|
|
75
|
+
"@fluid-app/mysite-ui": "0.1.0",
|
|
76
|
+
"@fluid-app/messaging-core": "0.1.0",
|
|
77
77
|
"@fluid-app/orders-api-client": "0.1.0",
|
|
78
|
+
"@fluid-app/orders-core": "0.1.0",
|
|
78
79
|
"@fluid-app/orders-ui": "0.1.0",
|
|
79
80
|
"@fluid-app/permissions": "0.1.0",
|
|
80
81
|
"@fluid-app/portal-core": "0.1.23",
|
|
81
|
-
"@fluid-app/orders-core": "0.1.0",
|
|
82
82
|
"@fluid-app/portal-react": "0.1.0",
|
|
83
83
|
"@fluid-app/portal-widgets": "0.1.22",
|
|
84
84
|
"@fluid-app/products-api-client": "0.1.0",
|
|
85
85
|
"@fluid-app/products-core": "0.1.0",
|
|
86
86
|
"@fluid-app/profile-core": "0.1.0",
|
|
87
|
-
"@fluid-app/query-persister": "0.1.0",
|
|
88
87
|
"@fluid-app/profile-ui": "0.1.0",
|
|
88
|
+
"@fluid-app/query-persister": "0.1.0",
|
|
89
89
|
"@fluid-app/shareables-api-client": "0.1.0",
|
|
90
90
|
"@fluid-app/shareables-core": "0.1.0",
|
|
91
91
|
"@fluid-app/shareables-ui": "0.1.0",
|
|
92
|
+
"@fluid-app/shop-ui": "0.1.0",
|
|
92
93
|
"@fluid-app/subscriptions-api-client": "0.1.0",
|
|
93
94
|
"@fluid-app/subscriptions-core": "0.1.0",
|
|
94
95
|
"@fluid-app/subscriptions-ui": "0.1.0",
|
|
95
|
-
"@fluid-app/shop-ui": "0.1.0",
|
|
96
|
-
"@fluid-app/ui-primitives": "0.1.13",
|
|
97
96
|
"@fluid-app/typescript-config": "0.0.0",
|
|
98
|
-
"@fluid-app/
|
|
97
|
+
"@fluid-app/ui-primitives": "0.1.13",
|
|
99
98
|
"@fluid-app/user-contacts-api-client": "0.1.0",
|
|
99
|
+
"@fluid-app/user-notes-api-client": "0.1.0",
|
|
100
100
|
"@fluid-app/user-tasks-api-client": "0.1.0"
|
|
101
101
|
},
|
|
102
102
|
"peerDependencies": {
|
package/styles/globals.css
CHANGED
|
@@ -1,187 +1,185 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Portal SDK –
|
|
3
|
-
* and messaging custom utilities.
|
|
2
|
+
* Portal SDK – automatically imports and sets up all fluid required CSS.
|
|
4
3
|
*
|
|
5
4
|
* Import this in your app's main CSS file:
|
|
6
5
|
* @import "@fluid-app/portal-sdk/globals.css";
|
|
7
6
|
*/
|
|
8
7
|
|
|
9
|
-
/* ──
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@
|
|
15
|
-
@
|
|
16
|
-
@
|
|
17
|
-
@
|
|
18
|
-
@
|
|
19
|
-
@
|
|
20
|
-
@
|
|
21
|
-
@
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@source
|
|
25
|
-
|
|
26
|
-
@source
|
|
27
|
-
@source inline("aspect-{square,video}");
|
|
28
|
-
@source inline("@md:grid-cols-{2,3}");
|
|
29
|
-
@source inline("@md:grid-cols-[{1,2,3}fr_{1,2,3}fr]");
|
|
30
|
-
@source inline("@md:grid-cols-[1fr_2fr_1fr]");
|
|
31
|
-
|
|
32
|
-
/* ── Animations ──────────────────────────────────────────────────────────── */
|
|
33
|
-
@import "tw-animate-css";
|
|
34
|
-
|
|
35
|
-
/* ── Messaging custom utilities ──────────────────────────────────────────── */
|
|
36
|
-
|
|
37
|
-
@utility text-messaging-1 {
|
|
38
|
-
font-size: 1.25rem;
|
|
39
|
-
font-weight: 500;
|
|
40
|
-
line-height: 1.4;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@utility text-messaging-2 {
|
|
44
|
-
font-size: 0.8125rem;
|
|
45
|
-
font-weight: 600;
|
|
46
|
-
line-height: 1.53846;
|
|
47
|
-
}
|
|
8
|
+
/* ── Package CSS imports ─────────────────────────────────────────────────── */
|
|
9
|
+
@import "@fluid-app/company-switcher-ui/styles/company-switcher.css";
|
|
10
|
+
@import "@fluid-app/contacts-ui/styles/contacts.css";
|
|
11
|
+
@import "@fluid-app/messaging-ui/styles/messaging.css";
|
|
12
|
+
@import "@fluid-app/orders-ui/styles/orders.css";
|
|
13
|
+
@import "@fluid-app/shop-ui/styles/shop.css";
|
|
14
|
+
@import "@fluid-app/profile-ui/styles/profile.css";
|
|
15
|
+
@import "@fluid-app/shareables-ui/styles/shareables.css";
|
|
16
|
+
@import "@fluid-app/subscriptions-ui/styles/subscriptions.css";
|
|
17
|
+
@import "@fluid-app/mysite-ui/styles/mysite.css";
|
|
18
|
+
@import "@fluid-app/ui-primitives/styles/ui-primitives.css";
|
|
19
|
+
@import "@fluid-app/portal-widgets/globals.css";
|
|
20
|
+
@import "@fluid-app/portal-react/globals.css";
|
|
21
|
+
|
|
22
|
+
/* ── Source ──────────────────────────────────────────────────────────────── */
|
|
23
|
+
@source "../src/**/*.{ts,tsx}";
|
|
24
|
+
/* This is required for the published version */
|
|
25
|
+
@source "../dist/**/*.{js,mjs}";
|
|
48
26
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
#304054 88.17%,
|
|
85
|
-
#314155 91.67%
|
|
86
|
-
);
|
|
87
|
-
background: linear-gradient(
|
|
88
|
-
27deg,
|
|
89
|
-
color(display-p3 0.0772 0.1087 0.1529) 8.33%,
|
|
90
|
-
color(display-p3 0.1164 0.1572 0.2162) 25.04%,
|
|
91
|
-
color(display-p3 0.2007 0.2475 0.3221) 88.17%,
|
|
92
|
-
color(display-p3 0.2053 0.2525 0.328) 91.67%
|
|
93
|
-
);
|
|
27
|
+
/*
|
|
28
|
+
* Register CSS variables as Tailwind theme values.
|
|
29
|
+
* `inline` means Tailwind won't emit its own --color-* declarations —
|
|
30
|
+
* we define them ourselves in :root below (and the theme engine overrides
|
|
31
|
+
* them at runtime via [data-theme="..."]).
|
|
32
|
+
*/
|
|
33
|
+
@theme inline {
|
|
34
|
+
--color-background: var(--background);
|
|
35
|
+
--color-foreground: var(--foreground);
|
|
36
|
+
--color-primary: var(--primary);
|
|
37
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
38
|
+
--color-secondary: var(--secondary);
|
|
39
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
40
|
+
--color-muted: var(--muted);
|
|
41
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
42
|
+
--color-accent: var(--accent);
|
|
43
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
44
|
+
--color-destructive: var(--destructive);
|
|
45
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
46
|
+
--color-border: var(--border);
|
|
47
|
+
--color-input: var(--input);
|
|
48
|
+
--color-ring: var(--ring);
|
|
49
|
+
--color-popover: var(--popover);
|
|
50
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
51
|
+
--color-card: var(--card);
|
|
52
|
+
--color-card-foreground: var(--card-foreground);
|
|
53
|
+
--color-sidebar: var(--sidebar);
|
|
54
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
55
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
56
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
57
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
58
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
59
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
60
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
61
|
+
--radius: var(--radius);
|
|
94
62
|
}
|
|
95
63
|
|
|
96
|
-
|
|
97
|
-
|
|
64
|
+
/* Light mode fallback tokens (OKLCH format) */
|
|
65
|
+
:root {
|
|
66
|
+
--color-background: oklch(1 0 0);
|
|
67
|
+
--color-foreground: oklch(0.145 0 0);
|
|
68
|
+
--color-primary: oklch(0.205 0 0);
|
|
69
|
+
--color-primary-foreground: oklch(0.985 0 0);
|
|
70
|
+
--color-secondary: oklch(0.97 0 0);
|
|
71
|
+
--color-secondary-foreground: oklch(0.205 0 0);
|
|
72
|
+
--color-muted: oklch(0.97 0 0);
|
|
73
|
+
--color-muted-foreground: oklch(0.556 0 0);
|
|
74
|
+
--color-accent: oklch(0.97 0 0);
|
|
75
|
+
--color-accent-foreground: oklch(0.205 0 0);
|
|
76
|
+
--color-destructive: oklch(0.577 0.245 27.325);
|
|
77
|
+
--color-destructive-foreground: oklch(0.985 0 0);
|
|
78
|
+
--color-border: oklch(0.922 0 0);
|
|
79
|
+
|
|
80
|
+
/* Short-name aliases (match css-generator globalCSSOverride) */
|
|
81
|
+
--background: var(--color-background);
|
|
82
|
+
--foreground: var(--color-foreground);
|
|
83
|
+
--primary: var(--color-primary);
|
|
84
|
+
--primary-foreground: var(--color-primary-foreground);
|
|
85
|
+
--secondary: var(--color-secondary);
|
|
86
|
+
--secondary-foreground: var(--color-secondary-foreground);
|
|
87
|
+
--muted: var(--color-muted);
|
|
88
|
+
--muted-foreground: var(--color-muted-foreground);
|
|
89
|
+
--accent: var(--color-accent);
|
|
90
|
+
--accent-foreground: var(--color-accent-foreground);
|
|
91
|
+
--destructive: var(--color-destructive);
|
|
92
|
+
--destructive-foreground: var(--color-destructive-foreground);
|
|
93
|
+
--border: var(--color-border);
|
|
94
|
+
--input: var(--color-border);
|
|
95
|
+
--ring: var(--color-primary);
|
|
96
|
+
--radius: 0.625rem;
|
|
97
|
+
|
|
98
|
+
/* Popover / Card aliases */
|
|
99
|
+
--popover: var(--color-background);
|
|
100
|
+
--popover-foreground: var(--color-foreground);
|
|
101
|
+
--card: var(--color-background);
|
|
102
|
+
--card-foreground: var(--color-foreground);
|
|
103
|
+
|
|
104
|
+
/* Sidebar aliases */
|
|
105
|
+
--sidebar: var(--color-muted);
|
|
106
|
+
--sidebar-foreground: var(--color-muted-foreground);
|
|
107
|
+
--sidebar-primary: var(--color-primary);
|
|
108
|
+
--sidebar-primary-foreground: var(--color-primary-foreground);
|
|
109
|
+
--sidebar-accent: var(--color-accent);
|
|
110
|
+
--sidebar-accent-foreground: var(--color-accent-foreground);
|
|
111
|
+
--sidebar-border: var(--color-border);
|
|
112
|
+
--sidebar-ring: var(--color-primary);
|
|
98
113
|
}
|
|
99
114
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
115
|
+
/*
|
|
116
|
+
* Dark-mode fallback tokens.
|
|
117
|
+
* Applied when the user toggles dark mode but no API theme is loaded.
|
|
118
|
+
* The theme engine will override these with richer palette-derived values
|
|
119
|
+
* once a theme is fetched from the API.
|
|
120
|
+
*/
|
|
121
|
+
[data-theme-mode="dark"] {
|
|
122
|
+
--color-background: oklch(0.145 0 0);
|
|
123
|
+
--color-foreground: oklch(0.985 0 0);
|
|
124
|
+
--color-primary: oklch(0.985 0 0);
|
|
125
|
+
--color-primary-foreground: oklch(0.205 0 0);
|
|
126
|
+
--color-secondary: oklch(0.215 0 0);
|
|
127
|
+
--color-secondary-foreground: oklch(0.985 0 0);
|
|
128
|
+
--color-muted: oklch(0.215 0 0);
|
|
129
|
+
--color-muted-foreground: oklch(0.708 0 0);
|
|
130
|
+
--color-accent: oklch(0.215 0 0);
|
|
131
|
+
--color-accent-foreground: oklch(0.985 0 0);
|
|
132
|
+
--color-destructive: oklch(0.577 0.245 27.325);
|
|
133
|
+
--color-destructive-foreground: oklch(0.985 0 0);
|
|
134
|
+
--color-border: oklch(0.3 0 0);
|
|
135
|
+
|
|
136
|
+
--background: var(--color-background);
|
|
137
|
+
--foreground: var(--color-foreground);
|
|
138
|
+
--primary: var(--color-primary);
|
|
139
|
+
--primary-foreground: var(--color-primary-foreground);
|
|
140
|
+
--secondary: var(--color-secondary);
|
|
141
|
+
--secondary-foreground: var(--color-secondary-foreground);
|
|
142
|
+
--muted: var(--color-muted);
|
|
143
|
+
--muted-foreground: var(--color-muted-foreground);
|
|
144
|
+
--accent: var(--color-accent);
|
|
145
|
+
--accent-foreground: var(--color-accent-foreground);
|
|
146
|
+
--destructive: var(--color-destructive);
|
|
147
|
+
--destructive-foreground: var(--color-destructive-foreground);
|
|
148
|
+
--border: var(--color-border);
|
|
149
|
+
--input: var(--color-border);
|
|
150
|
+
--ring: var(--color-primary);
|
|
151
|
+
|
|
152
|
+
--popover: var(--color-background);
|
|
153
|
+
--popover-foreground: var(--color-foreground);
|
|
154
|
+
--card: var(--color-background);
|
|
155
|
+
--card-foreground: var(--color-foreground);
|
|
156
|
+
|
|
157
|
+
--sidebar: var(--color-muted);
|
|
158
|
+
--sidebar-foreground: var(--color-muted-foreground);
|
|
159
|
+
--sidebar-primary: var(--color-primary);
|
|
160
|
+
--sidebar-primary-foreground: var(--color-primary-foreground);
|
|
161
|
+
--sidebar-accent: var(--color-accent);
|
|
162
|
+
--sidebar-accent-foreground: var(--color-accent-foreground);
|
|
163
|
+
--sidebar-border: var(--color-border);
|
|
164
|
+
--sidebar-ring: var(--color-primary);
|
|
136
165
|
}
|
|
137
166
|
|
|
138
|
-
@
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
& & {
|
|
142
|
-
list-style-type: circle;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
& & & {
|
|
146
|
-
list-style-type: square;
|
|
167
|
+
@layer base {
|
|
168
|
+
* {
|
|
169
|
+
@apply border-border;
|
|
147
170
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
list-style-type: disc;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
& & & & & {
|
|
154
|
-
list-style-type: circle;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
& & & & & & {
|
|
158
|
-
list-style-type: square;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
& & & & & & & {
|
|
162
|
-
list-style-type: disc;
|
|
163
|
-
|
|
164
|
-
& & {
|
|
165
|
-
padding-left: 0;
|
|
166
|
-
}
|
|
171
|
+
body {
|
|
172
|
+
@apply bg-background text-foreground;
|
|
167
173
|
}
|
|
168
174
|
}
|
|
169
175
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
/* Hide scrollbars while preserving scroll functionality */
|
|
177
|
+
@layer utilities {
|
|
178
|
+
.scrollbar-none {
|
|
179
|
+
-ms-overflow-style: none;
|
|
180
|
+
scrollbar-width: none;
|
|
175
181
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
@utility content-auto {
|
|
179
|
-
content-visibility: auto;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
@utility hide-date-picker {
|
|
183
|
-
&::-webkit-calendar-picker-indicator {
|
|
182
|
+
.scrollbar-none::-webkit-scrollbar {
|
|
184
183
|
display: none;
|
|
185
|
-
-webkit-appearance: none;
|
|
186
184
|
}
|
|
187
185
|
}
|
package/styles/theme.css
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Portal SDK – Default design tokens and Tailwind theme registration.
|
|
3
|
-
*
|
|
4
|
-
* Import this in your portal's main CSS file:
|
|
5
|
-
* @import "@fluid-app/portal-sdk/theme.css";
|
|
6
|
-
*
|
|
7
|
-
* The theme engine injects higher-specificity CSS via [data-theme="..."]
|
|
8
|
-
* which overrides these fallback values at runtime for both light and dark modes.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/*
|
|
12
|
-
* Register CSS variables as Tailwind theme values.
|
|
13
|
-
* `inline` means Tailwind won't emit its own --color-* declarations —
|
|
14
|
-
* we define them ourselves in :root below (and the theme engine overrides
|
|
15
|
-
* them at runtime via [data-theme="..."]).
|
|
16
|
-
*/
|
|
17
|
-
@theme inline {
|
|
18
|
-
--color-background: var(--background);
|
|
19
|
-
--color-foreground: var(--foreground);
|
|
20
|
-
--color-primary: var(--primary);
|
|
21
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
22
|
-
--color-secondary: var(--secondary);
|
|
23
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
24
|
-
--color-muted: var(--muted);
|
|
25
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
26
|
-
--color-accent: var(--accent);
|
|
27
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
28
|
-
--color-destructive: var(--destructive);
|
|
29
|
-
--color-destructive-foreground: var(--destructive-foreground);
|
|
30
|
-
--color-border: var(--border);
|
|
31
|
-
--color-input: var(--input);
|
|
32
|
-
--color-ring: var(--ring);
|
|
33
|
-
--color-popover: var(--popover);
|
|
34
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
35
|
-
--color-card: var(--card);
|
|
36
|
-
--color-card-foreground: var(--card-foreground);
|
|
37
|
-
--color-sidebar: var(--sidebar);
|
|
38
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
39
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
40
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
41
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
42
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
43
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
44
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
45
|
-
--radius: var(--radius);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/* Light mode fallback tokens (OKLCH format) */
|
|
49
|
-
:root {
|
|
50
|
-
--color-background: oklch(1 0 0);
|
|
51
|
-
--color-foreground: oklch(0.145 0 0);
|
|
52
|
-
--color-primary: oklch(0.205 0 0);
|
|
53
|
-
--color-primary-foreground: oklch(0.985 0 0);
|
|
54
|
-
--color-secondary: oklch(0.97 0 0);
|
|
55
|
-
--color-secondary-foreground: oklch(0.205 0 0);
|
|
56
|
-
--color-muted: oklch(0.97 0 0);
|
|
57
|
-
--color-muted-foreground: oklch(0.556 0 0);
|
|
58
|
-
--color-accent: oklch(0.97 0 0);
|
|
59
|
-
--color-accent-foreground: oklch(0.205 0 0);
|
|
60
|
-
--color-destructive: oklch(0.577 0.245 27.325);
|
|
61
|
-
--color-destructive-foreground: oklch(0.985 0 0);
|
|
62
|
-
--color-border: oklch(0.922 0 0);
|
|
63
|
-
|
|
64
|
-
/* Short-name aliases (match css-generator globalCSSOverride) */
|
|
65
|
-
--background: var(--color-background);
|
|
66
|
-
--foreground: var(--color-foreground);
|
|
67
|
-
--primary: var(--color-primary);
|
|
68
|
-
--primary-foreground: var(--color-primary-foreground);
|
|
69
|
-
--secondary: var(--color-secondary);
|
|
70
|
-
--secondary-foreground: var(--color-secondary-foreground);
|
|
71
|
-
--muted: var(--color-muted);
|
|
72
|
-
--muted-foreground: var(--color-muted-foreground);
|
|
73
|
-
--accent: var(--color-accent);
|
|
74
|
-
--accent-foreground: var(--color-accent-foreground);
|
|
75
|
-
--destructive: var(--color-destructive);
|
|
76
|
-
--destructive-foreground: var(--color-destructive-foreground);
|
|
77
|
-
--border: var(--color-border);
|
|
78
|
-
--input: var(--color-border);
|
|
79
|
-
--ring: var(--color-primary);
|
|
80
|
-
--radius: 0.625rem;
|
|
81
|
-
|
|
82
|
-
/* Popover / Card aliases */
|
|
83
|
-
--popover: var(--color-background);
|
|
84
|
-
--popover-foreground: var(--color-foreground);
|
|
85
|
-
--card: var(--color-background);
|
|
86
|
-
--card-foreground: var(--color-foreground);
|
|
87
|
-
|
|
88
|
-
/* Sidebar aliases */
|
|
89
|
-
--sidebar: var(--color-muted);
|
|
90
|
-
--sidebar-foreground: var(--color-muted-foreground);
|
|
91
|
-
--sidebar-primary: var(--color-primary);
|
|
92
|
-
--sidebar-primary-foreground: var(--color-primary-foreground);
|
|
93
|
-
--sidebar-accent: var(--color-accent);
|
|
94
|
-
--sidebar-accent-foreground: var(--color-accent-foreground);
|
|
95
|
-
--sidebar-border: var(--color-border);
|
|
96
|
-
--sidebar-ring: var(--color-primary);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
* Dark-mode fallback tokens.
|
|
101
|
-
* Applied when the user toggles dark mode but no API theme is loaded.
|
|
102
|
-
* The theme engine will override these with richer palette-derived values
|
|
103
|
-
* once a theme is fetched from the API.
|
|
104
|
-
*/
|
|
105
|
-
[data-theme-mode="dark"] {
|
|
106
|
-
--color-background: oklch(0.145 0 0);
|
|
107
|
-
--color-foreground: oklch(0.985 0 0);
|
|
108
|
-
--color-primary: oklch(0.985 0 0);
|
|
109
|
-
--color-primary-foreground: oklch(0.205 0 0);
|
|
110
|
-
--color-secondary: oklch(0.215 0 0);
|
|
111
|
-
--color-secondary-foreground: oklch(0.985 0 0);
|
|
112
|
-
--color-muted: oklch(0.215 0 0);
|
|
113
|
-
--color-muted-foreground: oklch(0.708 0 0);
|
|
114
|
-
--color-accent: oklch(0.215 0 0);
|
|
115
|
-
--color-accent-foreground: oklch(0.985 0 0);
|
|
116
|
-
--color-destructive: oklch(0.577 0.245 27.325);
|
|
117
|
-
--color-destructive-foreground: oklch(0.985 0 0);
|
|
118
|
-
--color-border: oklch(0.3 0 0);
|
|
119
|
-
|
|
120
|
-
--background: var(--color-background);
|
|
121
|
-
--foreground: var(--color-foreground);
|
|
122
|
-
--primary: var(--color-primary);
|
|
123
|
-
--primary-foreground: var(--color-primary-foreground);
|
|
124
|
-
--secondary: var(--color-secondary);
|
|
125
|
-
--secondary-foreground: var(--color-secondary-foreground);
|
|
126
|
-
--muted: var(--color-muted);
|
|
127
|
-
--muted-foreground: var(--color-muted-foreground);
|
|
128
|
-
--accent: var(--color-accent);
|
|
129
|
-
--accent-foreground: var(--color-accent-foreground);
|
|
130
|
-
--destructive: var(--color-destructive);
|
|
131
|
-
--destructive-foreground: var(--color-destructive-foreground);
|
|
132
|
-
--border: var(--color-border);
|
|
133
|
-
--input: var(--color-border);
|
|
134
|
-
--ring: var(--color-primary);
|
|
135
|
-
|
|
136
|
-
--popover: var(--color-background);
|
|
137
|
-
--popover-foreground: var(--color-foreground);
|
|
138
|
-
--card: var(--color-background);
|
|
139
|
-
--card-foreground: var(--color-foreground);
|
|
140
|
-
|
|
141
|
-
--sidebar: var(--color-muted);
|
|
142
|
-
--sidebar-foreground: var(--color-muted-foreground);
|
|
143
|
-
--sidebar-primary: var(--color-primary);
|
|
144
|
-
--sidebar-primary-foreground: var(--color-primary-foreground);
|
|
145
|
-
--sidebar-accent: var(--color-accent);
|
|
146
|
-
--sidebar-accent-foreground: var(--color-accent-foreground);
|
|
147
|
-
--sidebar-border: var(--color-border);
|
|
148
|
-
--sidebar-ring: var(--color-primary);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
@layer base {
|
|
152
|
-
* {
|
|
153
|
-
@apply border-border;
|
|
154
|
-
}
|
|
155
|
-
body {
|
|
156
|
-
@apply bg-background text-foreground;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/* Hide scrollbars while preserving scroll functionality */
|
|
161
|
-
@layer utilities {
|
|
162
|
-
.scrollbar-none {
|
|
163
|
-
-ms-overflow-style: none;
|
|
164
|
-
scrollbar-width: none;
|
|
165
|
-
}
|
|
166
|
-
.scrollbar-none::-webkit-scrollbar {
|
|
167
|
-
display: none;
|
|
168
|
-
}
|
|
169
|
-
}
|