nextworks 0.2.0-alpha.19 → 0.2.0-alpha.20

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.
Files changed (28) hide show
  1. package/README.md +2 -3
  2. package/dist/cli_manifests/blocks_manifest.json +2 -20
  3. package/dist/kits/blocks/.nextworks/docs/BLOCKS_QUICKSTART.md +0 -2
  4. package/dist/kits/blocks/.nextworks/docs/BLOCKS_README.md +0 -2
  5. package/dist/kits/blocks/app/templates/gallery/page.tsx +1 -333
  6. package/dist/kits/blocks/package-deps.json +3 -3
  7. package/package.json +1 -1
  8. package/dist/kits/blocks/app/templates/aiworkflow/PresetThemeVars.tsx +0 -1
  9. package/dist/kits/blocks/app/templates/aiworkflow/README.md +0 -48
  10. package/dist/kits/blocks/app/templates/aiworkflow/components/CTA.tsx +0 -44
  11. package/dist/kits/blocks/app/templates/aiworkflow/components/Contact.tsx +0 -104
  12. package/dist/kits/blocks/app/templates/aiworkflow/components/FAQ.tsx +0 -67
  13. package/dist/kits/blocks/app/templates/aiworkflow/components/FeatureMockups.tsx +0 -562
  14. package/dist/kits/blocks/app/templates/aiworkflow/components/Features.tsx +0 -67
  15. package/dist/kits/blocks/app/templates/aiworkflow/components/Footer.tsx +0 -118
  16. package/dist/kits/blocks/app/templates/aiworkflow/components/Hero.tsx +0 -883
  17. package/dist/kits/blocks/app/templates/aiworkflow/components/Navbar.tsx +0 -91
  18. package/dist/kits/blocks/app/templates/aiworkflow/components/Pricing.tsx +0 -91
  19. package/dist/kits/blocks/app/templates/aiworkflow/components/ProcessTimeline.tsx +0 -102
  20. package/dist/kits/blocks/app/templates/aiworkflow/components/Testimonials.tsx +0 -60
  21. package/dist/kits/blocks/app/templates/aiworkflow/components/TrustBadges.tsx +0 -62
  22. package/dist/kits/blocks/app/templates/aiworkflow/page.tsx +0 -43
  23. package/dist/kits/blocks/app/templates/aiworkflow/themes/animation.tsx +0 -151
  24. package/dist/kits/blocks/app/templates/aiworkflow/themes/default.tsx +0 -158
  25. package/dist/kits/blocks/app/templates/aiworkflow/themes/test.tsx +0 -163
  26. package/dist/kits/blocks/public/placeholders/aiworkflow/live.svg +0 -92
  27. package/dist/kits/blocks/public/placeholders/aiworkflow/review.svg +0 -80
  28. package/dist/kits/blocks/public/placeholders/aiworkflow/task.svg +0 -71
@@ -1,158 +0,0 @@
1
- import React from "react";
2
-
3
- import { cn } from "@/lib/utils";
4
-
5
- type Props = React.PropsWithChildren<{ className?: string }>;
6
-
7
- export function PresetThemeVars({ className, children }: Props) {
8
- return (
9
- <div
10
- className={cn(
11
- "[--btn-ring:theme(colors.slate.950)] dark:[--btn-ring:theme(colors.white)]",
12
-
13
- "[--navbar-bg:rgba(255,255,255,0.76)] dark:[--navbar-bg:rgba(0,0,0,0.72)]",
14
- "[--navbar-fg:theme(colors.slate.900)] dark:[--navbar-fg:theme(colors.white)]",
15
- "[--navbar-accent:theme(colors.slate.950)] dark:[--navbar-accent:theme(colors.white)]",
16
-
17
- "[--navbar-link-fg:theme(colors.slate.700)] dark:[--navbar-link-fg:theme(colors.slate.200)]",
18
- "[--navbar-link-hover-fg:theme(colors.slate.950)] dark:[--navbar-link-hover-fg:theme(colors.white)]",
19
- "[--navbar-toggle-bg:theme(colors.white)] dark:[--navbar-toggle-bg:theme(colors.black)]",
20
- "[--navbar-hover-bg:rgba(15,23,42,0.04)] dark:[--navbar-hover-bg:rgba(255,255,255,0.06)]",
21
- "[--navbar-ring:theme(colors.slate.950)] dark:[--navbar-ring:theme(colors.pink)]",
22
- "[--navbar-border:rgba(15,23,42,0.08)] dark:[--navbar-border:rgba(255,255,255,0.1)]",
23
-
24
- "[--input-bg:theme(colors.white)] dark:[--input-bg:#000000]",
25
-
26
- "[--input-fg:theme(colors.slate.900)] dark:[--input-fg:theme(colors.slate.100)]",
27
- "[--input-placeholder:theme(colors.slate.400)] dark:[--input-placeholder:theme(colors.slate.500)]",
28
- "[--input-border:theme(colors.slate.200)] dark:[--input-border:theme(colors.slate.800)]",
29
- "[--input-focus-ring:theme(colors.slate.950)] dark:[--input-focus-ring:theme(colors.white)]",
30
- "[--input-ring-offset:theme(colors.white)] dark:[--input-ring-offset:#000000]",
31
-
32
- "[--card-bg:theme(colors.white)] dark:[--card-bg:#000000]",
33
-
34
- "[--card-fg:theme(colors.slate.900)] dark:[--card-fg:theme(colors.slate.100)]",
35
- "[--card-title-fg:theme(colors.slate.950)] dark:[--card-title-fg:theme(colors.white)]",
36
- "[--card-muted-fg:theme(colors.slate.600)] dark:[--card-muted-fg:theme(colors.slate.300)]",
37
- "[--card-border:theme(colors.slate.200)] dark:[--card-border:rgba(255,255,255,0.1)]",
38
- "[--card-shadow:0_10px_30px_rgba(8,15,30,0.08)] dark:[--card-shadow:0_12px_32px_rgba(0,0,0,0.35)]",
39
-
40
- "[--badge-bg:theme(colors.slate.50)] dark:[--badge-bg:#000000]",
41
-
42
- "[--badge-fg:theme(colors.slate.700)] dark:[--badge-fg:theme(colors.slate.200)]",
43
- "[--badge-border:theme(colors.slate.200)] dark:[--badge-border:theme(colors.slate.700)]",
44
- "[--badge-active-bg:theme(colors.slate.950)] dark:[--badge-active-bg:theme(colors.white)]",
45
- "[--badge-active-fg:theme(colors.white)] dark:[--badge-active-fg:theme(colors.slate.950)]",
46
- "[--badge-active-border:theme(colors.slate.950)] dark:[--badge-active-border:theme(colors.white)]",
47
-
48
- "[--heading-fg:theme(colors.slate.950)] dark:[--heading-fg:theme(colors.white)]",
49
- "[--subheading-fg:theme(colors.slate.600)] dark:[--subheading-fg:theme(colors.slate.300)]",
50
- "[--description-fg:theme(colors.slate.700)] dark:[--description-fg:theme(colors.slate.200)]",
51
-
52
- "[--hero-cta-primary-bg:theme(colors.slate.950)] dark:[--hero-cta-primary-bg:theme(colors.white)]",
53
- "[--hero-cta-primary-hover-bg:theme(colors.slate.800)] dark:[--hero-cta-primary-hover-bg:theme(colors.slate.100)]",
54
- "[--hero-cta-primary-fg:theme(colors.white)] dark:[--hero-cta-primary-fg:theme(colors.slate.950)]",
55
- "[--hero-cta-primary-hover-fg:theme(colors.white)] dark:[--hero-cta-primary-hover-fg:theme(colors.slate.950)]",
56
- "[--hero-cta-secondary-bg:transparent]",
57
- "[--hero-cta-secondary-fg:theme(colors.slate.800)] dark:[--hero-cta-secondary-fg:theme(colors.slate.100)]",
58
- "[--hero-cta-secondary-border:rgba(15,23,42,0.12)] dark:[--hero-cta-secondary-border:rgba(255,255,255,0.12)]",
59
- "[--hero-cta-secondary-hover-bg:rgba(15,23,42,0.03)] dark:[--hero-cta-secondary-hover-bg:rgba(255,255,255,0.05)]",
60
- "[--hero-cta-secondary-hover-fg:theme(colors.slate.800)] dark:[--hero-cta-secondary-hover-fg:theme(colors.slate.100)]",
61
-
62
- "[--demo-shell-bg:#f9fbfe] dark:[--demo-shell-bg:#050505]",
63
- "[--demo-shell-muted-bg:#eef3f8] dark:[--demo-shell-muted-bg:#060606]",
64
- "[--demo-shell-strong-bg:#ffffff] dark:[--demo-shell-strong-bg:rgba(255,255,255,0.06)]",
65
- "[--demo-panel-bg:rgba(255,255,255,0.76)] dark:[--demo-panel-bg:rgba(255,255,255,0.03)]",
66
- "[--demo-panel-muted-bg:#f4f5f1] dark:[--demo-panel-muted-bg:#090909]",
67
- "[--demo-panel-subtle-bg:#eef0eb] dark:[--demo-panel-subtle-bg:#0b0b0b]",
68
- "[--demo-panel-strong-bg:#f6f7f4] dark:[--demo-panel-strong-bg:#0a0a0a]",
69
- "[--demo-code-bg:#f7f7f4] dark:[--demo-code-bg:#0b0b0b]",
70
- "[--demo-code-gutter-bg:#eff1ec] dark:[--demo-code-gutter-bg:#0d0d0d]",
71
- "[--demo-border:rgba(15,23,42,0.055)] dark:[--demo-border:rgba(255,255,255,0.07)]",
72
- "[--demo-border-strong:rgba(15,23,42,0.08)] dark:[--demo-border-strong:rgba(255,255,255,0.11)]",
73
- "[--demo-fg:theme(colors.slate.900)] dark:[--demo-fg:rgba(255,255,255,0.94)]",
74
- "[--demo-muted-fg:theme(colors.slate.600)] dark:[--demo-muted-fg:rgba(255,255,255,0.58)]",
75
- "[--demo-subtle-fg:theme(colors.slate.500)] dark:[--demo-subtle-fg:rgba(255,255,255,0.42)]",
76
- "[--demo-accent:theme(colors.sky.600)] dark:[--demo-accent:theme(colors.sky.400)]",
77
- "[--demo-accent-soft-bg:rgba(2,132,199,0.1)] dark:[--demo-accent-soft-bg:rgba(56,189,248,0.14)]",
78
- "[--demo-info:theme(colors.sky.600)] dark:[--demo-info:theme(colors.sky.300)]",
79
- "[--demo-info-border:rgba(2,132,199,0.24)] dark:[--demo-info-border:rgba(125,211,252,0.28)]",
80
- "[--demo-info-soft-bg:rgba(2,132,199,0.08)] dark:[--demo-info-soft-bg:rgba(56,189,248,0.12)]",
81
- "[--demo-success:theme(colors.emerald.600)] dark:[--demo-success:theme(colors.emerald.300)]",
82
- "[--demo-success-border:rgba(5,150,105,0.24)] dark:[--demo-success-border:rgba(110,231,183,0.26)]",
83
- "[--demo-success-soft-bg:rgba(16,185,129,0.08)] dark:[--demo-success-soft-bg:rgba(16,185,129,0.12)]",
84
- "[--demo-warning:theme(colors.amber.700)] dark:[--demo-warning:theme(colors.amber.300)]",
85
- "[--demo-warning-border:rgba(217,119,6,0.24)] dark:[--demo-warning-border:rgba(252,211,77,0.26)]",
86
- "[--demo-warning-soft-bg:rgba(245,158,11,0.1)] dark:[--demo-warning-soft-bg:rgba(245,158,11,0.14)]",
87
- "[--demo-danger:theme(colors.rose.600)] dark:[--demo-danger:theme(colors.rose.300)]",
88
- "[--demo-danger-border:rgba(225,29,72,0.24)] dark:[--demo-danger-border:rgba(253,164,175,0.28)]",
89
- "[--demo-danger-soft-bg:rgba(244,63,94,0.08)] dark:[--demo-danger-soft-bg:rgba(251,113,133,0.14)]",
90
- "[--demo-scroll-track:rgba(15,23,42,0.045)] dark:[--demo-scroll-track:rgba(255,255,255,0.05)]",
91
- "[--demo-scroll-thumb:linear-gradient(180deg,rgba(15,23,42,0.26),rgba(15,23,42,0.42))] dark:[--demo-scroll-thumb:linear-gradient(180deg,rgba(226,232,240,0.24),rgba(226,232,240,0.4))]",
92
- "[--demo-shell-shadow:0_24px_80px_-44px_rgba(15,23,42,0.24)] dark:[--demo-shell-shadow:0_30px_100px_-52px_rgba(0,0,0,0.82)]",
93
- "[--demo-shell-ring:rgba(15,23,42,0.018)] dark:[--demo-shell-ring:rgba(255,255,255,0.03)]",
94
-
95
- "[--section-bg:linear-gradient(180deg,#eef3f8_0%,#f6f8fb_48%,#eef3f8_100%)] dark:[--section-bg:linear-gradient(180deg,#000000_0%,#030303_48%,#000000_100%)]",
96
-
97
- "[--section-border:rgba(226,232,240,0.8)] dark:[--section-border:theme(colors.slate.800)]",
98
-
99
- "[--contact-section-bg:linear-gradient(180deg,#eef3f8_0%,#f6f8fb_48%,#eef3f8_100%)] dark:[--contact-section-bg:linear-gradient(180deg,#000000_0%,#030303_48%,#000000_100%)]",
100
-
101
- "[--contact-submit-bg:theme(colors.slate.950)] dark:[--contact-submit-bg:theme(colors.white)]",
102
- "[--contact-submit-fg:theme(colors.white)] dark:[--contact-submit-fg:theme(colors.slate.950)]",
103
- "[--contact-submit-hover-bg:theme(colors.slate.800)] dark:[--contact-submit-hover-bg:theme(colors.slate.100)]",
104
- "[--contact-submit-hover-fg:theme(colors.white)] dark:[--contact-submit-hover-fg:theme(colors.slate.950)]",
105
- "[--contact-submit-border:transparent]",
106
-
107
- "[--cta-section-bg:linear-gradient(180deg,#eef3f8_0%,#f6f8fb_48%,#eef3f8_100%)] dark:[--cta-section-bg:linear-gradient(180deg,#000000_0%,#030303_48%,#000000_100%)]",
108
-
109
- "[--cta-heading-fg:theme(colors.slate.950)] dark:[--cta-heading-fg:theme(colors.white)]",
110
- "[--cta-subheading-fg:theme(colors.slate.600)] dark:[--cta-subheading-fg:rgba(255,255,255,0.82)]",
111
- "[--cta-description-fg:theme(colors.slate.700)] dark:[--cta-description-fg:rgba(255,255,255,0.74)]",
112
- "[--cta-primary-bg:theme(colors.slate.950)] dark:[--cta-primary-bg:theme(colors.white)]",
113
- "[--cta-primary-fg:theme(colors.white)] dark:[--cta-primary-fg:theme(colors.slate.950)]",
114
- "[--cta-primary-hover-bg:theme(colors.slate.800)] dark:[--cta-primary-hover-bg:theme(colors.slate.100)]",
115
- "[--cta-primary-hover-fg:theme(colors.white)] dark:[--cta-primary-hover-fg:theme(colors.slate.950)]",
116
- "[--cta-primary-border:transparent]",
117
- "[--cta-secondary-bg:transparent]",
118
- "[--cta-secondary-fg:theme(colors.slate.800)] dark:[--cta-secondary-fg:theme(colors.slate.100)]",
119
- "[--cta-secondary-border:rgba(15,23,42,0.12)] dark:[--cta-secondary-border:rgba(255,255,255,0.18)]",
120
- "[--cta-secondary-hover-bg:rgba(15,23,42,0.03)] dark:[--cta-secondary-hover-bg:rgba(255,255,255,0.08)]",
121
- "[--cta-secondary-hover-fg:theme(colors.slate.800)] dark:[--cta-secondary-hover-fg:theme(colors.slate.100)]",
122
-
123
- "[--process-step-bg:theme(colors.slate.950)] dark:[--process-step-bg:theme(colors.white)]",
124
- "[--process-step-fg:theme(colors.white)] dark:[--process-step-fg:theme(colors.slate.950)]",
125
- "[--process-connector:theme(colors.slate.300)] dark:[--process-connector:theme(colors.slate.700)]",
126
-
127
- "[--footer-bg:linear-gradient(180deg,rgba(255,255,255,0.42)_0%,rgba(255,255,255,0.14)_100%)] dark:[--footer-bg:linear-gradient(180deg,rgba(0,0,0,0.92)_0%,rgba(0,0,0,0.78)_100%)]",
128
-
129
- "[--footer-fg:theme(colors.slate.800)] dark:[--footer-fg:theme(colors.slate.100)]",
130
- "[--footer-heading-fg:theme(colors.slate.950)] dark:[--footer-heading-fg:theme(colors.white)]",
131
- "[--footer-link-fg:theme(colors.slate.700)] dark:[--footer-link-fg:theme(colors.slate.300)]",
132
- "[--footer-link-hover-fg:theme(colors.slate.950)] dark:[--footer-link-hover-fg:theme(colors.white)]",
133
- "[--footer-link-hover-bg:theme(colors.slate.100)] dark:[--footer-link-hover-bg:rgba(255,255,255,0.06)]",
134
- "[--footer-muted-fg:theme(colors.slate.500)] dark:[--footer-muted-fg:theme(colors.slate.400)]",
135
- "[--footer-border:theme(colors.slate.200)] dark:[--footer-border:theme(colors.slate.800)]",
136
-
137
- "[--table-fg:inherit]",
138
- "[--table-muted-fg:theme(colors.slate.500)] dark:[--table-muted-fg:theme(colors.slate.400)]",
139
- "[--table-head-fg:theme(colors.slate.700)] dark:[--table-head-fg:theme(colors.slate.300)]",
140
- "[--table-border:theme(colors.slate.200)] dark:[--table-border:theme(colors.slate.800)]",
141
- "[--table-row-hover-bg:theme(colors.slate.50)] dark:[--table-row-hover-bg:rgba(255,255,255,0.03)]",
142
-
143
- "[--faq-btn-bg:theme(colors.white)] dark:[--faq-btn-bg:#000000]",
144
-
145
- "[--faq-btn-fg:theme(colors.slate.900)] dark:[--faq-btn-fg:theme(colors.slate.100)]",
146
- "[--faq-btn-hover-bg:theme(colors.slate.50)] dark:[--faq-btn-hover-bg:rgba(255,255,255,0.04)]",
147
- "[--faq-btn-hover-fg:theme(colors.slate.900)] dark:[--faq-btn-hover-fg:theme(colors.slate.100)]",
148
- "[--faq-answer-bg:theme(colors.white)] dark:[--faq-answer-bg:#000000]",
149
-
150
- "[--faq-answer-fg:theme(colors.slate.700)] dark:[--faq-answer-fg:theme(colors.slate.200)]",
151
-
152
- className,
153
- )}
154
- >
155
- {children}
156
- </div>
157
- );
158
- }
@@ -1,163 +0,0 @@
1
- import React from "react";
2
-
3
- import { cn } from "@/lib/utils";
4
-
5
- type Props = React.PropsWithChildren<{ className?: string }>;
6
-
7
- export function PresetThemeVars({ className, children }: Props) {
8
- return (
9
- <div
10
- className={cn(
11
- "[--btn-ring:theme(colors.amber.300)] dark:[--btn-ring:theme(colors.amber.200)]",
12
-
13
- // Navbar
14
- "[--navbar-bg:rgba(255,255,255,0.92)] dark:[--navbar-bg:rgba(15,23,42,0.98)]",
15
- "[--navbar-fg:theme(colors.slate.900)] dark:[--navbar-fg:theme(colors.slate.100)]",
16
- "[--navbar-accent:theme(colors.amber.500)] dark:[--navbar-accent:theme(colors.amber.300)]",
17
- "[--navbar-link-fg:theme(colors.slate.700)] dark:[--navbar-link-fg:theme(colors.slate.300)]",
18
- "[--navbar-link-hover-fg:theme(colors.slate.950)] dark:[--navbar-link-hover-fg:theme(colors.white)]",
19
- "[--navbar-toggle-bg:rgba(15,23,42,0.06)] dark:[--navbar-toggle-bg:rgba(255,255,255,0.08)]",
20
- "[--navbar-hover-bg:rgba(59,130,246,0.08)] dark:[--navbar-hover-bg:rgba(255,255,255,0.06)]",
21
- "[--navbar-ring:theme(colors.blue.500)] dark:[--navbar-ring:theme(colors.blue.400)]",
22
- "[--navbar-border:rgba(148,163,184,0.2)] dark:[--navbar-border:rgba(255,255,255,0.1)]",
23
-
24
- // Input
25
- "[--input-bg:rgba(255,255,255,0.94)] dark:[--input-bg:rgba(15,23,42,0.98)]",
26
- "[--input-fg:theme(colors.slate.900)] dark:[--input-fg:theme(colors.slate.100)]",
27
- "[--input-placeholder:rgba(100,116,139,0.82)] dark:[--input-placeholder:rgba(148,163,184,0.72)]",
28
- "[--input-border:rgba(148,163,184,0.3)] dark:[--input-border:rgba(148,163,184,0.25)]",
29
- "[--input-focus-ring:theme(colors.amber.400)] dark:[--input-focus-ring:theme(colors.amber.300)]",
30
- "[--input-ring-offset:theme(colors.slate.950)] dark:[--input-ring-offset:theme(colors.slate.950)]",
31
-
32
- // Card
33
- "[--card-bg:rgba(255,255,255,0.96)] dark:[--card-bg:rgba(15,23,42,0.98)]",
34
- "[--card-fg:theme(colors.slate.900)] dark:[--card-fg:theme(colors.slate.100)]",
35
- "[--card-title-fg:theme(colors.slate.900)] dark:[--card-title-fg:theme(colors.white)]",
36
- "[--card-muted-fg:rgba(71,85,105,0.9)] dark:[--card-muted-fg:rgba(203,213,225,0.85)]",
37
- "[--card-border:rgba(148,163,184,0.24)] dark:[--card-border:rgba(148,163,184,0.18)]",
38
- "[--card-shadow:0_28px_90px_rgba(2,6,23,0.48)] dark:[--card-shadow:0_34px_120px_rgba(0,0,0,0.72)]",
39
-
40
- // Badge
41
- "[--badge-bg:rgba(255,255,255,0.9)] dark:[--badge-bg:rgba(30,41,59,0.9)]",
42
- "[--badge-fg:theme(colors.slate.900)] dark:[--badge-fg:theme(colors.slate.100)]",
43
- "[--badge-border:rgba(148,163,184,0.24)] dark:[--badge-border:rgba(148,163,184,0.2)]",
44
- "[--badge-active-bg:theme(colors.blue.600)] dark:[--badge-active-bg:theme(colors.blue.500)]",
45
- "[--badge-active-fg:theme(colors.white)] dark:[--badge-active-fg:theme(colors.white)]",
46
- "[--badge-active-border:rgba(255,255,255,0.14)] dark:[--badge-active-border:rgba(255,255,255,0.12)]",
47
-
48
- // Headings
49
- "[--heading-fg:theme(colors.slate.950)] dark:[--heading-fg:theme(colors.white)]",
50
- "[--subheading-fg:theme(colors.blue.600)] dark:[--subheading-fg:theme(colors.sky.400)]",
51
- "[--description-fg:theme(colors.slate.600)] dark:[--description-fg:theme(colors.slate.300)]",
52
-
53
- // Hero CTA
54
- "[--hero-cta-primary-bg:theme(colors.blue.600)] dark:[--hero-cta-primary-bg:theme(colors.blue.500)]",
55
- "[--hero-cta-primary-hover-bg:theme(colors.blue.700)] dark:[--hero-cta-primary-hover-bg:theme(colors.blue.400)]",
56
- "[--hero-cta-primary-fg:theme(colors.white)] dark:[--hero-cta-primary-fg:theme(colors.white)]",
57
- "[--hero-cta-primary-hover-fg:theme(colors.white)] dark:[--hero-cta-primary-hover-fg:theme(colors.white)]",
58
- "[--hero-cta-secondary-bg:rgba(255,255,255,0.92)] dark:[--hero-cta-secondary-bg:rgba(30,41,59,0.9)]",
59
- "[--hero-cta-secondary-fg:theme(colors.slate.900)] dark:[--hero-cta-secondary-fg:theme(colors.slate.100)]",
60
- "[--hero-cta-secondary-border:rgba(148,163,184,0.3)] dark:[--hero-cta-secondary-border:rgba(148,163,184,0.2)]",
61
- "[--hero-cta-secondary-hover-bg:rgba(255,255,255,1)] dark:[--hero-cta-secondary-hover-bg:rgba(51,65,85,0.95)]",
62
- "[--hero-cta-secondary-hover-fg:theme(colors.slate.900)] dark:[--hero-cta-secondary-hover-fg:theme(colors.white)]",
63
-
64
- // Demo shell (hero app)
65
- "[--demo-shell-bg:rgba(15,23,42,1)] dark:[--demo-shell-bg:rgba(9,14,29,1)]",
66
- "[--demo-shell-muted-bg:rgba(7,10,22,1)] dark:[--demo-shell-muted-bg:rgba(4,7,15,1)]",
67
- "[--demo-shell-strong-bg:rgba(255,255,255,0.08)] dark:[--demo-shell-strong-bg:rgba(255,255,255,0.06)]",
68
- "[--demo-panel-bg:rgba(15,23,42,0.98)] dark:[--demo-panel-bg:rgba(9,14,29,1)]",
69
- "[--demo-panel-muted-bg:rgba(20,30,55,0.9)] dark:[--demo-panel-muted-bg:rgba(15,23,42,0.95)]",
70
- "[--demo-panel-subtle-bg:rgba(30,41,59,0.95)] dark:[--demo-panel-subtle-bg:rgba(22,32,50,1)]",
71
- "[--demo-panel-strong-bg:rgba(255,255,255,0.08)] dark:[--demo-panel-strong-bg:rgba(255,255,255,0.06)]",
72
- "[--demo-code-bg:rgba(9,14,29,1)] dark:[--demo-code-bg:rgba(6,9,20,1)]",
73
- "[--demo-code-gutter-bg:rgba(15,23,42,1)] dark:[--demo-code-gutter-bg:rgba(9,14,29,1)]",
74
- "[--demo-border:rgba(148,163,184,0.18)] dark:[--demo-border:rgba(148,163,184,0.12)]",
75
- "[--demo-border-strong:rgba(251,191,36,0.22)] dark:[--demo-border-strong:rgba(96,165,250,0.22)]",
76
- // Demo text — strong contrast on dark shell backgrounds
77
- "[--demo-fg:rgba(248,250,252,1)] dark:[--demo-fg:rgba(248,250,252,1)]",
78
- "[--demo-muted-fg:rgba(203,213,225,0.95)] dark:[--demo-muted-fg:rgba(203,213,225,0.9)]",
79
- "[--demo-subtle-fg:rgba(147,197,253,1)] dark:[--demo-subtle-fg:rgba(147,197,253,0.95)]",
80
- "[--demo-accent:theme(colors.amber.300)] dark:[--demo-accent:theme(colors.amber.300)]",
81
- "[--demo-accent-soft-bg:rgba(251,191,36,0.12)] dark:[--demo-accent-soft-bg:rgba(251,191,36,0.1)]",
82
- "[--demo-info:theme(colors.sky.300)] dark:[--demo-info:theme(colors.sky.300)]",
83
- "[--demo-info-border:rgba(125,211,252,0.3)] dark:[--demo-info-border:rgba(125,211,252,0.22)]",
84
- "[--demo-info-soft-bg:rgba(14,165,233,0.12)] dark:[--demo-info-soft-bg:rgba(14,165,233,0.1)]",
85
- "[--demo-success:theme(colors.emerald.300)] dark:[--demo-success:theme(colors.emerald.300)]",
86
- "[--demo-success-border:rgba(52,211,153,0.28)] dark:[--demo-success-border:rgba(52,211,153,0.2)]",
87
- "[--demo-success-soft-bg:rgba(16,185,129,0.12)] dark:[--demo-success-soft-bg:rgba(16,185,129,0.1)]",
88
- "[--demo-warning:theme(colors.amber.300)] dark:[--demo-warning:theme(colors.amber.300)]",
89
- "[--demo-warning-border:rgba(251,191,36,0.3)] dark:[--demo-warning-border:rgba(251,191,36,0.22)]",
90
- "[--demo-warning-soft-bg:rgba(245,158,11,0.12)] dark:[--demo-warning-soft-bg:rgba(245,158,11,0.1)]",
91
- "[--demo-danger:theme(colors.rose.300)] dark:[--demo-danger:theme(colors.rose.300)]",
92
- "[--demo-danger-border:rgba(253,164,175,0.3)] dark:[--demo-danger-border:rgba(253,164,175,0.22)]",
93
- "[--demo-danger-soft-bg:rgba(244,63,94,0.12)] dark:[--demo-danger-soft-bg:rgba(244,63,94,0.1)]",
94
- "[--demo-scroll-track:rgba(148,163,184,0.14)] dark:[--demo-scroll-track:rgba(148,163,184,0.08)]",
95
- "[--demo-scroll-thumb:rgba(96,165,250,0.7)] dark:[--demo-scroll-thumb:rgba(96,165,250,0.55)]",
96
- "[--demo-shell-shadow:0_34px_120px_-48px_rgba(2,6,23,0.75)] dark:[--demo-shell-shadow:0_40px_140px_-56px_rgba(0,0,0,0.92)]",
97
- "[--demo-shell-ring:rgba(251,191,36,0.2)] dark:[--demo-shell-ring:rgba(96,165,250,0.16)]",
98
-
99
- // Section
100
- "[--section-bg:theme(colors.slate.50)] dark:[--section-bg:theme(colors.slate.950)]",
101
- "[--section-border:rgba(148,163,184,0.18)] dark:[--section-border:rgba(148,163,184,0.1)]",
102
-
103
- // Contact section
104
- "[--contact-section-bg:theme(colors.slate.50)] dark:[--contact-section-bg:theme(colors.slate.950)]",
105
- "[--contact-submit-bg:theme(colors.blue.600)] dark:[--contact-submit-bg:theme(colors.blue.500)]",
106
- "[--contact-submit-fg:theme(colors.white)] dark:[--contact-submit-fg:theme(colors.white)]",
107
- "[--contact-submit-hover-bg:theme(colors.blue.700)] dark:[--contact-submit-hover-bg:theme(colors.blue.400)]",
108
- "[--contact-submit-hover-fg:theme(colors.white)] dark:[--contact-submit-hover-fg:theme(colors.white)]",
109
- "[--contact-submit-border:transparent]",
110
-
111
- // CTA section
112
- "[--cta-section-bg:theme(colors.slate.50)] dark:[--cta-section-bg:theme(colors.slate.950)]",
113
- "[--cta-heading-fg:theme(colors.slate.950)] dark:[--cta-heading-fg:theme(colors.white)]",
114
- "[--cta-subheading-fg:theme(colors.blue.600)] dark:[--cta-subheading-fg:theme(colors.sky.400)]",
115
- "[--cta-description-fg:theme(colors.slate.600)] dark:[--cta-description-fg:theme(colors.slate.300)]",
116
- "[--cta-primary-bg:theme(colors.blue.600)] dark:[--cta-primary-bg:theme(colors.blue.500)]",
117
- "[--cta-primary-fg:theme(colors.white)] dark:[--cta-primary-fg:theme(colors.white)]",
118
- "[--cta-primary-hover-bg:theme(colors.blue.700)] dark:[--cta-primary-hover-bg:theme(colors.blue.400)]",
119
- "[--cta-primary-hover-fg:theme(colors.white)] dark:[--cta-primary-hover-fg:theme(colors.white)]",
120
- "[--cta-primary-border:transparent]",
121
- "[--cta-secondary-bg:rgba(255,255,255,0.92)]",
122
- "[--cta-secondary-fg:theme(colors.slate.900)] dark:[--cta-secondary-fg:theme(colors.slate.100)]",
123
- "[--cta-secondary-border:rgba(148,163,184,0.28)] dark:[--cta-secondary-border:rgba(148,163,184,0.18)]",
124
- "[--cta-secondary-hover-bg:rgba(255,255,255,1)] dark:[--cta-secondary-hover-bg:rgba(30,41,59,0.9)]",
125
- "[--cta-secondary-hover-fg:theme(colors.slate.900)] dark:[--cta-secondary-hover-fg:theme(colors.white)]",
126
-
127
- // Process steps
128
- "[--process-step-bg:theme(colors.blue.600)] dark:[--process-step-bg:theme(colors.blue.500)]",
129
- "[--process-step-fg:theme(colors.white)] dark:[--process-step-fg:theme(colors.white)]",
130
- "[--process-connector:rgba(148,163,184,0.24)] dark:[--process-connector:rgba(148,163,184,0.22)]",
131
-
132
- // Footer
133
- "[--footer-bg:theme(colors.slate.100)] dark:[--footer-bg:rgba(9,14,29,1)]",
134
- "[--footer-fg:theme(colors.slate.600)] dark:[--footer-fg:theme(colors.slate.400)]",
135
- "[--footer-heading-fg:theme(colors.slate.900)] dark:[--footer-heading-fg:theme(colors.white)]",
136
- "[--footer-link-fg:theme(colors.slate.700)] dark:[--footer-link-fg:theme(colors.slate.400)]",
137
- "[--footer-link-hover-fg:theme(colors.slate.950)] dark:[--footer-link-hover-fg:theme(colors.white)]",
138
- "[--footer-link-hover-bg:rgba(59,130,246,0.06)] dark:[--footer-link-hover-bg:rgba(255,255,255,0.06)]",
139
- "[--footer-muted-fg:theme(colors.blue.600)] dark:[--footer-muted-fg:theme(colors.slate.500)]",
140
- "[--footer-border:rgba(148,163,184,0.18)] dark:[--footer-border:rgba(148,163,184,0.1)]",
141
-
142
- // Table
143
- "[--table-fg:theme(colors.slate.900)] dark:[--table-fg:theme(colors.slate.100)]",
144
- "[--table-muted-fg:theme(colors.slate.600)] dark:[--table-muted-fg:theme(colors.slate.400)]",
145
- "[--table-head-fg:theme(colors.slate.900)] dark:[--table-head-fg:theme(colors.sky.200)]",
146
- "[--table-border:rgba(148,163,184,0.18)] dark:[--table-border:rgba(148,163,184,0.12)]",
147
- "[--table-row-hover-bg:rgba(59,130,246,0.06)] dark:[--table-row-hover-bg:rgba(96,165,250,0.06)]",
148
-
149
- // FAQ
150
- "[--faq-btn-bg:rgba(255,255,255,0.9)] dark:[--faq-btn-bg:rgba(20,28,48,0.9)]",
151
- "[--faq-btn-fg:theme(colors.slate.900)] dark:[--faq-btn-fg:theme(colors.slate.100)]",
152
- "[--faq-btn-hover-bg:rgba(255,255,255,1)] dark:[--faq-btn-hover-bg:rgba(30,41,59,0.95)]",
153
- "[--faq-btn-hover-fg:theme(colors.slate.900)] dark:[--faq-btn-hover-fg:theme(colors.white)]",
154
- "[--faq-answer-bg:rgba(255,255,255,0.96)] dark:[--faq-answer-bg:rgba(15,23,42,0.98)]",
155
- "[--faq-answer-fg:theme(colors.slate.800)] dark:[--faq-answer-fg:theme(colors.slate.200)]",
156
-
157
- className,
158
- )}
159
- >
160
- {children}
161
- </div>
162
- );
163
- }
@@ -1,92 +0,0 @@
1
- <svg width="960" height="600" viewBox="0 0 960 600" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <defs>
3
- <linearGradient id="bg" x1="480" y1="0" x2="480" y2="600" gradientUnits="userSpaceOnUse">
4
- <stop stop-color="#111111"/>
5
- <stop offset="1" stop-color="#050505"/>
6
- </linearGradient>
7
- <linearGradient id="panel" x1="0" y1="0" x2="0" y2="1">
8
- <stop stop-color="#141414"/>
9
- <stop offset="1" stop-color="#090909"/>
10
- </linearGradient>
11
- </defs>
12
-
13
- <rect width="960" height="600" rx="32" fill="url(#bg)"/>
14
- <rect x="20" y="20" width="920" height="560" rx="28" fill="#070707" stroke="#222222"/>
15
- <rect x="20" y="20" width="920" height="64" rx="28" fill="#0B0B0B"/>
16
- <path d="M20 84H940" stroke="#1F1F1F"/>
17
-
18
- <g transform="translate(44 40)">
19
- <rect width="28" height="28" rx="8" fill="#F5F5F5"/>
20
- <circle cx="10" cy="10" r="2" fill="#0A0A0A"/>
21
- <circle cx="18" cy="10" r="2" fill="#0A0A0A"/>
22
- <circle cx="10" cy="18" r="2" fill="#0A0A0A"/>
23
- <circle cx="18" cy="18" r="2" fill="#0A0A0A"/>
24
- <text x="42" y="12" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="700">Live transcript</text>
25
- <rect x="170" y="0" width="98" height="28" rx="14" fill="#131313" stroke="#2A2A2A"/>
26
- <text x="194" y="18" fill="#8A8A8A" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.8">LIVE DIFF</text>
27
- </g>
28
-
29
- <g transform="translate(760 40)">
30
- <text x="0" y="12" fill="#777777" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.6">SCROLL STATE</text>
31
- <rect x="96" y="0" width="72" height="28" rx="14" fill="#0F0F0F" stroke="#2A2A2A"/>
32
- <circle cx="114" cy="14" r="5" fill="#2EE6FF"/>
33
- <text x="125" y="18" fill="#D4D4D4" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.4">LIVE</text>
34
- </g>
35
-
36
- <rect x="56" y="118" width="848" height="412" rx="26" fill="url(#panel)" stroke="#212121"/>
37
- <text x="82" y="154" fill="#6F6F6F" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="2.4">TRANSCRIPT AND DIFF</text>
38
-
39
- <g transform="translate(82 178)">
40
- <rect width="336" height="272" rx="18" fill="#101010" stroke="#232323"/>
41
- <text x="20" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">TRANSCRIPT</text>
42
-
43
- <circle cx="24" cy="64" r="14" fill="#16343A"/>
44
- <text x="24" y="69" text-anchor="middle" fill="#BFF7FF" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700">U</text>
45
- <rect x="48" y="48" width="262" height="54" rx="14" fill="#131313" stroke="#232323"/>
46
- <text x="64" y="70" fill="#F1F1F1" font-family="Arial, Helvetica, sans-serif" font-size="17" font-weight="700">Can you fix callback</text>
47
- <text x="64" y="91" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="15">return behavior?</text>
48
-
49
- <circle cx="24" cy="140" r="14" fill="#1E1E1E"/>
50
- <text x="24" y="145" text-anchor="middle" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700">A</text>
51
- <rect x="48" y="124" width="262" height="54" rx="14" fill="#131313" stroke="#232323"/>
52
- <text x="64" y="146" fill="#F1F1F1" font-family="Arial, Helvetica, sans-serif" font-size="17" font-weight="700">Reading auth flow and</text>
53
- <text x="64" y="167" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="15">tracing redirect handling.</text>
54
-
55
- <circle cx="24" cy="222" r="14" fill="#1E1E1E"/>
56
- <text x="24" y="227" text-anchor="middle" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700">A</text>
57
- <rect x="48" y="206" width="262" height="54" rx="14" fill="#131313" stroke="#232323"/>
58
- <text x="64" y="228" fill="#F1F1F1" font-family="Arial, Helvetica, sans-serif" font-size="17" font-weight="700">Drafting guarded patch</text>
59
- <text x="64" y="249" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="15">and running checks now.</text>
60
- </g>
61
-
62
- <g transform="translate(442 178)">
63
- <rect width="436" height="272" rx="18" fill="#101010" stroke="#232323"/>
64
- <text x="20" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">DIFF PREVIEW</text>
65
- <rect x="20" y="44" width="396" height="54" rx="14" fill="#16343A"/>
66
- <text x="36" y="66" fill="#D7FBFF" font-family="Courier New, monospace" font-size="16">+ const safeReturnTo = normalizeReturnTo(...)</text>
67
- <text x="36" y="87" fill="#D7FBFF" font-family="Courier New, monospace" font-size="16">+ const destination = safeReturnTo ?? '/dashboard'</text>
68
-
69
- <text x="22" y="134" fill="#7A7A7A" font-family="Courier New, monospace" font-size="14">21</text>
70
- <text x="56" y="134" fill="#E3E3E3" font-family="Courier New, monospace" font-size="18">if (user) {</text>
71
- <text x="22" y="166" fill="#7A7A7A" font-family="Courier New, monospace" font-size="14">22</text>
72
- <text x="56" y="166" fill="#E3E3E3" font-family="Courier New, monospace" font-size="18">redirect(destination)</text>
73
- <text x="22" y="198" fill="#7A7A7A" font-family="Courier New, monospace" font-size="14">23</text>
74
- <text x="56" y="198" fill="#E3E3E3" font-family="Courier New, monospace" font-size="18">}</text>
75
-
76
- <rect x="20" y="218" width="396" height="34" rx="12" fill="#121212" stroke="#232323"/>
77
- <text x="36" y="240" fill="#F1F1F1" font-family="Arial, Helvetica, sans-serif" font-size="16" font-weight="700">Checks running</text>
78
- <text x="170" y="240" fill="#9D9D9D" font-family="Arial, Helvetica, sans-serif" font-size="14">2 passed · 1 in progress</text>
79
- </g>
80
-
81
- <g transform="translate(82 474)">
82
- <text x="0" y="0" fill="#707070" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="2">TRANSCRIPT</text>
83
- <rect y="12" width="280" height="8" rx="4" fill="#171717"/>
84
- <rect y="12" width="176" height="8" rx="4" fill="#2EE6FF"/>
85
- </g>
86
-
87
- <g transform="translate(650 474)">
88
- <text x="0" y="0" fill="#707070" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="2">DIFF</text>
89
- <rect y="12" width="228" height="8" rx="4" fill="#171717"/>
90
- <rect y="12" width="122" height="8" rx="4" fill="#2EE6FF"/>
91
- </g>
92
- </svg>
@@ -1,80 +0,0 @@
1
- <svg width="960" height="600" viewBox="0 0 960 600" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <defs>
3
- <linearGradient id="bg" x1="480" y1="0" x2="480" y2="600" gradientUnits="userSpaceOnUse">
4
- <stop stop-color="#111111"/>
5
- <stop offset="1" stop-color="#050505"/>
6
- </linearGradient>
7
- <linearGradient id="panel" x1="0" y1="0" x2="0" y2="1">
8
- <stop stop-color="#141414"/>
9
- <stop offset="1" stop-color="#090909"/>
10
- </linearGradient>
11
- </defs>
12
-
13
- <rect width="960" height="600" rx="32" fill="url(#bg)"/>
14
- <rect x="20" y="20" width="920" height="560" rx="28" fill="#070707" stroke="#222222"/>
15
- <rect x="20" y="20" width="920" height="64" rx="28" fill="#0B0B0B"/>
16
- <path d="M20 84H940" stroke="#1F1F1F"/>
17
-
18
- <g transform="translate(44 40)">
19
- <rect width="28" height="28" rx="8" fill="#F5F5F5"/>
20
- <circle cx="10" cy="10" r="2" fill="#0A0A0A"/>
21
- <circle cx="18" cy="10" r="2" fill="#0A0A0A"/>
22
- <circle cx="10" cy="18" r="2" fill="#0A0A0A"/>
23
- <circle cx="18" cy="18" r="2" fill="#0A0A0A"/>
24
- <text x="42" y="12" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="700">Review queue</text>
25
- <rect x="154" y="0" width="96" height="28" rx="14" fill="#131313" stroke="#2A2A2A"/>
26
- <text x="177" y="18" fill="#8A8A8A" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.8">HUMAN GATE</text>
27
- </g>
28
-
29
- <g transform="translate(742 40)">
30
- <text x="0" y="12" fill="#777777" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.6">PATCH STATE</text>
31
- <rect x="96" y="0" width="86" height="28" rx="14" fill="#0F0F0F" stroke="#2A2A2A"/>
32
- <circle cx="114" cy="14" r="5" fill="#2EE6FF"/>
33
- <text x="125" y="18" fill="#D4D4D4" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.4">REVIEW</text>
34
- </g>
35
-
36
- <rect x="56" y="118" width="848" height="412" rx="26" fill="url(#panel)" stroke="#212121"/>
37
- <text x="82" y="154" fill="#6F6F6F" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="2.4">SELECTED PATCH</text>
38
-
39
- <g transform="translate(82 176)">
40
- <rect width="796" height="84" rx="18" fill="#151515" stroke="#2EE6FF"/>
41
- <rect width="5" height="84" rx="2.5" fill="#2EE6FF"/>
42
- <text x="22" y="34" fill="#F8F8F8" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="700">Guard malformed returnTo</text>
43
- <text x="22" y="62" fill="#CFCFCF" font-family="Arial, Helvetica, sans-serif" font-size="18">Redirect logic changes when callback paths are invalid.</text>
44
- <rect x="648" y="18" width="122" height="26" rx="13" fill="#16343A" stroke="#2EE6FF" stroke-opacity="0.35"/>
45
- <text x="709" y="35" text-anchor="middle" fill="#D7FBFF" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="1.2">REVIEW REQUIRED</text>
46
- </g>
47
-
48
- <g transform="translate(82 286)">
49
- <rect width="244" height="92" rx="18" fill="#101010" stroke="#232323"/>
50
- <text x="22" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">FILES TOUCHED</text>
51
- <text x="22" y="66" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="38" font-weight="700">2</text>
52
-
53
- <rect x="276" y="0" width="244" height="92" rx="18" fill="#101010" stroke="#232323"/>
54
- <text x="298" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">RISK</text>
55
- <text x="298" y="66" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="38" font-weight="700">Medium</text>
56
-
57
- <rect x="552" y="0" width="244" height="92" rx="18" fill="#101010" stroke="#232323"/>
58
- <text x="574" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">CHECKS</text>
59
- <text x="574" y="66" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="38" font-weight="700">Passed</text>
60
- </g>
61
-
62
- <g transform="translate(82 404)">
63
- <rect width="796" height="78" rx="18" fill="#0D0D0D" stroke="#232323"/>
64
- <text x="22" y="26" fill="#6F6F6F" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="2">SUMMARY</text>
65
- <text x="22" y="48" fill="#D5D5D5" font-family="Arial, Helvetica, sans-serif" font-size="17">• Normalizes callback return targets before redirect.</text>
66
- <text x="418" y="48" fill="#D5D5D5" font-family="Arial, Helvetica, sans-serif" font-size="17">• Preserves intended destination when valid.</text>
67
- <text x="22" y="68" fill="#D5D5D5" font-family="Arial, Helvetica, sans-serif" font-size="17">• Falls back only when the param is unsafe.</text>
68
- </g>
69
-
70
- <g transform="translate(82 498)">
71
- <rect width="498" height="32" rx="16" fill="#0D0D0D" stroke="#282828"/>
72
- <text x="18" y="21" fill="#D4D4D4" font-family="Arial, Helvetica, sans-serif" font-size="14">Navigation behavior changes for malformed params.</text>
73
-
74
- <rect x="610" y="0" width="88" height="32" rx="16" fill="#0D0D0D" stroke="#282828"/>
75
- <text x="654" y="21" text-anchor="middle" fill="#AFAFAF" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="1.2">SEND BACK</text>
76
-
77
- <rect x="708" y="0" width="88" height="32" rx="16" fill="#16343A" stroke="#2EE6FF" stroke-opacity="0.35"/>
78
- <text x="752" y="21" text-anchor="middle" fill="#D7FBFF" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="1.2">APPROVE</text>
79
- </g>
80
- </svg>
@@ -1,71 +0,0 @@
1
- <svg width="960" height="600" viewBox="0 0 960 600" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <defs>
3
- <linearGradient id="bg" x1="480" y1="0" x2="480" y2="600" gradientUnits="userSpaceOnUse">
4
- <stop stop-color="#111111"/>
5
- <stop offset="1" stop-color="#050505"/>
6
- </linearGradient>
7
- <linearGradient id="panel" x1="0" y1="0" x2="0" y2="1">
8
- <stop stop-color="#141414"/>
9
- <stop offset="1" stop-color="#090909"/>
10
- </linearGradient>
11
- </defs>
12
-
13
- <rect width="960" height="600" rx="32" fill="url(#bg)"/>
14
- <rect x="20" y="20" width="920" height="560" rx="28" fill="#070707" stroke="#222222"/>
15
- <rect x="20" y="20" width="920" height="64" rx="28" fill="#0B0B0B"/>
16
- <path d="M20 84H940" stroke="#1F1F1F"/>
17
-
18
- <g transform="translate(44 40)">
19
- <rect width="28" height="28" rx="8" fill="#F5F5F5"/>
20
- <circle cx="10" cy="10" r="2" fill="#0A0A0A"/>
21
- <circle cx="18" cy="10" r="2" fill="#0A0A0A"/>
22
- <circle cx="10" cy="18" r="2" fill="#0A0A0A"/>
23
- <circle cx="18" cy="18" r="2" fill="#0A0A0A"/>
24
- <text x="42" y="12" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="700">Task navigator</text>
25
- <rect x="170" y="0" width="92" height="28" rx="14" fill="#131313" stroke="#2A2A2A"/>
26
- <text x="194" y="18" fill="#8A8A8A" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.8">RUN SAFE</text>
27
- </g>
28
-
29
- <g transform="translate(736 40)">
30
- <text x="0" y="12" fill="#777777" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.6">CURRENT TASK</text>
31
- <rect x="108" y="0" width="84" height="28" rx="14" fill="#0F0F0F" stroke="#2A2A2A"/>
32
- <circle cx="126" cy="14" r="5" fill="#2EE6FF"/>
33
- <text x="137" y="18" fill="#D4D4D4" font-family="Arial, Helvetica, sans-serif" font-size="12" font-weight="700" letter-spacing="1.4">OPEN</text>
34
- </g>
35
-
36
- <rect x="56" y="118" width="848" height="412" rx="26" fill="url(#panel)" stroke="#212121"/>
37
- <text x="82" y="154" fill="#6F6F6F" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="2.4">SELECTED TASK</text>
38
-
39
- <g transform="translate(82 176)">
40
- <rect width="796" height="112" rx="18" fill="#151515" stroke="#2EE6FF"/>
41
- <rect width="5" height="112" rx="2.5" fill="#2EE6FF"/>
42
- <circle cx="26" cy="28" r="12" fill="#0E0E0E" stroke="#2A2A2A"/>
43
- <text x="22" y="33" fill="#F5F5F5" font-family="Arial, Helvetica, sans-serif" font-size="14" font-weight="700">1</text>
44
- <text x="52" y="34" fill="#FAFAFA" font-family="Arial, Helvetica, sans-serif" font-size="28" font-weight="700">Fix auth flow</text>
45
- <rect x="666" y="18" width="88" height="24" rx="12" fill="#101010" stroke="#2A2A2A"/>
46
- <text x="710" y="34" text-anchor="middle" fill="#8A8A8A" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" letter-spacing="1.3">SAFE PATCH</text>
47
- <text x="52" y="68" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="19">Preserve intended destination after the OAuth callback.</text>
48
- <text x="52" y="94" fill="#8F8F8F" font-family="Arial, Helvetica, sans-serif" font-size="16">The agent reads the relevant files, drafts the change, and applies only the guarded fix.</text>
49
- </g>
50
-
51
- <g transform="translate(82 312)">
52
- <rect width="520" height="166" rx="18" fill="#101010" stroke="#232323"/>
53
- <text x="22" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">PLAN</text>
54
- <text x="22" y="62" fill="#F1F1F1" font-family="Arial, Helvetica, sans-serif" font-size="19" font-weight="700">1. Read app/auth/callback/page.tsx</text>
55
- <text x="22" y="92" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="18">2. Trace normalizeReturnTo and fallback logic</text>
56
- <text x="22" y="122" fill="#D0D0D0" font-family="Arial, Helvetica, sans-serif" font-size="18">3. Draft guarded redirect patch</text>
57
- <circle cx="27" cy="146" r="6" fill="#2EE6FF"/>
58
- <text x="42" y="151" fill="#D4D4D4" font-family="Arial, Helvetica, sans-serif" font-size="17" font-weight="700">Running</text>
59
- </g>
60
-
61
- <g transform="translate(622 312)">
62
- <rect width="256" height="166" rx="18" fill="#101010" stroke="#232323"/>
63
- <text x="22" y="28" fill="#7A7A7A" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" letter-spacing="1.8">PATCH SUMMARY</text>
64
- <text x="22" y="64" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="34" font-weight="700">2</text>
65
- <text x="58" y="64" fill="#AFAFAF" font-family="Arial, Helvetica, sans-serif" font-size="16">files touched</text>
66
- <text x="22" y="98" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="34" font-weight="700">12</text>
67
- <text x="70" y="98" fill="#AFAFAF" font-family="Arial, Helvetica, sans-serif" font-size="16">edits drafted</text>
68
- <text x="22" y="132" fill="#F3F3F3" font-family="Arial, Helvetica, sans-serif" font-size="34" font-weight="700">3/2</text>
69
- <text x="78" y="132" fill="#AFAFAF" font-family="Arial, Helvetica, sans-serif" font-size="16">checks / files</text>
70
- </g>
71
- </svg>