@papu1337/builder 0.0.5 → 1.0.1

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 (117) hide show
  1. package/dist/builder/BuilderView.svelte +158 -0
  2. package/dist/builder/BuilderView.svelte.d.ts +8 -0
  3. package/dist/builder/builder.vanilla.es.js +6514 -0
  4. package/dist/builder/builder.vanilla.umd.js +89 -0
  5. package/dist/builder/canvas/canvas.svelte +92 -0
  6. package/dist/builder/canvas/canvas.svelte.d.ts +17 -0
  7. package/dist/builder/canvas/styles.css +63 -0
  8. package/dist/builder/createBuilder.svelte.d.ts +9 -0
  9. package/dist/builder/createBuilder.svelte.js +17 -0
  10. package/dist/builder/index.d.ts +8 -0
  11. package/dist/builder/index.js +7 -0
  12. package/dist/builder/leftbar/leftBar.svelte +740 -0
  13. package/dist/builder/leftbar/leftBar.svelte.d.ts +8 -0
  14. package/dist/builder/leftbar/styles.css +152 -0
  15. package/dist/builder/pageMeta.svelte.d.ts +13 -0
  16. package/dist/builder/pageMeta.svelte.js +25 -0
  17. package/dist/builder/rightbar/rightBar.svelte +100 -0
  18. package/dist/builder/rightbar/rightBar.svelte.d.ts +10 -0
  19. package/dist/builder/rightbar/styles.css +167 -0
  20. package/dist/builder/topbar/TopBar.svelte +337 -0
  21. package/dist/builder/topbar/TopBar.svelte.d.ts +12 -0
  22. package/dist/builder/topbar/styles.css +123 -0
  23. package/dist/builder/viewport.svelte.d.ts +9 -0
  24. package/dist/builder/viewport.svelte.js +17 -0
  25. package/dist/elements/_shared/Arrow.svelte +58 -0
  26. package/dist/elements/_shared/Arrow.svelte.d.ts +11 -0
  27. package/dist/elements/_shared/GradientBorder.svelte +55 -0
  28. package/dist/elements/_shared/GradientBorder.svelte.d.ts +10 -0
  29. package/dist/elements/banner/bannerElement.svelte +101 -33
  30. package/dist/elements/banner/settings.d.ts +13 -3
  31. package/dist/elements/banner/settings.js +88 -8
  32. package/dist/elements/button/buttonElement.svelte +27 -21
  33. package/dist/elements/button/settings.d.ts +11 -9
  34. package/dist/elements/button/settings.js +18 -39
  35. package/dist/elements/globalSettings.js +5 -4
  36. package/dist/elements/howItWorks/howItWorksElement.svelte +221 -0
  37. package/dist/elements/howItWorks/howItWorksElement.svelte.d.ts +7 -0
  38. package/dist/elements/howItWorks/settings.d.ts +16 -0
  39. package/dist/elements/howItWorks/settings.js +70 -0
  40. package/dist/elements/steps/settings.d.ts +17 -0
  41. package/dist/elements/steps/settings.js +69 -0
  42. package/dist/elements/steps/stepsElement.svelte +220 -0
  43. package/dist/elements/steps/stepsElement.svelte.d.ts +7 -0
  44. package/dist/elements/terms/settings.d.ts +14 -0
  45. package/dist/elements/terms/settings.js +32 -0
  46. package/dist/elements/terms/termsElement.svelte +209 -0
  47. package/dist/elements/terms/termsElement.svelte.d.ts +7 -0
  48. package/dist/elements/text/settings.d.ts +8 -11
  49. package/dist/elements/text/settings.js +21 -51
  50. package/dist/elements/text/textElement.svelte +23 -23
  51. package/dist/hooks/index.d.ts +1 -0
  52. package/dist/hooks/index.js +1 -0
  53. package/dist/hooks/useTranslation.svelte.d.ts +9 -0
  54. package/dist/hooks/useTranslation.svelte.js +10 -0
  55. package/dist/index.d.ts +3 -0
  56. package/dist/index.js +3 -0
  57. package/dist/renderer/BuilderRenderer.svelte +30 -2
  58. package/dist/renderer/registry.js +6 -6
  59. package/dist/renderer/renderer.vanilla.es.js +1547 -1188
  60. package/dist/renderer/renderer.vanilla.umd.js +64 -39
  61. package/dist/renderer/resolve.d.ts +1 -1
  62. package/dist/renderer/resolve.js +28 -14
  63. package/dist/renderer/types.d.ts +2 -0
  64. package/dist/service/element.action.svelte.d.ts +21 -0
  65. package/dist/service/element.action.svelte.js +125 -0
  66. package/dist/service/element.history.svelte.d.ts +8 -0
  67. package/dist/service/element.history.svelte.js +36 -0
  68. package/dist/service/element.io.svelte.d.ts +4 -0
  69. package/dist/service/element.io.svelte.js +232 -0
  70. package/dist/service/element.reader.svelte.d.ts +4 -0
  71. package/dist/service/element.reader.svelte.js +51 -0
  72. package/dist/service/element.translate.svelte.d.ts +12 -0
  73. package/dist/service/element.translate.svelte.js +81 -0
  74. package/dist/service/index.d.ts +5 -0
  75. package/dist/service/index.js +5 -0
  76. package/dist/service/types.d.ts +13 -0
  77. package/dist/service/types.js +1 -0
  78. package/dist/settings/base.svelte.d.ts +6 -1
  79. package/dist/settings/base.svelte.js +61 -17
  80. package/dist/settings/components/ColorSettings.svelte +169 -40
  81. package/dist/settings/components/ColorSettings.svelte.d.ts +3 -2
  82. package/dist/settings/components/ListSettings.svelte +4 -5
  83. package/dist/settings/components/NumberSettings.svelte +117 -20
  84. package/dist/settings/components/RepeaterSettings.svelte +145 -0
  85. package/dist/settings/components/RepeaterSettings.svelte.d.ts +14 -0
  86. package/dist/settings/components/SegmentSettings.svelte +85 -0
  87. package/dist/settings/components/SegmentSettings.svelte.d.ts +5 -0
  88. package/dist/settings/components/SelectSettings.svelte +2 -3
  89. package/dist/settings/components/SettingsGroup.svelte +14 -69
  90. package/dist/settings/components/SettingsRenderer.svelte +76 -0
  91. package/dist/settings/components/SettingsRenderer.svelte.d.ts +8 -0
  92. package/dist/settings/components/TextSettings.svelte +2 -3
  93. package/dist/settings/components/TranslatableSettings.svelte +3 -4
  94. package/dist/settings/components/UploadSettings.svelte +2 -3
  95. package/dist/settings/groups.d.ts +23 -7
  96. package/dist/settings/groups.js +48 -24
  97. package/dist/settings/implementation.svelte.js +4 -0
  98. package/dist/settings/index.d.ts +2 -0
  99. package/dist/settings/index.js +2 -0
  100. package/dist/settings/mode.svelte.d.ts +4 -0
  101. package/dist/settings/mode.svelte.js +4 -0
  102. package/dist/settings/repeater.svelte.d.ts +26 -0
  103. package/dist/settings/repeater.svelte.js +70 -0
  104. package/dist/settings/types.d.ts +28 -2
  105. package/package.json +8 -2
  106. package/dist/elements/accordion/accordionElement.svelte +0 -101
  107. package/dist/elements/accordion/accordionElement.svelte.d.ts +0 -7
  108. package/dist/elements/accordion/settings.d.ts +0 -17
  109. package/dist/elements/accordion/settings.js +0 -54
  110. package/dist/elements/badge/badgeElement.svelte +0 -49
  111. package/dist/elements/badge/badgeElement.svelte.d.ts +0 -7
  112. package/dist/elements/badge/settings.d.ts +0 -14
  113. package/dist/elements/badge/settings.js +0 -47
  114. package/dist/elements/ctaCard/ctaCardElement.svelte +0 -132
  115. package/dist/elements/ctaCard/ctaCardElement.svelte.d.ts +0 -7
  116. package/dist/elements/ctaCard/settings.d.ts +0 -22
  117. package/dist/elements/ctaCard/settings.js +0 -64
@@ -0,0 +1,209 @@
1
+ <script lang="ts">
2
+ import type { TermsSettingsMap } from './settings';
3
+ import GradientBorder from '../_shared/GradientBorder.svelte';
4
+ import Arrow from '../_shared/Arrow.svelte';
5
+
6
+ let { settings }: { settings: TermsSettingsMap } = $props();
7
+
8
+ let activeMain = $state(false);
9
+ let activeSection = $state<number | null>(null);
10
+
11
+ $effect(() => {
12
+ activeMain = settings.openByDefault === 'true';
13
+ });
14
+
15
+ const toggleMain = (): void => {
16
+ activeMain = !activeMain;
17
+ };
18
+
19
+ const toggleSection = (index: number): void => {
20
+ activeSection = activeSection === index ? null : index;
21
+ };
22
+
23
+ const linesOf = (raw: string): string[] => raw.split('\n').filter((line) => line.length > 0);
24
+ </script>
25
+
26
+ <div
27
+ class="terms-root"
28
+ style="margin-top: {settings.marginTop}px; --terms-text-color: {settings.textColor};"
29
+ >
30
+ <GradientBorder className="terms-border" backgroundGradient={settings.borderColor}>
31
+ <div class="terms-panel" style="background: {settings.panelBgColor};">
32
+ <div class="terms-toggle">
33
+ <span class="terms-toggle-label">{settings.title}</span>
34
+ <button
35
+ type="button"
36
+ class="terms-toggle-icon"
37
+ aria-label={activeMain ? 'Collapse terms' : 'Expand terms'}
38
+ onclick={toggleMain}
39
+ >
40
+ <Arrow stroke={settings.textColor} width={19} height={17} direction={activeMain ? 'up' : 'down'} />
41
+ </button>
42
+ </div>
43
+
44
+ {#if activeMain}
45
+ <div class="terms-list">
46
+ {#each settings.sections as section, index (index)}
47
+ <div class="terms-section">
48
+ <div class="section-toggle">
49
+ <span class="section-title">{section.title}</span>
50
+ <button
51
+ type="button"
52
+ class="section-icon"
53
+ class:section-icon--active={activeSection === index}
54
+ aria-label={activeSection === index ? 'Collapse section' : 'Expand section'}
55
+ onclick={() => toggleSection(index)}
56
+ >
57
+ <Arrow
58
+ stroke={settings.textColor}
59
+ width={19}
60
+ height={17}
61
+ direction={activeSection === index ? 'up' : 'down'}
62
+ />
63
+ </button>
64
+ </div>
65
+ {#if activeSection === index}
66
+ <div class="section-body">
67
+ {#each linesOf(section.lines) as line, lineIndex (lineIndex)}
68
+ <p class="section-line">{line}</p>
69
+ {/each}
70
+ </div>
71
+ {/if}
72
+ </div>
73
+ {/each}
74
+ </div>
75
+ {/if}
76
+ </div>
77
+ </GradientBorder>
78
+ </div>
79
+
80
+ <style>
81
+ .terms-root {
82
+ margin-left: auto;
83
+ margin-right: auto;
84
+ width: 100%;
85
+ max-width: 56rem;
86
+ display: flex;
87
+ flex-direction: column;
88
+ gap: 0.5rem;
89
+ }
90
+
91
+ :global(.terms-border) {
92
+ overflow: hidden;
93
+ border-radius: 8px;
94
+ }
95
+
96
+ .terms-panel {
97
+ padding: 0 16px;
98
+ border-radius: inherit;
99
+ }
100
+
101
+ .terms-toggle {
102
+ width: 100%;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: space-between;
106
+ background: transparent;
107
+ border: none;
108
+ padding: 12px 0;
109
+ border-radius: 8px;
110
+ color: var(--terms-text-color, #b1cadf);
111
+ }
112
+
113
+ .terms-toggle-label {
114
+ font-size: 1.125rem;
115
+ font-weight: 800;
116
+ line-height: 125%;
117
+ color: var(--terms-text-color, #b1cadf);
118
+ }
119
+
120
+ .terms-toggle-icon {
121
+ min-width: 30px;
122
+ min-height: 30px;
123
+ padding: 0;
124
+ margin: 0;
125
+ font: inherit;
126
+ color: inherit;
127
+ appearance: none;
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ border-radius: 9999px;
132
+ background: rgba(228, 246, 255, 0.1);
133
+ border: 1px solid rgba(177, 202, 223, 0.1);
134
+ cursor: pointer;
135
+ transition: background 0.15s ease;
136
+ }
137
+
138
+ .terms-toggle-icon:hover {
139
+ background: rgba(228, 246, 255, 0.2);
140
+ }
141
+
142
+ .terms-list {
143
+ margin-top: 1px;
144
+ padding: 1rem 0;
145
+ color: var(--terms-text-color, #fff);
146
+ border-radius: 0 0 8px 8px;
147
+ }
148
+
149
+ .terms-section {
150
+ overflow: hidden;
151
+ border-top: 1px solid rgba(177, 202, 223, 0.2);
152
+ }
153
+
154
+ .section-toggle {
155
+ width: 100%;
156
+ display: flex;
157
+ justify-content: space-between;
158
+ align-items: center;
159
+ background: transparent;
160
+ border: none;
161
+ padding: 12px 0;
162
+ border-radius: 8px;
163
+ color: var(--terms-text-color, #fff);
164
+ }
165
+
166
+ .section-title {
167
+ text-align: left;
168
+ color: var(--terms-text-color, #b1cadf);
169
+ font-size: 0.95rem;
170
+ font-weight: 600;
171
+ }
172
+
173
+ .section-icon {
174
+ height: 30px;
175
+ min-width: 30px;
176
+ padding: 0;
177
+ margin: 0;
178
+ font: inherit;
179
+ appearance: none;
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ border-radius: 100%;
184
+ background: transparent;
185
+ border: 1px solid transparent;
186
+ color: inherit;
187
+ cursor: pointer;
188
+ transition: background 0.2s ease, border 0.2s ease;
189
+ }
190
+
191
+ .section-icon--active {
192
+ background: #1a364c;
193
+ border-top: 0.5px solid rgba(94, 131, 161, 0.1);
194
+ backdrop-filter: blur(15px);
195
+ }
196
+
197
+ .section-body {
198
+ margin-top: 1px;
199
+ padding: 0 0 12px;
200
+ color: var(--terms-text-color, #fff);
201
+ }
202
+
203
+ .section-line {
204
+ margin: 0 0 4px;
205
+ font-size: 14px;
206
+ color: var(--terms-text-color, #b1cadf);
207
+ line-height: 1.5;
208
+ }
209
+ </style>
@@ -0,0 +1,7 @@
1
+ import type { TermsSettingsMap } from './settings';
2
+ type $$ComponentProps = {
3
+ settings: TermsSettingsMap;
4
+ };
5
+ declare const TermsElement: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type TermsElement = ReturnType<typeof TermsElement>;
7
+ export default TermsElement;
@@ -1,16 +1,13 @@
1
- import { ColorSetting, NumberSetting, TextSetting, SelectSetting, TranslatableSetting, Settings, type InferSettingsMapType } from '../../settings';
1
+ import { Settings, NumberSetting, SegmentSetting, type InferSettingsMapType } from '../../settings';
2
2
  export declare const textSettings: Settings<{
3
- text: TranslatableSetting;
4
- style: Settings<{
5
- color: ColorSetting;
3
+ marginTop: NumberSetting;
4
+ align: SegmentSetting;
5
+ typography: Settings<{
6
+ text: import("../../settings").TranslatableSetting;
7
+ color: import("../../settings").ColorSetting;
6
8
  fontSize: NumberSetting;
7
- fontWeight: SelectSetting;
8
- lineHeight: TextSetting;
9
- align: SelectSetting;
10
- }>;
11
- layout: Settings<{
12
- marginTop: NumberSetting;
13
- marginBottom: NumberSetting;
9
+ fontFamily: import("../../settings").TextSetting;
10
+ fontWeight: import("../../settings").SelectSetting;
14
11
  }>;
15
12
  }>;
16
13
  export type TextSettingsMap = InferSettingsMapType<typeof textSettings>;
@@ -1,56 +1,26 @@
1
- import { ColorSetting, NumberSetting, TextSetting, SelectSetting, TranslatableSetting, Settings } from '../../settings';
1
+ import { Settings, NumberSetting, SegmentSetting, TypographySettings } from '../../settings';
2
2
  export const textSettings = new Settings('Text', {
3
- text: new TranslatableSetting({
4
- title: 'Text',
5
- defaultValue: { en: 'Enter your text here' }
3
+ marginTop: new NumberSetting({
4
+ title: 'Margin Top',
5
+ defaultValue: 0,
6
+ extra: { min: 0, max: 200 }
6
7
  }),
7
- style: new Settings('Style', {
8
- color: new ColorSetting({
9
- title: 'Text Color',
10
- defaultValue: '#ffffff'
11
- }),
12
- fontSize: new NumberSetting({
13
- title: 'Font Size',
14
- defaultValue: 16,
15
- extra: { min: 8, max: 96, step: 1 }
16
- }),
17
- fontWeight: new SelectSetting({
18
- title: 'Font Weight',
19
- defaultValue: '400',
20
- extra: {
21
- options: [
22
- { label: 'Normal', value: '400' },
23
- { label: 'Medium', value: '500' },
24
- { label: 'Semi Bold', value: '600' },
25
- { label: 'Bold', value: '700' },
26
- { label: 'Extra Bold', value: '800' }
27
- ]
28
- }
29
- }),
30
- lineHeight: new TextSetting({
31
- title: 'Line Height',
32
- defaultValue: '120%'
33
- }),
34
- align: new SelectSetting({
35
- title: 'Text Align',
36
- defaultValue: 'center',
37
- extra: {
38
- options: [
39
- { label: 'Left', value: 'left' },
40
- { label: 'Center', value: 'center' },
41
- { label: 'Right', value: 'right' }
42
- ]
43
- }
44
- })
8
+ align: new SegmentSetting({
9
+ title: 'Align',
10
+ defaultValue: 'center',
11
+ extra: {
12
+ options: [
13
+ { label: 'Left', value: 'left', icon: 'align-left' },
14
+ { label: 'Center', value: 'center', icon: 'align-center' },
15
+ { label: 'Right', value: 'right', icon: 'align-right' }
16
+ ]
17
+ }
45
18
  }),
46
- layout: new Settings('Layout', {
47
- marginTop: new NumberSetting({
48
- title: 'Margin Top',
49
- defaultValue: 0
50
- }),
51
- marginBottom: new NumberSetting({
52
- title: 'Margin Bottom',
53
- defaultValue: 0
54
- })
19
+ typography: TypographySettings({
20
+ text: 'UEFA Champions League',
21
+ color: '#FFFFFF',
22
+ fontSize: 24,
23
+ fontWeight: '700',
24
+ colorGradient: true
55
25
  })
56
26
  });
@@ -2,36 +2,36 @@
2
2
  import type { TextSettingsMap } from './settings';
3
3
 
4
4
  let { settings }: { settings: TextSettingsMap } = $props();
5
+
6
+ const isGradient = $derived(/gradient\(/i.test(settings.typography.color));
7
+
8
+ const colorStyle = $derived(
9
+ isGradient
10
+ ? `background-image: ${settings.typography.color}; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;`
11
+ : `color: ${settings.typography.color};`
12
+ );
5
13
  </script>
6
14
 
7
- <div
8
- class="text-wrapper"
9
- style="margin-top: {settings.marginTop}px; margin-bottom: {settings.marginBottom}px;"
15
+ <p
16
+ class="text-element"
17
+ style="
18
+ margin-top: {settings.marginTop}px;
19
+ text-align: {settings.align};
20
+ font-size: {settings.typography.fontSize}px;
21
+ font-weight: {settings.typography.fontWeight};
22
+ font-family: {settings.typography.fontFamily};
23
+ {colorStyle}
24
+ "
10
25
  >
11
- <p
12
- class="text-element"
13
- style="
14
- color: {settings.color};
15
- font-size: {settings.fontSize}px;
16
- font-weight: {settings.fontWeight};
17
- line-height: {settings.lineHeight};
18
- text-align: {settings.align};
19
- "
20
- >
21
- {settings.text}
22
- </p>
23
- </div>
26
+ {settings.typography.text}
27
+ </p>
24
28
 
25
29
  <style>
26
- .text-wrapper {
30
+ .text-element {
31
+ margin: 0 auto;
27
32
  width: 100%;
28
33
  max-width: 750px;
29
- margin-left: auto;
30
- margin-right: auto;
31
- }
32
-
33
- .text-element {
34
- margin: 0;
34
+ line-height: 1.4;
35
35
  word-wrap: break-word;
36
36
  white-space: pre-wrap;
37
37
  }
@@ -0,0 +1 @@
1
+ export * from './useTranslation.svelte';
@@ -0,0 +1 @@
1
+ export * from './useTranslation.svelte';
@@ -0,0 +1,9 @@
1
+ export declare const languages: {
2
+ code: string;
3
+ label: string;
4
+ }[];
5
+ export type LanguageCode = (typeof languages)[number]['code'];
6
+ export declare const locale: {
7
+ current: LanguageCode;
8
+ };
9
+ export declare function resolve(translations: Record<string, string>): string;
@@ -0,0 +1,10 @@
1
+ export const languages = [
2
+ { code: 'en', label: 'English' },
3
+ { code: 'es', label: 'Español' },
4
+ { code: 'fr', label: 'Français' },
5
+ { code: 'de', label: 'Deutsch' }
6
+ ];
7
+ export const locale = $state({ current: 'en' });
8
+ export function resolve(translations) {
9
+ return translations[locale.current] ?? translations['en'] ?? '';
10
+ }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export * from './settings/base.svelte';
2
+ export * from './settings/mode.svelte';
2
3
  export * from './settings/implementation.svelte';
4
+ export * from './settings/repeater.svelte';
5
+ export * from './settings/groups';
3
6
  export * from './settings/types';
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
1
  export * from './settings/base.svelte';
2
+ export * from './settings/mode.svelte';
2
3
  export * from './settings/implementation.svelte';
4
+ export * from './settings/repeater.svelte';
5
+ export * from './settings/groups';
3
6
  export * from './settings/types';
@@ -3,7 +3,26 @@
3
3
  import { componentRegistry } from './registry.js';
4
4
  import { resolveSettings } from './resolve.js';
5
5
 
6
- let { data, locale = 'en', containerClass = '', containerStyle = '' }: RendererProps = $props();
6
+ let {
7
+ data,
8
+ locale = 'en',
9
+ containerClass = '',
10
+ containerStyle = '',
11
+ mobileBreakpoint = 768
12
+ }: RendererProps = $props();
13
+
14
+ let isMobile = $state(false);
15
+
16
+ $effect(() => {
17
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return;
18
+ const query = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);
19
+ const update = () => {
20
+ isMobile = query.matches;
21
+ };
22
+ update();
23
+ query.addEventListener('change', update);
24
+ return () => query.removeEventListener('change', update);
25
+ });
7
26
 
8
27
  const globalStyle = $derived(() => {
9
28
  const g = data.global;
@@ -13,6 +32,11 @@
13
32
  `padding-bottom: ${g.paddingBottom ?? 0}px`,
14
33
  `padding-left: ${g.paddingLeft ?? 0}px`,
15
34
  `padding-right: ${g.paddingRight ?? 0}px`,
35
+ 'display: flex',
36
+ 'flex-direction: column',
37
+ 'align-items: stretch',
38
+ 'container-type: inline-size',
39
+ 'container-name: page',
16
40
  containerStyle
17
41
  ]
18
42
  .filter(Boolean)
@@ -23,7 +47,11 @@
23
47
  data.components
24
48
  .map((entry) => ({
25
49
  component: componentRegistry[entry.name],
26
- settings: resolveSettings(entry.settings, locale),
50
+ settings: resolveSettings(
51
+ entry.settings,
52
+ locale,
53
+ isMobile ? entry.mobileSettings : undefined
54
+ ),
27
55
  name: entry.name
28
56
  }))
29
57
  .filter((c) => c.component !== undefined)
@@ -1,14 +1,14 @@
1
1
  import BannerElement from '../elements/banner/bannerElement.svelte';
2
- import BadgeElement from '../elements/badge/badgeElement.svelte';
3
2
  import TextElement from '../elements/text/textElement.svelte';
4
3
  import ButtonElement from '../elements/button/buttonElement.svelte';
5
- import AccordionElement from '../elements/accordion/accordionElement.svelte';
6
- import CtaCardElement from '../elements/ctaCard/ctaCardElement.svelte';
4
+ import HowItWorksElement from '../elements/howItWorks/howItWorksElement.svelte';
5
+ import StepsElement from '../elements/steps/stepsElement.svelte';
6
+ import TermsElement from '../elements/terms/termsElement.svelte';
7
7
  export const componentRegistry = {
8
8
  banner: BannerElement,
9
- badge: BadgeElement,
10
9
  text: TextElement,
11
10
  button: ButtonElement,
12
- accordion: AccordionElement,
13
- ctaCard: CtaCardElement
11
+ howItWorks: HowItWorksElement,
12
+ steps: StepsElement,
13
+ terms: TermsElement
14
14
  };