foundrycms 0.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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/dist/__tests__/foundry.test.d.ts +2 -0
  4. package/dist/__tests__/foundry.test.d.ts.map +1 -0
  5. package/dist/__tests__/foundry.test.js +1013 -0
  6. package/dist/__tests__/foundry.test.js.map +1 -0
  7. package/dist/config-manager.d.ts +33 -0
  8. package/dist/config-manager.d.ts.map +1 -0
  9. package/dist/config-manager.js +169 -0
  10. package/dist/config-manager.js.map +1 -0
  11. package/dist/hook-system.d.ts +61 -0
  12. package/dist/hook-system.d.ts.map +1 -0
  13. package/dist/hook-system.js +114 -0
  14. package/dist/hook-system.js.map +1 -0
  15. package/dist/index.d.ts +47 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +82 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/page-builder/element-registry.d.ts +47 -0
  20. package/dist/page-builder/element-registry.d.ts.map +1 -0
  21. package/dist/page-builder/element-registry.js +98 -0
  22. package/dist/page-builder/element-registry.js.map +1 -0
  23. package/dist/page-builder/elements/index.d.ts +22 -0
  24. package/dist/page-builder/elements/index.d.ts.map +1 -0
  25. package/dist/page-builder/elements/index.js +770 -0
  26. package/dist/page-builder/elements/index.js.map +1 -0
  27. package/dist/page-builder/renderer.d.ts +14 -0
  28. package/dist/page-builder/renderer.d.ts.map +1 -0
  29. package/dist/page-builder/renderer.js +240 -0
  30. package/dist/page-builder/renderer.js.map +1 -0
  31. package/dist/page-builder/serializer.d.ts +1220 -0
  32. package/dist/page-builder/serializer.d.ts.map +1 -0
  33. package/dist/page-builder/serializer.js +111 -0
  34. package/dist/page-builder/serializer.js.map +1 -0
  35. package/dist/page-builder/template-studio.d.ts +37 -0
  36. package/dist/page-builder/template-studio.d.ts.map +1 -0
  37. package/dist/page-builder/template-studio.js +923 -0
  38. package/dist/page-builder/template-studio.js.map +1 -0
  39. package/dist/page-builder/types.d.ts +99 -0
  40. package/dist/page-builder/types.d.ts.map +1 -0
  41. package/dist/page-builder/types.js +5 -0
  42. package/dist/page-builder/types.js.map +1 -0
  43. package/dist/plugin-system.d.ts +128 -0
  44. package/dist/plugin-system.d.ts.map +1 -0
  45. package/dist/plugin-system.js +252 -0
  46. package/dist/plugin-system.js.map +1 -0
  47. package/dist/plugins/communication.d.ts +6 -0
  48. package/dist/plugins/communication.d.ts.map +1 -0
  49. package/dist/plugins/communication.js +922 -0
  50. package/dist/plugins/communication.js.map +1 -0
  51. package/dist/plugins/core.d.ts +6 -0
  52. package/dist/plugins/core.d.ts.map +1 -0
  53. package/dist/plugins/core.js +675 -0
  54. package/dist/plugins/core.js.map +1 -0
  55. package/dist/plugins/growth.d.ts +6 -0
  56. package/dist/plugins/growth.d.ts.map +1 -0
  57. package/dist/plugins/growth.js +668 -0
  58. package/dist/plugins/growth.js.map +1 -0
  59. package/dist/plugins/index.d.ts +8 -0
  60. package/dist/plugins/index.d.ts.map +1 -0
  61. package/dist/plugins/index.js +43 -0
  62. package/dist/plugins/index.js.map +1 -0
  63. package/dist/plugins/operations.d.ts +7 -0
  64. package/dist/plugins/operations.d.ts.map +1 -0
  65. package/dist/plugins/operations.js +930 -0
  66. package/dist/plugins/operations.js.map +1 -0
  67. package/dist/theme/presets.d.ts +8 -0
  68. package/dist/theme/presets.d.ts.map +1 -0
  69. package/dist/theme/presets.js +257 -0
  70. package/dist/theme/presets.js.map +1 -0
  71. package/dist/theme/types.d.ts +83 -0
  72. package/dist/theme/types.d.ts.map +1 -0
  73. package/dist/theme/types.js +5 -0
  74. package/dist/theme/types.js.map +1 -0
  75. package/package.json +38 -0
package/dist/index.js ADDED
@@ -0,0 +1,82 @@
1
+ // ---------------------------------------------------------------------------
2
+ // @foundry/core — barrel export
3
+ // ---------------------------------------------------------------------------
4
+ // Plugin system
5
+ export { PluginRegistry, } from './plugin-system.js';
6
+ // Hook system
7
+ export { HookEngine, } from './hook-system.js';
8
+ // Configuration
9
+ export { ConfigManager } from './config-manager.js';
10
+ // Element registry
11
+ export { ElementRegistry, } from './page-builder/element-registry.js';
12
+ // Page builder renderer
13
+ export { renderPage, renderRow, renderColumn, renderElement, escapeHtml, escapeAttr, } from './page-builder/renderer.js';
14
+ // Page builder elements
15
+ export { defaultElements, registerDefaultElements, rowElement, columnElement, spacerElement, dividerElement, headingElement, textBlockElement, buttonElement, iconElement, imageElement, galleryElement, videoElement, pricingTableElement, testimonialElement, accordionElement, callToActionElement, } from './page-builder/elements/index.js';
16
+ // Page builder serializer
17
+ export { serializePage, deserializePage, validatePageData, PageDataSchema, RowSchema, ColumnSchema, ElementSchema, PageMetaSchema, } from './page-builder/serializer.js';
18
+ // Template studio
19
+ export { TemplateStudio, defaultTemplates, registerDefaultTemplates, heroSplitTemplate, aboutTeamTemplate, servicesCardsTemplate, pricingThreeTierTemplate, testimonialsCarouselTemplate, ctaBannerTemplate, contactFormTemplate, footerMultiColumnTemplate, galleryMasonryTemplate, featuresAlternatingTemplate, } from './page-builder/template-studio.js';
20
+ // Theme presets
21
+ export { architectPreset, quantumPreset, elegantPreset, builtInPresets, getPresetById, } from './theme/presets.js';
22
+ // Plugins
23
+ export {
24
+ // Core
25
+ forgePlugin, ledgerPlugin, compassPlugin, oraclePlugin,
26
+ // Growth
27
+ scoutPlugin, beaconPlugin, chroniclePlugin, atlasPlugin,
28
+ // Operations
29
+ rosterPlugin, depotPlugin, stagePlugin, blueprintPlugin, pulsePlugin,
30
+ // Communication
31
+ relayPlugin, canvasPlugin, marketPlugin, sentinelPlugin,
32
+ // All plugins array
33
+ allPlugins, } from './plugins/index.js';
34
+ // ---------------------------------------------------------------------------
35
+ // Convenience factory — create a fully wired Foundry core instance
36
+ // ---------------------------------------------------------------------------
37
+ import { HookEngine } from './hook-system.js';
38
+ import { ConfigManager } from './config-manager.js';
39
+ import { PluginRegistry } from './plugin-system.js';
40
+ import { ElementRegistry } from './page-builder/element-registry.js';
41
+ import { TemplateStudio } from './page-builder/template-studio.js';
42
+ import { registerDefaultElements } from './page-builder/elements/index.js';
43
+ import { registerDefaultTemplates } from './page-builder/template-studio.js';
44
+ /**
45
+ * Create a new Foundry CMS core instance with all subsystems wired together.
46
+ *
47
+ * ```ts
48
+ * import { createFoundry } from '@foundry/core';
49
+ *
50
+ * const foundry = createFoundry();
51
+ * foundry.plugins.register(myPlugin);
52
+ * await foundry.plugins.activateAll();
53
+ * ```
54
+ */
55
+ export function createFoundry(options) {
56
+ const hooks = new HookEngine();
57
+ const config = new ConfigManager(hooks);
58
+ const plugins = new PluginRegistry(hooks, config);
59
+ const elements = new ElementRegistry();
60
+ const templates = new TemplateStudio();
61
+ if (options?.config) {
62
+ config.load(options.config);
63
+ }
64
+ return { hooks, config, plugins, elements, templates };
65
+ }
66
+ /**
67
+ * Create a Foundry instance with all default elements and templates pre-registered.
68
+ *
69
+ * ```ts
70
+ * import { createFoundryWithDefaults } from '@foundry/core';
71
+ *
72
+ * const foundry = createFoundryWithDefaults();
73
+ * // 15 elements + 10 templates ready to go
74
+ * ```
75
+ */
76
+ export function createFoundryWithDefaults(options) {
77
+ const instance = createFoundry(options);
78
+ registerDefaultElements(instance.elements);
79
+ registerDefaultTemplates(instance.templates);
80
+ return instance;
81
+ }
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { z } from 'zod';
2
+ export interface ElementDefinition {
3
+ /** Unique type key (e.g. 'text-block', 'image', 'button') */
4
+ type: string;
5
+ /** Human-readable display name */
6
+ name: string;
7
+ /** Category for organising in the add-element panel */
8
+ category: ElementCategory;
9
+ /** Icon identifier (icon name, SVG string, or URL) */
10
+ icon: string;
11
+ /** Description shown in the element picker */
12
+ description?: string;
13
+ /** Default settings applied when the element is first added */
14
+ defaultSettings: Record<string, any>;
15
+ /** Zod schema for validating element settings */
16
+ settingsSchema: z.ZodType<any>;
17
+ /** Server-side render function: takes settings, returns HTML string */
18
+ render: (settings: Record<string, any>) => string;
19
+ /** Reference to the render component (framework-agnostic string key) */
20
+ renderComponent?: string;
21
+ /** Reference to the settings panel component */
22
+ settingsComponent?: string;
23
+ /** Whether the element can contain child elements */
24
+ allowsChildren?: boolean;
25
+ /** Keywords for search in the element picker */
26
+ keywords?: string[];
27
+ /** Preview image URL */
28
+ previewImage?: string;
29
+ }
30
+ export type ElementCategory = 'content' | 'media' | 'layout' | 'interactive' | 'data' | 'social' | 'commerce' | 'forms' | 'advanced' | string;
31
+ export declare class ElementRegistry {
32
+ private elements;
33
+ register(element: ElementDefinition): void;
34
+ unregister(type: string): boolean;
35
+ get(type: string): ElementDefinition | undefined;
36
+ has(type: string): boolean;
37
+ list(): ElementDefinition[];
38
+ listByCategory(): Map<string, ElementDefinition[]>;
39
+ search(query: string): ElementDefinition[];
40
+ validateSettings(type: string, settings: Record<string, any>): {
41
+ success: boolean;
42
+ error?: string;
43
+ };
44
+ getDefaultSettings(type: string): Record<string, any> | undefined;
45
+ get count(): number;
46
+ }
47
+ //# sourceMappingURL=element-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-registry.d.ts","sourceRoot":"","sources":["../../src/page-builder/element-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,QAAQ,EAAE,eAAe,CAAC;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,iDAAiD;IACjD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,uEAAuE;IACvE,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAClD,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,aAAa,GACb,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,UAAU,GACV,MAAM,CAAC;AAMX,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IAMxD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAa1C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAQhD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ1B,IAAI,IAAI,iBAAiB,EAAE;IAQ3B,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAkBlD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAgB1C,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAkBvC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS;IASjE,IAAI,KAAK,IAAI,MAAM,CAElB;CACF"}
@@ -0,0 +1,98 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Element Registry
3
+ // ---------------------------------------------------------------------------
4
+ export class ElementRegistry {
5
+ elements = new Map();
6
+ // -----------------------------------------------------------------------
7
+ // register — add an element definition
8
+ // -----------------------------------------------------------------------
9
+ register(element) {
10
+ if (this.elements.has(element.type)) {
11
+ throw new Error(`Element type "${element.type}" is already registered. Use a unique type key.`);
12
+ }
13
+ this.elements.set(element.type, element);
14
+ }
15
+ // -----------------------------------------------------------------------
16
+ // unregister — remove an element definition
17
+ // -----------------------------------------------------------------------
18
+ unregister(type) {
19
+ return this.elements.delete(type);
20
+ }
21
+ // -----------------------------------------------------------------------
22
+ // get — retrieve a single element definition by type
23
+ // -----------------------------------------------------------------------
24
+ get(type) {
25
+ return this.elements.get(type);
26
+ }
27
+ // -----------------------------------------------------------------------
28
+ // has — check if a type is registered
29
+ // -----------------------------------------------------------------------
30
+ has(type) {
31
+ return this.elements.has(type);
32
+ }
33
+ // -----------------------------------------------------------------------
34
+ // list — return all registered elements
35
+ // -----------------------------------------------------------------------
36
+ list() {
37
+ return Array.from(this.elements.values());
38
+ }
39
+ // -----------------------------------------------------------------------
40
+ // listByCategory — group elements by category
41
+ // -----------------------------------------------------------------------
42
+ listByCategory() {
43
+ const grouped = new Map();
44
+ for (const element of this.elements.values()) {
45
+ const cat = element.category;
46
+ if (!grouped.has(cat)) {
47
+ grouped.set(cat, []);
48
+ }
49
+ grouped.get(cat).push(element);
50
+ }
51
+ return grouped;
52
+ }
53
+ // -----------------------------------------------------------------------
54
+ // search — find elements by keyword or name
55
+ // -----------------------------------------------------------------------
56
+ search(query) {
57
+ const q = query.toLowerCase();
58
+ return this.list().filter((el) => {
59
+ if (el.name.toLowerCase().includes(q))
60
+ return true;
61
+ if (el.type.toLowerCase().includes(q))
62
+ return true;
63
+ if (el.description?.toLowerCase().includes(q))
64
+ return true;
65
+ if (el.keywords?.some((kw) => kw.toLowerCase().includes(q)))
66
+ return true;
67
+ return false;
68
+ });
69
+ }
70
+ // -----------------------------------------------------------------------
71
+ // validateSettings — validate element settings against its schema
72
+ // -----------------------------------------------------------------------
73
+ validateSettings(type, settings) {
74
+ const element = this.elements.get(type);
75
+ if (!element) {
76
+ return { success: false, error: `Unknown element type "${type}"` };
77
+ }
78
+ const result = element.settingsSchema.safeParse(settings);
79
+ if (!result.success) {
80
+ return { success: false, error: result.error.message };
81
+ }
82
+ return { success: true };
83
+ }
84
+ // -----------------------------------------------------------------------
85
+ // getDefaultSettings — get merged default settings for an element type
86
+ // -----------------------------------------------------------------------
87
+ getDefaultSettings(type) {
88
+ const element = this.elements.get(type);
89
+ return element ? { ...element.defaultSettings } : undefined;
90
+ }
91
+ // -----------------------------------------------------------------------
92
+ // count
93
+ // -----------------------------------------------------------------------
94
+ get count() {
95
+ return this.elements.size;
96
+ }
97
+ }
98
+ //# sourceMappingURL=element-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-registry.js","sourceRoot":"","sources":["../../src/page-builder/element-registry.ts"],"names":[],"mappings":"AA+CA,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,OAAO,eAAe;IAClB,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,0EAA0E;IAC1E,uCAAuC;IACvC,0EAA0E;IAE1E,QAAQ,CAAC,OAA0B;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,iBAAiB,OAAO,CAAC,IAAI,iDAAiD,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,0EAA0E;IAC1E,4CAA4C;IAC5C,0EAA0E;IAE1E,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,0EAA0E;IAC1E,qDAAqD;IACrD,0EAA0E;IAE1E,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,0EAA0E;IAC1E,sCAAsC;IACtC,0EAA0E;IAE1E,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,0EAA0E;IAC1E,wCAAwC;IACxC,0EAA0E;IAE1E,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,8CAA8C;IAC9C,0EAA0E;IAE1E,cAAc;QACZ,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEvD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,4CAA4C;IAC5C,0EAA0E;IAE1E,MAAM,CAAC,KAAa;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnD,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnD,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3D,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,kEAAkE;IAClE,0EAA0E;IAE1E,gBAAgB,CACd,IAAY,EACZ,QAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,IAAI,GAAG,EAAE,CAAC;QACrE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAE1E,kBAAkB,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,0EAA0E;IAC1E,QAAQ;IACR,0EAA0E;IAE1E,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type { ElementDefinition } from '../element-registry.js';
2
+ export declare const rowElement: ElementDefinition;
3
+ export declare const columnElement: ElementDefinition;
4
+ export declare const spacerElement: ElementDefinition;
5
+ export declare const dividerElement: ElementDefinition;
6
+ export declare const headingElement: ElementDefinition;
7
+ export declare const textBlockElement: ElementDefinition;
8
+ export declare const buttonElement: ElementDefinition;
9
+ export declare const iconElement: ElementDefinition;
10
+ export declare const imageElement: ElementDefinition;
11
+ export declare const galleryElement: ElementDefinition;
12
+ export declare const videoElement: ElementDefinition;
13
+ export declare const pricingTableElement: ElementDefinition;
14
+ export declare const testimonialElement: ElementDefinition;
15
+ export declare const accordionElement: ElementDefinition;
16
+ export declare const callToActionElement: ElementDefinition;
17
+ export declare const defaultElements: ElementDefinition[];
18
+ /**
19
+ * Register all default elements into an ElementRegistry instance.
20
+ */
21
+ export declare function registerDefaultElements(registry: import('../element-registry.js').ElementRegistry): void;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/page-builder/elements/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAuBhE,eAAO,MAAM,UAAU,EAAE,iBAkCxB,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,iBAuB3B,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,iBAe3B,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,iBAwB5B,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,iBAoC5B,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,iBAkC9B,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,iBAgD3B,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,iBAyBzB,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,iBAiD1B,CAAC;AAYF,eAAO,MAAM,cAAc,EAAE,iBA0C5B,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,iBA4E1B,CAAC;AAWF,eAAO,MAAM,mBAAmB,EAAE,iBAqEjC,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,iBA0EhC,CAAC;AAWF,eAAO,MAAM,gBAAgB,EAAE,iBAyD9B,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,iBAuDjC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAgB9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,wBAAwB,EAAE,eAAe,GAAG,IAAI,CAMxG"}