create-cogenta 0.2.0 → 0.4.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 (179) hide show
  1. package/dist/blueprint-defaults.d.ts.map +1 -1
  2. package/dist/blueprint-defaults.js +6 -0
  3. package/dist/blueprint-defaults.js.map +1 -1
  4. package/dist/blueprints/assets/photos/association/community-cleanup.jpg +0 -0
  5. package/dist/blueprints/assets/photos/association/fundraising-dinner.jpg +0 -0
  6. package/dist/blueprints/assets/photos/association/garden-planting.jpg +0 -0
  7. package/dist/blueprints/assets/photos/association/harvest-food-drive.jpg +0 -0
  8. package/dist/blueprints/assets/photos/association/hero.jpg +0 -0
  9. package/dist/blueprints/assets/photos/association/volunteer-orientation.jpg +0 -0
  10. package/dist/blueprints/assets/photos/association/winter-coat-collection.jpg +0 -0
  11. package/dist/blueprints/assets/photos/blog/blog-runs-itself.jpg +0 -0
  12. package/dist/blueprints/assets/photos/blog/desk-setup.jpg +0 -0
  13. package/dist/blueprints/assets/photos/blog/editing.jpg +0 -0
  14. package/dist/blueprints/assets/photos/blog/hero.jpg +0 -0
  15. package/dist/blueprints/assets/photos/blog/notebooks.jpg +0 -0
  16. package/dist/blueprints/assets/photos/blog/plain-text-editor.jpg +0 -0
  17. package/dist/blueprints/assets/photos/blog/reading-nonfiction.jpg +0 -0
  18. package/dist/blueprints/assets/photos/blog/small-tool.jpg +0 -0
  19. package/dist/blueprints/assets/photos/blog/writing-schedule.jpg +0 -0
  20. package/dist/blueprints/assets/photos/magazine/business-2.jpg +0 -0
  21. package/dist/blueprints/assets/photos/magazine/business-3.jpg +0 -0
  22. package/dist/blueprints/assets/photos/magazine/business.jpg +0 -0
  23. package/dist/blueprints/assets/photos/magazine/culture-2.jpg +0 -0
  24. package/dist/blueprints/assets/photos/magazine/culture-3.jpg +0 -0
  25. package/dist/blueprints/assets/photos/magazine/culture.jpg +0 -0
  26. package/dist/blueprints/assets/photos/magazine/news-2.jpg +0 -0
  27. package/dist/blueprints/assets/photos/magazine/news-3.jpg +0 -0
  28. package/dist/blueprints/assets/photos/magazine/news.jpg +0 -0
  29. package/dist/blueprints/assets/photos/magazine/opinion-2.jpg +0 -0
  30. package/dist/blueprints/assets/photos/magazine/opinion-3.jpg +0 -0
  31. package/dist/blueprints/assets/photos/magazine/opinion.jpg +0 -0
  32. package/dist/blueprints/assets/photos/portfolio/adatum-publishing.jpg +0 -0
  33. package/dist/blueprints/assets/photos/portfolio/contoso-mobile-app.jpg +0 -0
  34. package/dist/blueprints/assets/photos/portfolio/fabrikam-annual-report.jpg +0 -0
  35. package/dist/blueprints/assets/photos/portfolio/hero.jpg +0 -0
  36. package/dist/blueprints/assets/photos/portfolio/litware-signage.jpg +0 -0
  37. package/dist/blueprints/assets/photos/portfolio/northwind-rebrand.jpg +0 -0
  38. package/dist/blueprints/assets/photos/portfolio/proseware-launch.jpg +0 -0
  39. package/dist/blueprints/assets/photos/portfolio/tailspin-streaming.jpg +0 -0
  40. package/dist/blueprints/assets/photos/portfolio/wingtip-wayfinding.jpg +0 -0
  41. package/dist/blueprints/assets/photos/restaurant/charred-octopus.jpg +0 -0
  42. package/dist/blueprints/assets/photos/restaurant/chocolate-tart.jpg +0 -0
  43. package/dist/blueprints/assets/photos/restaurant/creme-brulee.jpg +0 -0
  44. package/dist/blueprints/assets/photos/restaurant/hero.jpg +0 -0
  45. package/dist/blueprints/assets/photos/restaurant/house-red.jpg +0 -0
  46. package/dist/blueprints/assets/photos/restaurant/house-white.jpg +0 -0
  47. package/dist/blueprints/assets/photos/restaurant/pan-seared-trout.jpg +0 -0
  48. package/dist/blueprints/assets/photos/restaurant/poached-pear.jpg +0 -0
  49. package/dist/blueprints/assets/photos/restaurant/roasted-beet-salad.jpg +0 -0
  50. package/dist/blueprints/assets/photos/restaurant/slow-roast-duck-leg.jpg +0 -0
  51. package/dist/blueprints/assets/photos/restaurant/soup-of-the-day.jpg +0 -0
  52. package/dist/blueprints/assets/photos/restaurant/sparkling-water.jpg +0 -0
  53. package/dist/blueprints/assets/photos/restaurant/wild-mushroom-risotto.jpg +0 -0
  54. package/dist/blueprints/assets/photos/saas/avatar-1.jpg +0 -0
  55. package/dist/blueprints/assets/photos/saas/hero.jpg +0 -0
  56. package/dist/blueprints/assets/photos/store/camp-blanket.jpg +0 -0
  57. package/dist/blueprints/assets/photos/store/canvas-tote.jpg +0 -0
  58. package/dist/blueprints/assets/photos/store/cast-iron-skillet.jpg +0 -0
  59. package/dist/blueprints/assets/photos/store/ceramic-pour-over-set.jpg +0 -0
  60. package/dist/blueprints/assets/photos/store/enamel-mug.jpg +0 -0
  61. package/dist/blueprints/assets/photos/store/everyday-tee.jpg +0 -0
  62. package/dist/blueprints/assets/photos/store/field-jacket.jpg +0 -0
  63. package/dist/blueprints/assets/photos/store/hero.jpg +0 -0
  64. package/dist/blueprints/assets/photos/store/leather-card-holder.jpg +0 -0
  65. package/dist/blueprints/assets/photos/store/linen-table-runner.jpg +0 -0
  66. package/dist/blueprints/assets/photos/store/trail-tote.jpg +0 -0
  67. package/dist/blueprints/assets/photos/store/wool-beanie.jpg +0 -0
  68. package/dist/blueprints/assets/photos/store/wool-overshirt.jpg +0 -0
  69. package/dist/blueprints/assets/photos/vitrine/avatar-1.jpg +0 -0
  70. package/dist/blueprints/assets/photos/vitrine/avatar-2.jpg +0 -0
  71. package/dist/blueprints/assets/photos/vitrine/avatar-3.jpg +0 -0
  72. package/dist/blueprints/assets/photos/vitrine/dashboard.jpg +0 -0
  73. package/dist/blueprints/assets/photos/vitrine/hero.jpg +0 -0
  74. package/dist/blueprints/association.d.ts +93 -15
  75. package/dist/blueprints/association.d.ts.map +1 -1
  76. package/dist/blueprints/association.js +637 -130
  77. package/dist/blueprints/association.js.map +1 -1
  78. package/dist/blueprints/blog.d.ts +81 -94
  79. package/dist/blueprints/blog.d.ts.map +1 -1
  80. package/dist/blueprints/blog.js +513 -177
  81. package/dist/blueprints/blog.js.map +1 -1
  82. package/dist/blueprints/content-pack.d.ts +83 -2
  83. package/dist/blueprints/content-pack.d.ts.map +1 -1
  84. package/dist/blueprints/content-pack.js +54 -1
  85. package/dist/blueprints/content-pack.js.map +1 -1
  86. package/dist/blueprints/content-packs.d.ts +4 -3
  87. package/dist/blueprints/content-packs.d.ts.map +1 -1
  88. package/dist/blueprints/content-packs.js +6 -3
  89. package/dist/blueprints/content-packs.js.map +1 -1
  90. package/dist/blueprints/demo-media.d.ts +39 -0
  91. package/dist/blueprints/demo-media.d.ts.map +1 -0
  92. package/dist/blueprints/demo-media.js +30 -0
  93. package/dist/blueprints/demo-media.js.map +1 -0
  94. package/dist/blueprints/documentation.d.ts +78 -15
  95. package/dist/blueprints/documentation.d.ts.map +1 -1
  96. package/dist/blueprints/documentation.js +585 -104
  97. package/dist/blueprints/documentation.js.map +1 -1
  98. package/dist/blueprints/magazine.d.ts +81 -15
  99. package/dist/blueprints/magazine.d.ts.map +1 -1
  100. package/dist/blueprints/magazine.js +431 -85
  101. package/dist/blueprints/magazine.js.map +1 -1
  102. package/dist/blueprints/menus.d.ts +25 -0
  103. package/dist/blueprints/menus.d.ts.map +1 -0
  104. package/dist/blueprints/menus.js +33 -0
  105. package/dist/blueprints/menus.js.map +1 -0
  106. package/dist/blueprints/photo-assets.d.ts +3 -0
  107. package/dist/blueprints/photo-assets.d.ts.map +1 -0
  108. package/dist/blueprints/photo-assets.js +33 -0
  109. package/dist/blueprints/photo-assets.js.map +1 -0
  110. package/dist/blueprints/portfolio.d.ts +81 -13
  111. package/dist/blueprints/portfolio.d.ts.map +1 -1
  112. package/dist/blueprints/portfolio.js +605 -102
  113. package/dist/blueprints/portfolio.js.map +1 -1
  114. package/dist/blueprints/registry.d.ts +3 -1
  115. package/dist/blueprints/registry.d.ts.map +1 -1
  116. package/dist/blueprints/registry.js +4 -1
  117. package/dist/blueprints/registry.js.map +1 -1
  118. package/dist/blueprints/restaurant.d.ts +65 -20
  119. package/dist/blueprints/restaurant.d.ts.map +1 -1
  120. package/dist/blueprints/restaurant.js +350 -117
  121. package/dist/blueprints/restaurant.js.map +1 -1
  122. package/dist/blueprints/saas.d.ts +81 -14
  123. package/dist/blueprints/saas.d.ts.map +1 -1
  124. package/dist/blueprints/saas.js +469 -132
  125. package/dist/blueprints/saas.js.map +1 -1
  126. package/dist/blueprints/site-settings-seed.d.ts +17 -0
  127. package/dist/blueprints/site-settings-seed.d.ts.map +1 -0
  128. package/dist/blueprints/site-settings-seed.js +45 -0
  129. package/dist/blueprints/site-settings-seed.js.map +1 -0
  130. package/dist/blueprints/starting-skins.d.ts +19 -0
  131. package/dist/blueprints/starting-skins.d.ts.map +1 -0
  132. package/dist/blueprints/starting-skins.js +301 -0
  133. package/dist/blueprints/starting-skins.js.map +1 -0
  134. package/dist/blueprints/store.d.ts +173 -0
  135. package/dist/blueprints/store.d.ts.map +1 -0
  136. package/dist/blueprints/store.js +643 -0
  137. package/dist/blueprints/store.js.map +1 -0
  138. package/dist/blueprints/vitrine.d.ts +94 -16
  139. package/dist/blueprints/vitrine.d.ts.map +1 -1
  140. package/dist/blueprints/vitrine.js +421 -142
  141. package/dist/blueprints/vitrine.js.map +1 -1
  142. package/dist/demo-art/compositions.d.ts +48 -0
  143. package/dist/demo-art/compositions.d.ts.map +1 -0
  144. package/dist/demo-art/compositions.js +690 -0
  145. package/dist/demo-art/compositions.js.map +1 -0
  146. package/dist/demo-art/index.d.ts +8 -0
  147. package/dist/demo-art/index.d.ts.map +1 -0
  148. package/dist/demo-art/index.js +5 -0
  149. package/dist/demo-art/index.js.map +1 -0
  150. package/dist/demo-art/oklch.d.ts +39 -0
  151. package/dist/demo-art/oklch.d.ts.map +1 -0
  152. package/dist/demo-art/oklch.js +79 -0
  153. package/dist/demo-art/oklch.js.map +1 -0
  154. package/dist/demo-art/png.d.ts +24 -0
  155. package/dist/demo-art/png.d.ts.map +1 -0
  156. package/dist/demo-art/png.js +110 -0
  157. package/dist/demo-art/png.js.map +1 -0
  158. package/dist/demo-art/render.d.ts +228 -0
  159. package/dist/demo-art/render.d.ts.map +1 -0
  160. package/dist/demo-art/render.js +478 -0
  161. package/dist/demo-art/render.js.map +1 -0
  162. package/dist/playground-reset.d.ts.map +1 -1
  163. package/dist/playground-reset.js +22 -4
  164. package/dist/playground-reset.js.map +1 -1
  165. package/dist/prompts.d.ts +12 -0
  166. package/dist/prompts.d.ts.map +1 -1
  167. package/dist/prompts.js +32 -0
  168. package/dist/prompts.js.map +1 -1
  169. package/dist/recap.d.ts.map +1 -1
  170. package/dist/recap.js +6 -0
  171. package/dist/recap.js.map +1 -1
  172. package/dist/scaffold.d.ts +22 -2
  173. package/dist/scaffold.d.ts.map +1 -1
  174. package/dist/scaffold.js +185 -23
  175. package/dist/scaffold.js.map +1 -1
  176. package/dist/wizard.d.ts.map +1 -1
  177. package/dist/wizard.js +4 -1
  178. package/dist/wizard.js.map +1 -1
  179. package/package.json +14 -11
@@ -1,15 +1,22 @@
1
1
  import type { VocabularyBlock } from '@cogenta/blocks';
2
2
  import { type CollectionDefinition } from '@cogenta/schema';
3
3
  import { type BlueprintContentPack, type RecommendedAgentHint } from './content-pack.js';
4
+ import type { DemoMediaSpec } from './demo-media.js';
5
+ import type { BlueprintMenus } from './menus.js';
4
6
  /**
5
- * The `saas` blueprint's content model (L9 task 8, batch B): a marketing
7
+ * The `saas` blueprint's content model (L25, "templates pro"): a marketing
6
8
  * site for a software product — a `feature` collection routed so it can be
7
- * listed live on the home page, exactly like `vitrine`'s `service`.
8
- * Deliberately no `pricingPlan` collection or billing model: pricing tiers
9
- * on a real SaaS site are usually a handful of numbers with no independent
10
- * lifecycle (no author, no publish date, no individual page), so they are
11
- * page-authored content on the `pricing` page below rather than a second
12
- * collection invented to hold three rows.
9
+ * listed live and linked to from the home page, exactly like `vitrine`'s
10
+ * `service`. Deliberately no `pricingPlan` collection or billing model:
11
+ * pricing tiers on a real SaaS site are usually a handful of numbers with no
12
+ * independent lifecycle (no author, no publish date, no individual page), so
13
+ * they are page-authored content on the `pricing` page below rather than a
14
+ * second collection invented to hold three rows.
15
+ *
16
+ * `icon` (a symbol name `@cogenta/theme-kit`'s `renderIcon` recognises) and
17
+ * `coverImage` (contract D `theme@1.4`'s `entryImage`) are what let
18
+ * `theme-saas`'s `collectionList` show a feature the same way its
19
+ * `featureGrid` does — an icon chip first, a photo only as the fallback.
13
20
  */
14
21
  export declare const feature: {
15
22
  readonly name: "feature";
@@ -21,18 +28,48 @@ export declare const feature: {
21
28
  readonly pattern: "/features/:slug";
22
29
  };
23
30
  readonly fields: {
24
- name: import("@cogenta/schema").FieldDefinition & {
31
+ readonly seoTitle: import("@cogenta/schema").FieldDefinition & {
25
32
  readonly kind: "text";
26
33
  readonly options: Readonly<Record<string, unknown>>;
27
34
  };
28
- slug: import("@cogenta/schema").FieldDefinition & {
35
+ readonly seoDescription: import("@cogenta/schema").FieldDefinition & {
36
+ readonly kind: "text";
37
+ readonly options: Readonly<Record<string, unknown>>;
38
+ };
39
+ readonly seoImage: import("@cogenta/schema").FieldDefinition & {
40
+ readonly kind: "media";
41
+ readonly options: {
42
+ accept: readonly ("audio" | "file" | "image" | "video")[];
43
+ many: boolean;
44
+ };
45
+ };
46
+ readonly seoNoindex: import("@cogenta/schema").FieldDefinition & {
47
+ readonly kind: "boolean";
48
+ readonly options: {};
49
+ };
50
+ readonly name: import("@cogenta/schema").FieldDefinition & {
51
+ readonly kind: "text";
52
+ readonly options: Readonly<Record<string, unknown>>;
53
+ };
54
+ readonly slug: import("@cogenta/schema").FieldDefinition & {
29
55
  readonly kind: "slug";
30
56
  readonly options: Readonly<Record<string, unknown>>;
31
57
  };
32
- description: import("@cogenta/schema").FieldDefinition & {
58
+ readonly description: import("@cogenta/schema").FieldDefinition & {
33
59
  readonly kind: "text";
34
60
  readonly options: Readonly<Record<string, unknown>>;
35
61
  };
62
+ readonly icon: import("@cogenta/schema").FieldDefinition & {
63
+ readonly kind: "text";
64
+ readonly options: Readonly<Record<string, unknown>>;
65
+ };
66
+ readonly coverImage: import("@cogenta/schema").FieldDefinition & {
67
+ readonly kind: "media";
68
+ readonly options: {
69
+ accept: readonly ("audio" | "file" | "image" | "video")[];
70
+ many: boolean;
71
+ };
72
+ };
36
73
  };
37
74
  readonly indexes: readonly [readonly ["slug"]];
38
75
  readonly permissions: {
@@ -48,7 +85,14 @@ export interface SaasDemoFeature {
48
85
  readonly name: string;
49
86
  readonly slug: string;
50
87
  readonly description: string;
88
+ readonly icon: string;
51
89
  }
90
+ /**
91
+ * Six real product capabilities, each with the icon `featureGrid` (home
92
+ * page) and this same entry's own `icon` field both point at — a
93
+ * `collectionList` of `feature` and the home page's `featureGrid` read as
94
+ * one system rather than two unrelated sections.
95
+ */
52
96
  export declare const SAAS_DEMO_FEATURES: readonly SaasDemoFeature[];
53
97
  export interface SaasDemoPage {
54
98
  readonly title: string;
@@ -56,11 +100,34 @@ export interface SaasDemoPage {
56
100
  readonly blocks: readonly VocabularyBlock[];
57
101
  }
58
102
  /**
59
- * `home` (hero + a live list of features + a cta to sign up) and `pricing`
60
- * (a short prose intro plus a static `stats` row the page-authored
61
- * numbers a pricing page usually leads with, not a full billing model).
103
+ * `home` (ten blocks, the Linear/Stripe/Vercel composition the L25 brief
104
+ * asks for: hero trust strip features product shot → numbers →
105
+ * social proof pricing questions final call to action), `pricing`
106
+ * (its own hero, the same pricing table, and a billing-specific FAQ), and
107
+ * `about` (a short mission statement plus a second, distinct voice of
108
+ * social proof).
109
+ *
110
+ * A function of `media`/`featureIds` (`SeedContext.media`, and the ids
111
+ * `seedSaasDemoContent` assigns its own features before this runs), not a
112
+ * static const: the hero's `media`, the product shot, the trust strip's
113
+ * logos and both testimonials' avatars all need ids only the scaffold
114
+ * knows at seed time, and the feature grid links to each feature's own
115
+ * real page.
62
116
  */
63
- export declare const SAAS_DEMO_PAGES: readonly SaasDemoPage[];
117
+ export declare function buildSaasDemoPages(media: Readonly<Record<string, string>>, featureIdBySlug: ReadonlyMap<string, string>): readonly SaasDemoPage[];
64
118
  export declare const SAAS_RECOMMENDED_AGENTS: readonly RecommendedAgentHint[];
119
+ /**
120
+ * Procedural visuals this blueprint seeds (L25): a mesh-gradient hero
121
+ * backdrop, a wide product screenshot stand-in, six neutral client logos
122
+ * for the trust strip, one avatar per testimonial (L26: the "about" page's
123
+ * testimonial went unillustrated before this — a second, distinct avatar
124
+ * fixes that rather than reusing the home page's), and one cover photo per
125
+ * demo feature — all from the same starting-skin palette
126
+ * (`starting-skins.js`) this blueprint already ships.
127
+ */
128
+ export declare const SAAS_MEDIA_SPECS: readonly DemoMediaSpec[];
129
+ /** Header/footer navigation and the header call-to-action button (L25, D4). */
130
+ export declare const SAAS_MENUS: BlueprintMenus;
131
+ export declare const SAAS_SITE_SETTINGS: Readonly<Record<string, unknown>>;
65
132
  export declare const saasContentPack: BlueprintContentPack;
66
133
  //# sourceMappingURL=saas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"saas.d.ts","sourceRoot":"","sources":["../../src/blueprints/saas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACL,KAAK,oBAAoB,EAK1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAG1B,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;;;GASG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;QAKhB,IAAI;;;;QACJ,IAAI;;;;QACJ,WAAW;;;;;;;;;;;;CASb,CAAA;AAEF,eAAO,MAAM,IAAI,sBAAiC,CAAA;AAElD,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,EAAoB,CAAA;AAIhF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAgBxD,CAAA;AAqBD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAC5C;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAkHlD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAWlE,CAAA;AAgCD,eAAO,MAAM,eAAe,EAAE,oBAI7B,CAAA"}
1
+ {"version":3,"file":"saas.d.ts","sourceRoot":"","sources":["../../src/blueprints/saas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACL,KAAK,oBAAoB,EAK1B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAK1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAA;AAEF,eAAO,MAAM,IAAI,sBAAiC,CAAA;AAElD,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,EAAoB,CAAA;AAIhF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EA2CxD,CAAA;AAyBD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,SAAS,YAAY,EAAE,CA6NzB;AAmFD,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAWlE,CAAA;AAsBD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAyCpD,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,cAcxB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQhE,CAAA;AAwCD,eAAO,MAAM,eAAe,EAAE,oBAQ7B,CAAA"}