@caelo-cms/shared 0.10.21 → 0.10.23
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/ai-tools.d.ts +291 -231
- package/dist/ai-tools.d.ts.map +1 -1
- package/dist/ai-tools.js +349 -281
- package/dist/ai-tools.js.map +1 -1
- package/dist/auth-forms.d.ts.map +1 -1
- package/dist/auth-forms.js +4 -1
- package/dist/auth-forms.js.map +1 -1
- package/dist/base-css.d.ts +24 -0
- package/dist/base-css.d.ts.map +1 -0
- package/dist/base-css.js +28 -0
- package/dist/base-css.js.map +1 -0
- package/dist/build-page.d.ts +330 -0
- package/dist/build-page.d.ts.map +1 -0
- package/dist/build-page.js +282 -0
- package/dist/build-page.js.map +1 -0
- package/dist/content.d.ts +322 -9
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +354 -11
- package/dist/content.js.map +1 -1
- package/dist/css-gradient-scan.d.ts +14 -0
- package/dist/css-gradient-scan.d.ts.map +1 -0
- package/dist/css-gradient-scan.js +81 -0
- package/dist/css-gradient-scan.js.map +1 -0
- package/dist/css-var-scan.d.ts +56 -0
- package/dist/css-var-scan.d.ts.map +1 -0
- package/dist/css-var-scan.js +97 -0
- package/dist/css-var-scan.js.map +1 -0
- package/dist/design-manifest.d.ts +36 -0
- package/dist/design-manifest.d.ts.map +1 -0
- package/dist/design-manifest.js +90 -0
- package/dist/design-manifest.js.map +1 -0
- package/dist/fonts.d.ts +89 -0
- package/dist/fonts.d.ts.map +1 -0
- package/dist/fonts.js +241 -0
- package/dist/fonts.js.map +1 -0
- package/dist/genesis-inventory.d.ts +32 -0
- package/dist/genesis-inventory.d.ts.map +1 -0
- package/dist/genesis-inventory.js +186 -0
- package/dist/genesis-inventory.js.map +1 -0
- package/dist/genesis.d.ts +62 -0
- package/dist/genesis.d.ts.map +1 -0
- package/dist/genesis.js +78 -0
- package/dist/genesis.js.map +1 -0
- package/dist/i18n.d.ts +44 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +72 -6
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/dist/interactions.d.ts +23 -0
- package/dist/interactions.d.ts.map +1 -0
- package/dist/interactions.js +44 -0
- package/dist/interactions.js.map +1 -0
- package/dist/media.d.ts +101 -16
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +126 -15
- package/dist/media.js.map +1 -1
- package/dist/page-log.d.ts +94 -0
- package/dist/page-log.d.ts.map +1 -0
- package/dist/page-log.js +111 -0
- package/dist/page-log.js.map +1 -0
- package/dist/preview-compose.d.ts +79 -0
- package/dist/preview-compose.d.ts.map +1 -1
- package/dist/preview-compose.js +155 -25
- package/dist/preview-compose.js.map +1 -1
- package/dist/proposal-status.d.ts +40 -0
- package/dist/proposal-status.d.ts.map +1 -0
- package/dist/proposal-status.js +34 -0
- package/dist/proposal-status.js.map +1 -0
- package/dist/responsive-images.d.ts +64 -0
- package/dist/responsive-images.d.ts.map +1 -0
- package/dist/responsive-images.js +98 -0
- package/dist/responsive-images.js.map +1 -0
- package/dist/safe-keys.d.ts +9 -0
- package/dist/safe-keys.d.ts.map +1 -0
- package/dist/safe-keys.js +20 -0
- package/dist/safe-keys.js.map +1 -0
- package/dist/seo.d.ts +8 -0
- package/dist/seo.d.ts.map +1 -1
- package/dist/seo.js +3 -1
- package/dist/seo.js.map +1 -1
- package/dist/skills.d.ts +14 -68
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +19 -113
- package/dist/skills.js.map +1 -1
- package/dist/strip-cdata.d.ts +7 -0
- package/dist/strip-cdata.d.ts.map +1 -0
- package/dist/strip-cdata.js +48 -0
- package/dist/strip-cdata.js.map +1 -0
- package/dist/structured-sets.d.ts +6 -16
- package/dist/structured-sets.d.ts.map +1 -1
- package/dist/structured-sets.js +5 -16
- package/dist/structured-sets.js.map +1 -1
- package/dist/subagents.d.ts +105 -3
- package/dist/subagents.d.ts.map +1 -1
- package/dist/subagents.js +224 -41
- package/dist/subagents.js.map +1 -1
- package/dist/template-engine.d.ts +85 -0
- package/dist/template-engine.d.ts.map +1 -0
- package/dist/template-engine.js +403 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/theme-importers/auto-detect.d.ts +26 -0
- package/dist/theme-importers/auto-detect.d.ts.map +1 -0
- package/dist/theme-importers/auto-detect.js +42 -0
- package/dist/theme-importers/auto-detect.js.map +1 -0
- package/dist/theme-importers/css-comments.d.ts +12 -0
- package/dist/theme-importers/css-comments.d.ts.map +1 -0
- package/dist/theme-importers/css-comments.js +15 -0
- package/dist/theme-importers/css-comments.js.map +1 -0
- package/dist/theme-importers/dtcg.d.ts +46 -0
- package/dist/theme-importers/dtcg.d.ts.map +1 -0
- package/dist/theme-importers/dtcg.js +111 -0
- package/dist/theme-importers/dtcg.js.map +1 -0
- package/dist/theme-importers/loose.d.ts +3 -0
- package/dist/theme-importers/loose.d.ts.map +1 -0
- package/dist/theme-importers/loose.js +76 -0
- package/dist/theme-importers/loose.js.map +1 -0
- package/dist/theme-importers/shadcn.d.ts +24 -0
- package/dist/theme-importers/shadcn.d.ts.map +1 -0
- package/dist/theme-importers/shadcn.js +135 -0
- package/dist/theme-importers/shadcn.js.map +1 -0
- package/dist/theme-importers/style-dictionary.d.ts +17 -0
- package/dist/theme-importers/style-dictionary.d.ts.map +1 -0
- package/dist/theme-importers/style-dictionary.js +125 -0
- package/dist/theme-importers/style-dictionary.js.map +1 -0
- package/dist/theme-importers/tailwind.d.ts +3 -0
- package/dist/theme-importers/tailwind.d.ts.map +1 -0
- package/dist/theme-importers/tailwind.js +218 -0
- package/dist/theme-importers/tailwind.js.map +1 -0
- package/dist/theme-literal-binding.d.ts +37 -0
- package/dist/theme-literal-binding.d.ts.map +1 -0
- package/dist/theme-literal-binding.js +138 -0
- package/dist/theme-literal-binding.js.map +1 -0
- package/dist/theme-normalize.d.ts +31 -0
- package/dist/theme-normalize.d.ts.map +1 -0
- package/dist/theme-normalize.js +587 -0
- package/dist/theme-normalize.js.map +1 -0
- package/dist/theme-ramp.d.ts +55 -0
- package/dist/theme-ramp.d.ts.map +1 -0
- package/dist/theme-ramp.js +149 -0
- package/dist/theme-ramp.js.map +1 -0
- package/dist/theme-render.d.ts +105 -0
- package/dist/theme-render.d.ts.map +1 -0
- package/dist/theme-render.js +441 -0
- package/dist/theme-render.js.map +1 -0
- package/dist/themes-errors.d.ts +109 -0
- package/dist/themes-errors.d.ts.map +1 -0
- package/dist/themes-errors.js +170 -0
- package/dist/themes-errors.js.map +1 -0
- package/dist/themes.d.ts +343 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +697 -0
- package/dist/themes.js.map +1 -0
- package/dist/version.d.ts +7 -4
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +6 -3
- package/dist/version.js.map +1 -1
- package/package.json +10 -2
- package/src/__tests__/redos-hardening.test.ts +160 -0
- package/src/ai-tools-add-module-modes.test.ts +106 -0
- package/src/ai-tools-position.test.ts +134 -0
- package/src/ai-tools.test.ts +81 -0
- package/src/ai-tools.ts +1179 -0
- package/src/auth-forms.ts +36 -0
- package/src/base-css.ts +30 -0
- package/src/build-page.test.ts +228 -0
- package/src/build-page.ts +319 -0
- package/src/cap-failures.ts +67 -0
- package/src/content.test.ts +170 -0
- package/src/content.ts +620 -0
- package/src/context.ts +43 -0
- package/src/css-gradient-scan.ts +88 -0
- package/src/css-var-scan.test.ts +96 -0
- package/src/css-var-scan.ts +144 -0
- package/src/derive-module-type.test.ts +80 -0
- package/src/design-manifest.ts +93 -0
- package/src/fonts.test.ts +157 -0
- package/src/fonts.ts +296 -0
- package/src/genesis-inventory.test.ts +86 -0
- package/src/genesis-inventory.ts +215 -0
- package/src/genesis-sanitize.test.ts +35 -0
- package/src/genesis.ts +87 -0
- package/src/i18n.test.ts +274 -0
- package/src/i18n.ts +269 -0
- package/src/index.test.ts +10 -0
- package/src/index.ts +59 -0
- package/src/interactions.ts +48 -0
- package/src/logger.ts +147 -0
- package/src/media.test.ts +160 -0
- package/src/media.ts +355 -0
- package/src/page-log.test.ts +163 -0
- package/src/page-log.ts +124 -0
- package/src/preview-compose.test.ts +602 -0
- package/src/preview-compose.ts +709 -0
- package/src/preview-scanner.test.ts +96 -0
- package/src/preview-scanner.ts +214 -0
- package/src/proposal-status.test.ts +69 -0
- package/src/proposal-status.ts +40 -0
- package/src/responsive-images.test.ts +104 -0
- package/src/responsive-images.ts +151 -0
- package/src/result.ts +29 -0
- package/src/safe-keys.ts +21 -0
- package/src/seo.test.ts +234 -0
- package/src/seo.ts +261 -0
- package/src/skills.ts +48 -0
- package/src/snapshots.test.ts +80 -0
- package/src/snapshots.ts +81 -0
- package/src/strip-cdata.test.ts +41 -0
- package/src/strip-cdata.ts +50 -0
- package/src/structured-sets.ts +180 -0
- package/src/subagents.test.ts +262 -0
- package/src/subagents.ts +432 -0
- package/src/template-engine.test.ts +379 -0
- package/src/template-engine.ts +520 -0
- package/src/theme-gradient.test.ts +92 -0
- package/src/theme-importers/__tests__/proto-pollution.test.ts +54 -0
- package/src/theme-importers/auto-detect.ts +84 -0
- package/src/theme-importers/css-comments.ts +15 -0
- package/src/theme-importers/dtcg.ts +106 -0
- package/src/theme-importers/loose.ts +76 -0
- package/src/theme-importers/shadcn.ts +133 -0
- package/src/theme-importers/style-dictionary.ts +125 -0
- package/src/theme-importers/tailwind.ts +217 -0
- package/src/theme-literal-binding.test.ts +71 -0
- package/src/theme-literal-binding.ts +159 -0
- package/src/theme-motion.test.ts +115 -0
- package/src/theme-normalize-envelope.test.ts +43 -0
- package/src/theme-normalize-gradient.test.ts +135 -0
- package/src/theme-normalize.ts +661 -0
- package/src/theme-ramp.ts +187 -0
- package/src/theme-render-sanitize.test.ts +45 -0
- package/src/theme-render.test.ts +119 -0
- package/src/theme-render.ts +487 -0
- package/src/theme-shadow.test.ts +56 -0
- package/src/themes-errors.ts +199 -0
- package/src/themes.ts +842 -0
- package/src/translation.test.ts +160 -0
- package/src/translation.ts +295 -0
- package/src/version.ts +66 -0
package/dist/content.d.ts
CHANGED
|
@@ -10,6 +10,41 @@
|
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
/** Lowercase slug, hyphenated, 1–64 chars, no leading/trailing hyphen. */
|
|
12
12
|
export declare const slugSchema: z.ZodString;
|
|
13
|
+
/**
|
|
14
|
+
* v0.12.3 (issue #106) — derive a module's stable `type` from its
|
|
15
|
+
* displayName. The `type` is the semantic class of a module (`button`,
|
|
16
|
+
* `hero`, `pricing-card`) shared by every instance of that class — it is
|
|
17
|
+
* what a parent module's `allowedModuleTypes` whitelist matches against.
|
|
18
|
+
*
|
|
19
|
+
* This is the slug *base* WITHOUT the `-<timestamp>` uniqueness suffix
|
|
20
|
+
* that `slugify()` appends: a module's `slug` is its unique row identity
|
|
21
|
+
* (`button-mpqxq3ch`), its `type` is the reusable class (`button`). The
|
|
22
|
+
* tool-side `slugify` composes as `deriveModuleType(name) + "-" + suffix`
|
|
23
|
+
* so the two can never diverge.
|
|
24
|
+
*
|
|
25
|
+
* Mirrors `slugify`'s normalization (lowercase, non-alphanumerics → single
|
|
26
|
+
* hyphen, trim hyphens, 40-char cap, `"module"` stem fallback) so a
|
|
27
|
+
* round-trip is predictable.
|
|
28
|
+
*/
|
|
29
|
+
export declare function deriveModuleType(displayName: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* v0.12.3 (issue #106) — mint a unique module slug from a displayName:
|
|
32
|
+
* the stable `type` base (`deriveModuleType`) + a base36 timestamp
|
|
33
|
+
* suffix. Because the slug is always `type + "-" + suffix`, a module's
|
|
34
|
+
* `type` is guaranteed to be a prefix of its `slug` — the two can never
|
|
35
|
+
* drift. Shared by every module-minting AI tool so the rule lives in one
|
|
36
|
+
* place.
|
|
37
|
+
*
|
|
38
|
+
* @param suffix - override the uniqueness suffix (defaults to a base36
|
|
39
|
+
* timestamp). Pass a stable value in tests for determinism.
|
|
40
|
+
*/
|
|
41
|
+
export declare function slugifyModuleName(displayName: string, suffix?: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* v0.12.3 (issue #106) — slug for a module minted per page-section
|
|
44
|
+
* (`build_page` / legacy compose). Includes the section index so two sections
|
|
45
|
+
* sharing a displayName don't collide on the unique slug constraint.
|
|
46
|
+
*/
|
|
47
|
+
export declare function slugifyModuleSection(displayName: string, idx: number, suffix?: string): string;
|
|
13
48
|
/** BCP-47 shape: 2-letter language with optional 2-letter region. P9 widens this. */
|
|
14
49
|
export declare const localeSchema: z.ZodString;
|
|
15
50
|
/** Caps are arbitrary but cheap — paste-of-binary mistakes get caught. */
|
|
@@ -21,10 +56,65 @@ export declare const TEMPLATE_CSS_MAX: number;
|
|
|
21
56
|
/**
|
|
22
57
|
* v0.4.0 — module field schema. Each field declares one substitution slot in
|
|
23
58
|
* the module's templated HTML (`{{fieldName}}`) and the kind of content it
|
|
24
|
-
* holds. Field values live on each page placement in
|
|
59
|
+
* holds. Field values live on each page placement (v0.4.0: in
|
|
60
|
+
* `page_module_content.content_values`; v0.12.0 onward: in
|
|
61
|
+
* `content_instances.values`).
|
|
62
|
+
*
|
|
63
|
+
* v0.12.0 — extended to nine kinds. Primitive kinds (text/richtext/url/
|
|
64
|
+
* image/number/boolean/link) substitute via `{{fieldName}}` placeholders.
|
|
65
|
+
* The two new nested kinds reference another module by id + content_instance:
|
|
66
|
+
*
|
|
67
|
+
* - `module` — single nested module reference. HTML slot syntax: `{{>fieldName}}`.
|
|
68
|
+
* Value shape: `{ moduleId, contentInstanceId }`.
|
|
69
|
+
* - `module-list` — ordered array of nested module references. HTML slot
|
|
70
|
+
* syntax: `{{#fieldName}}…inner…{{/fieldName}}` — `inner` renders once
|
|
71
|
+
* per element. Value shape: `Array<{ moduleId, contentInstanceId }>`.
|
|
72
|
+
*
|
|
73
|
+
* Schema is a discriminated union by `kind` so the validator rejects, e.g., a
|
|
74
|
+
* `text` kind that carries `allowedModuleTypes` (which only nested kinds use)
|
|
75
|
+
* or a `module-list` that carries a `default` (nested kinds populate from
|
|
76
|
+
* referenced content_instances, not from defaults).
|
|
77
|
+
*/
|
|
78
|
+
export declare const MODULE_FIELD_PRIMITIVE_KINDS: readonly ["text", "richtext", "url", "image", "number", "boolean", "link"];
|
|
79
|
+
/**
|
|
80
|
+
* v0.12.0 — list-of-primitive field kinds. The grammar mirrors
|
|
81
|
+
* `module-list`'s `{{#field}}{{/field}}` iteration but the elements
|
|
82
|
+
* are primitives (or a fixed {label,href} pair for link-list), not
|
|
83
|
+
* `{moduleId, contentInstanceId}` refs.
|
|
84
|
+
*
|
|
85
|
+
* Use `text-list` for "list of strings" — menu labels, tag chips,
|
|
86
|
+
* bullet points where each item is just text. Inner template
|
|
87
|
+
* references `{{.}}` (Mustache convention) or `{{item}}` to mean
|
|
88
|
+
* the current element.
|
|
89
|
+
*
|
|
90
|
+
* Use `link-list` for "list of links" — primary nav, footer columns,
|
|
91
|
+
* sidebar menus. Each element is `{href, label}`. Inner template
|
|
92
|
+
* uses `{{href}}` + `{{label}}` per iteration.
|
|
93
|
+
*
|
|
94
|
+
* For lists with richer per-item structure (cards with image + title
|
|
95
|
+
* + body + CTA), use `module-list` pointing at a sub-module — that's
|
|
96
|
+
* what nested modules are for.
|
|
25
97
|
*/
|
|
26
|
-
export declare const
|
|
27
|
-
export declare const
|
|
98
|
+
export declare const MODULE_FIELD_LIST_KINDS: readonly ["text-list", "link-list"];
|
|
99
|
+
export declare const MODULE_FIELD_NESTED_KINDS: readonly ["module", "module-list"];
|
|
100
|
+
/** All eleven v0.12.0 kinds. */
|
|
101
|
+
export declare const MODULE_FIELD_KINDS: readonly ["text", "richtext", "url", "image", "number", "boolean", "link", "text-list", "link-list", "module", "module-list"];
|
|
102
|
+
/**
|
|
103
|
+
* Canonical union of every field kind — used by callers that need to
|
|
104
|
+
* type a single `kind` field (e.g. the shared template engine's
|
|
105
|
+
* `TemplateField.kind`, the static-gen field parser). Importing this
|
|
106
|
+
* instead of `string` catches typos like `'tetx-list'` at compile time.
|
|
107
|
+
*/
|
|
108
|
+
export type ModuleFieldKind = (typeof MODULE_FIELD_KINDS)[number];
|
|
109
|
+
/**
|
|
110
|
+
* Field kinds the shared template engine iterates via the
|
|
111
|
+
* `{{#name}}…{{/name}}` Mustache-section operator. Adding a new
|
|
112
|
+
* list-shaped kind to MODULE_FIELD_LIST_KINDS / MODULE_FIELD_NESTED_KINDS
|
|
113
|
+
* automatically extends this set; the engine's section-dispatch branch
|
|
114
|
+
* keys off it (`packages/shared/src/template-engine.ts`).
|
|
115
|
+
*/
|
|
116
|
+
export declare const MODULE_FIELD_SECTION_KINDS: readonly ["text-list", "link-list", "module-list"];
|
|
117
|
+
export declare const moduleFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
28
118
|
name: z.ZodString;
|
|
29
119
|
kind: z.ZodEnum<{
|
|
30
120
|
number: "number";
|
|
@@ -37,15 +127,77 @@ export declare const moduleFieldSchema: z.ZodObject<{
|
|
|
37
127
|
}>;
|
|
38
128
|
label: z.ZodString;
|
|
39
129
|
default: z.ZodOptional<z.ZodUnknown>;
|
|
40
|
-
}, z.core.$strict
|
|
130
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
131
|
+
name: z.ZodString;
|
|
132
|
+
kind: z.ZodLiteral<"text-list">;
|
|
133
|
+
label: z.ZodString;
|
|
134
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
135
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
136
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
137
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
138
|
+
name: z.ZodString;
|
|
139
|
+
kind: z.ZodLiteral<"link-list">;
|
|
140
|
+
label: z.ZodString;
|
|
141
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
142
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
143
|
+
default: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
144
|
+
label: z.ZodString;
|
|
145
|
+
href: z.ZodString;
|
|
146
|
+
}, z.core.$strict>>>;
|
|
147
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
148
|
+
name: z.ZodString;
|
|
149
|
+
kind: z.ZodLiteral<"module">;
|
|
150
|
+
label: z.ZodString;
|
|
151
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
152
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
153
|
+
name: z.ZodString;
|
|
154
|
+
kind: z.ZodLiteral<"module-list">;
|
|
155
|
+
label: z.ZodString;
|
|
156
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
157
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
158
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
159
|
+
}, z.core.$strict>], "kind">;
|
|
41
160
|
export type ModuleField = z.infer<typeof moduleFieldSchema>;
|
|
161
|
+
/**
|
|
162
|
+
* The shape of a single nested-module reference inside `content_instances.values`
|
|
163
|
+
* when the field's kind is `module` or — repeated inside an array — `module-list`.
|
|
164
|
+
*/
|
|
165
|
+
export declare const moduleRefSchema: z.ZodObject<{
|
|
166
|
+
moduleId: z.ZodString;
|
|
167
|
+
contentInstanceId: z.ZodString;
|
|
168
|
+
}, z.core.$strict>;
|
|
169
|
+
export type ModuleRef = z.infer<typeof moduleRefSchema>;
|
|
170
|
+
/**
|
|
171
|
+
* v0.12.0 — coarse role tag for the AI's `## Modules` catalog block.
|
|
172
|
+
* Constrained by `modules_kind_check` in migration 0095. Adding a
|
|
173
|
+
* new kind means: (1) bump the SQL CHECK, (2) update this schema,
|
|
174
|
+
* (3) update formatModulesBlock so the AI knows when to use it.
|
|
175
|
+
*/
|
|
176
|
+
export declare const MODULE_KINDS: readonly ["chrome", "hero", "content", "cta", "utility"];
|
|
177
|
+
export declare const moduleKindSchema: z.ZodEnum<{
|
|
178
|
+
chrome: "chrome";
|
|
179
|
+
hero: "hero";
|
|
180
|
+
content: "content";
|
|
181
|
+
cta: "cta";
|
|
182
|
+
utility: "utility";
|
|
183
|
+
}>;
|
|
184
|
+
export type ModuleKind = (typeof MODULE_KINDS)[number];
|
|
42
185
|
export declare const moduleCreateSchema: z.ZodObject<{
|
|
43
186
|
slug: z.ZodString;
|
|
44
187
|
displayName: z.ZodString;
|
|
188
|
+
description: z.ZodDefault<z.ZodString>;
|
|
189
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
190
|
+
chrome: "chrome";
|
|
191
|
+
hero: "hero";
|
|
192
|
+
content: "content";
|
|
193
|
+
cta: "cta";
|
|
194
|
+
utility: "utility";
|
|
195
|
+
}>>;
|
|
196
|
+
type: z.ZodOptional<z.ZodString>;
|
|
45
197
|
html: z.ZodString;
|
|
46
198
|
css: z.ZodDefault<z.ZodString>;
|
|
47
199
|
js: z.ZodDefault<z.ZodString>;
|
|
48
|
-
fields: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
200
|
+
fields: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
49
201
|
name: z.ZodString;
|
|
50
202
|
kind: z.ZodEnum<{
|
|
51
203
|
number: "number";
|
|
@@ -58,15 +210,53 @@ export declare const moduleCreateSchema: z.ZodObject<{
|
|
|
58
210
|
}>;
|
|
59
211
|
label: z.ZodString;
|
|
60
212
|
default: z.ZodOptional<z.ZodUnknown>;
|
|
61
|
-
}, z.core.$strict
|
|
213
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
214
|
+
name: z.ZodString;
|
|
215
|
+
kind: z.ZodLiteral<"text-list">;
|
|
216
|
+
label: z.ZodString;
|
|
217
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
218
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
219
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
220
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
221
|
+
name: z.ZodString;
|
|
222
|
+
kind: z.ZodLiteral<"link-list">;
|
|
223
|
+
label: z.ZodString;
|
|
224
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
225
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
226
|
+
default: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
227
|
+
label: z.ZodString;
|
|
228
|
+
href: z.ZodString;
|
|
229
|
+
}, z.core.$strict>>>;
|
|
230
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
231
|
+
name: z.ZodString;
|
|
232
|
+
kind: z.ZodLiteral<"module">;
|
|
233
|
+
label: z.ZodString;
|
|
234
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
235
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
236
|
+
name: z.ZodString;
|
|
237
|
+
kind: z.ZodLiteral<"module-list">;
|
|
238
|
+
label: z.ZodString;
|
|
239
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
240
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
241
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
242
|
+
}, z.core.$strict>], "kind">>>;
|
|
62
243
|
}, z.core.$strict>;
|
|
63
244
|
export declare const moduleUpdateSchema: z.ZodObject<{
|
|
64
245
|
moduleId: z.ZodString;
|
|
65
246
|
displayName: z.ZodOptional<z.ZodString>;
|
|
247
|
+
description: z.ZodOptional<z.ZodString>;
|
|
248
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
249
|
+
chrome: "chrome";
|
|
250
|
+
hero: "hero";
|
|
251
|
+
content: "content";
|
|
252
|
+
cta: "cta";
|
|
253
|
+
utility: "utility";
|
|
254
|
+
}>>;
|
|
255
|
+
type: z.ZodOptional<z.ZodString>;
|
|
66
256
|
html: z.ZodOptional<z.ZodString>;
|
|
67
257
|
css: z.ZodOptional<z.ZodString>;
|
|
68
258
|
js: z.ZodOptional<z.ZodString>;
|
|
69
|
-
fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
259
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
70
260
|
name: z.ZodString;
|
|
71
261
|
kind: z.ZodEnum<{
|
|
72
262
|
number: "number";
|
|
@@ -79,14 +269,74 @@ export declare const moduleUpdateSchema: z.ZodObject<{
|
|
|
79
269
|
}>;
|
|
80
270
|
label: z.ZodString;
|
|
81
271
|
default: z.ZodOptional<z.ZodUnknown>;
|
|
82
|
-
}, z.core.$strict
|
|
272
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
273
|
+
name: z.ZodString;
|
|
274
|
+
kind: z.ZodLiteral<"text-list">;
|
|
275
|
+
label: z.ZodString;
|
|
276
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
277
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
278
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
279
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
280
|
+
name: z.ZodString;
|
|
281
|
+
kind: z.ZodLiteral<"link-list">;
|
|
282
|
+
label: z.ZodString;
|
|
283
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
284
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
285
|
+
default: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
286
|
+
label: z.ZodString;
|
|
287
|
+
href: z.ZodString;
|
|
288
|
+
}, z.core.$strict>>>;
|
|
289
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
290
|
+
name: z.ZodString;
|
|
291
|
+
kind: z.ZodLiteral<"module">;
|
|
292
|
+
label: z.ZodString;
|
|
293
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
294
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
295
|
+
name: z.ZodString;
|
|
296
|
+
kind: z.ZodLiteral<"module-list">;
|
|
297
|
+
label: z.ZodString;
|
|
298
|
+
allowedModuleTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
299
|
+
min: z.ZodOptional<z.ZodNumber>;
|
|
300
|
+
max: z.ZodOptional<z.ZodNumber>;
|
|
301
|
+
}, z.core.$strict>], "kind">>>;
|
|
83
302
|
}, z.core.$strict>;
|
|
303
|
+
/**
|
|
304
|
+
* v0.12.0 — page-type tag pages inherit from their template.
|
|
305
|
+
* Constrained by templates_kind_check in migration 0096. Surfaced
|
|
306
|
+
* in the AI's `## Pages` block so the AI sees three modules-on-
|
|
307
|
+
* product-pages as a pattern. See CLAUDE.md §1A.
|
|
308
|
+
*/
|
|
309
|
+
export declare const TEMPLATE_KINDS: readonly ["home", "landing", "product", "blog", "doc", "content", "utility"];
|
|
310
|
+
export declare const templateKindSchema: z.ZodEnum<{
|
|
311
|
+
content: "content";
|
|
312
|
+
utility: "utility";
|
|
313
|
+
home: "home";
|
|
314
|
+
landing: "landing";
|
|
315
|
+
product: "product";
|
|
316
|
+
blog: "blog";
|
|
317
|
+
doc: "doc";
|
|
318
|
+
}>;
|
|
319
|
+
export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
|
|
84
320
|
export declare const templateCreateSchema: z.ZodObject<{
|
|
85
321
|
slug: z.ZodString;
|
|
86
322
|
displayName: z.ZodString;
|
|
323
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
324
|
+
content: "content";
|
|
325
|
+
utility: "utility";
|
|
326
|
+
home: "home";
|
|
327
|
+
landing: "landing";
|
|
328
|
+
product: "product";
|
|
329
|
+
blog: "blog";
|
|
330
|
+
doc: "doc";
|
|
331
|
+
}>>;
|
|
87
332
|
html: z.ZodString;
|
|
88
333
|
css: z.ZodDefault<z.ZodString>;
|
|
89
334
|
layoutId: z.ZodOptional<z.ZodString>;
|
|
335
|
+
blocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
336
|
+
name: z.ZodString;
|
|
337
|
+
displayName: z.ZodString;
|
|
338
|
+
position: z.ZodNumber;
|
|
339
|
+
}, z.core.$strip>>>;
|
|
90
340
|
}, z.core.$strict>;
|
|
91
341
|
export declare const templateBlockSchema: z.ZodObject<{
|
|
92
342
|
name: z.ZodString;
|
|
@@ -96,6 +346,15 @@ export declare const templateBlockSchema: z.ZodObject<{
|
|
|
96
346
|
export declare const templateUpdateSchema: z.ZodObject<{
|
|
97
347
|
templateId: z.ZodString;
|
|
98
348
|
displayName: z.ZodOptional<z.ZodString>;
|
|
349
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
350
|
+
content: "content";
|
|
351
|
+
utility: "utility";
|
|
352
|
+
home: "home";
|
|
353
|
+
landing: "landing";
|
|
354
|
+
product: "product";
|
|
355
|
+
blog: "blog";
|
|
356
|
+
doc: "doc";
|
|
357
|
+
}>>;
|
|
99
358
|
html: z.ZodOptional<z.ZodString>;
|
|
100
359
|
css: z.ZodOptional<z.ZodString>;
|
|
101
360
|
layoutId: z.ZodOptional<z.ZodString>;
|
|
@@ -129,7 +388,7 @@ export declare const pageCreateSchema: z.ZodObject<{
|
|
|
129
388
|
name: z.ZodOptional<z.ZodString>;
|
|
130
389
|
title: z.ZodString;
|
|
131
390
|
templateId: z.ZodOptional<z.ZodString>;
|
|
132
|
-
status: z.
|
|
391
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
133
392
|
draft: "draft";
|
|
134
393
|
published: "published";
|
|
135
394
|
}>>;
|
|
@@ -145,6 +404,10 @@ export declare const pageUpdateSchema: z.ZodObject<{
|
|
|
145
404
|
draft: "draft";
|
|
146
405
|
published: "published";
|
|
147
406
|
}>>;
|
|
407
|
+
redirectFromOld: z.ZodOptional<z.ZodEnum<{
|
|
408
|
+
auto: "auto";
|
|
409
|
+
skip: "skip";
|
|
410
|
+
}>>;
|
|
148
411
|
}, z.core.$strict>;
|
|
149
412
|
export declare const pageSetModulesSchema: z.ZodObject<{
|
|
150
413
|
pageId: z.ZodString;
|
|
@@ -162,4 +425,54 @@ export type TemplateBlocksSetInput = z.infer<typeof templateBlocksSetSchema>;
|
|
|
162
425
|
export type PageCreateInput = z.infer<typeof pageCreateSchema>;
|
|
163
426
|
export type PageUpdateInput = z.infer<typeof pageUpdateSchema>;
|
|
164
427
|
export type PageSetModulesInput = z.infer<typeof pageSetModulesSchema>;
|
|
428
|
+
/**
|
|
429
|
+
* v0.12.0 — content sync mode on a placement.
|
|
430
|
+
*
|
|
431
|
+
* `synced` — editing the placement's content_instance propagates to
|
|
432
|
+
* every other placement bound to the same row.
|
|
433
|
+
* `unsynced` — placement holds a private row. Default.
|
|
434
|
+
*/
|
|
435
|
+
export declare const syncModeSchema: z.ZodEnum<{
|
|
436
|
+
synced: "synced";
|
|
437
|
+
unsynced: "unsynced";
|
|
438
|
+
}>;
|
|
439
|
+
export type SyncMode = z.infer<typeof syncModeSchema>;
|
|
440
|
+
export declare const contentInstanceCreateSchema: z.ZodObject<{
|
|
441
|
+
moduleId: z.ZodString;
|
|
442
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
443
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
444
|
+
purpose: z.ZodOptional<z.ZodString>;
|
|
445
|
+
values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
446
|
+
}, z.core.$strict>;
|
|
447
|
+
export declare const contentInstanceUpdateSchema: z.ZodObject<{
|
|
448
|
+
id: z.ZodString;
|
|
449
|
+
values: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
450
|
+
expectedVersion: z.ZodOptional<z.ZodNumber>;
|
|
451
|
+
slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
452
|
+
displayName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
453
|
+
purpose: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
454
|
+
}, z.core.$strict>;
|
|
455
|
+
export declare const contentInstanceDeleteSchema: z.ZodObject<{
|
|
456
|
+
id: z.ZodString;
|
|
457
|
+
}, z.core.$strict>;
|
|
458
|
+
export declare const setPlacementContentSchema: z.ZodObject<{
|
|
459
|
+
pageId: z.ZodString;
|
|
460
|
+
blockName: z.ZodString;
|
|
461
|
+
position: z.ZodNumber;
|
|
462
|
+
contentInstanceId: z.ZodString;
|
|
463
|
+
syncMode: z.ZodEnum<{
|
|
464
|
+
synced: "synced";
|
|
465
|
+
unsynced: "unsynced";
|
|
466
|
+
}>;
|
|
467
|
+
}, z.core.$strict>;
|
|
468
|
+
export declare const forkPlacementContentSchema: z.ZodObject<{
|
|
469
|
+
pageId: z.ZodString;
|
|
470
|
+
blockName: z.ZodString;
|
|
471
|
+
position: z.ZodNumber;
|
|
472
|
+
}, z.core.$strict>;
|
|
473
|
+
export type ContentInstanceCreateInput = z.infer<typeof contentInstanceCreateSchema>;
|
|
474
|
+
export type ContentInstanceUpdateInput = z.infer<typeof contentInstanceUpdateSchema>;
|
|
475
|
+
export type ContentInstanceDeleteInput = z.infer<typeof contentInstanceDeleteSchema>;
|
|
476
|
+
export type SetPlacementContentInput = z.infer<typeof setPlacementContentSchema>;
|
|
477
|
+
export type ForkPlacementContentInput = z.infer<typeof forkPlacementContentSchema>;
|
|
165
478
|
//# sourceMappingURL=content.d.ts.map
|
package/dist/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,0EAA0E;AAC1E,eAAO,MAAM,UAAU,aAKpB,CAAC;AAEJ,qFAAqF;AACrF,eAAO,MAAM,YAAY,aAE0D,CAAC;AAIpF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,QAAa,CAAC;AAC1C,eAAO,MAAM,cAAc,QAAa,CAAC;AACzC,eAAO,MAAM,aAAa,QAAa,CAAC;AACxC,eAAO,MAAM,iBAAiB,QAAa,CAAC;AAC5C,eAAO,MAAM,gBAAgB,QAAa,CAAC;AAM3C
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|