create-cogenta 0.5.3 → 0.7.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 (178) hide show
  1. package/dist/blueprint-defaults.js +1 -1
  2. package/dist/blueprint-defaults.js.map +1 -1
  3. package/dist/blueprints/registry.d.ts +13 -1
  4. package/dist/blueprints/registry.d.ts.map +1 -1
  5. package/dist/blueprints/registry.js +23 -5
  6. package/dist/blueprints/registry.js.map +1 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/playground-reset.js +2 -2
  12. package/dist/playground-reset.js.map +1 -1
  13. package/dist/recap.js +1 -1
  14. package/dist/recap.js.map +1 -1
  15. package/dist/scaffold.d.ts +5 -3
  16. package/dist/scaffold.d.ts.map +1 -1
  17. package/dist/scaffold.js +20 -13
  18. package/dist/scaffold.js.map +1 -1
  19. package/dist/types.d.ts.map +1 -1
  20. package/dist/types.js +2 -1
  21. package/dist/types.js.map +1 -1
  22. package/dist/wizard.js +1 -1
  23. package/dist/wizard.js.map +1 -1
  24. package/package.json +14 -13
  25. package/dist/blueprints/assets/photos/association/community-cleanup.jpg +0 -0
  26. package/dist/blueprints/assets/photos/association/fundraising-dinner.jpg +0 -0
  27. package/dist/blueprints/assets/photos/association/garden-planting.jpg +0 -0
  28. package/dist/blueprints/assets/photos/association/harvest-food-drive.jpg +0 -0
  29. package/dist/blueprints/assets/photos/association/hero.jpg +0 -0
  30. package/dist/blueprints/assets/photos/association/volunteer-orientation.jpg +0 -0
  31. package/dist/blueprints/assets/photos/association/winter-coat-collection.jpg +0 -0
  32. package/dist/blueprints/assets/photos/blog/blog-runs-itself.jpg +0 -0
  33. package/dist/blueprints/assets/photos/blog/desk-setup.jpg +0 -0
  34. package/dist/blueprints/assets/photos/blog/editing.jpg +0 -0
  35. package/dist/blueprints/assets/photos/blog/hero.jpg +0 -0
  36. package/dist/blueprints/assets/photos/blog/notebooks.jpg +0 -0
  37. package/dist/blueprints/assets/photos/blog/plain-text-editor.jpg +0 -0
  38. package/dist/blueprints/assets/photos/blog/reading-nonfiction.jpg +0 -0
  39. package/dist/blueprints/assets/photos/blog/small-tool.jpg +0 -0
  40. package/dist/blueprints/assets/photos/blog/writing-schedule.jpg +0 -0
  41. package/dist/blueprints/assets/photos/magazine/business-2.jpg +0 -0
  42. package/dist/blueprints/assets/photos/magazine/business-3.jpg +0 -0
  43. package/dist/blueprints/assets/photos/magazine/business.jpg +0 -0
  44. package/dist/blueprints/assets/photos/magazine/culture-2.jpg +0 -0
  45. package/dist/blueprints/assets/photos/magazine/culture-3.jpg +0 -0
  46. package/dist/blueprints/assets/photos/magazine/culture.jpg +0 -0
  47. package/dist/blueprints/assets/photos/magazine/news-2.jpg +0 -0
  48. package/dist/blueprints/assets/photos/magazine/news-3.jpg +0 -0
  49. package/dist/blueprints/assets/photos/magazine/news.jpg +0 -0
  50. package/dist/blueprints/assets/photos/magazine/opinion-2.jpg +0 -0
  51. package/dist/blueprints/assets/photos/magazine/opinion-3.jpg +0 -0
  52. package/dist/blueprints/assets/photos/magazine/opinion.jpg +0 -0
  53. package/dist/blueprints/assets/photos/portfolio/adatum-publishing.jpg +0 -0
  54. package/dist/blueprints/assets/photos/portfolio/contoso-mobile-app.jpg +0 -0
  55. package/dist/blueprints/assets/photos/portfolio/fabrikam-annual-report.jpg +0 -0
  56. package/dist/blueprints/assets/photos/portfolio/hero.jpg +0 -0
  57. package/dist/blueprints/assets/photos/portfolio/litware-signage.jpg +0 -0
  58. package/dist/blueprints/assets/photos/portfolio/northwind-rebrand.jpg +0 -0
  59. package/dist/blueprints/assets/photos/portfolio/proseware-launch.jpg +0 -0
  60. package/dist/blueprints/assets/photos/portfolio/tailspin-streaming.jpg +0 -0
  61. package/dist/blueprints/assets/photos/portfolio/wingtip-wayfinding.jpg +0 -0
  62. package/dist/blueprints/assets/photos/restaurant/charred-octopus.jpg +0 -0
  63. package/dist/blueprints/assets/photos/restaurant/chocolate-tart.jpg +0 -0
  64. package/dist/blueprints/assets/photos/restaurant/creme-brulee.jpg +0 -0
  65. package/dist/blueprints/assets/photos/restaurant/hero.jpg +0 -0
  66. package/dist/blueprints/assets/photos/restaurant/house-red.jpg +0 -0
  67. package/dist/blueprints/assets/photos/restaurant/house-white.jpg +0 -0
  68. package/dist/blueprints/assets/photos/restaurant/pan-seared-trout.jpg +0 -0
  69. package/dist/blueprints/assets/photos/restaurant/poached-pear.jpg +0 -0
  70. package/dist/blueprints/assets/photos/restaurant/roasted-beet-salad.jpg +0 -0
  71. package/dist/blueprints/assets/photos/restaurant/slow-roast-duck-leg.jpg +0 -0
  72. package/dist/blueprints/assets/photos/restaurant/soup-of-the-day.jpg +0 -0
  73. package/dist/blueprints/assets/photos/restaurant/sparkling-water.jpg +0 -0
  74. package/dist/blueprints/assets/photos/restaurant/wild-mushroom-risotto.jpg +0 -0
  75. package/dist/blueprints/assets/photos/saas/avatar-1.jpg +0 -0
  76. package/dist/blueprints/assets/photos/saas/hero.jpg +0 -0
  77. package/dist/blueprints/assets/photos/store/camp-blanket.jpg +0 -0
  78. package/dist/blueprints/assets/photos/store/canvas-tote.jpg +0 -0
  79. package/dist/blueprints/assets/photos/store/cast-iron-skillet.jpg +0 -0
  80. package/dist/blueprints/assets/photos/store/ceramic-pour-over-set.jpg +0 -0
  81. package/dist/blueprints/assets/photos/store/enamel-mug.jpg +0 -0
  82. package/dist/blueprints/assets/photos/store/everyday-tee.jpg +0 -0
  83. package/dist/blueprints/assets/photos/store/field-jacket.jpg +0 -0
  84. package/dist/blueprints/assets/photos/store/hero.jpg +0 -0
  85. package/dist/blueprints/assets/photos/store/leather-card-holder.jpg +0 -0
  86. package/dist/blueprints/assets/photos/store/linen-table-runner.jpg +0 -0
  87. package/dist/blueprints/assets/photos/store/trail-tote.jpg +0 -0
  88. package/dist/blueprints/assets/photos/store/wool-beanie.jpg +0 -0
  89. package/dist/blueprints/assets/photos/store/wool-overshirt.jpg +0 -0
  90. package/dist/blueprints/assets/photos/vitrine/avatar-1.jpg +0 -0
  91. package/dist/blueprints/assets/photos/vitrine/avatar-2.jpg +0 -0
  92. package/dist/blueprints/assets/photos/vitrine/avatar-3.jpg +0 -0
  93. package/dist/blueprints/assets/photos/vitrine/dashboard.jpg +0 -0
  94. package/dist/blueprints/assets/photos/vitrine/hero.jpg +0 -0
  95. package/dist/blueprints/association.d.ts +0 -151
  96. package/dist/blueprints/association.d.ts.map +0 -1
  97. package/dist/blueprints/association.js +0 -732
  98. package/dist/blueprints/association.js.map +0 -1
  99. package/dist/blueprints/blog.d.ts +0 -198
  100. package/dist/blueprints/blog.d.ts.map +0 -1
  101. package/dist/blueprints/blog.js +0 -665
  102. package/dist/blueprints/blog.js.map +0 -1
  103. package/dist/blueprints/content-pack.d.ts +0 -143
  104. package/dist/blueprints/content-pack.d.ts.map +0 -1
  105. package/dist/blueprints/content-pack.js +0 -111
  106. package/dist/blueprints/content-pack.js.map +0 -1
  107. package/dist/blueprints/content-packs.d.ts +0 -11
  108. package/dist/blueprints/content-packs.d.ts.map +0 -1
  109. package/dist/blueprints/content-packs.js +0 -29
  110. package/dist/blueprints/content-packs.js.map +0 -1
  111. package/dist/blueprints/demo-media.d.ts +0 -39
  112. package/dist/blueprints/demo-media.d.ts.map +0 -1
  113. package/dist/blueprints/demo-media.js +0 -30
  114. package/dist/blueprints/demo-media.js.map +0 -1
  115. package/dist/blueprints/documentation.d.ts +0 -134
  116. package/dist/blueprints/documentation.d.ts.map +0 -1
  117. package/dist/blueprints/documentation.js +0 -678
  118. package/dist/blueprints/documentation.js.map +0 -1
  119. package/dist/blueprints/magazine.d.ts +0 -145
  120. package/dist/blueprints/magazine.d.ts.map +0 -1
  121. package/dist/blueprints/magazine.js +0 -543
  122. package/dist/blueprints/magazine.js.map +0 -1
  123. package/dist/blueprints/menus.d.ts +0 -25
  124. package/dist/blueprints/menus.d.ts.map +0 -1
  125. package/dist/blueprints/menus.js +0 -33
  126. package/dist/blueprints/menus.js.map +0 -1
  127. package/dist/blueprints/photo-assets.d.ts +0 -3
  128. package/dist/blueprints/photo-assets.d.ts.map +0 -1
  129. package/dist/blueprints/photo-assets.js +0 -33
  130. package/dist/blueprints/photo-assets.js.map +0 -1
  131. package/dist/blueprints/portfolio.d.ts +0 -141
  132. package/dist/blueprints/portfolio.d.ts.map +0 -1
  133. package/dist/blueprints/portfolio.js +0 -700
  134. package/dist/blueprints/portfolio.js.map +0 -1
  135. package/dist/blueprints/restaurant.d.ts +0 -124
  136. package/dist/blueprints/restaurant.d.ts.map +0 -1
  137. package/dist/blueprints/restaurant.js +0 -457
  138. package/dist/blueprints/restaurant.js.map +0 -1
  139. package/dist/blueprints/saas.d.ts +0 -133
  140. package/dist/blueprints/saas.d.ts.map +0 -1
  141. package/dist/blueprints/saas.js +0 -551
  142. package/dist/blueprints/saas.js.map +0 -1
  143. package/dist/blueprints/site-settings-seed.d.ts +0 -17
  144. package/dist/blueprints/site-settings-seed.d.ts.map +0 -1
  145. package/dist/blueprints/site-settings-seed.js +0 -45
  146. package/dist/blueprints/site-settings-seed.js.map +0 -1
  147. package/dist/blueprints/starting-skins.d.ts +0 -19
  148. package/dist/blueprints/starting-skins.d.ts.map +0 -1
  149. package/dist/blueprints/starting-skins.js +0 -301
  150. package/dist/blueprints/starting-skins.js.map +0 -1
  151. package/dist/blueprints/store.d.ts +0 -173
  152. package/dist/blueprints/store.d.ts.map +0 -1
  153. package/dist/blueprints/store.js +0 -643
  154. package/dist/blueprints/store.js.map +0 -1
  155. package/dist/blueprints/vitrine.d.ts +0 -178
  156. package/dist/blueprints/vitrine.d.ts.map +0 -1
  157. package/dist/blueprints/vitrine.js +0 -529
  158. package/dist/blueprints/vitrine.js.map +0 -1
  159. package/dist/demo-art/compositions.d.ts +0 -48
  160. package/dist/demo-art/compositions.d.ts.map +0 -1
  161. package/dist/demo-art/compositions.js +0 -690
  162. package/dist/demo-art/compositions.js.map +0 -1
  163. package/dist/demo-art/index.d.ts +0 -8
  164. package/dist/demo-art/index.d.ts.map +0 -1
  165. package/dist/demo-art/index.js +0 -5
  166. package/dist/demo-art/index.js.map +0 -1
  167. package/dist/demo-art/oklch.d.ts +0 -39
  168. package/dist/demo-art/oklch.d.ts.map +0 -1
  169. package/dist/demo-art/oklch.js +0 -79
  170. package/dist/demo-art/oklch.js.map +0 -1
  171. package/dist/demo-art/png.d.ts +0 -24
  172. package/dist/demo-art/png.d.ts.map +0 -1
  173. package/dist/demo-art/png.js +0 -110
  174. package/dist/demo-art/png.js.map +0 -1
  175. package/dist/demo-art/render.d.ts +0 -228
  176. package/dist/demo-art/render.d.ts.map +0 -1
  177. package/dist/demo-art/render.js +0 -478
  178. package/dist/demo-art/render.js.map +0 -1
@@ -1,33 +0,0 @@
1
- import { createMenuStore, ensureMenuTables } from '@cogenta/schema';
2
- const HEADER_LOCATION = 'primary';
3
- const FOOTER_LOCATION = 'footer';
4
- const HEADER_ACTION_LOCATION = 'header-action';
5
- async function seedOneMenu(store, name, locale, location, items) {
6
- if (items.length === 0)
7
- return 0;
8
- const menu = await store.create({ name, locale, label: name, location });
9
- for (const item of items) {
10
- await store.createItem(menu.id, {
11
- label: item.label,
12
- kind: item.url === undefined ? 'home' : 'url',
13
- ...(item.url === undefined ? {} : { url: item.url }),
14
- ...(item.openInNewTab === undefined ? {} : { openInNewTab: item.openInNewTab }),
15
- });
16
- }
17
- return items.length;
18
- }
19
- /** Seeds a blueprint's header/footer/header-action menus, one call, real `MenuStore`. Returns the total number of items seeded. */
20
- export async function seedBlueprintMenus(db, defaultLocale, menus) {
21
- await ensureMenuTables(db);
22
- const store = createMenuStore({ db });
23
- let seeded = 0;
24
- seeded += await seedOneMenu(store, 'header', defaultLocale, HEADER_LOCATION, menus.header);
25
- seeded += await seedOneMenu(store, 'footer', defaultLocale, FOOTER_LOCATION, menus.footer);
26
- if (menus.headerAction !== undefined) {
27
- seeded += await seedOneMenu(store, 'header-action', defaultLocale, HEADER_ACTION_LOCATION, [
28
- menus.headerAction,
29
- ]);
30
- }
31
- return seeded;
32
- }
33
- //# sourceMappingURL=menus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../src/blueprints/menus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AA0BnE,MAAM,eAAe,GAAG,SAAS,CAAA;AACjC,MAAM,eAAe,GAAG,QAAQ,CAAA;AAChC,MAAM,sBAAsB,GAAG,eAAe,CAAA;AAE9C,KAAK,UAAU,WAAW,CACxB,KAAyC,EACzC,IAAY,EACZ,MAAc,EACd,QAAgB,EAChB,KAA8B;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC7C,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;SAChF,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAA;AACrB,CAAC;AAED,mIAAmI;AACnI,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAkB,EAClB,aAAqB,EACrB,KAAqB;IAErB,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,IAAI,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1F,MAAM,IAAI,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1F,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,MAAM,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,sBAAsB,EAAE;YACzF,KAAK,CAAC,YAAY;SACnB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,3 +0,0 @@
1
- /** `relativePath` like `'restaurant/hero.jpg'`. `undefined` when no such file was bundled — never throws. */
2
- export declare function loadPhotoAsset(relativePath: string): Uint8Array | undefined;
3
- //# sourceMappingURL=photo-assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"photo-assets.d.ts","sourceRoot":"","sources":["../../src/blueprints/photo-assets.ts"],"names":[],"mappings":"AA2BA,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAI3E"}
@@ -1,33 +0,0 @@
1
- import { existsSync, readFileSync } from 'node:fs';
2
- import { fileURLToPath } from 'node:url';
3
- /**
4
- * Real, pre-generated photography bundled with this package (L25, product
5
- * owner direct request: the procedural `demo-art` compositions read as
6
- * "typiquement le style cent pour cent IA" — abstract shapes standing in
7
- * for a dish, a product, a person — and a template needs concrete imagery
8
- * to look genuinely professional).
9
- *
10
- * Generated **once**, offline, with a user-supplied Replicate API key that
11
- * no longer exists by the time anyone reads this — the images themselves
12
- * are committed here as ordinary binary assets, exactly like
13
- * `docs/logo/*.png`. Nothing in this package, or in a site it scaffolds,
14
- * ever calls out to Replicate or needs a key: R1/R2/R9 are untouched,
15
- * because the *generation* was a one-time authoring step, not a runtime
16
- * dependency, the same distinction as a designer hand-picking stock photos
17
- * for a theme's demo content.
18
- *
19
- * `seedDemoMedia` prefers a photo asset over the matching `ArtSpec` when
20
- * one exists for a given `DemoMediaSpec.photo` key, and falls back to the
21
- * procedural composition otherwise — so a blueprint never *requires* a
22
- * photo to exist (a future trim of `assets/`, or a blueprint slot no photo
23
- * was ever generated for, still renders something, never a broken image).
24
- */
25
- const ASSETS_ROOT = new URL('./assets/photos/', import.meta.url);
26
- /** `relativePath` like `'restaurant/hero.jpg'`. `undefined` when no such file was bundled — never throws. */
27
- export function loadPhotoAsset(relativePath) {
28
- const path = fileURLToPath(new URL(relativePath, ASSETS_ROOT));
29
- if (!existsSync(path))
30
- return undefined;
31
- return readFileSync(path);
32
- }
33
- //# sourceMappingURL=photo-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"photo-assets.js","sourceRoot":"","sources":["../../src/blueprints/photo-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhE,6GAA6G;AAC7G,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IAC9D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC"}
@@ -1,141 +0,0 @@
1
- import type { VocabularyBlock } from '@cogenta/blocks';
2
- import { type CollectionDefinition } from '@cogenta/schema';
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';
6
- /**
7
- * The `portfolio` blueprint (L25 Annexe brief, `theme-portfolio` pro pass):
8
- * a `project` collection — cover image, `role`/`year` as plain structured
9
- * fields (a `collectionList` grid card and a project's own page both read
10
- * them straight off the entry, `@cogenta/theme-portfolio`'s own doing, not
11
- * this blueprint's) — plus a genuinely rich single-page home the theme
12
- * renders as full-bleed project cards, a services grid with real icons, a
13
- * client logo strip and a two-part client voice (`quote` then
14
- * `testimonial`).
15
- *
16
- * Rewritten in full for the L25 pro pass (its L9/L23 predecessor seeded
17
- * three home blocks, three projects, no visuals and no menus at all):
18
- * eight projects with distinct cover compositions, a nine-block home, an
19
- * about page, a contact page, a legal page, real header/footer/header-
20
- * action navigation, and `@cogenta/theme-portfolio` as the default theme.
21
- */
22
- export declare const project: {
23
- readonly name: "project";
24
- readonly labels: {
25
- readonly singular: "Project";
26
- readonly plural: "Projects";
27
- };
28
- readonly routing: {
29
- readonly pattern: "/work/:slug";
30
- };
31
- readonly fields: {
32
- readonly seoTitle: import("@cogenta/schema").FieldDefinition & {
33
- readonly kind: "text";
34
- readonly options: Readonly<Record<string, unknown>>;
35
- };
36
- readonly seoDescription: import("@cogenta/schema").FieldDefinition & {
37
- readonly kind: "text";
38
- readonly options: Readonly<Record<string, unknown>>;
39
- };
40
- readonly seoImage: import("@cogenta/schema").FieldDefinition & {
41
- readonly kind: "media";
42
- readonly options: {
43
- accept: readonly ("audio" | "file" | "image" | "video")[];
44
- many: boolean;
45
- };
46
- };
47
- readonly seoNoindex: import("@cogenta/schema").FieldDefinition & {
48
- readonly kind: "boolean";
49
- readonly options: {};
50
- };
51
- readonly title: import("@cogenta/schema").FieldDefinition & {
52
- readonly kind: "text";
53
- readonly options: Readonly<Record<string, unknown>>;
54
- };
55
- readonly slug: import("@cogenta/schema").FieldDefinition & {
56
- readonly kind: "slug";
57
- readonly options: Readonly<Record<string, unknown>>;
58
- };
59
- readonly summary: import("@cogenta/schema").FieldDefinition & {
60
- readonly kind: "text";
61
- readonly options: Readonly<Record<string, unknown>>;
62
- };
63
- readonly role: import("@cogenta/schema").FieldDefinition & {
64
- readonly kind: "text";
65
- readonly options: Readonly<Record<string, unknown>>;
66
- };
67
- readonly year: import("@cogenta/schema").FieldDefinition & {
68
- readonly kind: "text";
69
- readonly options: Readonly<Record<string, unknown>>;
70
- };
71
- readonly coverImage: import("@cogenta/schema").FieldDefinition & {
72
- readonly kind: "media";
73
- readonly options: {
74
- accept: readonly ("audio" | "file" | "image" | "video")[];
75
- many: boolean;
76
- };
77
- };
78
- readonly blocks: import("@cogenta/schema").FieldDefinition & {
79
- readonly kind: "blocks";
80
- readonly options: {
81
- allow: "*" | readonly string[];
82
- };
83
- };
84
- };
85
- readonly indexes: readonly [readonly ["slug"]];
86
- readonly permissions: {
87
- readonly read: readonly ["public"];
88
- readonly create: readonly ["editor", "admin"];
89
- readonly update: readonly ["editor", "admin"];
90
- readonly delete: readonly ["admin"];
91
- readonly publish: readonly ["admin"];
92
- };
93
- };
94
- export declare const page: CollectionDefinition;
95
- export declare const PORTFOLIO_COLLECTIONS: readonly CollectionDefinition[];
96
- export interface PortfolioDemoProject {
97
- readonly title: string;
98
- readonly slug: string;
99
- readonly summary: string;
100
- readonly role: string;
101
- readonly year: string;
102
- /** A `coverArt` seed, distinct per project so the eight covers read as visibly different compositions rather than palette repeats. */
103
- readonly coverSeed: number;
104
- /**
105
- * Two paragraphs of real project narrative (L26 D1) — rendered on the
106
- * project's own page as a `prose` block after {@link roleYearPanelBlock},
107
- * so a visitor who clicks through from the grid finds an actual account
108
- * of the work, not just a repeated one-line summary and a role/year panel.
109
- */
110
- readonly narrative: readonly [string, string];
111
- }
112
- export declare const PORTFOLIO_DEMO_PROJECTS: readonly PortfolioDemoProject[];
113
- export interface PortfolioDemoPage {
114
- readonly title: string;
115
- readonly slug: string;
116
- readonly blocks: readonly VocabularyBlock[];
117
- }
118
- /**
119
- * The home page's nine blocks (L25 Annexe brief): hero, "Selected work" (a
120
- * full-bleed project grid), the numbers, services, clients, a quote, the
121
- * full project index, a testimonial and the closing call to action. Every
122
- * block's `_key` doubles as a real in-page anchor
123
- * (`@cogenta/theme-portfolio`'s `renderPage`, which stamps a real `id` from
124
- * it) — the header/footer menus below link straight into "Selected work"
125
- * and "Services" rather than a dead `#fragment`.
126
- *
127
- * A function of `media` (`SeedContext.media`), not a static const: the
128
- * hero/logo media fields need ids `seedDemoMedia` only knows at scaffold
129
- * time. `buildPortfolioHomeBlocks({})` (no media) still returns a complete,
130
- * valid block list — `hero`/`logoStrip` simply drop their media-bearing
131
- * fields rather than emit an invalid block.
132
- */
133
- export declare function buildPortfolioHomeBlocks(media: Readonly<Record<string, string>>): readonly VocabularyBlock[];
134
- export declare function buildPortfolioDemoPages(media: Readonly<Record<string, string>>): readonly PortfolioDemoPage[];
135
- export declare const PORTFOLIO_RECOMMENDED_AGENTS: readonly RecommendedAgentHint[];
136
- export declare const PORTFOLIO_MEDIA_SPECS: readonly DemoMediaSpec[];
137
- /** Header/footer navigation and the header "Let's talk" button (L25 D4) — "Work"/"Services" are real, working in-page anchors into the home page's own blocks; "About"/"Contact"/"Legal" are real pages. */
138
- export declare const PORTFOLIO_MENUS: BlueprintMenus;
139
- export declare const PORTFOLIO_SITE_SETTINGS: Readonly<Record<string, unknown>>;
140
- export declare const portfolioContentPack: BlueprintContentPack;
141
- //# sourceMappingURL=portfolio.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../src/blueprints/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAExE,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;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BlB,CAAA;AAEF,eAAO,MAAM,IAAI,sBAAiC,CAAA;AAElD,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EAAoB,CAAA;AAIrF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sIAAsI;IACtI,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9C;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAyGlE,CAAA;AA+DD,MAAM,WAAW,iBAAiB;IAChC,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,wBAAwB,CACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACtC,SAAS,eAAe,EAAE,CA2H5B;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACtC,SAAS,iBAAiB,EAAE,CA+L9B;AAED,eAAO,MAAM,4BAA4B,EAAE,SAAS,oBAAoB,EAWvE,CAAA;AA0CD,eAAO,MAAM,qBAAqB,EAAE,SAAS,aAAa,EA2CzD,CAAA;AAED,4MAA4M;AAC5M,eAAO,MAAM,eAAe,EAAE,cAc7B,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQrE,CAAA;AA4CD,eAAO,MAAM,oBAAoB,EAAE,oBAQlC,CAAA"}