@schneiderelli/cms-runtime 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/components/BlockRenderer.svelte +106 -71
  2. package/dist/components/BlockRenderer.svelte.d.ts +15 -4
  3. package/dist/components/blocks/AdBlock.svelte +58 -0
  4. package/dist/components/blocks/AdBlock.svelte.d.ts +9 -0
  5. package/dist/components/blocks/AffiliateBlock.svelte +50 -0
  6. package/dist/components/blocks/AffiliateBlock.svelte.d.ts +9 -0
  7. package/dist/components/blocks/BreadcrumbBlock.svelte +30 -0
  8. package/dist/components/blocks/BreadcrumbBlock.svelte.d.ts +9 -0
  9. package/dist/components/blocks/ChildrenBlock.svelte +46 -0
  10. package/dist/components/blocks/ChildrenBlock.svelte.d.ts +9 -0
  11. package/dist/components/blocks/DividerBlock.svelte +9 -0
  12. package/dist/components/blocks/DividerBlock.svelte.d.ts +26 -0
  13. package/dist/components/blocks/FaqBlock.svelte +77 -0
  14. package/dist/components/blocks/FaqBlock.svelte.d.ts +7 -0
  15. package/dist/components/blocks/HeadingBlock.svelte +35 -5
  16. package/dist/components/blocks/HeadingBlock.svelte.d.ts +3 -3
  17. package/dist/components/blocks/HeroBlock.svelte +43 -0
  18. package/dist/components/blocks/HeroBlock.svelte.d.ts +7 -0
  19. package/dist/components/blocks/HowToBlock.svelte +100 -0
  20. package/dist/components/blocks/HowToBlock.svelte.d.ts +7 -0
  21. package/dist/components/blocks/ImageBlock.svelte +42 -3
  22. package/dist/components/blocks/ImageBlock.svelte.d.ts +3 -3
  23. package/dist/components/blocks/LinksBlock.svelte +66 -0
  24. package/dist/components/blocks/LinksBlock.svelte.d.ts +7 -0
  25. package/dist/components/blocks/MarkdownBlock.svelte +118 -0
  26. package/dist/components/blocks/MarkdownBlock.svelte.d.ts +7 -0
  27. package/dist/components/blocks/NoteBlock.svelte +59 -0
  28. package/dist/components/blocks/NoteBlock.svelte.d.ts +7 -0
  29. package/dist/components/blocks/QuoteBlock.svelte +44 -0
  30. package/dist/components/blocks/QuoteBlock.svelte.d.ts +7 -0
  31. package/dist/index.d.ts +16 -1
  32. package/dist/index.js +26 -1
  33. package/dist/registry.d.ts +43 -0
  34. package/dist/registry.js +374 -0
  35. package/dist/types.d.ts +253 -23
  36. package/dist/types.js +179 -1
  37. package/package.json +2 -1
  38. package/dist/components/blocks/TextBlock.svelte +0 -8
  39. package/dist/components/blocks/TextBlock.svelte.d.ts +0 -7
  40. package/dist/resolve.d.ts +0 -15
  41. package/dist/resolve.js +0 -15
package/dist/types.js CHANGED
@@ -1 +1,179 @@
1
- export {};
1
+ // =============================================================================
2
+ // CSM-RUNTIME TYPES
3
+ // =============================================================================
4
+ // Zentrale Type-Definitionen für Content Blocks
5
+ // Wird von Editor UND Website-Framework genutzt
6
+ // =============================================================================
7
+ // -----------------------------------------------------------------------------
8
+ // HELPER: Block erstellen mit Auto-ID
9
+ // -----------------------------------------------------------------------------
10
+ let blockIdCounter = 0;
11
+ export function createBlock(type, data) {
12
+ return {
13
+ id: `block-${Date.now()}-${++blockIdCounter}`,
14
+ type,
15
+ ...data
16
+ };
17
+ }
18
+ // -----------------------------------------------------------------------------
19
+ // HELPER: Page erstellen
20
+ // -----------------------------------------------------------------------------
21
+ export function createPage(data) {
22
+ const now = new Date().toISOString();
23
+ return {
24
+ id: `page-${Date.now()}`,
25
+ blocks: [],
26
+ createdAt: now,
27
+ updatedAt: now,
28
+ ...data
29
+ };
30
+ }
31
+ // -----------------------------------------------------------------------------
32
+ // HELPER: Layout erstellen
33
+ // -----------------------------------------------------------------------------
34
+ let layoutIdCounter = 0;
35
+ export function createLayout(data) {
36
+ const now = new Date().toISOString();
37
+ return {
38
+ id: `layout-${Date.now()}-${++layoutIdCounter}`,
39
+ createdAt: now,
40
+ updatedAt: now,
41
+ ...data
42
+ };
43
+ }
44
+ // -----------------------------------------------------------------------------
45
+ // LAYOUT PRESETS - Vordefinierte Layouts
46
+ // -----------------------------------------------------------------------------
47
+ export function createSimpleLayout() {
48
+ return createLayout({
49
+ name: 'Einfaches Layout',
50
+ description: 'Header + Content',
51
+ grid: {
52
+ areas: `
53
+ "header"
54
+ "content"
55
+ `,
56
+ columns: '1fr',
57
+ rows: 'auto 1fr',
58
+ gap: '0'
59
+ },
60
+ regions: {
61
+ header: {
62
+ name: 'Header',
63
+ gridArea: 'header',
64
+ blocks: [],
65
+ sticky: true
66
+ },
67
+ content: {
68
+ name: 'Hauptinhalt',
69
+ gridArea: 'content',
70
+ blocks: []
71
+ }
72
+ }
73
+ });
74
+ }
75
+ export function createTwoColumnLayout() {
76
+ return createLayout({
77
+ name: '2-Spalten Layout',
78
+ description: 'Header + Sidebar + Content',
79
+ grid: {
80
+ areas: `
81
+ "header header"
82
+ "sidebar content"
83
+ `,
84
+ columns: '280px 1fr',
85
+ rows: 'auto 1fr',
86
+ gap: '0'
87
+ },
88
+ regions: {
89
+ header: {
90
+ name: 'Header',
91
+ gridArea: 'header',
92
+ blocks: [],
93
+ sticky: true
94
+ },
95
+ sidebar: {
96
+ name: 'Sidebar',
97
+ gridArea: 'sidebar',
98
+ blocks: []
99
+ },
100
+ content: {
101
+ name: 'Hauptinhalt',
102
+ gridArea: 'content',
103
+ blocks: []
104
+ }
105
+ }
106
+ });
107
+ }
108
+ export function createThreeColumnLayout() {
109
+ return createLayout({
110
+ name: '3-Spalten Layout',
111
+ description: 'Header + Sidebar + Content + Aside',
112
+ grid: {
113
+ areas: `
114
+ "header header header"
115
+ "sidebar content aside"
116
+ `,
117
+ columns: '280px 1fr 300px',
118
+ rows: 'auto 1fr',
119
+ gap: '0'
120
+ },
121
+ regions: {
122
+ header: {
123
+ name: 'Header',
124
+ gridArea: 'header',
125
+ blocks: [],
126
+ sticky: true
127
+ },
128
+ sidebar: {
129
+ name: 'Linke Sidebar',
130
+ gridArea: 'sidebar',
131
+ blocks: []
132
+ },
133
+ content: {
134
+ name: 'Hauptinhalt',
135
+ gridArea: 'content',
136
+ blocks: []
137
+ },
138
+ aside: {
139
+ name: 'Rechte Sidebar',
140
+ gridArea: 'aside',
141
+ blocks: []
142
+ }
143
+ }
144
+ });
145
+ }
146
+ export function createFullWidthLayout() {
147
+ return createLayout({
148
+ name: 'Full-Width Layout',
149
+ description: 'Header + Content + Footer',
150
+ grid: {
151
+ areas: `
152
+ "header"
153
+ "content"
154
+ "footer"
155
+ `,
156
+ columns: '1fr',
157
+ rows: 'auto 1fr auto',
158
+ gap: '0'
159
+ },
160
+ regions: {
161
+ header: {
162
+ name: 'Header',
163
+ gridArea: 'header',
164
+ blocks: [],
165
+ sticky: true
166
+ },
167
+ content: {
168
+ name: 'Hauptinhalt',
169
+ gridArea: 'content',
170
+ blocks: []
171
+ },
172
+ footer: {
173
+ name: 'Footer',
174
+ gridArea: 'footer',
175
+ blocks: []
176
+ }
177
+ }
178
+ });
179
+ }
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@schneiderelli/cms-runtime",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
+ "description": "Content System Manager Runtime - Shared types and components for CMS editor and website framework",
4
5
  "scripts": {
5
6
  "dev": "vite dev",
6
7
  "build": "vite build && npm run prepack",
@@ -1,8 +0,0 @@
1
- <script lang="ts">
2
- import type { TextBlock } from '../../types.js';
3
- let { block } = $props<{ block: TextBlock }>();
4
- </script>
5
-
6
- <p class="prose whitespace-pre-line">
7
- {@html block.content}
8
- </p>
@@ -1,7 +0,0 @@
1
- import type { TextBlock } from '../../types.ts';
2
- type $$ComponentProps = {
3
- block: TextBlock;
4
- };
5
- declare const TextBlock: import("svelte").Component<$$ComponentProps, {}, "">;
6
- type TextBlock = ReturnType<typeof TextBlock>;
7
- export default TextBlock;
package/dist/resolve.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import TextBlock from "./components/blocks/TextBlock.svelte";
2
- import HeadingBlock from "./components/blocks/HeadingBlock.svelte";
3
- import ImageBlock from "./components/blocks/ImageBlock.svelte";
4
- export declare const BlockRegistry: {
5
- text: import("svelte").Component<{
6
- block: TextBlock;
7
- }, {}, "">;
8
- heading: import("svelte").Component<{
9
- block: HeadingBlock;
10
- }, {}, "">;
11
- image: import("svelte").Component<{
12
- block: ImageBlock;
13
- }, {}, "">;
14
- };
15
- export declare const resolveBlockComponent: (block: any) => any;
package/dist/resolve.js DELETED
@@ -1,15 +0,0 @@
1
- import TextBlock from "./components/blocks/TextBlock.svelte";
2
- import HeadingBlock from "./components/blocks/HeadingBlock.svelte";
3
- import ImageBlock from "./components/blocks/ImageBlock.svelte";
4
- export const BlockRegistry = {
5
- text: TextBlock,
6
- heading: HeadingBlock,
7
- image: ImageBlock
8
- };
9
- export const resolveBlockComponent = (block) => {
10
- const Component = BlockRegistry[block.type];
11
- if (!Component) {
12
- throw new Error(`Unknown block type: ${block.type}`);
13
- }
14
- return Component;
15
- };