@sudajs/theme-engine 0.2.1 → 1.1.0

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/agent.d.ts +288 -20
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +73 -9
  4. package/dist/agent.js.map +1 -1
  5. package/dist/assets.d.ts +21 -0
  6. package/dist/assets.d.ts.map +1 -1
  7. package/dist/assets.js +16 -0
  8. package/dist/assets.js.map +1 -1
  9. package/dist/check.d.ts +54 -0
  10. package/dist/check.d.ts.map +1 -0
  11. package/dist/check.js +120 -0
  12. package/dist/check.js.map +1 -0
  13. package/dist/components/base-blocks.d.ts.map +1 -1
  14. package/dist/components/base-blocks.js +90 -6
  15. package/dist/components/base-blocks.js.map +1 -1
  16. package/dist/components/containers.d.ts.map +1 -1
  17. package/dist/components/containers.js +51 -2
  18. package/dist/components/containers.js.map +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/registry/filesystem.d.ts +20 -5
  24. package/dist/registry/filesystem.d.ts.map +1 -1
  25. package/dist/registry/filesystem.js +36 -25
  26. package/dist/registry/filesystem.js.map +1 -1
  27. package/dist/runtime.d.ts +1 -1
  28. package/dist/runtime.d.ts.map +1 -1
  29. package/dist/runtime.js +1 -1
  30. package/dist/runtime.js.map +1 -1
  31. package/dist/server.d.ts +2 -2
  32. package/dist/server.d.ts.map +1 -1
  33. package/dist/server.js +2 -2
  34. package/dist/server.js.map +1 -1
  35. package/dist/types.d.ts +38 -18
  36. package/dist/types.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/dist/ai/slots.d.ts +0 -33
  39. package/dist/ai/slots.d.ts.map +0 -1
  40. package/dist/ai/slots.js +0 -139
  41. package/dist/ai/slots.js.map +0 -1
@@ -12,6 +12,11 @@ const ratioColumns = {
12
12
  };
13
13
  const TwoColumn = {
14
14
  label: "Two columns",
15
+ ai: {
16
+ instructions: "Generic two-column layout container that holds blocks in a left/right pair. " +
17
+ "Use only when no purpose-built section already pairs media with copy. " +
18
+ "Prefer narrative sections over a bare TwoColumn for marketing pages.",
19
+ },
15
20
  fields: {
16
21
  left: slotField("Left column"),
17
22
  right: slotField("Right column"),
@@ -24,6 +29,9 @@ const TwoColumn = {
24
29
  { label: "1 : 2", value: "1-2" },
25
30
  { label: "2 : 1", value: "2-1" },
26
31
  ],
32
+ ai: {
33
+ instructions: "Use '1-1' for balanced media-and-copy pairs, '2-1' when the left column carries primary content, and '1-2' to emphasise the right column.",
34
+ },
27
35
  },
28
36
  },
29
37
  defaultProps: { left: [], right: [], gap: "32px", ratio: "1-1" },
@@ -40,6 +48,11 @@ const TwoColumn = {
40
48
  };
41
49
  const CardGrid = {
42
50
  label: "Card grid",
51
+ ai: {
52
+ instructions: "Equal-width grid container for repeating block groups (feature blurbs, simple cards). " +
53
+ "Use when a theme has no domain-specific feature/card section. " +
54
+ "Do not use for navigation, testimonials, or pricing tiers when a richer section exists.",
55
+ },
43
56
  fields: {
44
57
  items: slotField("Cards"),
45
58
  columns: {
@@ -47,6 +60,9 @@ const CardGrid = {
47
60
  label: "Columns",
48
61
  min: 1,
49
62
  max: 6,
63
+ ai: {
64
+ instructions: "Choose 2–4 columns for typical desktop layouts; pick a value that divides the number of items evenly.",
65
+ },
50
66
  },
51
67
  gap: { type: "text", label: "Gap (e.g. 24px)" },
52
68
  },
@@ -64,16 +80,31 @@ const CardGrid = {
64
80
  };
65
81
  const Accordion = {
66
82
  label: "Accordion",
83
+ ai: {
84
+ instructions: "Collapsible Q&A or disclosure list. " +
85
+ "Use for FAQs or progressive-disclosure content groups. " +
86
+ "Place after the main explanation section and before the final CTA. Do not use for primary navigation or short feature lists.",
87
+ },
67
88
  fields: {
68
89
  items: {
69
90
  type: "array",
70
91
  label: "Items",
71
92
  getItemSummary: (item) => item.title || "Item",
72
93
  arrayFields: {
73
- title: { type: "text", label: "Title" },
94
+ title: {
95
+ type: "text",
96
+ label: "Title",
97
+ ai: {
98
+ instructions: "Question or topic phrased the way a visitor would ask it. Keep it under 80 characters.",
99
+ required: true,
100
+ },
101
+ },
74
102
  content: slotField("Content"),
75
103
  },
76
104
  defaultItemProps: { title: "Question", content: [] },
105
+ ai: {
106
+ instructions: "Generate 4–8 entries covering the most common visitor questions for the page topic. Avoid duplicating the page hero copy.",
107
+ },
77
108
  },
78
109
  },
79
110
  defaultProps: {
@@ -89,16 +120,29 @@ const Accordion = {
89
120
  };
90
121
  const Tabs = {
91
122
  label: "Tabs",
123
+ ai: {
124
+ instructions: "Tabbed container for parallel content groups that share a single screen region. " +
125
+ "Use when 2–5 short alternative views need to be compared in place. " +
126
+ "Do not use for sequential steps (use a step list) or for FAQ-style disclosures (use Accordion).",
127
+ },
92
128
  fields: {
93
129
  items: {
94
130
  type: "array",
95
131
  label: "Tabs",
96
132
  getItemSummary: (item) => item.label || "Tab",
97
133
  arrayFields: {
98
- label: { type: "text", label: "Label" },
134
+ label: {
135
+ type: "text",
136
+ label: "Label",
137
+ ai: {
138
+ instructions: "Short tab name, 1–3 words, distinct from sibling tabs.",
139
+ required: true,
140
+ },
141
+ },
99
142
  content: slotField("Content"),
100
143
  },
101
144
  defaultItemProps: { label: "Tab", content: [] },
145
+ ai: { instructions: "Generate 2–5 tabs that compare related options or perspectives." },
102
146
  },
103
147
  },
104
148
  defaultProps: {
@@ -114,6 +158,11 @@ const Tabs = {
114
158
  };
115
159
  const Carousel = {
116
160
  label: "Carousel",
161
+ ai: {
162
+ instructions: "Horizontal scroll/snap container for a homogeneous sequence of items. " +
163
+ "Use sparingly — only when items genuinely need horizontal browsing. " +
164
+ "Prefer CardGrid for static feature lists.",
165
+ },
117
166
  fields: {
118
167
  items: slotField("Slides"),
119
168
  },
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/components/containers.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/components/containers.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export * from "./types.js";
2
2
  export * from "./manifest.js";
3
3
  export * from "./registry.js";
4
- export * from "./ai/slots.js";
5
4
  export * from "./assets.js";
6
5
  export * from "./agent.js";
6
+ export * from "./check.js";
7
7
  export * from "./cms/index.js";
8
8
  export * from "./fields/index.js";
9
9
  export * from "./components/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
  export * from "./types.js";
3
3
  export * from "./manifest.js";
4
4
  export * from "./registry.js";
5
- export * from "./ai/slots.js";
6
5
  export * from "./assets.js";
7
6
  export * from "./agent.js";
7
+ export * from "./check.js";
8
8
  export * from "./cms/index.js";
9
9
  // Editor building blocks (client-safe)
10
10
  export * from "./fields/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAE5B,uCAAuC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAE5B,uCAAuC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAE/B,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -1,10 +1,25 @@
1
1
  import type { ThemeRegistry } from "../registry.js";
2
- import type { ResolvedTheme, ThemeManifest } from "../types.js";
2
+ import type { ResolvedTheme, ThemeManifest, ThemeModule } from "../types.js";
3
3
  export interface FileSystemThemeRegistryOptions {
4
4
  /** Directories containing one subdirectory per theme artifact/source checkout. */
5
- roots: string[];
5
+ roots?: string[];
6
6
  /** Public API prefix that serves theme files, e.g. `/api/themes`. */
7
7
  publicBasePath?: string;
8
+ /**
9
+ * Pre-resolved theme artifacts. When provided, the registry skips filesystem
10
+ * scanning entirely and serves only these artifacts. Use this when the caller
11
+ * already loaded the theme module (e.g. the CLI dev preview) so sibling
12
+ * theme directories under the same root are not implicitly loaded.
13
+ */
14
+ artifacts?: FileSystemThemeArtifact[];
15
+ }
16
+ export interface FileSystemThemeArtifact {
17
+ /** Absolute path to the theme artifact root (the directory containing `dist/`). */
18
+ rootPath: string;
19
+ /** Absolute path to the resolved server entry (typically `<rootPath>/dist/index.js`). */
20
+ serverEntryPath: string;
21
+ /** Pre-loaded theme module exported by `serverEntryPath`. */
22
+ module: ThemeModule;
8
23
  }
9
24
  /**
10
25
  * Runtime registry backed by theme artifact files. Apps use this instead of
@@ -13,15 +28,15 @@ export interface FileSystemThemeRegistryOptions {
13
28
  */
14
29
  export declare class FileSystemThemeRegistry implements ThemeRegistry {
15
30
  private readonly options;
16
- private records;
31
+ private artifacts;
17
32
  constructor(options: FileSystemThemeRegistryOptions);
18
33
  list(): Promise<ThemeManifest[]>;
19
34
  has(key: string): Promise<boolean>;
20
35
  resolve(key: string, version?: string): Promise<ResolvedTheme | null>;
21
36
  resolveAssetPath(key: string, version: string, relativePath: string): Promise<string | null>;
22
37
  resolveClientEntryPath(key: string, version: string): Promise<string | null>;
23
- private loadRecords;
24
- private discoverRecords;
38
+ private loadArtifacts;
39
+ private discoverArtifacts;
25
40
  private createRuntime;
26
41
  }
27
42
  //# sourceMappingURL=filesystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/registry/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAA6B,MAAM,UAAU,CAAC;AAExF,MAAM,WAAW,8BAA8B;IAC7C,kFAAkF;IAClF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAyED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAG/C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAA+C;gBAEjC,OAAO,EAAE,8BAA8B;IAE9D,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkBrE,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBnB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAWpE,WAAW;YAKX,eAAe;YAuBf,aAAa;CAuB5B"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/registry/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAExF,MAAM,WAAW,8BAA8B;IAC7C,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,MAAM,EAAE,WAAW,CAAC;CACrB;AAyED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAG/C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,SAAS,CAAyC;gBAE7B,OAAO,EAAE,8BAA8B;IAE9D,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkBrE,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBnB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAWpE,aAAa;YAKb,iBAAiB;YAmCjB,aAAa;CAuB5B"}
@@ -60,32 +60,32 @@ async function importThemeModule(serverEntryPath) {
60
60
  */
61
61
  export class FileSystemThemeRegistry {
62
62
  options;
63
- records = null;
63
+ artifacts = null;
64
64
  constructor(options) {
65
65
  this.options = options;
66
66
  }
67
67
  async list() {
68
- const records = await this.loadRecords();
69
- return records.map((record) => record.module.manifest);
68
+ const artifacts = await this.loadArtifacts();
69
+ return artifacts.map((artifact) => artifact.module.manifest);
70
70
  }
71
71
  async has(key) {
72
- const records = await this.loadRecords();
73
- return records.some((record) => record.module.manifest.key === key);
72
+ const artifacts = await this.loadArtifacts();
73
+ return artifacts.some((artifact) => artifact.module.manifest.key === key);
74
74
  }
75
75
  async resolve(key, version) {
76
- const records = await this.loadRecords();
77
- const record = records.find((candidate) => {
76
+ const artifacts = await this.loadArtifacts();
77
+ const artifact = artifacts.find((candidate) => {
78
78
  const manifest = candidate.module.manifest;
79
79
  return manifest.key === key && (version === undefined || manifest.version === version);
80
80
  });
81
- if (!record) {
81
+ if (!artifact) {
82
82
  return null;
83
83
  }
84
- const manifest = record.module.manifest;
84
+ const manifest = artifact.module.manifest;
85
85
  return {
86
86
  manifest,
87
- module: record.module,
88
- runtime: await this.createRuntime(record),
87
+ module: artifact.module,
88
+ runtime: await this.createRuntime(artifact),
89
89
  };
90
90
  }
91
91
  async resolveAssetPath(key, version, relativePath) {
@@ -112,13 +112,24 @@ export class FileSystemThemeRegistry {
112
112
  const clientEntryPath = resolveClientEntryPathFromManifest(rootPath, manifest);
113
113
  return (await pathExists(clientEntryPath)) ? clientEntryPath : null;
114
114
  }
115
- async loadRecords() {
116
- this.records ??= this.discoverRecords();
117
- return this.records;
115
+ async loadArtifacts() {
116
+ this.artifacts ??= this.discoverArtifacts();
117
+ return this.artifacts;
118
118
  }
119
- async discoverRecords() {
120
- const records = [];
121
- for (const root of this.options.roots) {
119
+ async discoverArtifacts() {
120
+ const preloadedArtifacts = this.options.artifacts;
121
+ if (preloadedArtifacts && preloadedArtifacts.length > 0) {
122
+ // Caller already resolved the artifacts (e.g. CLI dev preview). Skip
123
+ // filesystem scanning so we don't implicitly load sibling theme
124
+ // directories that happen to share the same root.
125
+ return preloadedArtifacts.map((artifact) => ({
126
+ rootPath: artifact.rootPath,
127
+ serverEntryPath: artifact.serverEntryPath,
128
+ module: artifact.module,
129
+ }));
130
+ }
131
+ const artifacts = [];
132
+ for (const root of this.options.roots ?? []) {
122
133
  if (!(await pathExists(root))) {
123
134
  continue;
124
135
  }
@@ -133,22 +144,22 @@ export class FileSystemThemeRegistry {
133
144
  continue;
134
145
  }
135
146
  const module = await importThemeModule(serverEntryPath);
136
- records.push({ rootPath, serverEntryPath, module });
147
+ artifacts.push({ rootPath, serverEntryPath, module });
137
148
  }
138
149
  }
139
- return records;
150
+ return artifacts;
140
151
  }
141
- async createRuntime(record) {
142
- const { key, version } = record.module.manifest;
152
+ async createRuntime(artifact) {
153
+ const { key, version } = artifact.module.manifest;
143
154
  const runtime = {
144
- rootPath: record.rootPath,
145
- serverEntryPath: record.serverEntryPath,
155
+ rootPath: artifact.rootPath,
156
+ serverEntryPath: artifact.serverEntryPath,
146
157
  };
147
158
  const basePath = this.options.publicBasePath;
148
159
  if (basePath) {
149
160
  const prefix = `/${toPublicPath(basePath, key, version)}`;
150
- const stylesheetPath = path.join(record.rootPath, "styles.css");
151
- const clientEntryPath = resolveClientEntryPathFromManifest(record.rootPath, record.module.manifest);
161
+ const stylesheetPath = path.join(artifact.rootPath, "styles.css");
162
+ const clientEntryPath = resolveClientEntryPathFromManifest(artifact.rootPath, artifact.module.manifest);
152
163
  if (await pathExists(stylesheetPath)) {
153
164
  runtime.stylesheetUrl = cacheBust(`${prefix}/assets/styles.css`, version);
154
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/registry/filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/registry/filesystem.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -2,7 +2,7 @@ export { createEngineComponents } from "./components/index.js";
2
2
  export { colorSchemeField, createColorSchemeDefault, createThemeCssVariables, resolveColorSchemeTokens, SUDA_COLOR_TOKEN_KEYS, type ColorSchemeFieldOptions, type CreateThemeCssVariablesOptions, type SudaColorSchemePreset, type SudaColorSchemeValue, type SudaThemeColorTokens, } from "./fields/index.js";
3
3
  export { resolveAsset, type ThemeRenderMetadata } from "./components/metadata.js";
4
4
  export { getPageSlot, THEME_PAGE_SLOT } from "./render/slot.js";
5
- export { createThemeAssetPath, resolveAssetPath, type ResolveAssetPathOptions, type ThemeAssetSummary, type ThemeUnsplashAssetSummary, } from "./assets.js";
5
+ export { createThemeAssetPath, createThemeAssetResolver, resolveAssetPath, type ResolveAssetPathOptions, type ThemeAssetResolver, type ThemeAssetSummary, type ThemeUnsplashAssetSummary, } from "./assets.js";
6
6
  export type { LayoutData, PageData, SudaComponentConfig, SudaConfig, SudaField, SudaFields, SudaRootConfig, } from "./types.js";
7
7
  export { applyCmsBindings, getCmsContext, type CmsBinding, type CmsContext, type CmsPagination, type CmsPostDetail, type CmsPostListPayload, type CmsPostSummary, type CmsTagDetail, type CmsTagSummary, type CmsViewBinding, type ThemeContentCapabilities, } from "./cms/index.js";
8
8
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC"}
package/dist/runtime.js CHANGED
@@ -5,6 +5,6 @@ export { createEngineComponents } from "./components/index.js";
5
5
  export { colorSchemeField, createColorSchemeDefault, createThemeCssVariables, resolveColorSchemeTokens, SUDA_COLOR_TOKEN_KEYS, } from "./fields/index.js";
6
6
  export { resolveAsset } from "./components/metadata.js";
7
7
  export { getPageSlot, THEME_PAGE_SLOT } from "./render/slot.js";
8
- export { createThemeAssetPath, resolveAssetPath, } from "./assets.js";
8
+ export { createThemeAssetPath, createThemeAssetResolver, resolveAssetPath, } from "./assets.js";
9
9
  export { applyCmsBindings, getCmsContext, } from "./cms/index.js";
10
10
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GAMtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAIjB,MAAM,UAAU,CAAC;AAUlB,OAAO,EACL,gBAAgB,EAChB,aAAa,GAWd,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GAMtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,GAKjB,MAAM,UAAU,CAAC;AAUlB,OAAO,EACL,gBAAgB,EAChB,aAAa,GAWd,MAAM,aAAa,CAAC"}
package/dist/server.d.ts CHANGED
@@ -2,13 +2,13 @@ export { renderThemePage, ThemeRender, type ThemeRenderProps } from "./render/re
2
2
  export { getPageSlot, THEME_PAGE_SLOT } from "./render/slot.js";
3
3
  export { extractLayoutChrome, type LayoutChrome } from "./render/chrome.js";
4
4
  export { resolveAsset, type ThemeRenderMetadata } from "./components/metadata.js";
5
- export { createThemeAssetPath, resolveAssetPath, type ResolveAssetPathOptions, type ThemeAssetSummary, type ThemeUnsplashAssetSummary, } from "./assets.js";
5
+ export { createThemeAssetPath, createThemeAssetResolver, resolveAssetPath, type ResolveAssetPathOptions, type ThemeAssetResolver, type ThemeAssetSummary, type ThemeUnsplashAssetSummary, } from "./assets.js";
6
6
  export { composeUnifiedThemeEditorData, splitUnifiedThemeEditorData, } from "./editor/unified-editor.js";
7
7
  export * from "./cms/index.js";
8
8
  export * from "./types.js";
9
9
  export { themeManifestSchema, parseThemeManifest, safeParseThemeManifest } from "./manifest.js";
10
10
  export * from "./registry.js";
11
11
  export * from "./registry/filesystem.js";
12
- export * from "./ai/slots.js";
13
12
  export * from "./agent.js";
13
+ export * from "./check.js";
14
14
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7F,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7F,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/server.js CHANGED
@@ -4,7 +4,7 @@ export { renderThemePage, ThemeRender } from "./render/render.js";
4
4
  export { getPageSlot, THEME_PAGE_SLOT } from "./render/slot.js";
5
5
  export { extractLayoutChrome } from "./render/chrome.js";
6
6
  export { resolveAsset } from "./components/metadata.js";
7
- export { createThemeAssetPath, resolveAssetPath, } from "./assets.js";
7
+ export { createThemeAssetPath, createThemeAssetResolver, resolveAssetPath, } from "./assets.js";
8
8
  export { composeUnifiedThemeEditorData, splitUnifiedThemeEditorData, } from "./editor/unified-editor.js";
9
9
  export * from "./cms/index.js";
10
10
  // Re-export contracts for convenience in server code.
@@ -12,6 +12,6 @@ export * from "./types.js";
12
12
  export { themeManifestSchema, parseThemeManifest, safeParseThemeManifest } from "./manifest.js";
13
13
  export * from "./registry.js";
14
14
  export * from "./registry/filesystem.js";
15
- export * from "./ai/slots.js";
16
15
  export * from "./agent.js";
16
+ export * from "./check.js";
17
17
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAyB,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAIjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7F,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAyB,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAA4B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,GAKjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC7F,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,8 +1,33 @@
1
1
  import type { ComponentConfig as PuckComponentConfig, Config, Data, DefaultComponentProps, DefaultComponents, Fields as PuckFields, RootConfig as PuckRootConfig } from "@puckeditor/core";
2
+ import type { ComponentAiParams } from "@puckeditor/plugin-ai";
2
3
  import type { ReactElement } from "react";
3
4
  import type { ThemeContentCapabilities } from "./cms/types.js";
4
5
  import type { ThemeRenderMetadata } from "./components/metadata.js";
5
6
  import type { SudaField, SudaFieldExtension } from "./fields/suda-fields.js";
7
+ /**
8
+ * Component-level AI configuration. We reuse Puck's `ComponentAiParams` shape
9
+ * verbatim so any field Puck adds in the future flows through unchanged — the
10
+ * only Suda-specific tightening is that `instructions` is **required**, not
11
+ * optional. Without it the page-generation agent has no way to tell what the
12
+ * component is for, so {@link SudaComponentConfig} mandates it.
13
+ *
14
+ * Authors should describe (at a minimum):
15
+ *
16
+ * - **Purpose** — the business or content role of the component.
17
+ * - **Use when / Avoid when** — page types and intents that select this
18
+ * component versus a similar one.
19
+ * - **Placement** — where in the page the component normally belongs.
20
+ * - **Frequency** — once per page, multiple times, or with adjacency limits.
21
+ * - **Composition** — required neighbouring or child content where relevant.
22
+ *
23
+ * Avoid restating the component label, describing visual styling that does
24
+ * not change semantics, or duplicating site-wide rules (brand voice, factual
25
+ * constraints) — those belong in the global AI context.
26
+ */
27
+ export type SudaComponentAi = Omit<ComponentAiParams, "instructions"> & {
28
+ /** Non-empty instructions used by the page-generation agent. Required. */
29
+ instructions: string;
30
+ };
6
31
  /**
7
32
  * Theme-facing alias for Puck's component config. Generic on the component's
8
33
  * prop shape so `fields` and `defaultProps` are strictly typed against the
@@ -10,12 +35,22 @@ import type { SudaField, SudaFieldExtension } from "./fields/suda-fields.js";
10
35
  *
11
36
  * We pass the props through Puck's `ComponentConfigParams` shape (`{ props }`)
12
37
  * so generic forwarding satisfies its `LeftOrExactRight` constraint.
38
+ *
39
+ * Suda contracts an `ai` field on every component (Puck's plugin-ai keeps it
40
+ * optional; we tighten it here so themes always describe their components for
41
+ * AI). Use {@link SudaComponentAi} to author the description.
13
42
  */
14
- export type SudaComponentConfig<Props extends DefaultComponentProps = DefaultComponentProps> = PuckComponentConfig<{
43
+ export type SudaComponentConfig<Props extends DefaultComponentProps = DefaultComponentProps> = Omit<PuckComponentConfig<{
15
44
  props: Props;
16
45
  fields: Record<string, SudaFieldExtension>;
17
- }>;
18
- /** Theme-facing alias for Puck's root config. */
46
+ }>, "ai"> & {
47
+ ai: SudaComponentAi;
48
+ };
49
+ /**
50
+ * Theme-facing alias for Puck's root config. The Suda layout root usually has
51
+ * no AI-generated content, so `ai` remains optional here (set
52
+ * `ai: { exclude: true }` to make the intent explicit when needed).
53
+ */
19
54
  export type SudaRootConfig<Props extends DefaultComponentProps = DefaultComponentProps> = PuckRootConfig<{
20
55
  props: Props;
21
56
  fields: Record<string, SudaFieldExtension>;
@@ -111,19 +146,6 @@ export interface ThemeStarterPage {
111
146
  isHome?: boolean;
112
147
  data: PageData;
113
148
  }
114
- /**
115
- * Declares a slot inside a theme's prop tree that the AI assistant is allowed
116
- * to read/write. Used to scope AI edits to safe, content-only fields.
117
- */
118
- export interface AiSlotDescriptor {
119
- /** Dot/bracket path into a component's props, e.g. "blocks[0].heading". */
120
- path: string;
121
- /** Human label shown to the assistant. */
122
- label: string;
123
- kind: "text" | "richtext" | "image" | "url" | "list";
124
- /** Optional guidance the assistant should respect. */
125
- hint?: string;
126
- }
127
149
  export interface ThemeRenderContext {
128
150
  theme: Pick<ThemeModule, "pageConfig" | "layoutConfig">;
129
151
  pageData: PageData;
@@ -161,8 +183,6 @@ export interface ThemeModule {
161
183
  starterPages: ThemeStarterPage[];
162
184
  /** Optional advanced renderer. Defaults to Puck Render. */
163
185
  rendering?: ThemeRenderingOptions;
164
- /** AI-editable slots, by component type. Optional. */
165
- aiSlots?: Record<string, AiSlotDescriptor[]>;
166
186
  /**
167
187
  * Optional declaration of structured CMS views the theme supports
168
188
  * (post.index/post.detail/tag.index/tag.detail) and their default routes.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudajs/theme-engine",
3
- "version": "0.2.1",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,33 +0,0 @@
1
- import type { AiSlotDescriptor, PageData } from "../types.js";
2
- /**
3
- * A concrete AI-editable slot located inside a page document, produced by
4
- * {@link extractAiSlots}. Identifies the component instance plus the prop path
5
- * and current value, so the assistant can propose edits scoped to safe fields.
6
- */
7
- export interface ResolvedAiSlot {
8
- /** Puck component instance id (`props.id`). */
9
- componentId: string;
10
- /** Puck component type. */
11
- type: string;
12
- descriptor: AiSlotDescriptor;
13
- value: unknown;
14
- }
15
- /** A single edit the assistant wants to apply. */
16
- export interface AiSlotEdit {
17
- componentId: string;
18
- path: string;
19
- value: unknown;
20
- }
21
- /**
22
- * Walks a page document and returns every AI-editable slot declared by the
23
- * theme's `aiSlots` map (keyed by component type).
24
- */
25
- export declare function extractAiSlots(data: PageData, aiSlots: Record<string, AiSlotDescriptor[]> | undefined): ResolvedAiSlot[];
26
- /**
27
- * Applies a batch of AI edits to a page document, scoped strictly to the
28
- * declared `aiSlots` for each component type. Edits targeting unknown
29
- * components or paths outside the allow-list are ignored. Returns a new
30
- * document; the input is not mutated.
31
- */
32
- export declare function applyAiValues(data: PageData, aiSlots: Record<string, AiSlotDescriptor[]> | undefined, edits: AiSlotEdit[]): PageData;
33
- //# sourceMappingURL=slots.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/ai/slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AA6FD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,GAAG,SAAS,GACtD,cAAc,EAAE,CAqBlB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,GAAG,SAAS,EACvD,KAAK,EAAE,UAAU,EAAE,GAClB,QAAQ,CAgCV"}