@kubuild/schema 0.2.0 → 0.3.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.
package/dist/actions.d.ts CHANGED
@@ -191,6 +191,7 @@ export type ShowToastStepPayload = z.infer<typeof ShowToastStepPayloadSchema>;
191
191
  export declare const OpenModalStepPayloadSchema: z.ZodObject<{
192
192
  modalId: z.ZodOptional<z.ZodString>;
193
193
  modalNodeId: z.ZodOptional<z.ZodString>;
194
+ toggle: z.ZodOptional<z.ZodBoolean>;
194
195
  }, z.core.$strip>;
195
196
  export type OpenModalStepPayload = z.infer<typeof OpenModalStepPayloadSchema>;
196
197
  /**
@@ -316,6 +317,7 @@ export declare const StepPayloadSchemas: {
316
317
  readonly open_modal: z.ZodObject<{
317
318
  modalId: z.ZodOptional<z.ZodString>;
318
319
  modalNodeId: z.ZodOptional<z.ZodString>;
320
+ toggle: z.ZodOptional<z.ZodBoolean>;
319
321
  }, z.core.$strip>;
320
322
  readonly close_modal: z.ZodObject<{
321
323
  modalId: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -35,14 +35,63 @@ export declare const ActionBindingSchema: z.ZodObject<{
35
35
  }, z.core.$strip>;
36
36
  export type ActionBinding = z.infer<typeof ActionBindingSchema>;
37
37
  export declare const StyleValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>;
38
- export declare const StyleDefinitionSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>;
39
- export type StyleDefinition = Record<string, string | number | boolean | null | undefined>;
38
+ export type StyleValue = z.infer<typeof StyleValueSchema>;
39
+ /**
40
+ * Standard CSS style definition supporting Flexbox (STORA-101), Sizing constraints (STORA-101),
41
+ * Effects & rounded corners (STORA-101), CSS Grid (STORA-110), and arbitrary CSS properties/tokens.
42
+ */
43
+ export interface StyleDefinition extends Record<string, StyleValue> {
44
+ display?: string;
45
+ flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse' | (string & {});
46
+ flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse' | (string & {});
47
+ justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'left' | 'right' | (string & {});
48
+ alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | (string & {});
49
+ alignContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | (string & {});
50
+ gap?: string | number;
51
+ rowGap?: string | number;
52
+ columnGap?: string | number;
53
+ flexGrow?: number | string;
54
+ flexShrink?: number | string;
55
+ flexBasis?: string | number;
56
+ alignSelf?: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch' | (string & {});
57
+ width?: string | number;
58
+ height?: string | number;
59
+ minWidth?: string | number;
60
+ maxWidth?: string | number;
61
+ minHeight?: string | number;
62
+ maxHeight?: string | number;
63
+ objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | (string & {});
64
+ objectPosition?: string;
65
+ borderRadius?: string | number;
66
+ borderTopLeftRadius?: string | number;
67
+ borderTopRightRadius?: string | number;
68
+ borderBottomRightRadius?: string | number;
69
+ borderBottomLeftRadius?: string | number;
70
+ backdropFilter?: string;
71
+ filter?: string;
72
+ boxShadow?: string;
73
+ gridTemplateColumns?: string;
74
+ gridTemplateRows?: string;
75
+ gridAutoFlow?: string;
76
+ gridAutoColumns?: string;
77
+ gridAutoRows?: string;
78
+ gridColumn?: string | number;
79
+ gridRow?: string | number;
80
+ gridColumnStart?: string | number;
81
+ gridColumnEnd?: string | number;
82
+ gridRowStart?: string | number;
83
+ gridRowEnd?: string | number;
84
+ colSpan?: number | string;
85
+ rowSpan?: number | string;
86
+ justifySelf?: string;
87
+ }
88
+ export declare const StyleDefinitionSchema: z.ZodType<StyleDefinition>;
40
89
  /**
41
90
  * Pseudo-state style definitions keyed by CSS pseudo-class selector
42
91
  * (e.g. `:hover`, `:focus`, `:active`). Each entry is a style layer applied
43
92
  * on top of the resolved breakpoint styles when the state is active.
44
93
  */
45
- export declare const PseudoStateStylesSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>;
94
+ export declare const PseudoStateStylesSchema: z.ZodRecord<z.ZodString, z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>;
46
95
  export type PseudoStateStyles = Record<string, StyleDefinition>;
47
96
  /**
48
97
  * Responsive Styles Schema
@@ -50,11 +99,11 @@ export type PseudoStateStyles = Record<string, StyleDefinition>;
50
99
  * Optionally carries `states` — pseudo-class style layers (e.g. `:hover`).
51
100
  */
52
101
  export declare const ResponsiveStylesSchema: z.ZodDefault<z.ZodObject<{
53
- base: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>;
54
- desktop: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>;
55
- tablet: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>;
56
- mobile: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>;
57
- states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodUndefined]>>>>;
102
+ base: z.ZodOptional<z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>;
103
+ desktop: z.ZodOptional<z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>;
104
+ tablet: z.ZodOptional<z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>;
105
+ mobile: z.ZodOptional<z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>;
106
+ states: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<StyleDefinition, unknown, z.core.$ZodTypeInternals<StyleDefinition, unknown>>>>;
58
107
  }, z.core.$loose>>;
59
108
  export type ResponsiveStyles = z.infer<typeof ResponsiveStylesSchema>;
60
109
  /**
@@ -141,6 +190,133 @@ export declare const PageDocumentSchema: z.ZodObject<{
141
190
  document: z.ZodType<RootPageNode, unknown, z.core.$ZodTypeInternals<RootPageNode, unknown>>;
142
191
  }, z.core.$strip>;
143
192
  export type PageDocument = z.infer<typeof PageDocumentSchema>;
193
+ export declare const PROJECT_SCHEMA_NAME: "stora.project";
194
+ export declare const CURRENT_PROJECT_SCHEMA_VERSION: "1.0.0";
195
+ /**
196
+ * Node type used as the in-tree placeholder left behind when a subtree is detached
197
+ * into its own artboard. It carries no children — the real content lives in the
198
+ * artboard named by `props.artboardId`.
199
+ */
200
+ export declare const ARTBOARD_REFERENCE_NODE_TYPE: "artboard-reference";
201
+ /**
202
+ * Artboard Type Schema
203
+ * - 'page': a routable page surface (has a slug)
204
+ * - 'component': a detached surface rendered as an overlay/portal at runtime
205
+ * (modal, drawer, collapsible, or any block the author detached), reached by `triggerId`
206
+ */
207
+ export declare const ArtboardTypeSchema: z.ZodEnum<{
208
+ page: "page";
209
+ component: "component";
210
+ }>;
211
+ export type ArtboardType = z.infer<typeof ArtboardTypeSchema>;
212
+ /**
213
+ * Artboard Schema
214
+ * One top-level surface on the builder canvas. Each artboard embeds a complete
215
+ * PageDocument so that every existing document command, tree utility, validator,
216
+ * and history engine keeps operating on exactly the shape it already understands.
217
+ *
218
+ * Component artboards always wrap their detached node as the sole child of a
219
+ * synthetic `type: 'page'` root, so the root-type constraint never has to be relaxed.
220
+ */
221
+ export declare const ArtboardSchema: z.ZodObject<{
222
+ id: z.ZodString;
223
+ name: z.ZodString;
224
+ artboardType: z.ZodEnum<{
225
+ page: "page";
226
+ component: "component";
227
+ }>;
228
+ slug: z.ZodOptional<z.ZodString>;
229
+ triggerId: z.ZodOptional<z.ZodString>;
230
+ viewport: z.ZodOptional<z.ZodEnum<{
231
+ mobile: "mobile";
232
+ desktop: "desktop";
233
+ tablet: "tablet";
234
+ }>>;
235
+ width: z.ZodOptional<z.ZodNumber>;
236
+ position: z.ZodOptional<z.ZodObject<{
237
+ x: z.ZodNumber;
238
+ y: z.ZodNumber;
239
+ }, z.core.$strip>>;
240
+ document: z.ZodObject<{
241
+ schema: z.ZodLiteral<"stora.page">;
242
+ version: z.ZodDefault<z.ZodString>;
243
+ metadata: z.ZodOptional<z.ZodObject<{
244
+ title: z.ZodDefault<z.ZodString>;
245
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
246
+ author: z.ZodDefault<z.ZodOptional<z.ZodString>>;
247
+ createdAt: z.ZodOptional<z.ZodString>;
248
+ updatedAt: z.ZodOptional<z.ZodString>;
249
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
250
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
251
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
252
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
253
+ }, z.core.$strip>>;
254
+ document: z.ZodType<RootPageNode, unknown, z.core.$ZodTypeInternals<RootPageNode, unknown>>;
255
+ }, z.core.$strip>;
256
+ }, z.core.$strip>;
257
+ export type Artboard = z.infer<typeof ArtboardSchema>;
258
+ /**
259
+ * Project Document Schema
260
+ * Root portable structure holding many artboards:
261
+ * - schema: strictly "stora.project" (distinct from the single-page "stora.page")
262
+ * - version: project schema version string
263
+ * - metadata: serializable metadata
264
+ * - artboards: one or more page/component surfaces
265
+ * - activeArtboardId: which artboard the editor should open
266
+ */
267
+ export declare const ProjectDocumentSchema: z.ZodObject<{
268
+ schema: z.ZodLiteral<"stora.project">;
269
+ version: z.ZodDefault<z.ZodString>;
270
+ metadata: z.ZodOptional<z.ZodObject<{
271
+ title: z.ZodDefault<z.ZodString>;
272
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
273
+ author: z.ZodDefault<z.ZodOptional<z.ZodString>>;
274
+ createdAt: z.ZodOptional<z.ZodString>;
275
+ updatedAt: z.ZodOptional<z.ZodString>;
276
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
277
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
278
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
279
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
280
+ }, z.core.$strip>>;
281
+ artboards: z.ZodArray<z.ZodObject<{
282
+ id: z.ZodString;
283
+ name: z.ZodString;
284
+ artboardType: z.ZodEnum<{
285
+ page: "page";
286
+ component: "component";
287
+ }>;
288
+ slug: z.ZodOptional<z.ZodString>;
289
+ triggerId: z.ZodOptional<z.ZodString>;
290
+ viewport: z.ZodOptional<z.ZodEnum<{
291
+ mobile: "mobile";
292
+ desktop: "desktop";
293
+ tablet: "tablet";
294
+ }>>;
295
+ width: z.ZodOptional<z.ZodNumber>;
296
+ position: z.ZodOptional<z.ZodObject<{
297
+ x: z.ZodNumber;
298
+ y: z.ZodNumber;
299
+ }, z.core.$strip>>;
300
+ document: z.ZodObject<{
301
+ schema: z.ZodLiteral<"stora.page">;
302
+ version: z.ZodDefault<z.ZodString>;
303
+ metadata: z.ZodOptional<z.ZodObject<{
304
+ title: z.ZodDefault<z.ZodString>;
305
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
306
+ author: z.ZodDefault<z.ZodOptional<z.ZodString>>;
307
+ createdAt: z.ZodOptional<z.ZodString>;
308
+ updatedAt: z.ZodOptional<z.ZodString>;
309
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
310
+ category: z.ZodDefault<z.ZodOptional<z.ZodString>>;
311
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
312
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
313
+ }, z.core.$strip>>;
314
+ document: z.ZodType<RootPageNode, unknown, z.core.$ZodTypeInternals<RootPageNode, unknown>>;
315
+ }, z.core.$strip>;
316
+ }, z.core.$strip>>;
317
+ activeArtboardId: z.ZodOptional<z.ZodString>;
318
+ }, z.core.$strip>;
319
+ export type ProjectDocument = z.infer<typeof ProjectDocumentSchema>;
144
320
  /**
145
321
  * Type guards
146
322
  */
@@ -148,6 +324,18 @@ export declare function isAssetReference(value: unknown): value is AssetReferenc
148
324
  export declare function isVariableBinding(value: unknown): value is VariableBinding;
149
325
  export declare function isActionBinding(value: unknown): value is ActionBinding;
150
326
  export declare function isAnimationConfig(value: unknown): value is AnimationConfig;
327
+ export declare function isProjectDocument(value: unknown): value is ProjectDocument;
328
+ /**
329
+ * Cheap structural sniff used by the loader to route a raw payload to either the
330
+ * project pipeline or the legacy single-page pipeline, before any parsing happens.
331
+ * Intentionally does not validate — a malformed project must still be routed to the
332
+ * project parser so its own errors surface, rather than being silently treated as a page.
333
+ */
334
+ export declare function looksLikeProjectDocument(value: unknown): boolean;
335
+ /**
336
+ * Node type guard for the in-tree placeholder that points at a detached artboard.
337
+ */
338
+ export declare function isArtboardReferenceNode(node: Node): boolean;
151
339
  /**
152
340
  * Deterministic Node ID Generator
153
341
  * Generates predictable IDs based on prefix and an index/identifier (not bound to React keys).
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  ACTION_PIPELINE_JSON_SCHEMA_V1: () => ACTION_PIPELINE_JSON_SCHEMA_V1,
24
+ ARTBOARD_REFERENCE_NODE_TYPE: () => ARTBOARD_REFERENCE_NODE_TYPE,
24
25
  ActionBindingSchema: () => ActionBindingSchema,
25
26
  ActionPipelineSchema: () => ActionPipelineSchema,
26
27
  ActionStepConditionSchema: () => ActionStepConditionSchema,
@@ -30,7 +31,10 @@ __export(index_exports, {
30
31
  ActionTriggerTypeSchema: () => ActionTriggerTypeSchema,
31
32
  AnimationConfigSchema: () => AnimationConfigSchema,
32
33
  ApiRequestStepPayloadSchema: () => ApiRequestStepPayloadSchema,
34
+ ArtboardSchema: () => ArtboardSchema,
35
+ ArtboardTypeSchema: () => ArtboardTypeSchema,
33
36
  AssetReferenceSchema: () => AssetReferenceSchema,
37
+ CURRENT_PROJECT_SCHEMA_VERSION: () => CURRENT_PROJECT_SCHEMA_VERSION,
34
38
  CURRENT_SCHEMA_VERSION: () => CURRENT_SCHEMA_VERSION,
35
39
  CloseModalStepPayloadSchema: () => CloseModalStepPayloadSchema,
36
40
  ConditionOperatorSchema: () => ConditionOperatorSchema,
@@ -49,7 +53,9 @@ __export(index_exports, {
49
53
  NodeSchema: () => NodeSchema,
50
54
  OpenModalStepPayloadSchema: () => OpenModalStepPayloadSchema,
51
55
  PAGE_DOCUMENT_JSON_SCHEMA_V1: () => PAGE_DOCUMENT_JSON_SCHEMA_V1,
56
+ PROJECT_SCHEMA_NAME: () => PROJECT_SCHEMA_NAME,
52
57
  PageDocumentSchema: () => PageDocumentSchema,
58
+ ProjectDocumentSchema: () => ProjectDocumentSchema,
53
59
  PseudoStateStylesSchema: () => PseudoStateStylesSchema,
54
60
  ResetFormStepPayloadSchema: () => ResetFormStepPayloadSchema,
55
61
  ResponsiveStylesSchema: () => ResponsiveStylesSchema,
@@ -86,11 +92,13 @@ __export(index_exports, {
86
92
  isActionStepType: () => isActionStepType,
87
93
  isActionTriggerType: () => isActionTriggerType,
88
94
  isAnimationConfig: () => isAnimationConfig,
95
+ isArtboardReferenceNode: () => isArtboardReferenceNode,
89
96
  isAssetReference: () => isAssetReference,
90
97
  isConditionOperator: () => isConditionOperator,
91
98
  isFormConfig: () => isFormConfig,
92
99
  isFormFieldBinding: () => isFormFieldBinding,
93
100
  isManifest: () => isManifest,
101
+ isProjectDocument: () => isProjectDocument,
94
102
  isSafeActionUrl: () => isSafeActionUrl,
95
103
  isSafeThumbnail: () => isSafeThumbnail,
96
104
  isSafeThumbnailUrl: () => isSafeThumbnailUrl,
@@ -99,6 +107,7 @@ __export(index_exports, {
99
107
  isValidationRule: () => isValidationRule,
100
108
  isValidationRuleType: () => isValidationRuleType,
101
109
  isVariableBinding: () => isVariableBinding,
110
+ looksLikeProjectDocument: () => looksLikeProjectDocument,
102
111
  sanitizeActionPayload: () => sanitizeActionPayload,
103
112
  sanitizeActionPipeline: () => sanitizeActionPipeline,
104
113
  sanitizeActionStep: () => sanitizeActionStep,
@@ -205,7 +214,8 @@ var ShowToastStepPayloadSchema = import_zod.z.object({
205
214
  });
206
215
  var OpenModalStepPayloadSchema = import_zod.z.object({
207
216
  modalId: import_zod.z.string().optional(),
208
- modalNodeId: import_zod.z.string().optional()
217
+ modalNodeId: import_zod.z.string().optional(),
218
+ toggle: import_zod.z.boolean().optional()
209
219
  }).refine((data) => Boolean(data.modalId || data.modalNodeId), {
210
220
  message: "Modal ID or Modal Node ID cannot be empty"
211
221
  });
@@ -524,6 +534,45 @@ var PageDocumentSchema = import_zod3.z.object({
524
534
  metadata: DocumentMetadataSchema.optional(),
525
535
  document: RootPageNodeSchema
526
536
  });
537
+ var PROJECT_SCHEMA_NAME = "stora.project";
538
+ var CURRENT_PROJECT_SCHEMA_VERSION = "1.0.0";
539
+ var ARTBOARD_REFERENCE_NODE_TYPE = "artboard-reference";
540
+ var ArtboardTypeSchema = import_zod3.z.enum(["page", "component"]);
541
+ var ArtboardSchema = import_zod3.z.object({
542
+ id: import_zod3.z.string().min(1, "Artboard ID is required"),
543
+ name: import_zod3.z.string().min(1, "Artboard name is required"),
544
+ artboardType: ArtboardTypeSchema,
545
+ /** Route for page artboards (e.g. "/about"). */
546
+ slug: import_zod3.z.string().optional(),
547
+ /**
548
+ * For component artboards: the id that `open_modal` / `close_modal` actions target.
549
+ * Mirrors the detached node's own `props.modalId` so ModalManager keeps working unchanged.
550
+ */
551
+ triggerId: import_zod3.z.string().optional(),
552
+ /**
553
+ * Viewport/breakpoint this artboard is currently authored at. Declared inline
554
+ * (rather than imported) because viewport is otherwise an editor/renderer concept.
555
+ */
556
+ viewport: import_zod3.z.enum(["desktop", "tablet", "mobile"]).optional(),
557
+ /** Persisted artboard width in px, matching the canvas ViewportResizer's `width`. */
558
+ width: import_zod3.z.number().positive().optional(),
559
+ /**
560
+ * Free position on the builder's infinite canvas, in unscaled canvas px. Absent means
561
+ * "not placed yet" — the canvas then falls back to laying the artboard out in a row.
562
+ */
563
+ position: import_zod3.z.object({
564
+ x: import_zod3.z.number(),
565
+ y: import_zod3.z.number()
566
+ }).optional(),
567
+ document: PageDocumentSchema
568
+ });
569
+ var ProjectDocumentSchema = import_zod3.z.object({
570
+ schema: import_zod3.z.literal(PROJECT_SCHEMA_NAME),
571
+ version: import_zod3.z.string().min(1, "Schema version is required").default(CURRENT_PROJECT_SCHEMA_VERSION),
572
+ metadata: DocumentMetadataSchema.optional(),
573
+ artboards: import_zod3.z.array(ArtboardSchema).min(1, "A project needs at least one artboard"),
574
+ activeArtboardId: import_zod3.z.string().optional()
575
+ });
527
576
  function isAssetReference(value) {
528
577
  return AssetReferenceSchema.safeParse(value).success;
529
578
  }
@@ -536,6 +585,17 @@ function isActionBinding(value) {
536
585
  function isAnimationConfig(value) {
537
586
  return AnimationConfigSchema.safeParse(value).success;
538
587
  }
588
+ function isProjectDocument(value) {
589
+ return ProjectDocumentSchema.safeParse(value).success;
590
+ }
591
+ function looksLikeProjectDocument(value) {
592
+ if (typeof value !== "object" || value === null) return false;
593
+ const candidate = value;
594
+ return candidate.schema === PROJECT_SCHEMA_NAME || Array.isArray(candidate.artboards);
595
+ }
596
+ function isArtboardReferenceNode(node) {
597
+ return node.type === ARTBOARD_REFERENCE_NODE_TYPE;
598
+ }
539
599
  function generateDeterministicNodeId(prefix, indexOrKey) {
540
600
  const cleanPrefix = prefix.toLowerCase().replace(/[^a-z0-9_-]/g, "-");
541
601
  return `${cleanPrefix}_${indexOrKey}`;
@@ -1672,6 +1732,7 @@ function getFormFieldBindingJsonSchema() {
1672
1732
  // Annotate the CommonJS export names for ESM import in node:
1673
1733
  0 && (module.exports = {
1674
1734
  ACTION_PIPELINE_JSON_SCHEMA_V1,
1735
+ ARTBOARD_REFERENCE_NODE_TYPE,
1675
1736
  ActionBindingSchema,
1676
1737
  ActionPipelineSchema,
1677
1738
  ActionStepConditionSchema,
@@ -1681,7 +1742,10 @@ function getFormFieldBindingJsonSchema() {
1681
1742
  ActionTriggerTypeSchema,
1682
1743
  AnimationConfigSchema,
1683
1744
  ApiRequestStepPayloadSchema,
1745
+ ArtboardSchema,
1746
+ ArtboardTypeSchema,
1684
1747
  AssetReferenceSchema,
1748
+ CURRENT_PROJECT_SCHEMA_VERSION,
1685
1749
  CURRENT_SCHEMA_VERSION,
1686
1750
  CloseModalStepPayloadSchema,
1687
1751
  ConditionOperatorSchema,
@@ -1700,7 +1764,9 @@ function getFormFieldBindingJsonSchema() {
1700
1764
  NodeSchema,
1701
1765
  OpenModalStepPayloadSchema,
1702
1766
  PAGE_DOCUMENT_JSON_SCHEMA_V1,
1767
+ PROJECT_SCHEMA_NAME,
1703
1768
  PageDocumentSchema,
1769
+ ProjectDocumentSchema,
1704
1770
  PseudoStateStylesSchema,
1705
1771
  ResetFormStepPayloadSchema,
1706
1772
  ResponsiveStylesSchema,
@@ -1737,11 +1803,13 @@ function getFormFieldBindingJsonSchema() {
1737
1803
  isActionStepType,
1738
1804
  isActionTriggerType,
1739
1805
  isAnimationConfig,
1806
+ isArtboardReferenceNode,
1740
1807
  isAssetReference,
1741
1808
  isConditionOperator,
1742
1809
  isFormConfig,
1743
1810
  isFormFieldBinding,
1744
1811
  isManifest,
1812
+ isProjectDocument,
1745
1813
  isSafeActionUrl,
1746
1814
  isSafeThumbnail,
1747
1815
  isSafeThumbnailUrl,
@@ -1750,6 +1818,7 @@ function getFormFieldBindingJsonSchema() {
1750
1818
  isValidationRule,
1751
1819
  isValidationRuleType,
1752
1820
  isVariableBinding,
1821
+ looksLikeProjectDocument,
1753
1822
  sanitizeActionPayload,
1754
1823
  sanitizeActionPipeline,
1755
1824
  sanitizeActionStep,