@fluid-app/portal-sdk 0.1.396 → 0.1.398
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/dist/{ShopScreen-BWQNGXPa.cjs → ShopScreen-BgKWmhZs.cjs} +1 -1
- package/dist/{ShopScreen-DoguuKOO.mjs → ShopScreen-D-Lms0Ie.mjs} +7 -5
- package/dist/ShopScreen-D-Lms0Ie.mjs.map +1 -0
- package/dist/{ShopScreen-TsDcEzTi.cjs → ShopScreen-DRBvWZwo.cjs} +7 -5
- package/dist/ShopScreen-DRBvWZwo.cjs.map +1 -0
- package/dist/{ShopScreen-DP0hNB7W.mjs → ShopScreen-Dxet0tAl.mjs} +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/screens/ShopScreen.d.ts.map +1 -1
- package/dist/styles/globals.css +196 -0
- package/dist/styles/packages.css +594 -0
- package/dist/styles/theme.css +8 -0
- package/package.json +19 -16
- package/dist/ShopScreen-DoguuKOO.mjs.map +0 -1
- package/dist/ShopScreen-TsDcEzTi.cjs.map +0 -1
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
/* Generated by scripts/flatten-published-styles.mjs — do not edit. */
|
|
2
|
+
@source "../**/*.{js,mjs,cjs}";
|
|
3
|
+
/*
|
|
4
|
+
* Shared package CSS imports — safe to use in any app.
|
|
5
|
+
*
|
|
6
|
+
* Import this when you need the package styles without the portal theme tokens:
|
|
7
|
+
* @import "@fluid-app/portal-sdk/packages.css";
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* ── inlined from @fluid-app/company-switcher-ui/styles/company-switcher.css ── */
|
|
11
|
+
|
|
12
|
+
/* ── inlined from @fluid-app/contacts-ui/styles/contacts.css ── */
|
|
13
|
+
|
|
14
|
+
@keyframes highlight-fade {
|
|
15
|
+
0% {
|
|
16
|
+
background-color: color-mix(
|
|
17
|
+
in oklch,
|
|
18
|
+
var(--primary) 20%,
|
|
19
|
+
var(--background)
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
100% {
|
|
23
|
+
background-color: transparent;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.animate-highlight-fade {
|
|
28
|
+
animation: highlight-fade 2s ease-out;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@keyframes badge-in {
|
|
32
|
+
0% {
|
|
33
|
+
opacity: 0;
|
|
34
|
+
transform: scale(0.7);
|
|
35
|
+
max-width: 0;
|
|
36
|
+
padding-left: 0;
|
|
37
|
+
padding-right: 0;
|
|
38
|
+
margin-left: -4px;
|
|
39
|
+
}
|
|
40
|
+
50% {
|
|
41
|
+
opacity: 1;
|
|
42
|
+
transform: scale(1.05);
|
|
43
|
+
}
|
|
44
|
+
100% {
|
|
45
|
+
opacity: 1;
|
|
46
|
+
transform: scale(1);
|
|
47
|
+
max-width: 200px;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@keyframes badge-out {
|
|
52
|
+
0% {
|
|
53
|
+
opacity: 1;
|
|
54
|
+
transform: scale(1);
|
|
55
|
+
max-width: 200px;
|
|
56
|
+
}
|
|
57
|
+
100% {
|
|
58
|
+
opacity: 0;
|
|
59
|
+
transform: scale(0.7);
|
|
60
|
+
max-width: 0;
|
|
61
|
+
padding-left: 0;
|
|
62
|
+
padding-right: 0;
|
|
63
|
+
margin-left: -4px;
|
|
64
|
+
margin-right: -4px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* Contacts domain design tokens — theme-driven.
|
|
70
|
+
*
|
|
71
|
+
* Every status / badge / activity color is a tint of the theme's --primary
|
|
72
|
+
* (or --destructive, where the semantic *needs* to read as a warning),
|
|
73
|
+
* derived via color-mix() in OKLCH. Because --primary and --destructive
|
|
74
|
+
* already swap between light/dark mode through the theme engine, no
|
|
75
|
+
* separate dark-mode block is needed — these tokens follow automatically.
|
|
76
|
+
*
|
|
77
|
+
* This is a deliberate trade-off: per-category hue differentiation
|
|
78
|
+
* (blue=new, green=active, purple=customer) is lost, but the page reads
|
|
79
|
+
* as cohesive with the tenant's brand. Differentiation now comes from the
|
|
80
|
+
* badge *label* text, not the color.
|
|
81
|
+
*
|
|
82
|
+
* Pattern:
|
|
83
|
+
* - bg: --primary mixed 12% with the page background
|
|
84
|
+
* - foreground: --primary mixed 90% with the page foreground (slight
|
|
85
|
+
* desaturation so text stays comfortable to read)
|
|
86
|
+
* - border: --primary mixed 24% with the page background
|
|
87
|
+
*
|
|
88
|
+
* For destructive variants (danger, engagement-low) we swap --primary
|
|
89
|
+
* for --destructive so they still read as a warning regardless of brand.
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
:root {
|
|
93
|
+
/* ── Theme-tinted badge surfaces (the default for almost every category) */
|
|
94
|
+
--badge-tint-bg: color-mix(in oklch, var(--primary) 12%, var(--background));
|
|
95
|
+
--badge-tint-fg: color-mix(in oklch, var(--primary) 90%, var(--foreground));
|
|
96
|
+
--badge-tint-border: color-mix(
|
|
97
|
+
in oklch,
|
|
98
|
+
var(--primary) 24%,
|
|
99
|
+
var(--background)
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
/* Destructive variant — for danger / engagement-low only */
|
|
103
|
+
--badge-warn-bg: color-mix(
|
|
104
|
+
in oklch,
|
|
105
|
+
var(--destructive) 12%,
|
|
106
|
+
var(--background)
|
|
107
|
+
);
|
|
108
|
+
--badge-warn-fg: color-mix(
|
|
109
|
+
in oklch,
|
|
110
|
+
var(--destructive) 90%,
|
|
111
|
+
var(--foreground)
|
|
112
|
+
);
|
|
113
|
+
--badge-warn-border: color-mix(
|
|
114
|
+
in oklch,
|
|
115
|
+
var(--destructive) 24%,
|
|
116
|
+
var(--background)
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
/* Stronger primary fill — for engagement-top */
|
|
120
|
+
--badge-primary-bg: color-mix(
|
|
121
|
+
in oklch,
|
|
122
|
+
var(--primary) 18%,
|
|
123
|
+
var(--background)
|
|
124
|
+
);
|
|
125
|
+
--badge-primary-fg: color-mix(
|
|
126
|
+
in oklch,
|
|
127
|
+
var(--primary) 95%,
|
|
128
|
+
var(--foreground)
|
|
129
|
+
);
|
|
130
|
+
--badge-primary-border: color-mix(
|
|
131
|
+
in oklch,
|
|
132
|
+
var(--primary) 32%,
|
|
133
|
+
var(--background)
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
/* ── Contact statuses (new, active, lead, customer) — all theme-tinted */
|
|
137
|
+
--status-new: var(--badge-tint-bg);
|
|
138
|
+
--status-new-foreground: var(--badge-tint-fg);
|
|
139
|
+
--status-new-border: var(--badge-tint-border);
|
|
140
|
+
--status-active: var(--badge-tint-bg);
|
|
141
|
+
--status-active-foreground: var(--badge-tint-fg);
|
|
142
|
+
--status-active-border: var(--badge-tint-border);
|
|
143
|
+
--status-lead: var(--badge-tint-bg);
|
|
144
|
+
--status-lead-foreground: var(--badge-tint-fg);
|
|
145
|
+
--status-lead-border: var(--badge-tint-border);
|
|
146
|
+
--status-customer: var(--badge-tint-bg);
|
|
147
|
+
--status-customer-foreground: var(--badge-tint-fg);
|
|
148
|
+
--status-customer-border: var(--badge-tint-border);
|
|
149
|
+
|
|
150
|
+
/* ── Activity types — all theme-tinted */
|
|
151
|
+
--activity-commerce: var(--badge-tint-bg);
|
|
152
|
+
--activity-commerce-foreground: var(--badge-tint-fg);
|
|
153
|
+
--activity-message: var(--badge-tint-bg);
|
|
154
|
+
--activity-message-foreground: var(--badge-tint-fg);
|
|
155
|
+
--activity-video: var(--badge-tint-bg);
|
|
156
|
+
--activity-video-foreground: var(--badge-tint-fg);
|
|
157
|
+
--activity-lead: var(--badge-tint-bg);
|
|
158
|
+
--activity-lead-foreground: var(--badge-tint-fg);
|
|
159
|
+
--activity-pageview: var(--badge-tint-bg);
|
|
160
|
+
--activity-pageview-foreground: var(--badge-tint-fg);
|
|
161
|
+
--activity-event: var(--badge-tint-bg);
|
|
162
|
+
--activity-event-foreground: var(--badge-tint-fg);
|
|
163
|
+
--activity-review: var(--badge-tint-bg);
|
|
164
|
+
--activity-review-foreground: var(--badge-tint-fg);
|
|
165
|
+
--activity-task: var(--badge-tint-bg);
|
|
166
|
+
--activity-task-foreground: var(--badge-tint-fg);
|
|
167
|
+
--activity-announcement: var(--badge-tint-bg);
|
|
168
|
+
--activity-announcement-foreground: var(--badge-tint-fg);
|
|
169
|
+
--activity-points: var(--badge-tint-bg);
|
|
170
|
+
--activity-points-foreground: var(--badge-tint-fg);
|
|
171
|
+
--activity-default: var(--muted);
|
|
172
|
+
--activity-default-foreground: var(--muted-foreground);
|
|
173
|
+
|
|
174
|
+
/* ── Engagement scale — primary tints with stepped emphasis,
|
|
175
|
+
except --engagement-low which uses destructive as a warning */
|
|
176
|
+
--engagement-low: var(--badge-warn-fg);
|
|
177
|
+
--engagement-medium: var(--badge-tint-fg);
|
|
178
|
+
--engagement-high: var(--primary);
|
|
179
|
+
--engagement-very-high: var(--primary);
|
|
180
|
+
--engagement-top: var(--badge-primary-fg);
|
|
181
|
+
|
|
182
|
+
/* ── Avatar accent — muted-on-muted, theme-driven */
|
|
183
|
+
--contact-avatar: var(--muted);
|
|
184
|
+
--contact-avatar-foreground: var(--muted-foreground);
|
|
185
|
+
|
|
186
|
+
--badge-success: var(--badge-tint-bg);
|
|
187
|
+
--badge-success-foreground: var(--badge-tint-fg);
|
|
188
|
+
--badge-success-border: var(--badge-tint-border);
|
|
189
|
+
--badge-warning: var(--badge-tint-bg);
|
|
190
|
+
--badge-warning-foreground: var(--badge-tint-fg);
|
|
191
|
+
--badge-warning-border: var(--badge-tint-border);
|
|
192
|
+
--badge-danger: var(--badge-warn-bg);
|
|
193
|
+
--badge-danger-foreground: var(--badge-warn-fg);
|
|
194
|
+
--badge-danger-border: var(--badge-warn-border);
|
|
195
|
+
--badge-info: var(--badge-tint-bg);
|
|
196
|
+
--badge-info-foreground: var(--badge-tint-fg);
|
|
197
|
+
--badge-info-border: var(--badge-tint-border);
|
|
198
|
+
--badge-notice: var(--badge-tint-bg);
|
|
199
|
+
--badge-notice-foreground: var(--badge-tint-fg);
|
|
200
|
+
--badge-notice-border: var(--badge-tint-border);
|
|
201
|
+
--badge-accent: var(--badge-tint-bg);
|
|
202
|
+
--badge-accent-foreground: var(--badge-tint-fg);
|
|
203
|
+
--badge-accent-border: var(--badge-tint-border);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* ── inlined from @fluid-app/messaging-ui/styles/messaging.css ── */
|
|
207
|
+
|
|
208
|
+
@utility text-messaging-1 {
|
|
209
|
+
font-size: 1.25rem;
|
|
210
|
+
font-weight: 500;
|
|
211
|
+
line-height: 1.4;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@utility text-messaging-2 {
|
|
215
|
+
font-size: 0.8125rem;
|
|
216
|
+
font-weight: 600;
|
|
217
|
+
line-height: 1.53846;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@utility text-messaging-3 {
|
|
221
|
+
font-size: 0.8125rem;
|
|
222
|
+
font-weight: 400;
|
|
223
|
+
line-height: 1.53846;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@utility text-messaging-4 {
|
|
227
|
+
font-size: 0.75rem;
|
|
228
|
+
font-weight: 500;
|
|
229
|
+
line-height: 1.33333;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@utility text-messaging-5 {
|
|
233
|
+
font-size: 0.75rem;
|
|
234
|
+
font-weight: 400;
|
|
235
|
+
line-height: 1.33333;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@utility text-messaging-6 {
|
|
239
|
+
font-size: 0.5625rem;
|
|
240
|
+
font-weight: 500;
|
|
241
|
+
line-height: 1.55556;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
@utility text-messaging-7 {
|
|
245
|
+
font-size: 0.5rem;
|
|
246
|
+
font-weight: 500;
|
|
247
|
+
line-height: 1.5;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@utility messaging-gradient {
|
|
251
|
+
background: linear-gradient(
|
|
252
|
+
27deg,
|
|
253
|
+
#111c28 8.33%,
|
|
254
|
+
#1b2839 25.04%,
|
|
255
|
+
#304054 88.17%,
|
|
256
|
+
#314155 91.67%
|
|
257
|
+
);
|
|
258
|
+
background: linear-gradient(
|
|
259
|
+
27deg,
|
|
260
|
+
color(display-p3 0.0772 0.1087 0.1529) 8.33%,
|
|
261
|
+
color(display-p3 0.1164 0.1572 0.2162) 25.04%,
|
|
262
|
+
color(display-p3 0.2007 0.2475 0.3221) 88.17%,
|
|
263
|
+
color(display-p3 0.2053 0.2525 0.328) 91.67%
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@utility capsize {
|
|
268
|
+
text-box: trim-both cap alphabetic;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@utility children-pointer-events-auto {
|
|
272
|
+
& > * {
|
|
273
|
+
pointer-events: auto;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
@utility list-nested-ordered {
|
|
278
|
+
list-style-type: decimal;
|
|
279
|
+
|
|
280
|
+
& & {
|
|
281
|
+
list-style-type: lower-alpha;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
& & & {
|
|
285
|
+
list-style-type: lower-roman;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
& & & & {
|
|
289
|
+
list-style-type: decimal;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
& & & & & {
|
|
293
|
+
list-style-type: lower-alpha;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
& & & & & & {
|
|
297
|
+
list-style-type: lower-roman;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
& & & & & & & {
|
|
301
|
+
list-style-type: decimal;
|
|
302
|
+
|
|
303
|
+
& & {
|
|
304
|
+
padding-left: 0;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
@utility list-nested-unordered {
|
|
310
|
+
list-style-type: disc;
|
|
311
|
+
|
|
312
|
+
& & {
|
|
313
|
+
list-style-type: circle;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
& & & {
|
|
317
|
+
list-style-type: square;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
& & & & {
|
|
321
|
+
list-style-type: disc;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
& & & & & {
|
|
325
|
+
list-style-type: circle;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
& & & & & & {
|
|
329
|
+
list-style-type: square;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
& & & & & & & {
|
|
333
|
+
list-style-type: disc;
|
|
334
|
+
|
|
335
|
+
& & {
|
|
336
|
+
padding-left: 0;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@utility overlapping-children {
|
|
342
|
+
display: grid;
|
|
343
|
+
|
|
344
|
+
& > * {
|
|
345
|
+
grid-area: 1 / 1 / 2 / 2;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
@utility content-auto {
|
|
350
|
+
content-visibility: auto;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
@utility hide-date-picker {
|
|
354
|
+
/* Select the calendar picker indicator pseudo-element */
|
|
355
|
+
&::-webkit-calendar-picker-indicator {
|
|
356
|
+
/* Hide it */
|
|
357
|
+
display: none;
|
|
358
|
+
|
|
359
|
+
/* Optional: Remove the default appearance */
|
|
360
|
+
-webkit-appearance: none;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/* ── inlined from @fluid-app/orders-ui/styles/orders.css ── */
|
|
365
|
+
|
|
366
|
+
/* ── inlined from @fluid-app/shop-ui/styles/shop.css ── */
|
|
367
|
+
|
|
368
|
+
/* ── inlined from @fluid-app/profile-ui/styles/profile.css ── */
|
|
369
|
+
|
|
370
|
+
/* ── inlined from @fluid-app/fluid-pay-ui/styles/fluid-pay.css ── */
|
|
371
|
+
|
|
372
|
+
/* Animate transform (compositor-only) instead of `left` so the loop never
|
|
373
|
+
* forces layout/reflow per frame. translateX percentages are relative to the
|
|
374
|
+
* pill itself (30% of the track width), so -100% / 167% / 334% land on the
|
|
375
|
+
* same track positions as the previous left: -30% / 50% / 100%. */
|
|
376
|
+
@keyframes threeds-progress-slide {
|
|
377
|
+
0% {
|
|
378
|
+
transform: translateX(-100%);
|
|
379
|
+
}
|
|
380
|
+
50% {
|
|
381
|
+
transform: translateX(167%);
|
|
382
|
+
}
|
|
383
|
+
100% {
|
|
384
|
+
transform: translateX(334%);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
.threeds-progress-pill {
|
|
389
|
+
animation: threeds-progress-slide 1.6s ease-in-out infinite;
|
|
390
|
+
left: 0;
|
|
391
|
+
transform: translateX(-100%);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* Respect WCAG 2.3.3: stop the looping slide for users who request reduced
|
|
395
|
+
* motion. Static centered pill still indicates "in progress" without motion. */
|
|
396
|
+
@media (prefers-reduced-motion: reduce) {
|
|
397
|
+
.threeds-progress-pill {
|
|
398
|
+
animation: none;
|
|
399
|
+
transform: translateX(117%);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* ── inlined from @fluid-app/shareables-ui/styles/shareables.css ── */
|
|
404
|
+
|
|
405
|
+
/* ── inlined from @fluid-app/subscriptions-ui/styles/subscriptions.css ── */
|
|
406
|
+
|
|
407
|
+
/* ── inlined from @fluid-app/mysite-ui/styles/mysite.css ── */
|
|
408
|
+
|
|
409
|
+
/* ── inlined from @fluid-app/ui-primitives/styles/ui-primitives.css ── */
|
|
410
|
+
/* ui-primitives: source-scan directive + canonical Tailwind semantic tokens for the Fluid platform. */
|
|
411
|
+
/* Apps consume via `@import "@fluid-app/ui-primitives/styles/ui-primitives.css"`. */
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
:root {
|
|
415
|
+
--background: oklch(1 0 0);
|
|
416
|
+
--foreground: oklch(0.145 0 0);
|
|
417
|
+
--card: oklch(1 0 0);
|
|
418
|
+
--card-foreground: oklch(0.145 0 0);
|
|
419
|
+
--popover: oklch(1 0 0);
|
|
420
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
421
|
+
--primary: oklch(0.546 0.245 262.881); /* blue-600 */
|
|
422
|
+
--primary-foreground: oklch(1 0 0); /* white for contrast */
|
|
423
|
+
--secondary: oklch(0.97 0 0);
|
|
424
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
425
|
+
--muted: oklch(0.97 0 0);
|
|
426
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
427
|
+
--accent: oklch(0.97 0 0);
|
|
428
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
429
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
430
|
+
--destructive-foreground: oklch(0.985 0 0);
|
|
431
|
+
--border: oklch(0.922 0 0);
|
|
432
|
+
--input: oklch(0.922 0 0);
|
|
433
|
+
--ring: oklch(0.708 0 0);
|
|
434
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
435
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
436
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
437
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
438
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
439
|
+
--radius: 0.625rem;
|
|
440
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
441
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
442
|
+
--radius-lg: var(--radius);
|
|
443
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
444
|
+
--sidebar: oklch(0.985 0 0);
|
|
445
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
446
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
447
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
448
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
449
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
450
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
451
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
452
|
+
--contrast: oklch(0.205 0 0); /* gray-900 */
|
|
453
|
+
--input-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
@theme inline {
|
|
457
|
+
--color-background: var(--background);
|
|
458
|
+
--color-foreground: var(--foreground);
|
|
459
|
+
--color-card: var(--card);
|
|
460
|
+
--color-card-foreground: var(--card-foreground);
|
|
461
|
+
--color-popover: var(--popover);
|
|
462
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
463
|
+
--color-primary: var(--primary);
|
|
464
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
465
|
+
--color-secondary: var(--secondary);
|
|
466
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
467
|
+
--color-muted: var(--muted);
|
|
468
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
469
|
+
--color-accent: var(--accent);
|
|
470
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
471
|
+
--color-destructive: var(--destructive);
|
|
472
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
473
|
+
--color-border: var(--border);
|
|
474
|
+
--color-input: var(--input);
|
|
475
|
+
--color-ring: var(--ring);
|
|
476
|
+
--color-chart-1: var(--chart-1);
|
|
477
|
+
--color-chart-2: var(--chart-2);
|
|
478
|
+
--color-chart-3: var(--chart-3);
|
|
479
|
+
--color-chart-4: var(--chart-4);
|
|
480
|
+
--color-chart-5: var(--chart-5);
|
|
481
|
+
--color-sidebar: var(--sidebar);
|
|
482
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
483
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
484
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
485
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
486
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
487
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
488
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
489
|
+
--color-contrast: var(--contrast);
|
|
490
|
+
--shadow-input: var(--input-shadow);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/* ── inlined from @fluid-app/portal-widgets/globals.css ── */
|
|
494
|
+
/* ── inlined from @fluid-app/portal-core/globals.css ── */
|
|
495
|
+
|
|
496
|
+
@theme inline {
|
|
497
|
+
--font-body: var(--font-body);
|
|
498
|
+
--font-header: var(--font-header);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
@import "tw-animate-css";
|
|
502
|
+
@config "../../tailwind.config.ts";
|
|
503
|
+
/* prettier-ignore */
|
|
504
|
+
@source inline("{even:,placeholder:,hover:,}{bg,text,border}-{background,foreground,primary,secondary,accent,border,muted,destructive}{-foreground,}{/{5..100..5},}");
|
|
505
|
+
/* CarouselWidget composes `from-${frameColor}`, `via-${frameColor}/65`,
|
|
506
|
+
`to-${frameColor}/10`, and `ring-${headerColor}/15` at runtime.
|
|
507
|
+
These dynamic compositions can't be detected by source scanning, so the
|
|
508
|
+
utilities must be pre-generated explicitly. */
|
|
509
|
+
/* prettier-ignore */
|
|
510
|
+
@source inline("{from,via,to}-{background,foreground,primary,secondary,accent,muted,destructive}{/{5..100..5},}");
|
|
511
|
+
/* prettier-ignore */
|
|
512
|
+
@source inline("ring-{background,foreground,primary,secondary,accent,muted,destructive}{/{5..100..5},}");
|
|
513
|
+
@source inline("border-{0,2,4}");
|
|
514
|
+
@source inline("p{x,y,t,b,}-{0..10..2}");
|
|
515
|
+
@source inline("text-{2xl,xl,lg,md,base,sm,xs}");
|
|
516
|
+
@source inline("font-{normal,medium,semibold,bold}");
|
|
517
|
+
@source inline("rounded-{none,sm,md,lg,xl,full}");
|
|
518
|
+
@source inline("flex-{row,col,row-reverse,col-reverse}");
|
|
519
|
+
@source inline("justify-{start,end,center,between,around,evenly}");
|
|
520
|
+
@source inline("items-{start,end,center,stretch,baseline}");
|
|
521
|
+
@source inline("grid-cols-{{1..12..1}}");
|
|
522
|
+
@source inline("grid-rows-{auto,{1..12..1}}");
|
|
523
|
+
@source inline("gap-{1,{0..8..2}}");
|
|
524
|
+
@source inline("h-{2,4,8,16,24,32}");
|
|
525
|
+
@source inline("object-{contain,cover,fill,none}");
|
|
526
|
+
@source inline("aspect-{square,video}");
|
|
527
|
+
@source inline("@md:grid-cols-{2,3}");
|
|
528
|
+
|
|
529
|
+
/* Editorial keyframes used by CarouselWidget — kept in this file so the widget
|
|
530
|
+
remains a single-file change in this PR. Other redesigns add their own. */
|
|
531
|
+
@keyframes fluidCarouselProgressFill {
|
|
532
|
+
from {
|
|
533
|
+
width: 0%;
|
|
534
|
+
}
|
|
535
|
+
to {
|
|
536
|
+
width: 100%;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
@keyframes fluidCarouselKenBurns {
|
|
541
|
+
from {
|
|
542
|
+
transform: scale(1.06);
|
|
543
|
+
}
|
|
544
|
+
to {
|
|
545
|
+
transform: scale(1);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
@keyframes fluidCarouselTextRise {
|
|
550
|
+
from {
|
|
551
|
+
opacity: 0;
|
|
552
|
+
transform: translateY(14px);
|
|
553
|
+
}
|
|
554
|
+
to {
|
|
555
|
+
opacity: 1;
|
|
556
|
+
transform: translateY(0);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
@keyframes fluidVideoPopIn {
|
|
561
|
+
from {
|
|
562
|
+
opacity: 0;
|
|
563
|
+
transform: scale(0.8);
|
|
564
|
+
}
|
|
565
|
+
to {
|
|
566
|
+
opacity: 1;
|
|
567
|
+
transform: scale(1);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
/* ── inlined from @fluid-app/portal-preview/styles/preview.css ── */
|
|
572
|
+
|
|
573
|
+
/* Vendor-prefix overrides that Tailwind can't express */
|
|
574
|
+
.bp-select {
|
|
575
|
+
appearance: none;
|
|
576
|
+
-webkit-appearance: none;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.bp-number-input {
|
|
580
|
+
-moz-appearance: textfield;
|
|
581
|
+
}
|
|
582
|
+
.bp-number-input::-webkit-inner-spin-button,
|
|
583
|
+
.bp-number-input::-webkit-outer-spin-button {
|
|
584
|
+
-webkit-appearance: none;
|
|
585
|
+
margin: 0;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
.bp-scrub-row {
|
|
589
|
+
user-select: none;
|
|
590
|
+
-webkit-user-select: none;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/* ── inlined from @fluid-app/portal-react/globals.css ── */
|
|
594
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* Generated by scripts/flatten-published-styles.mjs — do not edit. */
|
|
2
|
+
/*
|
|
3
|
+
* Portal SDK theme compatibility entrypoint.
|
|
4
|
+
*
|
|
5
|
+
* Theme tokens and Tailwind theme registration live in globals.css today.
|
|
6
|
+
* This file exists so @fluid-app/portal-sdk/theme.css resolves consistently
|
|
7
|
+
* for consumers that want a dedicated theme import path.
|
|
8
|
+
*/
|
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.398",
|
|
4
4
|
"description": "SDK for building custom Fluid portals",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"sideEffects": [
|
|
11
11
|
"./styles/globals.css",
|
|
12
12
|
"./styles/packages.css",
|
|
13
|
-
"./styles/theme.css"
|
|
13
|
+
"./styles/theme.css",
|
|
14
|
+
"./dist/styles/globals.css",
|
|
15
|
+
"./dist/styles/packages.css",
|
|
16
|
+
"./dist/styles/theme.css"
|
|
14
17
|
],
|
|
15
18
|
"main": "./dist/index.cjs",
|
|
16
19
|
"module": "./dist/index.mjs",
|
|
@@ -31,9 +34,9 @@
|
|
|
31
34
|
"require": "./dist/index.cjs",
|
|
32
35
|
"types": "./dist/index.d.mts"
|
|
33
36
|
},
|
|
34
|
-
"./globals.css": "./styles/globals.css",
|
|
35
|
-
"./packages.css": "./styles/packages.css",
|
|
36
|
-
"./theme.css": "./styles/theme.css",
|
|
37
|
+
"./globals.css": "./dist/styles/globals.css",
|
|
38
|
+
"./packages.css": "./dist/styles/packages.css",
|
|
39
|
+
"./theme.css": "./dist/styles/theme.css",
|
|
37
40
|
"./vite": {
|
|
38
41
|
"import": {
|
|
39
42
|
"types": "./dist/vite/index.d.mts",
|
|
@@ -86,19 +89,19 @@
|
|
|
86
89
|
"@fluid-app/address-fields": "0.1.0",
|
|
87
90
|
"@fluid-app/auth": "0.1.0",
|
|
88
91
|
"@fluid-app/cart-ui": "0.1.25",
|
|
89
|
-
"@fluid-app/contacts-core": "0.1.0",
|
|
90
92
|
"@fluid-app/company-switcher-ui": "0.1.0",
|
|
91
93
|
"@fluid-app/contacts-ui": "0.1.0",
|
|
92
|
-
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
93
|
-
"@fluid-app/fluid-pay-core": "0.1.0",
|
|
94
94
|
"@fluid-app/file-picker-core": "0.1.0",
|
|
95
|
-
"@fluid-app/fluid-pay-
|
|
95
|
+
"@fluid-app/fluid-pay-core": "0.1.0",
|
|
96
|
+
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
97
|
+
"@fluid-app/contacts-core": "0.1.0",
|
|
96
98
|
"@fluid-app/i18n": "0.1.0",
|
|
97
99
|
"@fluid-app/messaging-api-client": "0.1.0",
|
|
98
|
-
"@fluid-app/
|
|
100
|
+
"@fluid-app/fluid-pay-ui": "0.1.0",
|
|
99
101
|
"@fluid-app/messaging-ui": "0.1.0",
|
|
100
|
-
"@fluid-app/
|
|
102
|
+
"@fluid-app/messaging-core": "0.1.0",
|
|
101
103
|
"@fluid-app/mysite-core": "0.1.0",
|
|
104
|
+
"@fluid-app/mysite-ui": "0.1.0",
|
|
102
105
|
"@fluid-app/orders-core": "0.1.0",
|
|
103
106
|
"@fluid-app/orders-ui": "0.1.0",
|
|
104
107
|
"@fluid-app/payments-display": "0.1.0",
|
|
@@ -111,19 +114,19 @@
|
|
|
111
114
|
"@fluid-app/portal-tenant-content-api-client": "0.1.0",
|
|
112
115
|
"@fluid-app/portal-tenant-mysite-api-client": "0.1.0",
|
|
113
116
|
"@fluid-app/portal-tenant-pay-api-client": "0.1.0",
|
|
114
|
-
"@fluid-app/portal-tenant-store-api-client": "0.1.0",
|
|
115
|
-
"@fluid-app/portal-widgets": "0.1.22",
|
|
116
117
|
"@fluid-app/products-api-client": "0.1.0",
|
|
117
|
-
"@fluid-app/
|
|
118
|
+
"@fluid-app/portal-tenant-store-api-client": "0.1.0",
|
|
118
119
|
"@fluid-app/products-core": "0.1.0",
|
|
120
|
+
"@fluid-app/profile-core": "0.1.0",
|
|
121
|
+
"@fluid-app/portal-widgets": "0.1.22",
|
|
119
122
|
"@fluid-app/profile-ui": "0.1.0",
|
|
120
123
|
"@fluid-app/query-persister": "0.1.0",
|
|
121
124
|
"@fluid-app/shareables-core": "0.1.0",
|
|
122
125
|
"@fluid-app/shareables-ui": "0.1.0",
|
|
123
126
|
"@fluid-app/shop-core": "0.1.0",
|
|
124
127
|
"@fluid-app/shop-ui": "0.1.0",
|
|
125
|
-
"@fluid-app/subscriptions-core": "0.1.0",
|
|
126
128
|
"@fluid-app/store-core": "0.1.0",
|
|
129
|
+
"@fluid-app/subscriptions-core": "0.1.0",
|
|
127
130
|
"@fluid-app/subscriptions-ui": "0.1.0",
|
|
128
131
|
"@fluid-app/typescript-config": "0.0.0",
|
|
129
132
|
"@fluid-app/ui-primitives": "0.1.13",
|
|
@@ -150,7 +153,7 @@
|
|
|
150
153
|
},
|
|
151
154
|
"scripts": {
|
|
152
155
|
"transit": "tsgo --emitDeclarationOnly",
|
|
153
|
-
"build": "tsdown",
|
|
156
|
+
"build": "tsdown && node scripts/flatten-published-styles.mjs",
|
|
154
157
|
"dev": "tsdown --watch",
|
|
155
158
|
"typecheck": "tsgo --noEmit",
|
|
156
159
|
"lint": "oxlint --deny-warnings",
|