@lukoweb/apitogo 0.1.54 → 0.1.55

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 (41) hide show
  1. package/dist/cli/cli.js +604 -376
  2. package/dist/declarations/config/landing-manifest.d.ts +76 -0
  3. package/dist/declarations/config/local-manifest.d.ts +76 -0
  4. package/dist/declarations/config/validators/ModulesSchema.d.ts +227 -0
  5. package/dist/declarations/config/validators/ZudokuConfig.d.ts +50 -0
  6. package/dist/declarations/lib/authentication/header-nav-filter.d.ts +4 -0
  7. package/dist/declarations/lib/authentication/providers/dev-portal-auth-pages.d.ts +5 -5
  8. package/dist/declarations/lib/components/HeaderAuthActions.d.ts +3 -0
  9. package/dist/declarations/lib/components/SiteTitle.d.ts +6 -0
  10. package/dist/declarations/lib/components/ThemeSwitch.d.ts +3 -1
  11. package/dist/declarations/lib/components/TopNavigation.d.ts +1 -1
  12. package/dist/declarations/lib/core/ZudokuContext.d.ts +1 -0
  13. package/dist/flat-config.d.ts +44 -0
  14. package/package.json +1 -1
  15. package/src/app/main.css +2 -2
  16. package/src/config/apitogo-config-core.ts +13 -0
  17. package/src/config/apitogo-config-loader.browser.ts +17 -0
  18. package/src/config/build-apitogo-config.ts +13 -4
  19. package/src/config/landing-manifest.ts +11 -0
  20. package/src/config/landing-openapi-showcase.ts +115 -0
  21. package/src/config/loader.ts +17 -3
  22. package/src/config/local-manifest.ts +114 -10
  23. package/src/config/resolve-modules.ts +22 -1
  24. package/src/config/validators/ModulesSchema.ts +84 -0
  25. package/src/config/validators/ZudokuConfig.ts +1 -0
  26. package/src/lib/authentication/auth-header-nav.ts +5 -15
  27. package/src/lib/authentication/header-nav-filter.ts +36 -0
  28. package/src/lib/authentication/providers/dev-portal-auth-pages.tsx +95 -35
  29. package/src/lib/authentication/providers/dev-portal-utils.ts +17 -7
  30. package/src/lib/authentication/providers/dev-portal.tsx +18 -8
  31. package/src/lib/components/Header.tsx +49 -39
  32. package/src/lib/components/HeaderAuthActions.tsx +36 -0
  33. package/src/lib/components/HeaderNavigation.tsx +11 -9
  34. package/src/lib/components/MobileTopNavigation.tsx +43 -24
  35. package/src/lib/components/SiteTitle.tsx +20 -0
  36. package/src/lib/components/ThemeSwitch.tsx +36 -2
  37. package/src/lib/components/TopNavigation.tsx +20 -33
  38. package/src/lib/core/ZudokuContext.ts +1 -0
  39. package/src/vite/config.ts +21 -0
  40. package/src/vite/plugin-auth.ts +4 -1
  41. package/src/vite/plugin-config.ts +39 -4
@@ -0,0 +1,76 @@
1
+ import { z } from "zod";
2
+ import { LandingContentSchema } from "./validators/ModulesSchema.js";
3
+ export declare const LandingManifestContentSchema: z.ZodOptional<z.ZodObject<{
4
+ hero: z.ZodOptional<z.ZodObject<{
5
+ title: z.ZodOptional<z.ZodString>;
6
+ subtitle: z.ZodOptional<z.ZodString>;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ badge: z.ZodOptional<z.ZodString>;
9
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ codeExample: z.ZodOptional<z.ZodObject<{
11
+ filename: z.ZodOptional<z.ZodString>;
12
+ language: z.ZodOptional<z.ZodString>;
13
+ code: z.ZodString;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>>;
16
+ features: z.ZodOptional<z.ZodArray<z.ZodObject<{
17
+ title: z.ZodString;
18
+ description: z.ZodString;
19
+ icon: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>>>;
21
+ primaryAction: z.ZodOptional<z.ZodObject<{
22
+ label: z.ZodString;
23
+ href: z.ZodString;
24
+ }, z.core.$strip>>;
25
+ secondaryAction: z.ZodOptional<z.ZodObject<{
26
+ label: z.ZodString;
27
+ href: z.ZodString;
28
+ }, z.core.$strip>>;
29
+ ticker: z.ZodOptional<z.ZodObject<{
30
+ enabled: z.ZodOptional<z.ZodBoolean>;
31
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
32
+ label: z.ZodString;
33
+ value: z.ZodString;
34
+ change: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>>>;
36
+ }, z.core.$strip>>;
37
+ trust: z.ZodOptional<z.ZodObject<{
38
+ enabled: z.ZodOptional<z.ZodBoolean>;
39
+ title: z.ZodOptional<z.ZodString>;
40
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
41
+ }, z.core.$strip>>;
42
+ apiShowcase: z.ZodOptional<z.ZodObject<{
43
+ enabled: z.ZodOptional<z.ZodBoolean>;
44
+ title: z.ZodOptional<z.ZodString>;
45
+ subtitle: z.ZodOptional<z.ZodString>;
46
+ browseAllHref: z.ZodOptional<z.ZodString>;
47
+ browseAllLabel: z.ZodOptional<z.ZodString>;
48
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
49
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
50
+ name: z.ZodString;
51
+ path: z.ZodString;
52
+ icon: z.ZodOptional<z.ZodString>;
53
+ latency: z.ZodOptional<z.ZodString>;
54
+ summary: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>>>;
56
+ }, z.core.$strip>>;
57
+ pricingCta: z.ZodOptional<z.ZodObject<{
58
+ enabled: z.ZodOptional<z.ZodBoolean>;
59
+ title: z.ZodOptional<z.ZodString>;
60
+ description: z.ZodOptional<z.ZodString>;
61
+ primaryAction: z.ZodOptional<z.ZodObject<{
62
+ label: z.ZodString;
63
+ href: z.ZodString;
64
+ }, z.core.$strip>>;
65
+ secondaryAction: z.ZodOptional<z.ZodObject<{
66
+ label: z.ZodString;
67
+ href: z.ZodString;
68
+ }, z.core.$strip>>;
69
+ }, z.core.$strip>>;
70
+ showPoweredBy: z.ZodOptional<z.ZodBoolean>;
71
+ }, z.core.$strip>>;
72
+ export type LandingManifestContent = z.infer<typeof LandingContentSchema>;
73
+ export type LandingManifestInput = {
74
+ enabled?: boolean;
75
+ content?: LandingManifestContent;
76
+ };
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { APITOGO_CONFIG_FILENAME } from "./apitogo-config-loader.js";
3
+ import { type LandingManifestInput } from "./landing-manifest.js";
3
4
  export declare const APITOGO_MANIFEST_BASE_FILENAME = "apitogo.json";
4
5
  export declare const APITOGO_MANIFEST_ENV_FILES: {
5
6
  readonly development: "apitogo.local.json";
@@ -85,9 +86,82 @@ export declare const DevPortalLocalManifestSchema: z.ZodObject<{
85
86
  publicHealthActionKey: z.ZodOptional<z.ZodString>;
86
87
  }, z.core.$strip>>;
87
88
  projectId: z.ZodOptional<z.ZodString>;
89
+ landing: z.ZodOptional<z.ZodObject<{
90
+ enabled: z.ZodOptional<z.ZodBoolean>;
91
+ content: z.ZodOptional<z.ZodObject<{
92
+ hero: z.ZodOptional<z.ZodObject<{
93
+ title: z.ZodOptional<z.ZodString>;
94
+ subtitle: z.ZodOptional<z.ZodString>;
95
+ description: z.ZodOptional<z.ZodString>;
96
+ badge: z.ZodOptional<z.ZodString>;
97
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
98
+ codeExample: z.ZodOptional<z.ZodObject<{
99
+ filename: z.ZodOptional<z.ZodString>;
100
+ language: z.ZodOptional<z.ZodString>;
101
+ code: z.ZodString;
102
+ }, z.core.$strip>>;
103
+ }, z.core.$strip>>;
104
+ features: z.ZodOptional<z.ZodArray<z.ZodObject<{
105
+ title: z.ZodString;
106
+ description: z.ZodString;
107
+ icon: z.ZodOptional<z.ZodString>;
108
+ }, z.core.$strip>>>;
109
+ primaryAction: z.ZodOptional<z.ZodObject<{
110
+ label: z.ZodString;
111
+ href: z.ZodString;
112
+ }, z.core.$strip>>;
113
+ secondaryAction: z.ZodOptional<z.ZodObject<{
114
+ label: z.ZodString;
115
+ href: z.ZodString;
116
+ }, z.core.$strip>>;
117
+ ticker: z.ZodOptional<z.ZodObject<{
118
+ enabled: z.ZodOptional<z.ZodBoolean>;
119
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
120
+ label: z.ZodString;
121
+ value: z.ZodString;
122
+ change: z.ZodOptional<z.ZodString>;
123
+ }, z.core.$strip>>>;
124
+ }, z.core.$strip>>;
125
+ trust: z.ZodOptional<z.ZodObject<{
126
+ enabled: z.ZodOptional<z.ZodBoolean>;
127
+ title: z.ZodOptional<z.ZodString>;
128
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
+ }, z.core.$strip>>;
130
+ apiShowcase: z.ZodOptional<z.ZodObject<{
131
+ enabled: z.ZodOptional<z.ZodBoolean>;
132
+ title: z.ZodOptional<z.ZodString>;
133
+ subtitle: z.ZodOptional<z.ZodString>;
134
+ browseAllHref: z.ZodOptional<z.ZodString>;
135
+ browseAllLabel: z.ZodOptional<z.ZodString>;
136
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
137
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
138
+ name: z.ZodString;
139
+ path: z.ZodString;
140
+ icon: z.ZodOptional<z.ZodString>;
141
+ latency: z.ZodOptional<z.ZodString>;
142
+ summary: z.ZodOptional<z.ZodString>;
143
+ }, z.core.$strip>>>;
144
+ }, z.core.$strip>>;
145
+ pricingCta: z.ZodOptional<z.ZodObject<{
146
+ enabled: z.ZodOptional<z.ZodBoolean>;
147
+ title: z.ZodOptional<z.ZodString>;
148
+ description: z.ZodOptional<z.ZodString>;
149
+ primaryAction: z.ZodOptional<z.ZodObject<{
150
+ label: z.ZodString;
151
+ href: z.ZodString;
152
+ }, z.core.$strip>>;
153
+ secondaryAction: z.ZodOptional<z.ZodObject<{
154
+ label: z.ZodString;
155
+ href: z.ZodString;
156
+ }, z.core.$strip>>;
157
+ }, z.core.$strip>>;
158
+ showPoweredBy: z.ZodOptional<z.ZodBoolean>;
159
+ }, z.core.$strip>>;
160
+ }, z.core.$strip>>;
88
161
  }, z.core.$strip>;
89
162
  export type ManifestPlanInput = z.infer<typeof ManifestPlanInputSchema>;
90
163
  export type DevPortalLocalManifest = z.infer<typeof DevPortalLocalManifestSchema>;
164
+ export type { LandingManifestInput };
91
165
  export type DevPortalPreviewPlan = {
92
166
  sku: string;
93
167
  displayName: string;
@@ -110,6 +184,8 @@ export declare function normalizeBillingPeriod(period?: string): string;
110
184
  export declare function plansToPreviewCatalog(plans: ManifestPlanInput[] | undefined): Pick<DevPortalPreviewPlanCatalog, "plans">;
111
185
  export declare function resolveManifestEnv(viteMode: string): ApitogoManifestEnv;
112
186
  export declare function mergePlansBySku(existing: ManifestPlanInput[] | undefined, patch: ManifestPlanInput[]): ManifestPlanInput[];
187
+ export declare function mergeLandingContent(existing: LandingManifestInput["content"] | undefined, patch: LandingManifestInput["content"] | undefined): LandingManifestInput["content"] | undefined;
188
+ export declare function mergeLandingManifest(existing: LandingManifestInput | undefined, patch: LandingManifestInput | undefined): LandingManifestInput | undefined;
113
189
  export declare function mergeManifest(base: DevPortalLocalManifest, override: DevPortalLocalManifest): DevPortalLocalManifest;
114
190
  export declare function manifestFilePath(rootDir: string, filename?: string): string;
115
191
  export declare function manifestPathsForEnv(rootDir: string, _env: ApitogoManifestEnv): {
@@ -27,21 +27,95 @@ export declare const LandingLinkSchema: z.ZodObject<{
27
27
  export declare const LandingFeatureSchema: z.ZodObject<{
28
28
  title: z.ZodString;
29
29
  description: z.ZodString;
30
+ icon: z.ZodOptional<z.ZodString>;
30
31
  }, z.core.$strip>;
32
+ export declare const LandingCodeExampleSchema: z.ZodOptional<z.ZodObject<{
33
+ filename: z.ZodOptional<z.ZodString>;
34
+ language: z.ZodOptional<z.ZodString>;
35
+ code: z.ZodString;
36
+ }, z.core.$strip>>;
31
37
  export declare const LandingHeroSchema: z.ZodOptional<z.ZodObject<{
32
38
  title: z.ZodOptional<z.ZodString>;
33
39
  subtitle: z.ZodOptional<z.ZodString>;
34
40
  description: z.ZodOptional<z.ZodString>;
41
+ badge: z.ZodOptional<z.ZodString>;
42
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ codeExample: z.ZodOptional<z.ZodObject<{
44
+ filename: z.ZodOptional<z.ZodString>;
45
+ language: z.ZodOptional<z.ZodString>;
46
+ code: z.ZodString;
47
+ }, z.core.$strip>>;
48
+ }, z.core.$strip>>;
49
+ export declare const LandingTickerItemSchema: z.ZodObject<{
50
+ label: z.ZodString;
51
+ value: z.ZodString;
52
+ change: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>;
54
+ export declare const LandingTickerSchema: z.ZodOptional<z.ZodObject<{
55
+ enabled: z.ZodOptional<z.ZodBoolean>;
56
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
57
+ label: z.ZodString;
58
+ value: z.ZodString;
59
+ change: z.ZodOptional<z.ZodString>;
60
+ }, z.core.$strip>>>;
61
+ }, z.core.$strip>>;
62
+ export declare const LandingTrustSchema: z.ZodOptional<z.ZodObject<{
63
+ enabled: z.ZodOptional<z.ZodBoolean>;
64
+ title: z.ZodOptional<z.ZodString>;
65
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ }, z.core.$strip>>;
67
+ export declare const LandingApiShowcaseItemSchema: z.ZodObject<{
68
+ name: z.ZodString;
69
+ path: z.ZodString;
70
+ icon: z.ZodOptional<z.ZodString>;
71
+ latency: z.ZodOptional<z.ZodString>;
72
+ summary: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strip>;
74
+ export declare const LandingApiShowcaseSchema: z.ZodOptional<z.ZodObject<{
75
+ enabled: z.ZodOptional<z.ZodBoolean>;
76
+ title: z.ZodOptional<z.ZodString>;
77
+ subtitle: z.ZodOptional<z.ZodString>;
78
+ browseAllHref: z.ZodOptional<z.ZodString>;
79
+ browseAllLabel: z.ZodOptional<z.ZodString>;
80
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
81
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
82
+ name: z.ZodString;
83
+ path: z.ZodString;
84
+ icon: z.ZodOptional<z.ZodString>;
85
+ latency: z.ZodOptional<z.ZodString>;
86
+ summary: z.ZodOptional<z.ZodString>;
87
+ }, z.core.$strip>>>;
88
+ }, z.core.$strip>>;
89
+ export declare const LandingPricingCtaSchema: z.ZodOptional<z.ZodObject<{
90
+ enabled: z.ZodOptional<z.ZodBoolean>;
91
+ title: z.ZodOptional<z.ZodString>;
92
+ description: z.ZodOptional<z.ZodString>;
93
+ primaryAction: z.ZodOptional<z.ZodObject<{
94
+ label: z.ZodString;
95
+ href: z.ZodString;
96
+ }, z.core.$strip>>;
97
+ secondaryAction: z.ZodOptional<z.ZodObject<{
98
+ label: z.ZodString;
99
+ href: z.ZodString;
100
+ }, z.core.$strip>>;
35
101
  }, z.core.$strip>>;
36
102
  export declare const LandingContentSchema: z.ZodOptional<z.ZodObject<{
37
103
  hero: z.ZodOptional<z.ZodObject<{
38
104
  title: z.ZodOptional<z.ZodString>;
39
105
  subtitle: z.ZodOptional<z.ZodString>;
40
106
  description: z.ZodOptional<z.ZodString>;
107
+ badge: z.ZodOptional<z.ZodString>;
108
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
109
+ codeExample: z.ZodOptional<z.ZodObject<{
110
+ filename: z.ZodOptional<z.ZodString>;
111
+ language: z.ZodOptional<z.ZodString>;
112
+ code: z.ZodString;
113
+ }, z.core.$strip>>;
41
114
  }, z.core.$strip>>;
42
115
  features: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
116
  title: z.ZodString;
44
117
  description: z.ZodString;
118
+ icon: z.ZodOptional<z.ZodString>;
45
119
  }, z.core.$strip>>>;
46
120
  primaryAction: z.ZodOptional<z.ZodObject<{
47
121
  label: z.ZodString;
@@ -51,6 +125,47 @@ export declare const LandingContentSchema: z.ZodOptional<z.ZodObject<{
51
125
  label: z.ZodString;
52
126
  href: z.ZodString;
53
127
  }, z.core.$strip>>;
128
+ ticker: z.ZodOptional<z.ZodObject<{
129
+ enabled: z.ZodOptional<z.ZodBoolean>;
130
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
131
+ label: z.ZodString;
132
+ value: z.ZodString;
133
+ change: z.ZodOptional<z.ZodString>;
134
+ }, z.core.$strip>>>;
135
+ }, z.core.$strip>>;
136
+ trust: z.ZodOptional<z.ZodObject<{
137
+ enabled: z.ZodOptional<z.ZodBoolean>;
138
+ title: z.ZodOptional<z.ZodString>;
139
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
140
+ }, z.core.$strip>>;
141
+ apiShowcase: z.ZodOptional<z.ZodObject<{
142
+ enabled: z.ZodOptional<z.ZodBoolean>;
143
+ title: z.ZodOptional<z.ZodString>;
144
+ subtitle: z.ZodOptional<z.ZodString>;
145
+ browseAllHref: z.ZodOptional<z.ZodString>;
146
+ browseAllLabel: z.ZodOptional<z.ZodString>;
147
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
148
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
149
+ name: z.ZodString;
150
+ path: z.ZodString;
151
+ icon: z.ZodOptional<z.ZodString>;
152
+ latency: z.ZodOptional<z.ZodString>;
153
+ summary: z.ZodOptional<z.ZodString>;
154
+ }, z.core.$strip>>>;
155
+ }, z.core.$strip>>;
156
+ pricingCta: z.ZodOptional<z.ZodObject<{
157
+ enabled: z.ZodOptional<z.ZodBoolean>;
158
+ title: z.ZodOptional<z.ZodString>;
159
+ description: z.ZodOptional<z.ZodString>;
160
+ primaryAction: z.ZodOptional<z.ZodObject<{
161
+ label: z.ZodString;
162
+ href: z.ZodString;
163
+ }, z.core.$strip>>;
164
+ secondaryAction: z.ZodOptional<z.ZodObject<{
165
+ label: z.ZodString;
166
+ href: z.ZodString;
167
+ }, z.core.$strip>>;
168
+ }, z.core.$strip>>;
54
169
  showPoweredBy: z.ZodOptional<z.ZodBoolean>;
55
170
  }, z.core.$strip>>;
56
171
  export declare const DashboardContentSchema: z.ZodOptional<z.ZodObject<{
@@ -99,10 +214,18 @@ export declare const LandingModuleSchema: z.ZodObject<{
99
214
  title: z.ZodOptional<z.ZodString>;
100
215
  subtitle: z.ZodOptional<z.ZodString>;
101
216
  description: z.ZodOptional<z.ZodString>;
217
+ badge: z.ZodOptional<z.ZodString>;
218
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
219
+ codeExample: z.ZodOptional<z.ZodObject<{
220
+ filename: z.ZodOptional<z.ZodString>;
221
+ language: z.ZodOptional<z.ZodString>;
222
+ code: z.ZodString;
223
+ }, z.core.$strip>>;
102
224
  }, z.core.$strip>>;
103
225
  features: z.ZodOptional<z.ZodArray<z.ZodObject<{
104
226
  title: z.ZodString;
105
227
  description: z.ZodString;
228
+ icon: z.ZodOptional<z.ZodString>;
106
229
  }, z.core.$strip>>>;
107
230
  primaryAction: z.ZodOptional<z.ZodObject<{
108
231
  label: z.ZodString;
@@ -112,6 +235,47 @@ export declare const LandingModuleSchema: z.ZodObject<{
112
235
  label: z.ZodString;
113
236
  href: z.ZodString;
114
237
  }, z.core.$strip>>;
238
+ ticker: z.ZodOptional<z.ZodObject<{
239
+ enabled: z.ZodOptional<z.ZodBoolean>;
240
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
241
+ label: z.ZodString;
242
+ value: z.ZodString;
243
+ change: z.ZodOptional<z.ZodString>;
244
+ }, z.core.$strip>>>;
245
+ }, z.core.$strip>>;
246
+ trust: z.ZodOptional<z.ZodObject<{
247
+ enabled: z.ZodOptional<z.ZodBoolean>;
248
+ title: z.ZodOptional<z.ZodString>;
249
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
250
+ }, z.core.$strip>>;
251
+ apiShowcase: z.ZodOptional<z.ZodObject<{
252
+ enabled: z.ZodOptional<z.ZodBoolean>;
253
+ title: z.ZodOptional<z.ZodString>;
254
+ subtitle: z.ZodOptional<z.ZodString>;
255
+ browseAllHref: z.ZodOptional<z.ZodString>;
256
+ browseAllLabel: z.ZodOptional<z.ZodString>;
257
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
258
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
259
+ name: z.ZodString;
260
+ path: z.ZodString;
261
+ icon: z.ZodOptional<z.ZodString>;
262
+ latency: z.ZodOptional<z.ZodString>;
263
+ summary: z.ZodOptional<z.ZodString>;
264
+ }, z.core.$strip>>>;
265
+ }, z.core.$strip>>;
266
+ pricingCta: z.ZodOptional<z.ZodObject<{
267
+ enabled: z.ZodOptional<z.ZodBoolean>;
268
+ title: z.ZodOptional<z.ZodString>;
269
+ description: z.ZodOptional<z.ZodString>;
270
+ primaryAction: z.ZodOptional<z.ZodObject<{
271
+ label: z.ZodString;
272
+ href: z.ZodString;
273
+ }, z.core.$strip>>;
274
+ secondaryAction: z.ZodOptional<z.ZodObject<{
275
+ label: z.ZodString;
276
+ href: z.ZodString;
277
+ }, z.core.$strip>>;
278
+ }, z.core.$strip>>;
115
279
  showPoweredBy: z.ZodOptional<z.ZodBoolean>;
116
280
  }, z.core.$strip>>;
117
281
  }, z.core.$strip>;
@@ -280,10 +444,18 @@ export declare const ModulesSchema: z.ZodOptional<z.ZodObject<{
280
444
  title: z.ZodOptional<z.ZodString>;
281
445
  subtitle: z.ZodOptional<z.ZodString>;
282
446
  description: z.ZodOptional<z.ZodString>;
447
+ badge: z.ZodOptional<z.ZodString>;
448
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
449
+ codeExample: z.ZodOptional<z.ZodObject<{
450
+ filename: z.ZodOptional<z.ZodString>;
451
+ language: z.ZodOptional<z.ZodString>;
452
+ code: z.ZodString;
453
+ }, z.core.$strip>>;
283
454
  }, z.core.$strip>>;
284
455
  features: z.ZodOptional<z.ZodArray<z.ZodObject<{
285
456
  title: z.ZodString;
286
457
  description: z.ZodString;
458
+ icon: z.ZodOptional<z.ZodString>;
287
459
  }, z.core.$strip>>>;
288
460
  primaryAction: z.ZodOptional<z.ZodObject<{
289
461
  label: z.ZodString;
@@ -293,6 +465,47 @@ export declare const ModulesSchema: z.ZodOptional<z.ZodObject<{
293
465
  label: z.ZodString;
294
466
  href: z.ZodString;
295
467
  }, z.core.$strip>>;
468
+ ticker: z.ZodOptional<z.ZodObject<{
469
+ enabled: z.ZodOptional<z.ZodBoolean>;
470
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
471
+ label: z.ZodString;
472
+ value: z.ZodString;
473
+ change: z.ZodOptional<z.ZodString>;
474
+ }, z.core.$strip>>>;
475
+ }, z.core.$strip>>;
476
+ trust: z.ZodOptional<z.ZodObject<{
477
+ enabled: z.ZodOptional<z.ZodBoolean>;
478
+ title: z.ZodOptional<z.ZodString>;
479
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
480
+ }, z.core.$strip>>;
481
+ apiShowcase: z.ZodOptional<z.ZodObject<{
482
+ enabled: z.ZodOptional<z.ZodBoolean>;
483
+ title: z.ZodOptional<z.ZodString>;
484
+ subtitle: z.ZodOptional<z.ZodString>;
485
+ browseAllHref: z.ZodOptional<z.ZodString>;
486
+ browseAllLabel: z.ZodOptional<z.ZodString>;
487
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
488
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
489
+ name: z.ZodString;
490
+ path: z.ZodString;
491
+ icon: z.ZodOptional<z.ZodString>;
492
+ latency: z.ZodOptional<z.ZodString>;
493
+ summary: z.ZodOptional<z.ZodString>;
494
+ }, z.core.$strip>>>;
495
+ }, z.core.$strip>>;
496
+ pricingCta: z.ZodOptional<z.ZodObject<{
497
+ enabled: z.ZodOptional<z.ZodBoolean>;
498
+ title: z.ZodOptional<z.ZodString>;
499
+ description: z.ZodOptional<z.ZodString>;
500
+ primaryAction: z.ZodOptional<z.ZodObject<{
501
+ label: z.ZodString;
502
+ href: z.ZodString;
503
+ }, z.core.$strip>>;
504
+ secondaryAction: z.ZodOptional<z.ZodObject<{
505
+ label: z.ZodString;
506
+ href: z.ZodString;
507
+ }, z.core.$strip>>;
508
+ }, z.core.$strip>>;
296
509
  showPoweredBy: z.ZodOptional<z.ZodBoolean>;
297
510
  }, z.core.$strip>>;
298
511
  }, z.core.$strip>>;
@@ -381,15 +594,29 @@ export type DashboardContentConfig = z.infer<typeof DashboardContentSchema>;
381
594
  export type ProfileContentConfig = z.infer<typeof ProfileContentSchema>;
382
595
  export type PlansContentConfig = z.infer<typeof PlansContentSchema>;
383
596
  export type PlanTierConfig = z.infer<typeof PlanTierSchema>;
597
+ export type LandingCodeExampleConfig = z.infer<typeof LandingCodeExampleSchema>;
598
+ export type LandingTickerItemConfig = z.infer<typeof LandingTickerItemSchema>;
599
+ export type LandingTickerConfig = z.infer<typeof LandingTickerSchema>;
600
+ export type LandingTrustConfig = z.infer<typeof LandingTrustSchema>;
601
+ export type LandingApiShowcaseItemConfig = z.infer<typeof LandingApiShowcaseItemSchema>;
602
+ export type LandingApiShowcaseConfig = z.infer<typeof LandingApiShowcaseSchema>;
603
+ export type LandingPricingCtaConfig = z.infer<typeof LandingPricingCtaSchema>;
384
604
  export type ResolvedLandingContent = {
385
605
  hero?: {
386
606
  title?: string;
387
607
  subtitle?: string;
388
608
  description?: string;
609
+ badge?: string;
610
+ highlights?: string[];
611
+ codeExample?: NonNullable<LandingCodeExampleConfig>;
389
612
  };
390
613
  features?: LandingFeatureConfig[];
391
614
  primaryAction?: LandingLinkConfig;
392
615
  secondaryAction?: LandingLinkConfig;
616
+ ticker?: LandingTickerConfig;
617
+ trust?: LandingTrustConfig;
618
+ apiShowcase?: LandingApiShowcaseConfig;
619
+ pricingCta?: LandingPricingCtaConfig;
393
620
  showPoweredBy?: boolean;
394
621
  };
395
622
  export type ResolvedLandingModule = {
@@ -471,6 +471,7 @@ export declare const ZudokuConfig: z.ZodObject<{
471
471
  }, z.core.$strip>>>;
472
472
  site: z.ZodOptional<z.ZodObject<{
473
473
  title: z.ZodOptional<z.ZodString>;
474
+ showTitleInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
474
475
  logoUrl: z.ZodOptional<z.ZodString>;
475
476
  dir: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
476
477
  ltr: "ltr";
@@ -6891,10 +6892,18 @@ export declare const ZudokuConfig: z.ZodObject<{
6891
6892
  title: z.ZodOptional<z.ZodString>;
6892
6893
  subtitle: z.ZodOptional<z.ZodString>;
6893
6894
  description: z.ZodOptional<z.ZodString>;
6895
+ badge: z.ZodOptional<z.ZodString>;
6896
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString>>;
6897
+ codeExample: z.ZodOptional<z.ZodObject<{
6898
+ filename: z.ZodOptional<z.ZodString>;
6899
+ language: z.ZodOptional<z.ZodString>;
6900
+ code: z.ZodString;
6901
+ }, z.core.$strip>>;
6894
6902
  }, z.core.$strip>>;
6895
6903
  features: z.ZodOptional<z.ZodArray<z.ZodObject<{
6896
6904
  title: z.ZodString;
6897
6905
  description: z.ZodString;
6906
+ icon: z.ZodOptional<z.ZodString>;
6898
6907
  }, z.core.$strip>>>;
6899
6908
  primaryAction: z.ZodOptional<z.ZodObject<{
6900
6909
  label: z.ZodString;
@@ -6904,6 +6913,47 @@ export declare const ZudokuConfig: z.ZodObject<{
6904
6913
  label: z.ZodString;
6905
6914
  href: z.ZodString;
6906
6915
  }, z.core.$strip>>;
6916
+ ticker: z.ZodOptional<z.ZodObject<{
6917
+ enabled: z.ZodOptional<z.ZodBoolean>;
6918
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
6919
+ label: z.ZodString;
6920
+ value: z.ZodString;
6921
+ change: z.ZodOptional<z.ZodString>;
6922
+ }, z.core.$strip>>>;
6923
+ }, z.core.$strip>>;
6924
+ trust: z.ZodOptional<z.ZodObject<{
6925
+ enabled: z.ZodOptional<z.ZodBoolean>;
6926
+ title: z.ZodOptional<z.ZodString>;
6927
+ logos: z.ZodOptional<z.ZodArray<z.ZodString>>;
6928
+ }, z.core.$strip>>;
6929
+ apiShowcase: z.ZodOptional<z.ZodObject<{
6930
+ enabled: z.ZodOptional<z.ZodBoolean>;
6931
+ title: z.ZodOptional<z.ZodString>;
6932
+ subtitle: z.ZodOptional<z.ZodString>;
6933
+ browseAllHref: z.ZodOptional<z.ZodString>;
6934
+ browseAllLabel: z.ZodOptional<z.ZodString>;
6935
+ autoFromOpenApi: z.ZodOptional<z.ZodBoolean>;
6936
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
6937
+ name: z.ZodString;
6938
+ path: z.ZodString;
6939
+ icon: z.ZodOptional<z.ZodString>;
6940
+ latency: z.ZodOptional<z.ZodString>;
6941
+ summary: z.ZodOptional<z.ZodString>;
6942
+ }, z.core.$strip>>>;
6943
+ }, z.core.$strip>>;
6944
+ pricingCta: z.ZodOptional<z.ZodObject<{
6945
+ enabled: z.ZodOptional<z.ZodBoolean>;
6946
+ title: z.ZodOptional<z.ZodString>;
6947
+ description: z.ZodOptional<z.ZodString>;
6948
+ primaryAction: z.ZodOptional<z.ZodObject<{
6949
+ label: z.ZodString;
6950
+ href: z.ZodString;
6951
+ }, z.core.$strip>>;
6952
+ secondaryAction: z.ZodOptional<z.ZodObject<{
6953
+ label: z.ZodString;
6954
+ href: z.ZodString;
6955
+ }, z.core.$strip>>;
6956
+ }, z.core.$strip>>;
6907
6957
  showPoweredBy: z.ZodOptional<z.ZodBoolean>;
6908
6958
  }, z.core.$strip>>;
6909
6959
  }, z.core.$strip>>;
@@ -0,0 +1,4 @@
1
+ import type { HeaderNavigation } from "../../config/validators/HeaderNavigationSchema.js";
2
+ export declare function withoutAuthHeaderNavigation(navigation: HeaderNavigation): HeaderNavigation;
3
+ export declare function withoutPricingHeaderNavigation(navigation: HeaderNavigation): HeaderNavigation;
4
+ export declare function withoutMarketingCtaHeaderNavigation(navigation: HeaderNavigation): HeaderNavigation;
@@ -1,15 +1,15 @@
1
- export declare function DevPortalLoginPage({ apiBaseUrl, }: {
1
+ export declare function DevPortalLoginPage({ apiBaseUrl }: {
2
2
  apiBaseUrl?: string;
3
3
  }): import("react/jsx-runtime").JSX.Element;
4
- export declare function DevPortalRegisterPage({ apiBaseUrl, }: {
4
+ export declare function DevPortalRegisterPage({ apiBaseUrl }: {
5
5
  apiBaseUrl?: string;
6
6
  }): import("react/jsx-runtime").JSX.Element;
7
- export declare function DevPortalVerifyEmailPage({ apiBaseUrl }: {
7
+ export declare function DevPortalVerifyEmailPage({ apiBaseUrl, }: {
8
8
  apiBaseUrl?: string;
9
9
  }): import("react/jsx-runtime").JSX.Element;
10
- export declare function DevPortalForgotPasswordPage({ apiBaseUrl }: {
10
+ export declare function DevPortalForgotPasswordPage({ apiBaseUrl, }: {
11
11
  apiBaseUrl?: string;
12
12
  }): import("react/jsx-runtime").JSX.Element;
13
- export declare function DevPortalResetPasswordPage({ apiBaseUrl }: {
13
+ export declare function DevPortalResetPasswordPage({ apiBaseUrl, }: {
14
14
  apiBaseUrl?: string;
15
15
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare const HeaderAuthActions: ({ className }: {
2
+ className?: string;
3
+ }) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ type SiteTitleProps = {
2
+ title: string;
3
+ className?: string;
4
+ };
5
+ export declare const SiteTitle: ({ title, className }: SiteTitleProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1 +1,3 @@
1
- export declare const ThemeSwitch: () => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ThemeSwitch: ({ variant, }: {
2
+ variant?: "default" | "compact";
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { type NavLinkProps } from "react-router";
2
2
  import type { NavigationItem } from "../../config/validators/NavigationSchema.js";
3
- export declare const TopNavigation: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const TopNavigation: () => import("react/jsx-runtime").JSX.Element | null;
4
4
  export declare const TopNavLink: ({ isActive, children, ...props }: {
5
5
  isActive?: boolean;
6
6
  children: React.ReactNode;
@@ -50,6 +50,7 @@ type Site = Partial<{
50
50
  dir?: "ltr" | "rtl";
51
51
  showPoweredBy?: boolean;
52
52
  title?: string;
53
+ showTitleInHeader?: boolean;
53
54
  logo?: {
54
55
  src: {
55
56
  light: string;