@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-app/portal-sdk",
3
- "version": "0.1.51",
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/contacts-ui": "0.1.0",
68
- "@fluid-app/fluidos-api-client": "0.1.0",
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/company-switcher-core": "0.1.0",
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/messaging-core": "0.1.0",
75
- "@fluid-app/mysite-ui": "0.1.0",
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/user-notes-api-client": "0.1.0",
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": {
@@ -1,187 +1,185 @@
1
1
  /*
2
- * Portal SDK – combined CSS for widget safelist patterns, animations,
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
- /* ── Tailwind safelist patterns (portal-widgets) ─────────────────────────────
10
- * Dynamic class names constructed at runtime by the widget/builder system.
11
- * Tailwind can't detect these by scanning JS, so we declare them explicitly.
12
- */
13
- /* prettier-ignore */
14
- @source inline("{even:,placeholder:,hover:,}{bg,text,border}-{background,foreground,primary,secondary,accent,border,muted,destructive}{-foreground,}{-{100..900..100},}{/{10..100..10},}");
15
- @source inline("border-{0,2,4}");
16
- @source inline("p{x,y,t,b,}-{0..10..2}");
17
- @source inline("text-{2xl,xl,lg,md,base,sm,xs}");
18
- @source inline("rounded-{none,sm,md,lg,xl,full}");
19
- @source inline("flex-{row,col,row-reverse,col-reverse}");
20
- @source inline("justify-{start,end,center,between,around,evenly}");
21
- @source inline("items-{start,end,center,stretch,baseline}");
22
- @source inline("grid-cols-{1..12..1}");
23
- @source inline("grid-rows-{auto,{1..12..1}}");
24
- @source inline("gap-{1,{0..8..2}}");
25
- @source inline("h-{2,4,8,16,24,32}");
26
- @source inline("object-{contain,cover,fill,none}");
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
- @utility text-messaging-3 {
50
- font-size: 0.8125rem;
51
- font-weight: 400;
52
- line-height: 1.53846;
53
- }
54
-
55
- @utility text-messaging-4 {
56
- font-size: 0.75rem;
57
- font-weight: 500;
58
- line-height: 1.33333;
59
- }
60
-
61
- @utility text-messaging-5 {
62
- font-size: 0.75rem;
63
- font-weight: 400;
64
- line-height: 1.33333;
65
- }
66
-
67
- @utility text-messaging-6 {
68
- font-size: 0.5625rem;
69
- font-weight: 500;
70
- line-height: 1.55556;
71
- }
72
-
73
- @utility text-messaging-7 {
74
- font-size: 0.5rem;
75
- font-weight: 500;
76
- line-height: 1.5;
77
- }
78
-
79
- @utility messaging-gradient {
80
- background: linear-gradient(
81
- 27deg,
82
- #111c28 8.33%,
83
- #1b2839 25.04%,
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
- @utility capsize {
97
- text-box: trim-both cap alphabetic;
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
- @utility children-pointer-events-auto {
101
- & > * {
102
- pointer-events: auto;
103
- }
104
- }
105
-
106
- @utility list-nested-ordered {
107
- list-style-type: decimal;
108
-
109
- & & {
110
- list-style-type: lower-alpha;
111
- }
112
-
113
- & & & {
114
- list-style-type: lower-roman;
115
- }
116
-
117
- & & & & {
118
- list-style-type: decimal;
119
- }
120
-
121
- & & & & & {
122
- list-style-type: lower-alpha;
123
- }
124
-
125
- & & & & & & {
126
- list-style-type: lower-roman;
127
- }
128
-
129
- & & & & & & & {
130
- list-style-type: decimal;
131
-
132
- & & {
133
- padding-left: 0;
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
- @utility list-nested-unordered {
139
- list-style-type: disc;
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
- @utility overlapping-children {
171
- display: grid;
172
-
173
- & > * {
174
- grid-area: 1 / 1 / 2 / 2;
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
- }