@caelo-cms/shared 0.10.72 → 0.11.1

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 (204) hide show
  1. package/dist/ai-tools.d.ts +103 -142
  2. package/dist/ai-tools.d.ts.map +1 -1
  3. package/dist/ai-tools.js +79 -167
  4. package/dist/ai-tools.js.map +1 -1
  5. package/dist/build-page.d.ts +115 -35
  6. package/dist/build-page.d.ts.map +1 -1
  7. package/dist/build-page.js +31 -12
  8. package/dist/build-page.js.map +1 -1
  9. package/dist/content.d.ts +214 -102
  10. package/dist/content.d.ts.map +1 -1
  11. package/dist/content.js +219 -84
  12. package/dist/content.js.map +1 -1
  13. package/dist/css-scope-scan.js +1 -1
  14. package/dist/css-var-aliases.d.ts +20 -0
  15. package/dist/css-var-aliases.d.ts.map +1 -0
  16. package/dist/css-var-aliases.js +95 -0
  17. package/dist/css-var-aliases.js.map +1 -0
  18. package/dist/css-var-scan.d.ts +0 -16
  19. package/dist/css-var-scan.d.ts.map +1 -1
  20. package/dist/css-var-scan.js +24 -0
  21. package/dist/css-var-scan.js.map +1 -1
  22. package/dist/edit-markers.d.ts +41 -5
  23. package/dist/edit-markers.d.ts.map +1 -1
  24. package/dist/edit-markers.js +47 -50
  25. package/dist/edit-markers.js.map +1 -1
  26. package/dist/escaped-line-breaks.d.ts +44 -0
  27. package/dist/escaped-line-breaks.d.ts.map +1 -0
  28. package/dist/escaped-line-breaks.js +203 -0
  29. package/dist/escaped-line-breaks.js.map +1 -0
  30. package/dist/index.d.ts +4 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/interactions.js +6 -6
  35. package/dist/interactions.js.map +1 -1
  36. package/dist/link-canonicalise.d.ts.map +1 -1
  37. package/dist/link-canonicalise.js +7 -1
  38. package/dist/link-canonicalise.js.map +1 -1
  39. package/dist/link-refs.d.ts +1 -1
  40. package/dist/link-refs.js +3 -3
  41. package/dist/lists/address.d.ts +34 -0
  42. package/dist/lists/address.d.ts.map +1 -0
  43. package/dist/lists/address.js +43 -0
  44. package/dist/lists/address.js.map +1 -0
  45. package/dist/lists/default-types.d.ts +22 -0
  46. package/dist/lists/default-types.d.ts.map +1 -0
  47. package/dist/lists/default-types.js +127 -0
  48. package/dist/lists/default-types.js.map +1 -0
  49. package/dist/lists/fields.d.ts +152 -0
  50. package/dist/lists/fields.d.ts.map +1 -0
  51. package/dist/lists/fields.js +259 -0
  52. package/dist/lists/fields.js.map +1 -0
  53. package/dist/lists/index.d.ts +14 -0
  54. package/dist/lists/index.d.ts.map +1 -0
  55. package/dist/lists/index.js +15 -0
  56. package/dist/lists/index.js.map +1 -0
  57. package/dist/lists/item-attr.d.ts +26 -0
  58. package/dist/lists/item-attr.d.ts.map +1 -0
  59. package/dist/lists/item-attr.js +31 -0
  60. package/dist/lists/item-attr.js.map +1 -0
  61. package/dist/lists/items.d.ts +105 -0
  62. package/dist/lists/items.d.ts.map +1 -0
  63. package/dist/lists/items.js +304 -0
  64. package/dist/lists/items.js.map +1 -0
  65. package/dist/lists/list-type.d.ts +401 -0
  66. package/dist/lists/list-type.d.ts.map +1 -0
  67. package/dist/lists/list-type.js +275 -0
  68. package/dist/lists/list-type.js.map +1 -0
  69. package/dist/lists/model.d.ts +14 -0
  70. package/dist/lists/model.d.ts.map +1 -0
  71. package/dist/lists/model.js +15 -0
  72. package/dist/lists/model.js.map +1 -0
  73. package/dist/lists/page-type.d.ts +115 -0
  74. package/dist/lists/page-type.d.ts.map +1 -0
  75. package/dist/lists/page-type.js +66 -0
  76. package/dist/lists/page-type.js.map +1 -0
  77. package/dist/lists/refs.d.ts +13 -0
  78. package/dist/lists/refs.d.ts.map +1 -0
  79. package/dist/lists/refs.js +18 -0
  80. package/dist/lists/refs.js.map +1 -0
  81. package/dist/lists/render-data.d.ts +123 -0
  82. package/dist/lists/render-data.d.ts.map +1 -0
  83. package/dist/lists/render-data.js +3 -0
  84. package/dist/lists/render-data.js.map +1 -0
  85. package/dist/lists/render-deps.d.ts +69 -0
  86. package/dist/lists/render-deps.d.ts.map +1 -0
  87. package/dist/lists/render-deps.js +93 -0
  88. package/dist/lists/render-deps.js.map +1 -0
  89. package/dist/lists/resolve-values.d.ts +63 -0
  90. package/dist/lists/resolve-values.d.ts.map +1 -0
  91. package/dist/lists/resolve-values.js +181 -0
  92. package/dist/lists/resolve-values.js.map +1 -0
  93. package/dist/lists/resolve.d.ts +119 -0
  94. package/dist/lists/resolve.d.ts.map +1 -0
  95. package/dist/lists/resolve.js +970 -0
  96. package/dist/lists/resolve.js.map +1 -0
  97. package/dist/lists/scope.d.ts +81 -0
  98. package/dist/lists/scope.d.ts.map +1 -0
  99. package/dist/lists/scope.js +3 -0
  100. package/dist/lists/scope.js.map +1 -0
  101. package/dist/markup-structure.d.ts +8 -0
  102. package/dist/markup-structure.d.ts.map +1 -1
  103. package/dist/markup-structure.js +2 -0
  104. package/dist/markup-structure.js.map +1 -1
  105. package/dist/media.d.ts +1 -1
  106. package/dist/nested-module-render.d.ts +38 -20
  107. package/dist/nested-module-render.d.ts.map +1 -1
  108. package/dist/nested-module-render.js +156 -31
  109. package/dist/nested-module-render.js.map +1 -1
  110. package/dist/page-log.d.ts +1 -1
  111. package/dist/preview-compose.d.ts +24 -21
  112. package/dist/preview-compose.d.ts.map +1 -1
  113. package/dist/preview-compose.js +34 -118
  114. package/dist/preview-compose.js.map +1 -1
  115. package/dist/redirect-plan.d.ts +13 -0
  116. package/dist/redirect-plan.d.ts.map +1 -1
  117. package/dist/redirect-plan.js +22 -0
  118. package/dist/redirect-plan.js.map +1 -1
  119. package/dist/seo.d.ts +21 -0
  120. package/dist/seo.d.ts.map +1 -1
  121. package/dist/seo.js +32 -0
  122. package/dist/seo.js.map +1 -1
  123. package/dist/source-text-transport.d.ts +43 -0
  124. package/dist/source-text-transport.d.ts.map +1 -0
  125. package/dist/source-text-transport.js +79 -0
  126. package/dist/source-text-transport.js.map +1 -0
  127. package/dist/template-engine.d.ts +44 -31
  128. package/dist/template-engine.d.ts.map +1 -1
  129. package/dist/template-engine.js +75 -174
  130. package/dist/template-engine.js.map +1 -1
  131. package/dist/template-sections.d.ts +69 -0
  132. package/dist/template-sections.d.ts.map +1 -0
  133. package/dist/template-sections.js +436 -0
  134. package/dist/template-sections.js.map +1 -0
  135. package/dist/version.d.ts +2 -2
  136. package/dist/version.d.ts.map +1 -1
  137. package/dist/version.js +1 -1
  138. package/dist/version.js.map +1 -1
  139. package/package.json +8 -1
  140. package/src/__tests__/redos-hardening.test.ts +51 -16
  141. package/src/ai-tools-add-module-modes.test.ts +51 -1
  142. package/src/ai-tools.test.ts +7 -10
  143. package/src/ai-tools.ts +90 -180
  144. package/src/bug-intake.test.ts +1 -1
  145. package/src/build-page.test.ts +34 -3
  146. package/src/build-page.ts +34 -11
  147. package/src/content.test.ts +137 -4
  148. package/src/content.ts +230 -85
  149. package/src/css-scope-scan.ts +1 -1
  150. package/src/css-var-aliases.test.ts +61 -0
  151. package/src/css-var-aliases.ts +109 -0
  152. package/src/css-var-scan.ts +9 -0
  153. package/src/edit-markers.test.ts +37 -21
  154. package/src/edit-markers.ts +52 -20
  155. package/src/escaped-line-breaks.ts +221 -0
  156. package/src/index.ts +4 -1
  157. package/src/interactions.ts +6 -6
  158. package/src/link-canonicalise.test.ts +36 -6
  159. package/src/link-canonicalise.ts +6 -1
  160. package/src/link-refs.test.ts +67 -42
  161. package/src/link-refs.ts +3 -3
  162. package/src/lists/address.ts +75 -0
  163. package/src/lists/default-types.ts +141 -0
  164. package/src/lists/fields.ts +286 -0
  165. package/src/lists/index.ts +16 -0
  166. package/src/lists/item-attr.test.ts +36 -0
  167. package/src/lists/item-attr.ts +49 -0
  168. package/src/lists/items.ts +402 -0
  169. package/src/lists/list-fixtures.test.ts +308 -0
  170. package/src/lists/list-type.ts +306 -0
  171. package/src/lists/lists.test.ts +328 -0
  172. package/src/lists/model.ts +16 -0
  173. package/src/lists/page-type.ts +71 -0
  174. package/src/lists/refs.ts +21 -0
  175. package/src/lists/render-data.ts +134 -0
  176. package/src/lists/render-deps.test.ts +132 -0
  177. package/src/lists/render-deps.ts +147 -0
  178. package/src/lists/resolve-values.ts +224 -0
  179. package/src/lists/resolve.test.ts +472 -0
  180. package/src/lists/resolve.ts +1246 -0
  181. package/src/lists/scope.ts +69 -0
  182. package/src/lists-compose-parity.test.ts +262 -0
  183. package/src/markup-structure.ts +10 -0
  184. package/src/nested-module-render.test.ts +147 -74
  185. package/src/nested-module-render.ts +120 -48
  186. package/src/preview-compose.test.ts +55 -19
  187. package/src/preview-compose.ts +59 -154
  188. package/src/redirect-plan.test.ts +25 -0
  189. package/src/redirect-plan.ts +24 -0
  190. package/src/seo.test.ts +58 -0
  191. package/src/seo.ts +49 -0
  192. package/src/source-text-transport.test.ts +158 -0
  193. package/src/source-text-transport.ts +81 -0
  194. package/src/template-engine-lists.test.ts +608 -0
  195. package/src/template-engine.test.ts +62 -80
  196. package/src/template-engine.ts +102 -245
  197. package/src/template-sections.ts +514 -0
  198. package/src/version.ts +1 -1
  199. package/dist/structured-sets.d.ts +0 -70
  200. package/dist/structured-sets.d.ts.map +0 -1
  201. package/dist/structured-sets.js +0 -92
  202. package/dist/structured-sets.js.map +0 -1
  203. package/src/structured-sets.ts +0 -114
  204. package/src/template-engine-data-lists.test.ts +0 -90
package/dist/content.d.ts CHANGED
@@ -51,6 +51,31 @@ export declare const MODULE_CSS_MAX: number;
51
51
  export declare const MODULE_JS_MAX: number;
52
52
  export declare const TEMPLATE_HTML_MAX: number;
53
53
  export declare const TEMPLATE_CSS_MAX: number;
54
+ /**
55
+ * Code payloads a model sometimes corrupts before they reach us, both seen
56
+ * in PR #1121's real-AI runs and stored verbatim before this guard:
57
+ * - JSON-encoded: the whole value wrapped in quotes with `\"` escapes
58
+ * (`"<footer class=\"x\">…"`) — the page showed literal quotes;
59
+ * - HTML-escaped markup: `&lt;div&gt;&lt;caelo-slot …` with no real tag
60
+ * — a template without a single slot, so it had no blocks at all.
61
+ * Refusing at the write boundary with the fix turns a broken render the
62
+ * AI only notices from a screenshot into one corrected call (CLAUDE.md
63
+ * §2, §11; same reasoning as the CDATA guard below). AI tool arguments
64
+ * never reach this in that shape: `sourceTextArg` decodes both encodings
65
+ * first (`source-text-transport.ts`); this guards every other writer.
66
+ */
67
+ export declare function jsonEncodedCodeMessage(field: string, value: string): string | null;
68
+ /** See {@link jsonEncodedCodeMessage}: markup sent HTML-escaped. */
69
+ export declare function htmlEscapedMarkupMessage(field: string, value: string): string | null;
70
+ /**
71
+ * See {@link jsonEncodedCodeMessage}: source whose line breaks arrived as
72
+ * literal `\n` sequences (`hasEscapedLineBreaks`) — the page shows the
73
+ * `\n` text and the CSS rules after it break. AI tool arguments are decoded
74
+ * first (`decodeEscapedLineBreaks`); this guards every other writer. Module
75
+ * js is checked by parsing it (admin-core `module-js-syntax.ts`), which
76
+ * catches this and every other syntax error.
77
+ */
78
+ export declare function escapedLineBreaksMessage(field: "html" | "css", value: string): string | null;
54
79
  /**
55
80
  * v0.4.0 — module field schema. Each field declares one substitution slot in
56
81
  * the module's templated HTML (`{{fieldName}}`) and the kind of content it
@@ -75,28 +100,28 @@ export declare const TEMPLATE_CSS_MAX: number;
75
100
  */
76
101
  export declare const MODULE_FIELD_PRIMITIVE_KINDS: readonly ["text", "richtext", "url", "image", "number", "boolean", "link"];
77
102
  /**
78
- * v0.12.0 — list-of-primitive field kinds. The grammar mirrors
79
- * `module-list`'s `{{#field}}{{/field}}` iteration but the elements
80
- * are primitives (or a fixed {label,href} pair for link-list), not
81
- * `{moduleId, contentInstanceId}` refs.
103
+ * Epic #1107 — the data-list field kind (`docs/lists.md` §7). One kind
104
+ * for every repeated piece of data: feature bullets, a footer link group,
105
+ * a three-level menu, a mega dropdown, a "latest news" block. The entry
106
+ * shape comes from a LIST TYPE (`listType`, a slug); the entries come from
107
+ * the field's binding:
82
108
  *
83
- * Use `text-list` for "list of strings" — menu labels, tag chips,
84
- * bullet points where each item is just text. Inner template
85
- * references `{{.}}` (Mustache convention) or `{{item}}` to mean
86
- * the current element.
109
+ * - `local` (default) — entries stored in the placement's value
110
+ * (`ListItem[]`), only this module shows them;
111
+ * - `shared` — a `caelo:list/<id>` list, fixed on the field (`list`) or
112
+ * chosen per placement; navigation and anything needed in
113
+ * more than one place;
114
+ * - `source` — entries generated per page from `source` (a page query,
115
+ * a system source like breadcrumbs, a plugin source).
87
116
  *
88
- * Use `link-list` for "list of links" — primary nav, footer columns,
89
- * sidebar menus. Each element is `{href, label}`. Inner template
90
- * uses `{{href}}` + `{{label}}` per iteration.
91
- *
92
- * For lists with richer per-item structure (cards with image + title
93
- * + body + CTA), use `module-list` pointing at a sub-module — that's
94
- * what nested modules are for.
117
+ * The template iterates `{{#field}}…{{/field}}` the same way for every
118
+ * binding. `module-list` stays: it composes modules, lists carry data.
119
+ * Replaces the `text-list` / `link-list` kinds.
95
120
  */
96
- export declare const MODULE_FIELD_LIST_KINDS: readonly ["text-list", "link-list"];
121
+ export declare const MODULE_FIELD_LIST_KINDS: readonly ["list"];
97
122
  export declare const MODULE_FIELD_NESTED_KINDS: readonly ["module", "module-list"];
98
- /** All eleven v0.12.0 kinds. */
99
- export declare const MODULE_FIELD_KINDS: readonly ["text", "richtext", "url", "image", "number", "boolean", "link", "text-list", "link-list", "module", "module-list"];
123
+ /** Every module field kind. */
124
+ export declare const MODULE_FIELD_KINDS: readonly ["text", "richtext", "url", "image", "number", "boolean", "link", "list", "module", "module-list"];
100
125
  /**
101
126
  * Canonical union of every field kind — used by callers that need to
102
127
  * type a single `kind` field (e.g. the shared template engine's
@@ -106,12 +131,11 @@ export declare const MODULE_FIELD_KINDS: readonly ["text", "richtext", "url", "i
106
131
  export type ModuleFieldKind = (typeof MODULE_FIELD_KINDS)[number];
107
132
  /**
108
133
  * Field kinds the shared template engine iterates via the
109
- * `{{#name}}…{{/name}}` Mustache-section operator. Adding a new
110
- * list-shaped kind to MODULE_FIELD_LIST_KINDS / MODULE_FIELD_NESTED_KINDS
111
- * automatically extends this set; the engine's section-dispatch branch
112
- * keys off it (`packages/shared/src/template-engine.ts`).
134
+ * `{{#name}}…{{/name}}` Mustache-section operator (`list` and
135
+ * `module-list`); the engine's section-dispatch keys off it
136
+ * (`packages/shared/src/template-engine.ts`).
113
137
  */
114
- export declare const MODULE_FIELD_SECTION_KINDS: readonly ["text-list", "link-list", "module-list"];
138
+ export declare const MODULE_FIELD_SECTION_KINDS: readonly ["list", "module-list"];
115
139
  export declare const moduleFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
116
140
  name: z.ZodString;
117
141
  kind: z.ZodEnum<{
@@ -119,29 +143,66 @@ export declare const moduleFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
119
143
  boolean: "boolean";
120
144
  text: "text";
121
145
  richtext: "richtext";
146
+ link: "link";
122
147
  url: "url";
123
148
  image: "image";
124
- link: "link";
125
149
  }>;
126
150
  label: z.ZodString;
127
151
  default: z.ZodOptional<z.ZodUnknown>;
128
152
  }, z.core.$strict>, z.ZodObject<{
129
153
  name: z.ZodString;
130
- kind: z.ZodLiteral<"text-list">;
131
- label: z.ZodString;
132
- min: z.ZodOptional<z.ZodNumber>;
133
- max: z.ZodOptional<z.ZodNumber>;
134
- default: z.ZodOptional<z.ZodArray<z.ZodString>>;
135
- }, z.core.$strict>, z.ZodObject<{
136
- name: z.ZodString;
137
- kind: z.ZodLiteral<"link-list">;
154
+ kind: z.ZodLiteral<"list">;
138
155
  label: z.ZodString;
156
+ listType: z.ZodString;
157
+ bind: z.ZodOptional<z.ZodEnum<{
158
+ source: "source";
159
+ local: "local";
160
+ shared: "shared";
161
+ }>>;
162
+ list: z.ZodOptional<z.ZodString>;
163
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
164
+ kind: z.ZodLiteral<"query">;
165
+ editable: z.ZodArray<z.ZodEnum<{
166
+ page_type: "page_type";
167
+ terms: "terms";
168
+ terms_mode: "terms_mode";
169
+ parent: "parent";
170
+ exclude_current: "exclude_current";
171
+ order: "order";
172
+ limit: "limit";
173
+ }>>;
174
+ defaults: z.ZodObject<{
175
+ page_type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
176
+ terms: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
177
+ terms_mode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
178
+ any: "any";
179
+ all: "all";
180
+ }>>>;
181
+ parent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
182
+ exclude_current: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
183
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
184
+ published_desc: "published_desc";
185
+ published_asc: "published_asc";
186
+ title_asc: "title_asc";
187
+ }>, z.ZodString]>>;
188
+ limit: z.ZodOptional<z.ZodNumber>;
189
+ }, z.core.$strict>;
190
+ }, z.core.$strict>, z.ZodObject<{
191
+ kind: z.ZodLiteral<"system">;
192
+ name: z.ZodEnum<{
193
+ breadcrumbs: "breadcrumbs";
194
+ children: "children";
195
+ siblings: "siblings";
196
+ page_terms: "page_terms";
197
+ term_pages: "term_pages";
198
+ }>;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ kind: z.ZodLiteral<"plugin">;
201
+ name: z.ZodString;
202
+ }, z.core.$strict>], "kind">>;
139
203
  min: z.ZodOptional<z.ZodNumber>;
140
204
  max: z.ZodOptional<z.ZodNumber>;
141
- default: z.ZodOptional<z.ZodArray<z.ZodObject<{
142
- label: z.ZodString;
143
- href: z.ZodString;
144
- }, z.core.$strict>>>;
205
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<import("./index.js").ListItemInput, unknown, z.core.$ZodTypeInternals<import("./index.js").ListItemInput, unknown>>>, z.ZodString]>>;
145
206
  }, z.core.$strict>, z.ZodObject<{
146
207
  name: z.ZodString;
147
208
  kind: z.ZodLiteral<"module">;
@@ -173,9 +234,9 @@ export type ModuleRef = z.infer<typeof moduleRefSchema>;
173
234
  */
174
235
  export declare const MODULE_KINDS: readonly ["chrome", "hero", "content", "cta", "utility"];
175
236
  export declare const moduleKindSchema: z.ZodEnum<{
237
+ content: "content";
176
238
  chrome: "chrome";
177
239
  hero: "hero";
178
- content: "content";
179
240
  cta: "cta";
180
241
  utility: "utility";
181
242
  }>;
@@ -185,9 +246,9 @@ export declare const moduleCreateSchema: z.ZodObject<{
185
246
  displayName: z.ZodString;
186
247
  description: z.ZodDefault<z.ZodString>;
187
248
  kind: z.ZodDefault<z.ZodEnum<{
249
+ content: "content";
188
250
  chrome: "chrome";
189
251
  hero: "hero";
190
- content: "content";
191
252
  cta: "cta";
192
253
  utility: "utility";
193
254
  }>>;
@@ -202,29 +263,66 @@ export declare const moduleCreateSchema: z.ZodObject<{
202
263
  boolean: "boolean";
203
264
  text: "text";
204
265
  richtext: "richtext";
266
+ link: "link";
205
267
  url: "url";
206
268
  image: "image";
207
- link: "link";
208
269
  }>;
209
270
  label: z.ZodString;
210
271
  default: z.ZodOptional<z.ZodUnknown>;
211
272
  }, z.core.$strict>, z.ZodObject<{
212
273
  name: z.ZodString;
213
- kind: z.ZodLiteral<"text-list">;
214
- label: z.ZodString;
215
- min: z.ZodOptional<z.ZodNumber>;
216
- max: z.ZodOptional<z.ZodNumber>;
217
- default: z.ZodOptional<z.ZodArray<z.ZodString>>;
218
- }, z.core.$strict>, z.ZodObject<{
219
- name: z.ZodString;
220
- kind: z.ZodLiteral<"link-list">;
274
+ kind: z.ZodLiteral<"list">;
221
275
  label: z.ZodString;
276
+ listType: z.ZodString;
277
+ bind: z.ZodOptional<z.ZodEnum<{
278
+ source: "source";
279
+ local: "local";
280
+ shared: "shared";
281
+ }>>;
282
+ list: z.ZodOptional<z.ZodString>;
283
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
284
+ kind: z.ZodLiteral<"query">;
285
+ editable: z.ZodArray<z.ZodEnum<{
286
+ page_type: "page_type";
287
+ terms: "terms";
288
+ terms_mode: "terms_mode";
289
+ parent: "parent";
290
+ exclude_current: "exclude_current";
291
+ order: "order";
292
+ limit: "limit";
293
+ }>>;
294
+ defaults: z.ZodObject<{
295
+ page_type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
296
+ terms: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
297
+ terms_mode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
298
+ any: "any";
299
+ all: "all";
300
+ }>>>;
301
+ parent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
302
+ exclude_current: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
303
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
304
+ published_desc: "published_desc";
305
+ published_asc: "published_asc";
306
+ title_asc: "title_asc";
307
+ }>, z.ZodString]>>;
308
+ limit: z.ZodOptional<z.ZodNumber>;
309
+ }, z.core.$strict>;
310
+ }, z.core.$strict>, z.ZodObject<{
311
+ kind: z.ZodLiteral<"system">;
312
+ name: z.ZodEnum<{
313
+ breadcrumbs: "breadcrumbs";
314
+ children: "children";
315
+ siblings: "siblings";
316
+ page_terms: "page_terms";
317
+ term_pages: "term_pages";
318
+ }>;
319
+ }, z.core.$strict>, z.ZodObject<{
320
+ kind: z.ZodLiteral<"plugin">;
321
+ name: z.ZodString;
322
+ }, z.core.$strict>], "kind">>;
222
323
  min: z.ZodOptional<z.ZodNumber>;
223
324
  max: z.ZodOptional<z.ZodNumber>;
224
- default: z.ZodOptional<z.ZodArray<z.ZodObject<{
225
- label: z.ZodString;
226
- href: z.ZodString;
227
- }, z.core.$strict>>>;
325
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<import("./index.js").ListItemInput, unknown, z.core.$ZodTypeInternals<import("./index.js").ListItemInput, unknown>>>, z.ZodString]>>;
228
326
  }, z.core.$strict>, z.ZodObject<{
229
327
  name: z.ZodString;
230
328
  kind: z.ZodLiteral<"module">;
@@ -244,9 +342,9 @@ export declare const moduleUpdateSchema: z.ZodObject<{
244
342
  displayName: z.ZodOptional<z.ZodString>;
245
343
  description: z.ZodOptional<z.ZodString>;
246
344
  kind: z.ZodOptional<z.ZodEnum<{
345
+ content: "content";
247
346
  chrome: "chrome";
248
347
  hero: "hero";
249
- content: "content";
250
348
  cta: "cta";
251
349
  utility: "utility";
252
350
  }>>;
@@ -261,29 +359,66 @@ export declare const moduleUpdateSchema: z.ZodObject<{
261
359
  boolean: "boolean";
262
360
  text: "text";
263
361
  richtext: "richtext";
362
+ link: "link";
264
363
  url: "url";
265
364
  image: "image";
266
- link: "link";
267
365
  }>;
268
366
  label: z.ZodString;
269
367
  default: z.ZodOptional<z.ZodUnknown>;
270
368
  }, z.core.$strict>, z.ZodObject<{
271
369
  name: z.ZodString;
272
- kind: z.ZodLiteral<"text-list">;
273
- label: z.ZodString;
274
- min: z.ZodOptional<z.ZodNumber>;
275
- max: z.ZodOptional<z.ZodNumber>;
276
- default: z.ZodOptional<z.ZodArray<z.ZodString>>;
277
- }, z.core.$strict>, z.ZodObject<{
278
- name: z.ZodString;
279
- kind: z.ZodLiteral<"link-list">;
370
+ kind: z.ZodLiteral<"list">;
280
371
  label: z.ZodString;
372
+ listType: z.ZodString;
373
+ bind: z.ZodOptional<z.ZodEnum<{
374
+ source: "source";
375
+ local: "local";
376
+ shared: "shared";
377
+ }>>;
378
+ list: z.ZodOptional<z.ZodString>;
379
+ source: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
380
+ kind: z.ZodLiteral<"query">;
381
+ editable: z.ZodArray<z.ZodEnum<{
382
+ page_type: "page_type";
383
+ terms: "terms";
384
+ terms_mode: "terms_mode";
385
+ parent: "parent";
386
+ exclude_current: "exclude_current";
387
+ order: "order";
388
+ limit: "limit";
389
+ }>>;
390
+ defaults: z.ZodObject<{
391
+ page_type: z.ZodOptional<z.ZodOptional<z.ZodString>>;
392
+ terms: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
393
+ terms_mode: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
394
+ any: "any";
395
+ all: "all";
396
+ }>>>;
397
+ parent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
398
+ exclude_current: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
399
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
400
+ published_desc: "published_desc";
401
+ published_asc: "published_asc";
402
+ title_asc: "title_asc";
403
+ }>, z.ZodString]>>;
404
+ limit: z.ZodOptional<z.ZodNumber>;
405
+ }, z.core.$strict>;
406
+ }, z.core.$strict>, z.ZodObject<{
407
+ kind: z.ZodLiteral<"system">;
408
+ name: z.ZodEnum<{
409
+ breadcrumbs: "breadcrumbs";
410
+ children: "children";
411
+ siblings: "siblings";
412
+ page_terms: "page_terms";
413
+ term_pages: "term_pages";
414
+ }>;
415
+ }, z.core.$strict>, z.ZodObject<{
416
+ kind: z.ZodLiteral<"plugin">;
417
+ name: z.ZodString;
418
+ }, z.core.$strict>], "kind">>;
281
419
  min: z.ZodOptional<z.ZodNumber>;
282
420
  max: z.ZodOptional<z.ZodNumber>;
283
- default: z.ZodOptional<z.ZodArray<z.ZodObject<{
284
- label: z.ZodString;
285
- href: z.ZodString;
286
- }, z.core.$strict>>>;
421
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodType<import("./index.js").ListItemInput, unknown, z.core.$ZodTypeInternals<import("./index.js").ListItemInput, unknown>>>, z.ZodString]>>;
287
422
  }, z.core.$strict>, z.ZodObject<{
288
423
  name: z.ZodString;
289
424
  kind: z.ZodLiteral<"module">;
@@ -298,35 +433,12 @@ export declare const moduleUpdateSchema: z.ZodObject<{
298
433
  max: z.ZodOptional<z.ZodNumber>;
299
434
  }, z.core.$strict>], "kind">>>;
300
435
  }, z.core.$strict>;
301
- /**
302
- * v0.12.0 — page-type tag pages inherit from their template.
303
- * Constrained by templates_kind_check in migration 0096. Surfaced
304
- * in the AI's `## Pages` block so the AI sees three modules-on-
305
- * product-pages as a pattern. See CLAUDE.md §1A.
306
- */
307
- export declare const TEMPLATE_KINDS: readonly ["home", "landing", "product", "blog", "doc", "content", "utility"];
308
- export declare const templateKindSchema: z.ZodEnum<{
309
- content: "content";
310
- utility: "utility";
311
- home: "home";
312
- landing: "landing";
313
- product: "product";
314
- blog: "blog";
315
- doc: "doc";
316
- }>;
317
- export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
436
+ /** A page type slug (epic #1107, docs/lists.md §5). */
437
+ export declare const pageTypeSlugSchema: z.ZodString;
318
438
  export declare const templateCreateSchema: z.ZodObject<{
319
439
  slug: z.ZodString;
320
440
  displayName: z.ZodString;
321
- kind: z.ZodDefault<z.ZodEnum<{
322
- content: "content";
323
- utility: "utility";
324
- home: "home";
325
- landing: "landing";
326
- product: "product";
327
- blog: "blog";
328
- doc: "doc";
329
- }>>;
441
+ pageType: z.ZodOptional<z.ZodString>;
330
442
  html: z.ZodString;
331
443
  css: z.ZodDefault<z.ZodString>;
332
444
  layoutId: z.ZodOptional<z.ZodString>;
@@ -344,15 +456,7 @@ export declare const templateBlockSchema: z.ZodObject<{
344
456
  export declare const templateUpdateSchema: z.ZodObject<{
345
457
  templateId: z.ZodString;
346
458
  displayName: z.ZodOptional<z.ZodString>;
347
- kind: z.ZodOptional<z.ZodEnum<{
348
- content: "content";
349
- utility: "utility";
350
- home: "home";
351
- landing: "landing";
352
- product: "product";
353
- blog: "blog";
354
- doc: "doc";
355
- }>>;
459
+ pageType: z.ZodOptional<z.ZodString>;
356
460
  html: z.ZodOptional<z.ZodString>;
357
461
  css: z.ZodOptional<z.ZodString>;
358
462
  layoutId: z.ZodOptional<z.ZodString>;
@@ -374,6 +478,8 @@ export declare const pageStatusSchema: z.ZodEnum<{
374
478
  draft: "draft";
375
479
  published: "published";
376
480
  }>;
481
+ /** `pages.short_title` (#1142): a crumb-sized public label, never blank. */
482
+ export declare const pageShortTitleSchema: z.ZodString;
377
483
  /**
378
484
  * Page payloads are `.strict()` — passing an `html` field is rejected by Zod
379
485
  * before the handler runs. This is the §3.1 "no raw HTML on pages" invariant
@@ -382,14 +488,17 @@ export declare const pageStatusSchema: z.ZodEnum<{
382
488
  */
383
489
  export declare const pageCreateSchema: z.ZodObject<{
384
490
  slug: z.ZodString;
385
- name: z.ZodOptional<z.ZodString>;
386
491
  title: z.ZodString;
492
+ shortTitle: z.ZodOptional<z.ZodString>;
387
493
  templateId: z.ZodOptional<z.ZodString>;
388
494
  status: z.ZodOptional<z.ZodEnum<{
389
495
  draft: "draft";
390
496
  published: "published";
391
497
  }>>;
392
498
  parentPageId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
499
+ pageType: z.ZodOptional<z.ZodString>;
500
+ properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
501
+ terms: z.ZodOptional<z.ZodArray<z.ZodString>>;
393
502
  }, z.core.$strict>;
394
503
  /**
395
504
  * 0263 — `pages.move_many`: reparent pages (their whole subtrees move
@@ -414,8 +523,8 @@ export declare const pagesMoveManySchema: z.ZodObject<{
414
523
  export declare const pageUpdateSchema: z.ZodObject<{
415
524
  pageId: z.ZodString;
416
525
  expectedVersion: z.ZodOptional<z.ZodNumber>;
417
- name: z.ZodOptional<z.ZodString>;
418
526
  title: z.ZodOptional<z.ZodString>;
527
+ shortTitle: z.ZodOptional<z.ZodString>;
419
528
  slug: z.ZodOptional<z.ZodString>;
420
529
  templateId: z.ZodOptional<z.ZodString>;
421
530
  status: z.ZodOptional<z.ZodEnum<{
@@ -426,6 +535,9 @@ export declare const pageUpdateSchema: z.ZodObject<{
426
535
  auto: "auto";
427
536
  skip: "skip";
428
537
  }>>;
538
+ pageType: z.ZodOptional<z.ZodString>;
539
+ properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
540
+ terms: z.ZodOptional<z.ZodArray<z.ZodString>>;
429
541
  }, z.core.$strict>;
430
542
  export declare const pageSetModulesSchema: z.ZodObject<{
431
543
  pageId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}