@xenide-io/the-old-ui-theme 0.10.0 → 0.11.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.
- package/dist/{Chip-DKT-82Lf.d.mts → Chip-Dw2g2t8D.d.mts} +14 -2
- package/dist/{Chip-DKT-82Lf.d.ts → Chip-Dw2g2t8D.d.ts} +14 -2
- package/dist/{chunk-LHE4ROON.mjs → chunk-RIPGN6FG.mjs} +412 -61
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +355 -23
- package/dist/index.mjs +11 -3
- package/dist/suite-analytics--Mf1RZbw.d.mts +29 -0
- package/dist/suite-analytics--Mf1RZbw.d.ts +29 -0
- package/dist/suite.d.mts +14 -4
- package/dist/suite.d.ts +14 -4
- package/dist/suite.js +920 -513
- package/dist/suite.mjs +898 -523
- package/dist/ui.d.mts +2 -2
- package/dist/ui.d.ts +2 -2
- package/dist/ui.js +401 -66
- package/dist/ui.mjs +3 -1
- package/package.json +1 -1
- package/src/app/globals.css +57 -1
- package/src/components/ui/BrandSpinner.tsx +256 -0
- package/src/components/ui/CodeBlock.tsx +11 -1
- package/src/components/ui/Marketing.tsx +17 -1
- package/src/components/ui/SettingsLayout.tsx +4 -0
- package/src/components/ui/Table.tsx +32 -9
- package/src/components/ui/brand-spinner.test.tsx +62 -0
- package/src/components/ui/index.ts +7 -0
- package/src/components/ui/table.test.tsx +31 -4
- package/src/styles/suite-skin.css +78 -46
- package/src/suite/components/ai-draft-editor.tsx +184 -0
- package/src/suite/components/ai-panel-workflows.test.tsx +179 -0
- package/src/suite/components/ai-panel.tsx +184 -14
- package/src/suite/components/app-switcher.tsx +13 -0
- package/src/suite/components/command-palette-host.tsx +20 -2
- package/src/suite/components/suite-notification-bell.tsx +23 -2
- package/src/suite/components/suite-notification-settings.tsx +11 -0
- package/src/suite/components/suite-settings-layout.tsx +1 -1
- package/src/suite/components/suite-settings-mobile-nav.tsx +5 -1
- package/src/suite/components/suite-sidebar.tsx +2 -2
- package/src/suite/components/theme-provider.tsx +2 -0
- package/src/suite/components/today-ui.tsx +33 -28
- package/src/suite/index.ts +8 -0
- package/src/suite/lib/suite-notifications.tsx +5 -0
|
@@ -282,28 +282,33 @@ export function TodayHero({
|
|
|
282
282
|
message = "Take a nice, deep breath.",
|
|
283
283
|
brief,
|
|
284
284
|
briefMeta,
|
|
285
|
+
action,
|
|
285
286
|
}: {
|
|
286
287
|
message?: ReactNode;
|
|
287
288
|
/** AI / local focus brief under the greeting. */
|
|
288
289
|
brief?: ReactNode;
|
|
289
290
|
briefMeta?: ReactNode;
|
|
291
|
+
action?: ReactNode;
|
|
290
292
|
}) {
|
|
291
293
|
return (
|
|
292
|
-
<div className="
|
|
293
|
-
<
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
<
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
294
|
+
<div className="flex min-w-0 flex-col gap-5 border-b border-ph-border-subtle pb-6 sm:flex-row sm:items-center sm:justify-between">
|
|
295
|
+
<div className="min-w-0 flex-1">
|
|
296
|
+
<p
|
|
297
|
+
key={typeof message === "string" ? message : "hero"}
|
|
298
|
+
className="today-hero max-w-2xl font-display text-lg font-semibold tracking-tight text-ph-ink sm:text-xl"
|
|
299
|
+
>
|
|
300
|
+
{message}
|
|
301
|
+
</p>
|
|
302
|
+
{brief ? (
|
|
303
|
+
<div className="mt-2 max-w-xl" data-test="today-focus-brief">
|
|
304
|
+
<p className="text-sm leading-relaxed text-ph-subtle">{brief}</p>
|
|
305
|
+
{briefMeta ? (
|
|
306
|
+
<p className="mt-1.5 text-xs text-ph-mutedtext">{briefMeta}</p>
|
|
307
|
+
) : null}
|
|
308
|
+
</div>
|
|
309
|
+
) : null}
|
|
310
|
+
</div>
|
|
311
|
+
{action ? <div className="w-full shrink-0 sm:w-72">{action}</div> : null}
|
|
307
312
|
</div>
|
|
308
313
|
);
|
|
309
314
|
}
|
|
@@ -415,12 +420,12 @@ export function TodayEmptyAction({
|
|
|
415
420
|
}) {
|
|
416
421
|
return (
|
|
417
422
|
<div
|
|
418
|
-
className="rounded-[var(--ph-radius-surface)] border border-
|
|
423
|
+
className="rounded-[var(--ph-radius-surface)] border border-ph-border-subtle bg-ph-surface px-5 py-6 text-left"
|
|
419
424
|
data-test={dataTest}
|
|
420
425
|
>
|
|
421
426
|
<p className="text-sm font-semibold text-ph-ink">{title}</p>
|
|
422
427
|
{description ? (
|
|
423
|
-
<p className="
|
|
428
|
+
<p className="mt-1.5 max-w-md text-sm leading-relaxed text-ph-subtle">
|
|
424
429
|
{description}
|
|
425
430
|
</p>
|
|
426
431
|
) : null}
|
|
@@ -428,7 +433,7 @@ export function TodayEmptyAction({
|
|
|
428
433
|
href ? (
|
|
429
434
|
<a
|
|
430
435
|
href={href}
|
|
431
|
-
className="
|
|
436
|
+
className="ph-btn ph-btn-link mt-3 text-sm"
|
|
432
437
|
>
|
|
433
438
|
{actionLabel}
|
|
434
439
|
</a>
|
|
@@ -436,7 +441,7 @@ export function TodayEmptyAction({
|
|
|
436
441
|
<button
|
|
437
442
|
type="button"
|
|
438
443
|
onClick={onClick}
|
|
439
|
-
className="
|
|
444
|
+
className="ph-btn ph-btn-link mt-3 text-sm"
|
|
440
445
|
>
|
|
441
446
|
{actionLabel}
|
|
442
447
|
</button>
|
|
@@ -446,7 +451,7 @@ export function TodayEmptyAction({
|
|
|
446
451
|
);
|
|
447
452
|
}
|
|
448
453
|
|
|
449
|
-
/**
|
|
454
|
+
/** Daily work queue and contextual rail; both stay in the page's scroll flow. */
|
|
450
455
|
export function TodayLayout({
|
|
451
456
|
primary,
|
|
452
457
|
main,
|
|
@@ -464,10 +469,10 @@ export function TodayLayout({
|
|
|
464
469
|
data-test="today-layout"
|
|
465
470
|
>
|
|
466
471
|
{primary ? <div className="max-w-md">{primary}</div> : null}
|
|
467
|
-
<div className="grid gap-
|
|
472
|
+
<div className={cn("grid gap-8 lg:items-start", aside && "lg:grid-cols-[minmax(0,1fr)_minmax(15rem,19rem)]")}>
|
|
468
473
|
<div className="min-w-0 space-y-8">{main}</div>
|
|
469
474
|
{aside ? (
|
|
470
|
-
<aside className="
|
|
475
|
+
<aside className="min-w-0 space-y-5">
|
|
471
476
|
{aside}
|
|
472
477
|
</aside>
|
|
473
478
|
) : null}
|
|
@@ -570,19 +575,19 @@ export function TodaySection({
|
|
|
570
575
|
children: ReactNode;
|
|
571
576
|
}) {
|
|
572
577
|
return (
|
|
573
|
-
<section data-test={testId} className="space-y-
|
|
578
|
+
<section data-test={testId} className="space-y-4">
|
|
574
579
|
<div className="flex items-start justify-between gap-4">
|
|
575
|
-
<div className="flex min-w-0 items-start gap-3
|
|
580
|
+
<div className="flex min-w-0 items-start gap-3">
|
|
576
581
|
<span
|
|
577
582
|
className={cn(
|
|
578
|
-
"inline-flex h-
|
|
583
|
+
"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--ph-radius-control)]",
|
|
579
584
|
iconClassName ?? "bg-ph-muted text-ph-ink",
|
|
580
585
|
)}
|
|
581
586
|
>
|
|
582
|
-
<Icon className="h-
|
|
587
|
+
<Icon className="h-4 w-4" aria-hidden />
|
|
583
588
|
</span>
|
|
584
589
|
<div className="min-w-0 pt-0.5">
|
|
585
|
-
<h2 className="font-display text-lg font-
|
|
590
|
+
<h2 className="font-display text-lg font-semibold tracking-tight text-ph-ink">
|
|
586
591
|
{title}
|
|
587
592
|
</h2>
|
|
588
593
|
{description ? (
|
|
@@ -609,7 +614,7 @@ export function TodayPanel({
|
|
|
609
614
|
return (
|
|
610
615
|
<div
|
|
611
616
|
className={cn(
|
|
612
|
-
"rounded-[var(--ph-radius-surface)] border border-ph-border
|
|
617
|
+
"today-panel rounded-[var(--ph-radius-surface)] border border-ph-border-subtle bg-ph-surface p-5",
|
|
613
618
|
className,
|
|
614
619
|
)}
|
|
615
620
|
>
|
package/src/suite/index.ts
CHANGED
|
@@ -84,6 +84,7 @@ export {
|
|
|
84
84
|
type SuiteAiChatMessage,
|
|
85
85
|
type SuiteAskAiOpenDetail,
|
|
86
86
|
} from "./components/ai-panel";
|
|
87
|
+
export { SuiteAiDraftEditor, suiteAiDraftFields } from "./components/ai-draft-editor";
|
|
87
88
|
export {
|
|
88
89
|
SuiteWorkspaceSwitcher,
|
|
89
90
|
type SuiteWorkspaceEntry,
|
|
@@ -199,3 +200,10 @@ export {
|
|
|
199
200
|
type PaletteIcon,
|
|
200
201
|
type PaletteLibrary,
|
|
201
202
|
} from "./lib/palette-api";
|
|
203
|
+
export {
|
|
204
|
+
SUITE_ANALYTICS_EVENT,
|
|
205
|
+
subscribeSuiteAnalytics,
|
|
206
|
+
trackSuiteEvent,
|
|
207
|
+
type SuiteAnalyticsEventDetail,
|
|
208
|
+
type SuiteAnalyticsProperties,
|
|
209
|
+
} from "../lib/suite-analytics";
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
} from "react";
|
|
12
12
|
import { useRouter } from "next/navigation";
|
|
13
13
|
|
|
14
|
+
import { trackSuiteEvent } from "../../lib/suite-analytics";
|
|
14
15
|
import {
|
|
15
16
|
resolveSuiteNotificationHref,
|
|
16
17
|
suiteAppBaseUrl,
|
|
@@ -209,6 +210,10 @@ export function SuiteNotificationsProvider({
|
|
|
209
210
|
suiteAppBaseUrl("shellstack"),
|
|
210
211
|
);
|
|
211
212
|
launchUrl.searchParams.set("next", path);
|
|
213
|
+
trackSuiteEvent("Cross-App Switch", {
|
|
214
|
+
target_app: sourceApp,
|
|
215
|
+
success: true,
|
|
216
|
+
});
|
|
212
217
|
window.location.assign(launchUrl.toString());
|
|
213
218
|
return;
|
|
214
219
|
}
|