@actuate-media/cms-core 0.15.0 → 0.16.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.
- package/dist/__tests__/collections/presets.test.d.ts +2 -0
- package/dist/__tests__/collections/presets.test.d.ts.map +1 -0
- package/dist/__tests__/collections/presets.test.js +141 -0
- package/dist/__tests__/collections/presets.test.js.map +1 -0
- package/dist/__tests__/fields/presets.test.d.ts +2 -0
- package/dist/__tests__/fields/presets.test.d.ts.map +1 -0
- package/dist/__tests__/fields/presets.test.js +99 -0
- package/dist/__tests__/fields/presets.test.js.map +1 -0
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +32 -0
- package/dist/api/handlers.js.map +1 -1
- package/dist/collections/index.d.ts +2 -0
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +1 -0
- package/dist/collections/index.js.map +1 -1
- package/dist/collections/presets.d.ts +71 -0
- package/dist/collections/presets.d.ts.map +1 -0
- package/dist/collections/presets.js +504 -0
- package/dist/collections/presets.js.map +1 -0
- package/dist/fields/index.d.ts +1 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +1 -0
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/presets.d.ts +90 -0
- package/dist/fields/presets.d.ts.map +1 -0
- package/dist/fields/presets.js +253 -0
- package/dist/fields/presets.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/page-builder/schema.d.ts +8 -8
- package/dist/page-builder/templates.d.ts.map +1 -1
- package/dist/page-builder/templates.js +312 -0
- package/dist/page-builder/templates.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,4 +14,6 @@ export declare class CollectionRegistry {
|
|
|
14
14
|
unregister(slug: string): boolean;
|
|
15
15
|
}
|
|
16
16
|
export declare const collectionRegistry: CollectionRegistry;
|
|
17
|
+
export { blogPostCollection, caseStudyCollection, portfolioCollection, serviceCollection, locationCollection, teamMemberCollection, faqCollection, testimonialCollection, getTemplatesForCollection, } from './presets.js';
|
|
18
|
+
export type { CollectionPresetOverrides } from './presets.js';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,qFAAqF;AACrF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA0C;IAE7D,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAOhD,qCAAqC;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAInD,oDAAoD;IACpD,MAAM,IAAI,oBAAoB,EAAE;IAIhC,gDAAgD;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,6CAA6C;IAC7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGlC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,qFAAqF;AACrF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA0C;IAE7D,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;IAOhD,qCAAqC;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAInD,oDAAoD;IACpD,MAAM,IAAI,oBAAoB,EAAE;IAIhC,gDAAgD;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,6CAA6C;IAC7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGlC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAA;AAE1D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAErB,YAAY,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -26,4 +26,5 @@ export class CollectionRegistry {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
export const collectionRegistry = new CollectionRegistry();
|
|
29
|
+
export { blogPostCollection, caseStudyCollection, portfolioCollection, serviceCollection, locationCollection, teamMemberCollection, faqCollection, testimonialCollection, getTemplatesForCollection, } from './presets.js';
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,OAAO,kBAAkB;IACrB,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAA;IAE7D,wCAAwC;IACxC,QAAQ,CAAC,UAAgC;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,oDAAoD;IACpD,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,gDAAgD;IAChD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,6CAA6C;IAC7C,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,OAAO,kBAAkB;IACrB,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAA;IAE7D,wCAAwC;IACxC,QAAQ,CAAC,UAAgC;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,oDAAoD;IACpD,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,gDAAgD;IAChD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,6CAA6C;IAC7C,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAE1D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-line collection factories for the content types nearly every marketing
|
|
3
|
+
* site needs: blog posts, case studies, portfolio items, services, locations,
|
|
4
|
+
* team members, FAQs, and testimonials.
|
|
5
|
+
*
|
|
6
|
+
* Each factory returns a complete `CollectionDefinition` with sensible
|
|
7
|
+
* fields, admin defaults, SEO config (defaultSchemaType, archivePath, etc.),
|
|
8
|
+
* and a suggested page-builder template name. Call sites can override or
|
|
9
|
+
* extend any property after the fact:
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { blogPostCollection, locationCollection } from
|
|
13
|
+
* '@actuate-media/cms-core'
|
|
14
|
+
*
|
|
15
|
+
* defineConfig({
|
|
16
|
+
* collections: {
|
|
17
|
+
* posts: blogPostCollection({
|
|
18
|
+
* fields: {
|
|
19
|
+
* ...blogPostCollection().fields,
|
|
20
|
+
* category: { type: 'select', label: 'Category', options: [...] },
|
|
21
|
+
* },
|
|
22
|
+
* }),
|
|
23
|
+
* locations: locationCollection(),
|
|
24
|
+
* },
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* Every preset also stamps a `pageBuilderTemplate` hint on the collection's
|
|
29
|
+
* `admin.description` so the admin's "Create new" flow can suggest the right
|
|
30
|
+
* page-builder template (see {@link getTemplatesForCollection}).
|
|
31
|
+
*/
|
|
32
|
+
import type { CollectionDefinition } from '../config/types.js';
|
|
33
|
+
/**
|
|
34
|
+
* Options shared by every collection preset. Overrides are merged with the
|
|
35
|
+
* preset's defaults — for example, passing `urlPrefix: ''` makes a preset
|
|
36
|
+
* collection render at site root instead of under its default prefix.
|
|
37
|
+
*/
|
|
38
|
+
export interface CollectionPresetOverrides extends Partial<CollectionDefinition> {
|
|
39
|
+
/** Extra fields to merge after the preset's defaults. */
|
|
40
|
+
extraFields?: Record<string, CollectionDefinition['fields'][string]>;
|
|
41
|
+
}
|
|
42
|
+
/** Long-form blog post collection. Renders as `/blog/:slug`, Schema.org BlogPosting. */
|
|
43
|
+
export declare function blogPostCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
44
|
+
/** Customer / project case study collection. Renders as `/case-studies/:slug`. */
|
|
45
|
+
export declare function caseStudyCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
46
|
+
/** Portfolio / project gallery collection. Renders as `/work/:slug`. */
|
|
47
|
+
export declare function portfolioCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
48
|
+
/** Service offering collection. Renders as `/services/:slug`, Schema.org Service. */
|
|
49
|
+
export declare function serviceCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
50
|
+
/** Physical location / service-area collection. Schema.org LocalBusiness. */
|
|
51
|
+
export declare function locationCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
52
|
+
/** Team member / author profile collection. Schema.org Person. */
|
|
53
|
+
export declare function teamMemberCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
54
|
+
/** Frequently asked question entries — composed into FAQPage schema. */
|
|
55
|
+
export declare function faqCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
56
|
+
/** Customer testimonial / review collection. Schema.org Review. */
|
|
57
|
+
export declare function testimonialCollection(overrides?: CollectionPresetOverrides): CollectionDefinition;
|
|
58
|
+
/**
|
|
59
|
+
* Maps a collection slug → the suggested built-in page-builder template ID
|
|
60
|
+
* (registered in `@actuate-media/cms-core` `BUILT_IN_TEMPLATES`).
|
|
61
|
+
*
|
|
62
|
+
* The admin "Create new" picker can call this to suggest a starter template
|
|
63
|
+
* matching the post type without forcing users to choose blindly. Returns
|
|
64
|
+
* `null` when no template is appropriate (e.g. testimonials, FAQs — these are
|
|
65
|
+
* rendered as fragments, not standalone pages).
|
|
66
|
+
*/
|
|
67
|
+
export declare function getTemplatesForCollection(collectionSlug: string): {
|
|
68
|
+
primary: string | null;
|
|
69
|
+
alternates: string[];
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/collections/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAkB9D;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,OAAO,CAAC,oBAAoB,CAAC;IAC9E,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;CACrE;AAqBD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CAoC9F;AAID,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CAkE/F;AAID,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CAqE/F;AAID,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CA6D7F;AAID,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CA2C9F;AAID,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CAgEhG;AAID,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CAoCzF;AAID,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,yBAAyB,GAAG,oBAAoB,CA4CjG;AAID;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG;IACjE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAiCA"}
|
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
import { titleField, slugField, excerptField, richContentField, featuredImageField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, } from '../fields/presets.js';
|
|
2
|
+
function mergeCollection(defaults, overrides) {
|
|
3
|
+
if (!overrides)
|
|
4
|
+
return defaults;
|
|
5
|
+
const { extraFields, fields, admin, seo, labels, ...rest } = overrides;
|
|
6
|
+
const merged = {
|
|
7
|
+
...defaults,
|
|
8
|
+
...rest,
|
|
9
|
+
labels: labels ?? defaults.labels,
|
|
10
|
+
fields: { ...defaults.fields, ...extraFields, ...fields },
|
|
11
|
+
admin: { ...defaults.admin, ...admin },
|
|
12
|
+
seo: { ...defaults.seo, ...seo },
|
|
13
|
+
};
|
|
14
|
+
return merged;
|
|
15
|
+
}
|
|
16
|
+
// ─── Blog Post ─────────────────────────────────────────────────────────────
|
|
17
|
+
/** Long-form blog post collection. Renders as `/blog/:slug`, Schema.org BlogPosting. */
|
|
18
|
+
export function blogPostCollection(overrides) {
|
|
19
|
+
const defaults = {
|
|
20
|
+
slug: 'posts',
|
|
21
|
+
labels: { singular: 'Post', plural: 'Posts' },
|
|
22
|
+
urlPrefix: 'blog',
|
|
23
|
+
type: 'post',
|
|
24
|
+
timestamps: true,
|
|
25
|
+
softDelete: true,
|
|
26
|
+
versions: { maxPerDoc: 20 },
|
|
27
|
+
defaultSort: '-publishedDate',
|
|
28
|
+
seo: {
|
|
29
|
+
defaultSchemaType: 'BlogPosting',
|
|
30
|
+
sitemapPriority: 0.7,
|
|
31
|
+
sitemapChangeFreq: 'weekly',
|
|
32
|
+
archivePath: '/blog',
|
|
33
|
+
},
|
|
34
|
+
admin: {
|
|
35
|
+
useAsTitle: 'title',
|
|
36
|
+
defaultColumns: ['title', 'authorName', 'publishedDate', 'status'],
|
|
37
|
+
group: 'Content',
|
|
38
|
+
description: 'Long-form articles. Suggested template: blog-post.',
|
|
39
|
+
icon: 'pencil',
|
|
40
|
+
},
|
|
41
|
+
fields: {
|
|
42
|
+
...titleField({ required: true }),
|
|
43
|
+
...slugField(),
|
|
44
|
+
...excerptField({ label: 'Excerpt', maxLength: 280 }),
|
|
45
|
+
...featuredImageField(),
|
|
46
|
+
...authorField(),
|
|
47
|
+
...publishedDateField(),
|
|
48
|
+
...tagsField(),
|
|
49
|
+
...richContentField({ name: 'body', label: 'Body', required: true }),
|
|
50
|
+
...seoFields(),
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
return mergeCollection(defaults, overrides);
|
|
54
|
+
}
|
|
55
|
+
// ─── Case Study ────────────────────────────────────────────────────────────
|
|
56
|
+
/** Customer / project case study collection. Renders as `/case-studies/:slug`. */
|
|
57
|
+
export function caseStudyCollection(overrides) {
|
|
58
|
+
const defaults = {
|
|
59
|
+
slug: 'case-studies',
|
|
60
|
+
labels: { singular: 'Case study', plural: 'Case studies' },
|
|
61
|
+
urlPrefix: 'case-studies',
|
|
62
|
+
type: 'post',
|
|
63
|
+
timestamps: true,
|
|
64
|
+
softDelete: true,
|
|
65
|
+
versions: { maxPerDoc: 10 },
|
|
66
|
+
defaultSort: '-publishedDate',
|
|
67
|
+
seo: {
|
|
68
|
+
defaultSchemaType: 'Article',
|
|
69
|
+
sitemapPriority: 0.7,
|
|
70
|
+
sitemapChangeFreq: 'monthly',
|
|
71
|
+
archivePath: '/case-studies',
|
|
72
|
+
},
|
|
73
|
+
admin: {
|
|
74
|
+
useAsTitle: 'title',
|
|
75
|
+
defaultColumns: ['title', 'clientName', 'industry', 'publishedDate', 'status'],
|
|
76
|
+
group: 'Content',
|
|
77
|
+
description: 'Customer success stories. Suggested template: case-study.',
|
|
78
|
+
icon: 'badge-check',
|
|
79
|
+
},
|
|
80
|
+
fields: {
|
|
81
|
+
...titleField({ label: 'Case study title' }),
|
|
82
|
+
...slugField(),
|
|
83
|
+
clientName: { type: 'text', label: 'Client name', required: true, maxLength: 120 },
|
|
84
|
+
industry: { type: 'text', label: 'Industry', maxLength: 80 },
|
|
85
|
+
...excerptField({ label: 'Summary', maxLength: 320 }),
|
|
86
|
+
...featuredImageField({ label: 'Hero image' }),
|
|
87
|
+
challenge: {
|
|
88
|
+
type: 'richText',
|
|
89
|
+
label: 'Challenge',
|
|
90
|
+
admin: { description: 'The business or technical problem the client faced.' },
|
|
91
|
+
features: ['bold', 'italic', 'link', 'list'],
|
|
92
|
+
},
|
|
93
|
+
solution: {
|
|
94
|
+
type: 'richText',
|
|
95
|
+
label: 'Solution',
|
|
96
|
+
admin: { description: 'How the work addressed the challenge.' },
|
|
97
|
+
features: ['bold', 'italic', 'link', 'list', 'image'],
|
|
98
|
+
},
|
|
99
|
+
results: {
|
|
100
|
+
type: 'richText',
|
|
101
|
+
label: 'Results',
|
|
102
|
+
admin: { description: 'Outcomes and measurable wins.' },
|
|
103
|
+
features: ['bold', 'italic', 'link', 'list'],
|
|
104
|
+
},
|
|
105
|
+
keyMetrics: {
|
|
106
|
+
type: 'array',
|
|
107
|
+
label: 'Key metrics',
|
|
108
|
+
maxRows: 6,
|
|
109
|
+
fields: {
|
|
110
|
+
value: { type: 'text', label: 'Value', required: true, maxLength: 32 },
|
|
111
|
+
label: { type: 'text', label: 'Label', required: true, maxLength: 80 },
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
...quoteField({ label: 'Featured quote' }),
|
|
115
|
+
quoteAuthor: { type: 'text', label: 'Quote attribution', maxLength: 120 },
|
|
116
|
+
...publishedDateField(),
|
|
117
|
+
...ctaField({ name: 'cta', label: 'CTA' }),
|
|
118
|
+
...tagsField({ label: 'Services involved' }),
|
|
119
|
+
...seoFields(),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
return mergeCollection(defaults, overrides);
|
|
123
|
+
}
|
|
124
|
+
// ─── Portfolio ─────────────────────────────────────────────────────────────
|
|
125
|
+
/** Portfolio / project gallery collection. Renders as `/work/:slug`. */
|
|
126
|
+
export function portfolioCollection(overrides) {
|
|
127
|
+
const defaults = {
|
|
128
|
+
slug: 'portfolio',
|
|
129
|
+
labels: { singular: 'Project', plural: 'Projects' },
|
|
130
|
+
urlPrefix: 'work',
|
|
131
|
+
type: 'post',
|
|
132
|
+
timestamps: true,
|
|
133
|
+
softDelete: true,
|
|
134
|
+
versions: { maxPerDoc: 10 },
|
|
135
|
+
defaultSort: '-completedDate',
|
|
136
|
+
seo: {
|
|
137
|
+
defaultSchemaType: 'CreativeWork',
|
|
138
|
+
sitemapPriority: 0.6,
|
|
139
|
+
sitemapChangeFreq: 'monthly',
|
|
140
|
+
archivePath: '/work',
|
|
141
|
+
},
|
|
142
|
+
admin: {
|
|
143
|
+
useAsTitle: 'title',
|
|
144
|
+
defaultColumns: ['title', 'clientName', 'category', 'completedDate', 'status'],
|
|
145
|
+
group: 'Content',
|
|
146
|
+
description: 'Project showcase. Suggested template: portfolio.',
|
|
147
|
+
icon: 'image',
|
|
148
|
+
},
|
|
149
|
+
fields: {
|
|
150
|
+
...titleField({ label: 'Project title' }),
|
|
151
|
+
...slugField(),
|
|
152
|
+
clientName: { type: 'text', label: 'Client', maxLength: 120 },
|
|
153
|
+
category: {
|
|
154
|
+
type: 'select',
|
|
155
|
+
label: 'Category',
|
|
156
|
+
options: [
|
|
157
|
+
{ label: 'Web', value: 'web' },
|
|
158
|
+
{ label: 'Mobile', value: 'mobile' },
|
|
159
|
+
{ label: 'Branding', value: 'branding' },
|
|
160
|
+
{ label: 'Print', value: 'print' },
|
|
161
|
+
{ label: 'Photography', value: 'photography' },
|
|
162
|
+
{ label: 'Other', value: 'other' },
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
...excerptField({ label: 'Project summary' }),
|
|
166
|
+
...featuredImageField({ label: 'Cover image' }),
|
|
167
|
+
gallery: {
|
|
168
|
+
type: 'array',
|
|
169
|
+
label: 'Gallery',
|
|
170
|
+
fields: {
|
|
171
|
+
image: { type: 'media', label: 'Image', required: true, accept: ['image/*'] },
|
|
172
|
+
caption: { type: 'text', label: 'Caption', maxLength: 200 },
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
description: {
|
|
176
|
+
...richContentField({ name: 'description', label: 'Description' }).description,
|
|
177
|
+
},
|
|
178
|
+
role: { type: 'text', label: 'Your role', maxLength: 120 },
|
|
179
|
+
stack: {
|
|
180
|
+
type: 'array',
|
|
181
|
+
label: 'Tech / tools',
|
|
182
|
+
fields: { item: { type: 'text', label: 'Item', required: true, maxLength: 60 } },
|
|
183
|
+
},
|
|
184
|
+
projectUrl: {
|
|
185
|
+
type: 'url',
|
|
186
|
+
label: 'Live project URL',
|
|
187
|
+
admin: { description: 'Public URL of the live project, if available.' },
|
|
188
|
+
},
|
|
189
|
+
completedDate: { type: 'date', label: 'Completed', includeTime: false },
|
|
190
|
+
...tagsField(),
|
|
191
|
+
...seoFields(),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
return mergeCollection(defaults, overrides);
|
|
195
|
+
}
|
|
196
|
+
// ─── Service ───────────────────────────────────────────────────────────────
|
|
197
|
+
/** Service offering collection. Renders as `/services/:slug`, Schema.org Service. */
|
|
198
|
+
export function serviceCollection(overrides) {
|
|
199
|
+
const defaults = {
|
|
200
|
+
slug: 'services',
|
|
201
|
+
labels: { singular: 'Service', plural: 'Services' },
|
|
202
|
+
urlPrefix: 'services',
|
|
203
|
+
type: 'page',
|
|
204
|
+
timestamps: true,
|
|
205
|
+
softDelete: true,
|
|
206
|
+
versions: { maxPerDoc: 10 },
|
|
207
|
+
defaultSort: 'order',
|
|
208
|
+
seo: {
|
|
209
|
+
defaultSchemaType: 'Service',
|
|
210
|
+
sitemapPriority: 0.8,
|
|
211
|
+
sitemapChangeFreq: 'monthly',
|
|
212
|
+
},
|
|
213
|
+
admin: {
|
|
214
|
+
useAsTitle: 'title',
|
|
215
|
+
defaultColumns: ['title', 'category', 'order', 'status'],
|
|
216
|
+
group: 'Content',
|
|
217
|
+
description: 'Services offered. Suggested template: service.',
|
|
218
|
+
icon: 'wrench',
|
|
219
|
+
},
|
|
220
|
+
fields: {
|
|
221
|
+
...titleField({ label: 'Service name' }),
|
|
222
|
+
...slugField(),
|
|
223
|
+
category: { type: 'text', label: 'Category', maxLength: 80 },
|
|
224
|
+
order: {
|
|
225
|
+
type: 'number',
|
|
226
|
+
label: 'Display order',
|
|
227
|
+
admin: { description: 'Lower values sort first in service lists.' },
|
|
228
|
+
defaultValue: 100,
|
|
229
|
+
},
|
|
230
|
+
icon: {
|
|
231
|
+
type: 'text',
|
|
232
|
+
label: 'Icon',
|
|
233
|
+
admin: { description: 'Lucide / Heroicons icon name shown next to the service.' },
|
|
234
|
+
maxLength: 40,
|
|
235
|
+
},
|
|
236
|
+
...excerptField({ label: 'Short description', maxLength: 200 }),
|
|
237
|
+
...featuredImageField({ label: 'Service image' }),
|
|
238
|
+
...richContentField({ name: 'description', label: 'Full description' }),
|
|
239
|
+
benefits: {
|
|
240
|
+
type: 'array',
|
|
241
|
+
label: 'Benefits',
|
|
242
|
+
fields: {
|
|
243
|
+
title: { type: 'text', label: 'Benefit', required: true, maxLength: 120 },
|
|
244
|
+
description: { type: 'text', label: 'Description', maxLength: 280 },
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
...priceFields(),
|
|
248
|
+
pricingNote: {
|
|
249
|
+
type: 'text',
|
|
250
|
+
label: 'Pricing note',
|
|
251
|
+
maxLength: 200,
|
|
252
|
+
admin: { description: 'e.g. "Starting at", "Per visit", "Custom quote".' },
|
|
253
|
+
},
|
|
254
|
+
...ctaField({ name: 'cta', label: 'CTA' }),
|
|
255
|
+
...seoFields(),
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
return mergeCollection(defaults, overrides);
|
|
259
|
+
}
|
|
260
|
+
// ─── Location ──────────────────────────────────────────────────────────────
|
|
261
|
+
/** Physical location / service-area collection. Schema.org LocalBusiness. */
|
|
262
|
+
export function locationCollection(overrides) {
|
|
263
|
+
const defaults = {
|
|
264
|
+
slug: 'locations',
|
|
265
|
+
labels: { singular: 'Location', plural: 'Locations' },
|
|
266
|
+
urlPrefix: 'locations',
|
|
267
|
+
type: 'page',
|
|
268
|
+
timestamps: true,
|
|
269
|
+
softDelete: true,
|
|
270
|
+
versions: { maxPerDoc: 10 },
|
|
271
|
+
defaultSort: 'title',
|
|
272
|
+
seo: {
|
|
273
|
+
defaultSchemaType: 'LocalBusiness',
|
|
274
|
+
sitemapPriority: 0.9,
|
|
275
|
+
sitemapChangeFreq: 'weekly',
|
|
276
|
+
},
|
|
277
|
+
admin: {
|
|
278
|
+
useAsTitle: 'title',
|
|
279
|
+
defaultColumns: ['title', 'phone', 'serviceArea', 'status'],
|
|
280
|
+
group: 'Content',
|
|
281
|
+
description: 'Service areas / physical locations. Suggested template: location.',
|
|
282
|
+
icon: 'map-pin',
|
|
283
|
+
},
|
|
284
|
+
fields: {
|
|
285
|
+
...titleField({ label: 'Location name' }),
|
|
286
|
+
...slugField(),
|
|
287
|
+
serviceArea: { type: 'text', label: 'Service area', maxLength: 120 },
|
|
288
|
+
...excerptField({ label: 'Short description', maxLength: 200 }),
|
|
289
|
+
...featuredImageField({ label: 'Location photo' }),
|
|
290
|
+
...locationFields(),
|
|
291
|
+
...geoFields(),
|
|
292
|
+
...richContentField({ name: 'description', label: 'Description' }),
|
|
293
|
+
servicesOffered: {
|
|
294
|
+
type: 'relationship',
|
|
295
|
+
label: 'Services offered',
|
|
296
|
+
relationTo: 'services',
|
|
297
|
+
hasMany: true,
|
|
298
|
+
admin: { description: 'Pick which services are available at this location.' },
|
|
299
|
+
},
|
|
300
|
+
...ctaField({ name: 'cta', label: 'Booking CTA' }),
|
|
301
|
+
...seoFields(),
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
return mergeCollection(defaults, overrides);
|
|
305
|
+
}
|
|
306
|
+
// ─── Team member ───────────────────────────────────────────────────────────
|
|
307
|
+
/** Team member / author profile collection. Schema.org Person. */
|
|
308
|
+
export function teamMemberCollection(overrides) {
|
|
309
|
+
const defaults = {
|
|
310
|
+
slug: 'team',
|
|
311
|
+
labels: { singular: 'Team member', plural: 'Team' },
|
|
312
|
+
urlPrefix: 'team',
|
|
313
|
+
type: 'page',
|
|
314
|
+
timestamps: true,
|
|
315
|
+
softDelete: true,
|
|
316
|
+
versions: { maxPerDoc: 5 },
|
|
317
|
+
defaultSort: 'order',
|
|
318
|
+
seo: {
|
|
319
|
+
defaultSchemaType: 'Person',
|
|
320
|
+
sitemapPriority: 0.5,
|
|
321
|
+
sitemapChangeFreq: 'monthly',
|
|
322
|
+
},
|
|
323
|
+
admin: {
|
|
324
|
+
useAsTitle: 'title',
|
|
325
|
+
defaultColumns: ['title', 'role', 'order', 'status'],
|
|
326
|
+
group: 'Content',
|
|
327
|
+
description: 'Team / author profiles. Suggested template: team-member.',
|
|
328
|
+
icon: 'user',
|
|
329
|
+
},
|
|
330
|
+
fields: {
|
|
331
|
+
...titleField({ label: 'Full name' }),
|
|
332
|
+
...slugField(),
|
|
333
|
+
role: { type: 'text', label: 'Role / title', required: true, maxLength: 120 },
|
|
334
|
+
order: {
|
|
335
|
+
type: 'number',
|
|
336
|
+
label: 'Display order',
|
|
337
|
+
defaultValue: 100,
|
|
338
|
+
admin: { description: 'Lower values sort first on team pages.' },
|
|
339
|
+
},
|
|
340
|
+
photo: {
|
|
341
|
+
type: 'media',
|
|
342
|
+
label: 'Photo',
|
|
343
|
+
accept: ['image/jpeg', 'image/png', 'image/webp'],
|
|
344
|
+
},
|
|
345
|
+
...excerptField({ label: 'Short bio', maxLength: 200 }),
|
|
346
|
+
bio: { ...richContentField({ name: 'bio', label: 'Full bio' }).bio },
|
|
347
|
+
email: { type: 'email', label: 'Email' },
|
|
348
|
+
phone: { type: 'text', label: 'Phone', maxLength: 40 },
|
|
349
|
+
socialLinks: {
|
|
350
|
+
type: 'array',
|
|
351
|
+
label: 'Social links',
|
|
352
|
+
fields: {
|
|
353
|
+
platform: {
|
|
354
|
+
type: 'select',
|
|
355
|
+
label: 'Platform',
|
|
356
|
+
options: [
|
|
357
|
+
{ label: 'LinkedIn', value: 'linkedin' },
|
|
358
|
+
{ label: 'X / Twitter', value: 'twitter' },
|
|
359
|
+
{ label: 'GitHub', value: 'github' },
|
|
360
|
+
{ label: 'Instagram', value: 'instagram' },
|
|
361
|
+
{ label: 'Facebook', value: 'facebook' },
|
|
362
|
+
{ label: 'Website', value: 'website' },
|
|
363
|
+
],
|
|
364
|
+
},
|
|
365
|
+
url: { type: 'url', label: 'URL', required: true },
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
...seoFields(),
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
return mergeCollection(defaults, overrides);
|
|
372
|
+
}
|
|
373
|
+
// ─── FAQ ────────────────────────────────────────────────────────────────────
|
|
374
|
+
/** Frequently asked question entries — composed into FAQPage schema. */
|
|
375
|
+
export function faqCollection(overrides) {
|
|
376
|
+
const defaults = {
|
|
377
|
+
slug: 'faqs',
|
|
378
|
+
labels: { singular: 'FAQ', plural: 'FAQs' },
|
|
379
|
+
urlPrefix: 'faqs',
|
|
380
|
+
type: 'page',
|
|
381
|
+
timestamps: true,
|
|
382
|
+
softDelete: true,
|
|
383
|
+
defaultSort: 'order',
|
|
384
|
+
seo: {
|
|
385
|
+
defaultSchemaType: 'FAQPage',
|
|
386
|
+
sitemapPriority: 0.4,
|
|
387
|
+
sitemapChangeFreq: 'monthly',
|
|
388
|
+
excludeFromSitemap: true,
|
|
389
|
+
},
|
|
390
|
+
admin: {
|
|
391
|
+
useAsTitle: 'question',
|
|
392
|
+
defaultColumns: ['question', 'category', 'order', 'status'],
|
|
393
|
+
group: 'Content',
|
|
394
|
+
description: 'Frequently asked questions. Grouped by category.',
|
|
395
|
+
icon: 'help-circle',
|
|
396
|
+
},
|
|
397
|
+
fields: {
|
|
398
|
+
question: { type: 'text', label: 'Question', required: true, maxLength: 280 },
|
|
399
|
+
...slugField({ from: 'question' }),
|
|
400
|
+
category: { type: 'text', label: 'Category', maxLength: 80 },
|
|
401
|
+
order: { type: 'number', label: 'Order', defaultValue: 100 },
|
|
402
|
+
answer: {
|
|
403
|
+
type: 'richText',
|
|
404
|
+
label: 'Answer',
|
|
405
|
+
required: true,
|
|
406
|
+
features: ['bold', 'italic', 'link', 'list'],
|
|
407
|
+
},
|
|
408
|
+
},
|
|
409
|
+
};
|
|
410
|
+
return mergeCollection(defaults, overrides);
|
|
411
|
+
}
|
|
412
|
+
// ─── Testimonial ───────────────────────────────────────────────────────────
|
|
413
|
+
/** Customer testimonial / review collection. Schema.org Review. */
|
|
414
|
+
export function testimonialCollection(overrides) {
|
|
415
|
+
const defaults = {
|
|
416
|
+
slug: 'testimonials',
|
|
417
|
+
labels: { singular: 'Testimonial', plural: 'Testimonials' },
|
|
418
|
+
urlPrefix: 'testimonials',
|
|
419
|
+
type: 'page',
|
|
420
|
+
timestamps: true,
|
|
421
|
+
softDelete: true,
|
|
422
|
+
defaultSort: '-publishedDate',
|
|
423
|
+
seo: {
|
|
424
|
+
defaultSchemaType: 'Review',
|
|
425
|
+
sitemapPriority: 0.3,
|
|
426
|
+
sitemapChangeFreq: 'monthly',
|
|
427
|
+
excludeFromSitemap: true,
|
|
428
|
+
},
|
|
429
|
+
admin: {
|
|
430
|
+
useAsTitle: 'authorName',
|
|
431
|
+
defaultColumns: ['authorName', 'rating', 'publishedDate', 'status'],
|
|
432
|
+
group: 'Content',
|
|
433
|
+
description: 'Customer testimonials and reviews.',
|
|
434
|
+
icon: 'star',
|
|
435
|
+
},
|
|
436
|
+
fields: {
|
|
437
|
+
...quoteField({ name: 'quote', label: 'Testimonial' }),
|
|
438
|
+
authorName: { type: 'text', label: 'Author name', required: true, maxLength: 120 },
|
|
439
|
+
authorRole: { type: 'text', label: 'Author role / company', maxLength: 200 },
|
|
440
|
+
photo: { type: 'media', label: 'Author photo', accept: ['image/*'] },
|
|
441
|
+
rating: {
|
|
442
|
+
type: 'number',
|
|
443
|
+
label: 'Rating (1–5)',
|
|
444
|
+
min: 1,
|
|
445
|
+
max: 5,
|
|
446
|
+
step: 1,
|
|
447
|
+
defaultValue: 5,
|
|
448
|
+
},
|
|
449
|
+
...publishedDateField(),
|
|
450
|
+
featured: {
|
|
451
|
+
type: 'boolean',
|
|
452
|
+
label: 'Featured',
|
|
453
|
+
admin: { description: 'Pin to the top of testimonial lists.' },
|
|
454
|
+
},
|
|
455
|
+
},
|
|
456
|
+
};
|
|
457
|
+
return mergeCollection(defaults, overrides);
|
|
458
|
+
}
|
|
459
|
+
// ─── Template suggestion lookup ────────────────────────────────────────────
|
|
460
|
+
/**
|
|
461
|
+
* Maps a collection slug → the suggested built-in page-builder template ID
|
|
462
|
+
* (registered in `@actuate-media/cms-core` `BUILT_IN_TEMPLATES`).
|
|
463
|
+
*
|
|
464
|
+
* The admin "Create new" picker can call this to suggest a starter template
|
|
465
|
+
* matching the post type without forcing users to choose blindly. Returns
|
|
466
|
+
* `null` when no template is appropriate (e.g. testimonials, FAQs — these are
|
|
467
|
+
* rendered as fragments, not standalone pages).
|
|
468
|
+
*/
|
|
469
|
+
export function getTemplatesForCollection(collectionSlug) {
|
|
470
|
+
const slug = collectionSlug.toLowerCase();
|
|
471
|
+
// Aliases handle the common variants we see in the wild.
|
|
472
|
+
const map = {
|
|
473
|
+
posts: { primary: 'blog-post' },
|
|
474
|
+
post: { primary: 'blog-post' },
|
|
475
|
+
blog: { primary: 'blog-post' },
|
|
476
|
+
articles: { primary: 'blog-post' },
|
|
477
|
+
'blog-posts': { primary: 'blog-post' },
|
|
478
|
+
'case-studies': { primary: 'case-study', alternates: ['blog-post'] },
|
|
479
|
+
'case-study': { primary: 'case-study', alternates: ['blog-post'] },
|
|
480
|
+
portfolio: { primary: 'portfolio', alternates: ['about'] },
|
|
481
|
+
portfolios: { primary: 'portfolio', alternates: ['about'] },
|
|
482
|
+
work: { primary: 'portfolio', alternates: ['about'] },
|
|
483
|
+
projects: { primary: 'portfolio', alternates: ['about'] },
|
|
484
|
+
services: { primary: 'service', alternates: ['landing'] },
|
|
485
|
+
service: { primary: 'service', alternates: ['landing'] },
|
|
486
|
+
locations: { primary: 'location', alternates: ['contact'] },
|
|
487
|
+
location: { primary: 'location', alternates: ['contact'] },
|
|
488
|
+
team: { primary: 'team-member', alternates: ['about'] },
|
|
489
|
+
'team-members': { primary: 'team-member', alternates: ['about'] },
|
|
490
|
+
pages: { primary: 'blank', alternates: ['landing', 'about', 'contact'] },
|
|
491
|
+
page: { primary: 'blank', alternates: ['landing', 'about', 'contact'] },
|
|
492
|
+
};
|
|
493
|
+
const entry = map[slug];
|
|
494
|
+
if (entry)
|
|
495
|
+
return { primary: entry.primary, alternates: entry.alternates ?? [] };
|
|
496
|
+
// Soft match — `blog-news` → blog-post, etc.
|
|
497
|
+
for (const [key, value] of Object.entries(map)) {
|
|
498
|
+
if (slug.includes(key) || key.includes(slug)) {
|
|
499
|
+
return { primary: value.primary, alternates: value.alternates ?? [] };
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
return { primary: null, alternates: [] };
|
|
503
|
+
}
|
|
504
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/collections/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/fields/index.d.ts
CHANGED
|
@@ -12,4 +12,5 @@ export interface FieldTypeDefinition {
|
|
|
12
12
|
export declare const BUILT_IN_FIELDS: Record<string, FieldTypeDefinition>;
|
|
13
13
|
export declare function getFieldType(type: string): FieldTypeDefinition | undefined;
|
|
14
14
|
export declare function getAllFieldTypes(): FieldTypeDefinition[];
|
|
15
|
+
export { titleField, slugField, excerptField, richContentField, featuredImageField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, } from './presets.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC1C;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAkF/D,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAExD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC1C;AAED,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAkF/D,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAExD;AAED,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,GACZ,MAAM,cAAc,CAAA"}
|