@xenide-io/the-old-ui-theme 0.9.17 → 0.10.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-BzuNgJIa.d.mts → Chip-DKT-82Lf.d.mts} +5 -3
- package/dist/{Chip-BzuNgJIa.d.ts → Chip-DKT-82Lf.d.ts} +5 -3
- package/dist/{chunk-6SVJAU5K.mjs → chunk-LHE4ROON.mjs} +977 -521
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +138 -99
- package/dist/index.mjs +1 -1
- package/dist/suite.d.mts +23 -1
- package/dist/suite.d.ts +23 -1
- package/dist/suite.js +4250 -4041
- package/dist/suite.mjs +1008 -795
- package/dist/tailwind-preset.js +10 -1
- package/dist/tailwind-preset.mjs +10 -1
- package/dist/ui.d.mts +33 -4
- package/dist/ui.d.ts +33 -4
- package/dist/ui.js +1024 -566
- package/dist/ui.mjs +13 -1
- package/docs/macos-identity-audit.md +279 -0
- package/package.json +1 -1
- package/src/app/globals.css +334 -44
- package/src/components/ui/Accordion.tsx +4 -7
- package/src/components/ui/Avatar.tsx +5 -5
- package/src/components/ui/Calendar.tsx +7 -7
- package/src/components/ui/CodeBlock.tsx +3 -10
- package/src/components/ui/CollapsibleSection.tsx +4 -4
- package/src/components/ui/CommandPalette.tsx +7 -10
- package/src/components/ui/EmptyState.tsx +2 -2
- package/src/components/ui/Input.tsx +1 -1
- package/src/components/ui/Marketing.tsx +128 -0
- package/src/components/ui/MarketingIllustrations.tsx +287 -0
- package/src/components/ui/Panel.tsx +1 -1
- package/src/components/ui/SegmentedControl.tsx +59 -13
- package/src/components/ui/ShowcaseWrapper.tsx +3 -3
- package/src/components/ui/Table.tsx +18 -6
- package/src/components/ui/Typography.tsx +4 -4
- package/src/components/ui/avatar-stat.test.tsx +14 -1
- package/src/components/ui/index.ts +13 -12
- package/src/components/ui/interaction-primitives.test.tsx +12 -6
- package/src/components/ui/marketing.test.tsx +39 -0
- package/src/components/ui/table.test.tsx +20 -0
- package/src/styles/suite-skin.css +405 -40
- package/src/styles/themes.css +45 -45
- package/src/styles/typography.css +25 -1
- package/src/suite/components/ai-panel.tsx +17 -17
- package/src/suite/components/app-switcher.tsx +9 -9
- package/src/suite/components/suite-app-layout.tsx +7 -4
- package/src/suite/components/suite-bottom-nav.tsx +1 -1
- package/src/suite/components/suite-clients-projects-directory.tsx +6 -6
- package/src/suite/components/suite-entity-icon.tsx +3 -3
- package/src/suite/components/suite-integration-picker.tsx +7 -7
- package/src/suite/components/suite-integration-rules.tsx +5 -5
- package/src/suite/components/suite-layout.test.tsx +32 -3
- package/src/suite/components/suite-layout.tsx +4 -4
- package/src/suite/components/suite-mobile-drawer.tsx +2 -2
- package/src/suite/components/suite-mobile-header.tsx +1 -1
- package/src/suite/components/suite-notification-bell.tsx +4 -4
- package/src/suite/components/suite-notification-settings.tsx +171 -0
- package/src/suite/components/suite-palette-library.test.tsx +46 -0
- package/src/suite/components/suite-palette-library.tsx +82 -15
- package/src/suite/components/suite-settings-layout.tsx +2 -2
- package/src/suite/components/suite-settings-mobile-nav.tsx +5 -9
- package/src/suite/components/suite-sidebar.test.tsx +39 -0
- package/src/suite/components/suite-sidebar.tsx +41 -19
- package/src/suite/components/suite-skeleton.tsx +6 -6
- package/src/suite/components/suite-user-menu.tsx +2 -2
- package/src/suite/components/today-calibrating.tsx +3 -3
- package/src/suite/components/today-ui.tsx +12 -12
- package/src/suite/components/workspace-switcher.tsx +3 -3
- package/src/suite/index.ts +6 -0
- package/tailwind-preset.ts +9 -0
|
@@ -65,7 +65,7 @@ export function SuiteSkeletonCard({
|
|
|
65
65
|
return (
|
|
66
66
|
<div
|
|
67
67
|
className={cn(
|
|
68
|
-
'ph-skeleton-card animate-[skeleton-stagger_0.5s_ease-out_both] rounded-
|
|
68
|
+
'ph-skeleton-card animate-[skeleton-stagger_0.5s_ease-out_both] rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-surface p-6',
|
|
69
69
|
className,
|
|
70
70
|
)}
|
|
71
71
|
aria-hidden
|
|
@@ -75,7 +75,7 @@ export function SuiteSkeletonCard({
|
|
|
75
75
|
className="mb-5 flex items-center gap-3 animate-[skeleton-stagger_0.5s_ease-out_both]"
|
|
76
76
|
style={{ animationDelay: '100ms' }}
|
|
77
77
|
>
|
|
78
|
-
<div className="ph-skeleton h-10 w-10 rounded-
|
|
78
|
+
<div className="ph-skeleton h-10 w-10 rounded-[var(--ph-radius-control)]" />
|
|
79
79
|
<div className="flex-1 space-y-2">
|
|
80
80
|
<div className="ph-skeleton h-4 w-1/3" />
|
|
81
81
|
<div className="ph-skeleton h-3 w-1/2" />
|
|
@@ -115,8 +115,8 @@ export function SuiteSkeletonList({
|
|
|
115
115
|
className="animate-[skeleton-stagger_0.6s_ease-out_both]"
|
|
116
116
|
style={{ animationDelay: `${index * 100}ms` }}
|
|
117
117
|
>
|
|
118
|
-
<div className="flex items-center gap-3 rounded-
|
|
119
|
-
<div className="ph-skeleton h-10 w-10 rounded-
|
|
118
|
+
<div className="flex items-center gap-3 rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-surface p-4">
|
|
119
|
+
<div className="ph-skeleton h-10 w-10 rounded-[var(--ph-radius-control)]" />
|
|
120
120
|
<div className="min-w-0 flex-1 space-y-2">
|
|
121
121
|
<div className="ph-skeleton h-3.5 w-3/4" />
|
|
122
122
|
<div className="ph-skeleton h-3 w-1/2" />
|
|
@@ -152,7 +152,7 @@ export function SuiteEmptyState({
|
|
|
152
152
|
return (
|
|
153
153
|
<div
|
|
154
154
|
className={cn(
|
|
155
|
-
'relative overflow-hidden rounded-
|
|
155
|
+
'relative overflow-hidden rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-surface text-center',
|
|
156
156
|
size === 'sm' ? 'px-5 py-8' : 'px-6 py-12 sm:px-10 sm:py-16',
|
|
157
157
|
className,
|
|
158
158
|
)}
|
|
@@ -163,7 +163,7 @@ export function SuiteEmptyState({
|
|
|
163
163
|
</div>
|
|
164
164
|
<div className="relative">
|
|
165
165
|
{icon ? (
|
|
166
|
-
<div className="mx-auto mb-4 inline-flex items-center justify-center rounded-
|
|
166
|
+
<div className="mx-auto mb-4 inline-flex items-center justify-center rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-muted p-3 shadow-[var(--ph-shadow-control)]">
|
|
167
167
|
{icon}
|
|
168
168
|
</div>
|
|
169
169
|
) : null}
|
|
@@ -148,7 +148,7 @@ export function SuiteUserMenu({
|
|
|
148
148
|
className={cn(
|
|
149
149
|
"[&_.ph-dropdown-trigger]:rounded-full",
|
|
150
150
|
showDetails &&
|
|
151
|
-
"min-w-0 flex-1 [&_.ph-dropdown-trigger]:w-full [&_.ph-dropdown-trigger]:justify-start [&_.ph-dropdown-trigger]:rounded-
|
|
151
|
+
"min-w-0 flex-1 [&_.ph-dropdown-trigger]:w-full [&_.ph-dropdown-trigger]:justify-start [&_.ph-dropdown-trigger]:rounded-[var(--ph-radius-control)]",
|
|
152
152
|
showSignOutAction ? undefined : className,
|
|
153
153
|
)}
|
|
154
154
|
data-test={dataTest}
|
|
@@ -193,7 +193,7 @@ export function SuiteUserMenu({
|
|
|
193
193
|
data-test={`${dataTest}-visible-sign-out`}
|
|
194
194
|
title="Sign out"
|
|
195
195
|
aria-label="Sign out"
|
|
196
|
-
className="
|
|
196
|
+
className="ph-btn ph-btn-ghost ph-btn-square h-10 w-10 shrink-0 text-ph-mutedtext"
|
|
197
197
|
onClick={onSignOut}
|
|
198
198
|
>
|
|
199
199
|
<LogOut className="h-4 w-4" aria-hidden />
|
|
@@ -30,7 +30,7 @@ export function TodayCalibrating({
|
|
|
30
30
|
return (
|
|
31
31
|
<div
|
|
32
32
|
className={cn(
|
|
33
|
-
'suite-auth-handoff relative flex min-h-[14rem] flex-col items-center justify-center overflow-hidden rounded-
|
|
33
|
+
'suite-auth-handoff relative flex min-h-[14rem] flex-col items-center justify-center overflow-hidden rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-surface px-5 py-8 text-center',
|
|
34
34
|
className,
|
|
35
35
|
)}
|
|
36
36
|
data-test="today-calibrating"
|
|
@@ -39,7 +39,7 @@ export function TodayCalibrating({
|
|
|
39
39
|
className="pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_50%_35%,rgba(251,191,36,0.1),transparent_55%)]"
|
|
40
40
|
aria-hidden
|
|
41
41
|
/>
|
|
42
|
-
<div className="relative mb-5 flex h-14 w-14 items-center justify-center rounded-
|
|
42
|
+
<div className="relative mb-5 flex h-14 w-14 items-center justify-center rounded-[var(--ph-radius-surface)] border border-ph-border bg-ph-surface text-ph-ink shadow-[var(--ph-shadow-control)]">
|
|
43
43
|
<Sun className="h-8 w-8" strokeWidth={2} aria-hidden />
|
|
44
44
|
</div>
|
|
45
45
|
<h2 className="relative text-base font-semibold tracking-tight text-ph-ink sm:text-lg md:text-xl">
|
|
@@ -56,7 +56,7 @@ export function TodayCalibrating({
|
|
|
56
56
|
type="button"
|
|
57
57
|
onClick={onRetry}
|
|
58
58
|
disabled={retrying}
|
|
59
|
-
className="
|
|
59
|
+
className="ph-btn ph-btn-secondary relative mt-6"
|
|
60
60
|
>
|
|
61
61
|
{retrying ? (
|
|
62
62
|
<Spinner size="sm" className={retrySpinnerClassName} />
|
|
@@ -68,7 +68,7 @@ export function SourceAppGlyph({
|
|
|
68
68
|
<img
|
|
69
69
|
src={SOURCE_APP_LOGOS[app]}
|
|
70
70
|
alt=""
|
|
71
|
-
className={cn("h-7 w-7 shrink-0 rounded-
|
|
71
|
+
className={cn("h-7 w-7 shrink-0 rounded-[var(--ph-radius-control)] object-contain", className)}
|
|
72
72
|
/>
|
|
73
73
|
);
|
|
74
74
|
}
|
|
@@ -210,11 +210,11 @@ export function TodayTopBar({
|
|
|
210
210
|
{icon}
|
|
211
211
|
</div>
|
|
212
212
|
<div className="flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1">
|
|
213
|
-
<h1 className="
|
|
213
|
+
<h1 className="ph-page-title font-display font-semibold text-ph-ink">
|
|
214
214
|
Today
|
|
215
215
|
</h1>
|
|
216
216
|
{appName ? (
|
|
217
|
-
<span className="rounded-
|
|
217
|
+
<span className="rounded-[var(--ph-radius-control)] bg-ph-muted px-2 py-0.5 text-[length:var(--ph-type-overline)] font-semibold uppercase tracking-wide text-ph-subtle">
|
|
218
218
|
{appName}
|
|
219
219
|
</span>
|
|
220
220
|
) : null}
|
|
@@ -226,7 +226,7 @@ export function TodayTopBar({
|
|
|
226
226
|
type="button"
|
|
227
227
|
onClick={onRefresh}
|
|
228
228
|
disabled={refreshing || loading}
|
|
229
|
-
className="
|
|
229
|
+
className="ph-btn ph-btn-ghost ph-btn-square press-subtle h-10 w-10 text-ph-subtle"
|
|
230
230
|
data-test="today-refresh"
|
|
231
231
|
aria-label="Refresh today"
|
|
232
232
|
>
|
|
@@ -340,7 +340,7 @@ export function TodayPrimaryAction({
|
|
|
340
340
|
dataTest?: string;
|
|
341
341
|
}) {
|
|
342
342
|
const classes = cn(
|
|
343
|
-
"today-primary-action group relative flex w-full max-w-md items-center gap-3 overflow-hidden rounded-
|
|
343
|
+
"today-primary-action group relative flex w-full max-w-md items-center gap-3 overflow-hidden rounded-[var(--ph-radius-surface)] px-3.5 py-2.5 text-left transition-colors focus-visible:outline-none focus-visible:shadow-[var(--ph-focus-halo)] sm:px-4 sm:py-3",
|
|
344
344
|
`today-primary-action--${accent}`,
|
|
345
345
|
active && "today-primary-action--active",
|
|
346
346
|
loading && "pointer-events-none opacity-70",
|
|
@@ -349,7 +349,7 @@ export function TodayPrimaryAction({
|
|
|
349
349
|
|
|
350
350
|
const body = (
|
|
351
351
|
<>
|
|
352
|
-
<span className="today-primary-action__icon inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-
|
|
352
|
+
<span className="today-primary-action__icon inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--ph-radius-control)] sm:h-10 sm:w-10">
|
|
353
353
|
{icon}
|
|
354
354
|
</span>
|
|
355
355
|
<span className="min-w-0 flex-1">
|
|
@@ -363,7 +363,7 @@ export function TodayPrimaryAction({
|
|
|
363
363
|
) : null}
|
|
364
364
|
</span>
|
|
365
365
|
<span
|
|
366
|
-
className="today-primary-action__chevron shrink-0 text-base opacity-60 transition group-hover:translate-x-0.5 group-hover:opacity-100"
|
|
366
|
+
className="today-primary-action__chevron shrink-0 text-base opacity-60 transition-[transform,opacity] group-hover:translate-x-0.5 group-hover:opacity-100"
|
|
367
367
|
aria-hidden
|
|
368
368
|
>
|
|
369
369
|
→
|
|
@@ -415,7 +415,7 @@ export function TodayEmptyAction({
|
|
|
415
415
|
}) {
|
|
416
416
|
return (
|
|
417
417
|
<div
|
|
418
|
-
className="rounded-
|
|
418
|
+
className="rounded-[var(--ph-radius-surface)] border border-dashed border-ph-border/80 bg-[var(--ph-surface-inset)] px-4 py-4 text-center"
|
|
419
419
|
data-test={dataTest}
|
|
420
420
|
>
|
|
421
421
|
<p className="text-sm font-semibold text-ph-ink">{title}</p>
|
|
@@ -496,7 +496,7 @@ export function TodayAskAiCard({
|
|
|
496
496
|
href?: string;
|
|
497
497
|
}) {
|
|
498
498
|
const classes = cn(
|
|
499
|
-
"group flex w-full items-start gap-3.5 rounded-
|
|
499
|
+
"suite-press group flex w-full items-start gap-3.5 rounded-[var(--ph-radius-surface)] border border-ph-border/70 bg-ph-surface px-4 py-3.5 text-left transition-[background-color,border-color,box-shadow] hover:border-ph-brand/35 hover:bg-[var(--ph-surface-hover)] hover:shadow-[var(--ph-shadow-raised)] focus-visible:outline-none focus-visible:shadow-[var(--ph-focus-halo)] sm:px-5",
|
|
500
500
|
className,
|
|
501
501
|
);
|
|
502
502
|
|
|
@@ -575,7 +575,7 @@ export function TodaySection({
|
|
|
575
575
|
<div className="flex min-w-0 items-start gap-3.5">
|
|
576
576
|
<span
|
|
577
577
|
className={cn(
|
|
578
|
-
"inline-flex h-10 w-10 sm:h-11 sm:w-11 shrink-0 items-center justify-center rounded-
|
|
578
|
+
"inline-flex h-10 w-10 sm:h-11 sm:w-11 shrink-0 items-center justify-center rounded-[var(--ph-radius-surface)] border border-ph-border/70 shadow-[var(--ph-shadow-control)]",
|
|
579
579
|
iconClassName ?? "bg-ph-muted text-ph-ink",
|
|
580
580
|
)}
|
|
581
581
|
>
|
|
@@ -609,7 +609,7 @@ export function TodayPanel({
|
|
|
609
609
|
return (
|
|
610
610
|
<div
|
|
611
611
|
className={cn(
|
|
612
|
-
"border-ph-border/70
|
|
612
|
+
"rounded-[var(--ph-radius-surface)] border border-ph-border/70 bg-ph-surface p-5 sm:p-5",
|
|
613
613
|
className,
|
|
614
614
|
)}
|
|
615
615
|
>
|
|
@@ -626,7 +626,7 @@ export function TodayEmptyState({
|
|
|
626
626
|
description?: string;
|
|
627
627
|
}) {
|
|
628
628
|
return (
|
|
629
|
-
<div className="
|
|
629
|
+
<div className="rounded-[var(--ph-radius-surface)] border border-dashed border-ph-border/80 bg-[var(--ph-surface-inset)] px-5 py-8 text-center">
|
|
630
630
|
<p className="text-sm font-semibold text-ph-ink">{title}</p>
|
|
631
631
|
{description ? (
|
|
632
632
|
<p className="mt-1.5 text-sm leading-relaxed text-ph-subtle">
|
|
@@ -77,9 +77,9 @@ export function SuiteWorkspaceSwitcher({
|
|
|
77
77
|
trigger={
|
|
78
78
|
<span
|
|
79
79
|
className={cn(
|
|
80
|
-
"flex min-w-0 max-w-full items-center gap-2 rounded-
|
|
80
|
+
"flex min-w-0 max-w-full items-center gap-2 rounded-[var(--ph-radius-control)] border border-ph-border bg-[var(--ph-surface-inset)] text-left transition-colors hover:bg-[var(--ph-surface-hover)]",
|
|
81
81
|
collapsed ? "h-10 w-10 justify-center p-0" : "w-full px-3 py-2",
|
|
82
|
-
open && "border-ph-
|
|
82
|
+
open && "border-[var(--ph-selected-border)] bg-[var(--ph-selected-bg)]",
|
|
83
83
|
)}
|
|
84
84
|
data-test="workspace-switcher-trigger"
|
|
85
85
|
>
|
|
@@ -111,7 +111,7 @@ export function SuiteWorkspaceSwitcher({
|
|
|
111
111
|
) : (
|
|
112
112
|
sections.map((section) => (
|
|
113
113
|
<div key={section.id}>
|
|
114
|
-
<p className="px-3 py-2 text-[
|
|
114
|
+
<p className="px-3 py-2 text-[length:var(--ph-type-overline)] font-semibold uppercase tracking-[0.08em] text-ph-mutedtext">
|
|
115
115
|
{section.label}
|
|
116
116
|
</p>
|
|
117
117
|
{section.workspaces.map((workspace) => (
|
package/src/suite/index.ts
CHANGED
|
@@ -11,6 +11,12 @@ export {
|
|
|
11
11
|
type SuiteAppSelectOptions,
|
|
12
12
|
} from "./components/app-switcher";
|
|
13
13
|
export { SuiteNotificationBell } from "./components/suite-notification-bell";
|
|
14
|
+
export {
|
|
15
|
+
SuiteNotificationSettings,
|
|
16
|
+
type SuiteWebPushController,
|
|
17
|
+
type SuiteWebPushState,
|
|
18
|
+
type SuiteNotificationSettingsProps,
|
|
19
|
+
} from "./components/suite-notification-settings";
|
|
14
20
|
export {
|
|
15
21
|
SuiteNotificationsProvider,
|
|
16
22
|
useSuiteNotifications,
|
package/tailwind-preset.ts
CHANGED
|
@@ -23,6 +23,15 @@ const posthogThemePreset: Partial<Config> = {
|
|
|
23
23
|
],
|
|
24
24
|
mono: ["var(--ph-font-monospace-stack)"],
|
|
25
25
|
shortcut: ["var(--ph-font-shortcut-stack)"],
|
|
26
|
+
display: ["var(--ph-font-sans-stack)"],
|
|
27
|
+
},
|
|
28
|
+
fontSize: {
|
|
29
|
+
xs: ["var(--ph-type-meta)", { lineHeight: "var(--ph-leading-ui)" }],
|
|
30
|
+
sm: ["var(--ph-type-small)", { lineHeight: "var(--ph-leading-ui)" }],
|
|
31
|
+
base: ["var(--ph-type-body)", { lineHeight: "var(--ph-leading-body)" }],
|
|
32
|
+
lg: ["var(--ph-type-card)", { lineHeight: "1.4" }],
|
|
33
|
+
xl: ["var(--ph-type-subsection)", { lineHeight: "1.35" }],
|
|
34
|
+
"2xl": ["var(--ph-type-product-section)", { lineHeight: "1.25" }],
|
|
26
35
|
},
|
|
27
36
|
borderRadius: {
|
|
28
37
|
lemon: "var(--ph-radius-app)",
|