@papu1337/builder 0.0.4 → 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 (124) 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 +120 -24
  30. package/dist/elements/banner/settings.d.ts +15 -3
  31. package/dist/elements/banner/settings.js +93 -8
  32. package/dist/elements/button/buttonElement.svelte +31 -21
  33. package/dist/elements/button/settings.d.ts +12 -9
  34. package/dist/elements/button/settings.js +21 -38
  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 +8 -5
  45. package/dist/elements/terms/settings.js +26 -33
  46. package/dist/elements/terms/termsElement.svelte +164 -79
  47. package/dist/elements/text/settings.d.ts +5 -3
  48. package/dist/elements/text/settings.js +22 -8
  49. package/dist/elements/text/textElement.svelte +25 -20
  50. package/dist/hooks/index.d.ts +1 -0
  51. package/dist/hooks/index.js +1 -0
  52. package/dist/hooks/useTranslation.svelte.d.ts +9 -0
  53. package/dist/hooks/useTranslation.svelte.js +10 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.js +3 -0
  56. package/dist/renderer/BuilderRenderer.svelte +30 -2
  57. package/dist/renderer/registry.js +7 -13
  58. package/dist/renderer/renderer.vanilla.es.js +1395 -1218
  59. package/dist/renderer/renderer.vanilla.umd.js +64 -31
  60. package/dist/renderer/resolve.d.ts +1 -1
  61. package/dist/renderer/resolve.js +28 -14
  62. package/dist/renderer/types.d.ts +2 -0
  63. package/dist/service/element.action.svelte.d.ts +21 -0
  64. package/dist/service/element.action.svelte.js +125 -0
  65. package/dist/service/element.history.svelte.d.ts +8 -0
  66. package/dist/service/element.history.svelte.js +36 -0
  67. package/dist/service/element.io.svelte.d.ts +4 -0
  68. package/dist/service/element.io.svelte.js +232 -0
  69. package/dist/service/element.reader.svelte.d.ts +4 -0
  70. package/dist/service/element.reader.svelte.js +51 -0
  71. package/dist/service/element.translate.svelte.d.ts +12 -0
  72. package/dist/service/element.translate.svelte.js +81 -0
  73. package/dist/service/index.d.ts +5 -0
  74. package/dist/service/index.js +5 -0
  75. package/dist/service/types.d.ts +13 -0
  76. package/dist/service/types.js +1 -0
  77. package/dist/settings/base.svelte.d.ts +6 -1
  78. package/dist/settings/base.svelte.js +64 -22
  79. package/dist/settings/components/ColorSettings.svelte +174 -45
  80. package/dist/settings/components/ColorSettings.svelte.d.ts +3 -2
  81. package/dist/settings/components/ListSettings.svelte +11 -12
  82. package/dist/settings/components/NumberSettings.svelte +121 -24
  83. package/dist/settings/components/RepeaterSettings.svelte +145 -0
  84. package/dist/settings/components/RepeaterSettings.svelte.d.ts +14 -0
  85. package/dist/settings/components/SegmentSettings.svelte +85 -0
  86. package/dist/settings/components/SegmentSettings.svelte.d.ts +5 -0
  87. package/dist/settings/components/SelectSettings.svelte +6 -7
  88. package/dist/settings/components/SettingsGroup.svelte +13 -68
  89. package/dist/settings/components/SettingsRenderer.svelte +76 -0
  90. package/dist/settings/components/SettingsRenderer.svelte.d.ts +8 -0
  91. package/dist/settings/components/TextSettings.svelte +52 -2
  92. package/dist/settings/components/TranslatableSettings.svelte +16 -17
  93. package/dist/settings/components/UploadSettings.svelte +7 -8
  94. package/dist/settings/groups.d.ts +23 -7
  95. package/dist/settings/groups.js +48 -24
  96. package/dist/settings/implementation.svelte.js +4 -0
  97. package/dist/settings/index.d.ts +2 -0
  98. package/dist/settings/index.js +2 -0
  99. package/dist/settings/mode.svelte.d.ts +4 -0
  100. package/dist/settings/mode.svelte.js +4 -0
  101. package/dist/settings/repeater.svelte.d.ts +26 -0
  102. package/dist/settings/repeater.svelte.js +70 -0
  103. package/dist/settings/types.d.ts +28 -2
  104. package/package.json +11 -5
  105. package/dist/elements/auth/authElement.svelte +0 -115
  106. package/dist/elements/auth/authElement.svelte.d.ts +0 -7
  107. package/dist/elements/auth/settings.d.ts +0 -25
  108. package/dist/elements/auth/settings.js +0 -63
  109. package/dist/elements/badge/badgeElement.svelte +0 -48
  110. package/dist/elements/badge/badgeElement.svelte.d.ts +0 -7
  111. package/dist/elements/badge/settings.d.ts +0 -13
  112. package/dist/elements/badge/settings.js +0 -57
  113. package/dist/elements/cards/cardsElement.svelte +0 -136
  114. package/dist/elements/cards/cardsElement.svelte.d.ts +0 -7
  115. package/dist/elements/cards/settings.d.ts +0 -14
  116. package/dist/elements/cards/settings.js +0 -52
  117. package/dist/elements/divider/dividerElement.svelte +0 -34
  118. package/dist/elements/divider/dividerElement.svelte.d.ts +0 -7
  119. package/dist/elements/divider/settings.d.ts +0 -7
  120. package/dist/elements/divider/settings.js +0 -15
  121. package/dist/elements/products/productsElement.svelte +0 -283
  122. package/dist/elements/products/productsElement.svelte.d.ts +0 -7
  123. package/dist/elements/products/settings.d.ts +0 -16
  124. package/dist/elements/products/settings.js +0 -56
@@ -0,0 +1,92 @@
1
+ <script lang="ts">
2
+ import { untrack } from "svelte";
3
+ import type { ElementEntry } from "../../service";
4
+ import type { SvelteMap } from "svelte/reactivity";
5
+ import { dndzone } from "svelte-dnd-action";
6
+ import { GLOBAL_KEY } from "../../service";
7
+ import { frameWidth, viewport } from "../viewport.svelte";
8
+
9
+ import "./styles.css";
10
+
11
+ interface CanvasProps {
12
+ ComponentsInstance: SvelteMap<string, ElementEntry>;
13
+ selectComponent: (component: ElementEntry | null) => void;
14
+ GlobalSettings: ElementEntry | null;
15
+ handleDragAndDrop: (items: { id: string; value: ElementEntry }[]) => void;
16
+ getSelectedComponent: () => ElementEntry | null;
17
+ mode: "edit" | "view";
18
+ }
19
+
20
+ let {
21
+ ComponentsInstance,
22
+ selectComponent,
23
+ GlobalSettings,
24
+ handleDragAndDrop,
25
+ getSelectedComponent,
26
+ mode,
27
+ }: CanvasProps = $props();
28
+ const globalSettings = $derived(GlobalSettings?.settings.values);
29
+
30
+ let items = $state(
31
+ untrack(() =>
32
+ Array.from(ComponentsInstance, ([id, value]) => ({ id, value })).filter(
33
+ (item) => item.id !== GLOBAL_KEY,
34
+ ),
35
+ ),
36
+ );
37
+
38
+ $effect(() => {
39
+ items = Array.from(ComponentsInstance, ([id, value]) => ({
40
+ id,
41
+ value,
42
+ })).filter((item) => item.id !== GLOBAL_KEY);
43
+ });
44
+
45
+ const handleDnd = (e: CustomEvent) => {
46
+ items = e.detail.items;
47
+ if (e.type === "finalize") {
48
+ handleDragAndDrop(items);
49
+ }
50
+ };
51
+ </script>
52
+
53
+ <section class="canvas-root">
54
+ <div
55
+ role="button"
56
+ tabindex="0"
57
+ class="canvas-container"
58
+ style="max-width: {frameWidth()}px; padding-top: {globalSettings?.paddingTop}px; padding-bottom: {globalSettings?.paddingBottom}px; padding-left: {globalSettings?.paddingLeft}px; padding-right: {globalSettings?.paddingRight}px; background: {globalSettings?.background};"
59
+ onclick={(e) => {
60
+ e.stopPropagation();
61
+ selectComponent(null);
62
+ }}
63
+ onkeydown={(e) => e.key === "Enter" && selectComponent(null)}
64
+ >
65
+ <div
66
+ class="components-wrapper"
67
+ use:dndzone={{ items }}
68
+ onconsider={handleDnd}
69
+ onfinalize={handleDnd}
70
+ >
71
+ {#each items as item (item.id)}
72
+ <div
73
+ role="button"
74
+ tabindex="0"
75
+ onclick={(e) => {
76
+ e.stopPropagation();
77
+ selectComponent(item.value);
78
+ }}
79
+ onkeydown={(e) => e.key === "Enter" && selectComponent(item.value)}
80
+ class={`canvas-item ${item.value.id === getSelectedComponent()?.id ? "selected" : ""}`}
81
+ >
82
+ <div
83
+ class="canvas-item-content"
84
+ style={mode === "edit" && !viewport.preview ? "pointer-events: none;" : ""}
85
+ >
86
+ <item.value.component settings={item.value.settings.values} />
87
+ </div>
88
+ </div>
89
+ {/each}
90
+ </div>
91
+ </div>
92
+ </section>
@@ -0,0 +1,17 @@
1
+ import type { ElementEntry } from "../../service";
2
+ import type { SvelteMap } from "svelte/reactivity";
3
+ import "./styles.css";
4
+ interface CanvasProps {
5
+ ComponentsInstance: SvelteMap<string, ElementEntry>;
6
+ selectComponent: (component: ElementEntry | null) => void;
7
+ GlobalSettings: ElementEntry | null;
8
+ handleDragAndDrop: (items: {
9
+ id: string;
10
+ value: ElementEntry;
11
+ }[]) => void;
12
+ getSelectedComponent: () => ElementEntry | null;
13
+ mode: "edit" | "view";
14
+ }
15
+ declare const Canvas: import("svelte").Component<CanvasProps, {}, "">;
16
+ type Canvas = ReturnType<typeof Canvas>;
17
+ export default Canvas;
@@ -0,0 +1,63 @@
1
+ .canvas-root {
2
+ flex: 1;
3
+ background-color: var(--bg-base);
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ justify-content: flex-start;
8
+ box-sizing: border-box;
9
+ height: 100%;
10
+ overflow-y: auto;
11
+ padding: 28px 24px 40px;
12
+ }
13
+
14
+ .canvas-container {
15
+ flex: none;
16
+ width: 100%;
17
+ max-width: 1040px;
18
+ margin: 0 auto;
19
+ border-radius: 14px;
20
+ overflow: hidden;
21
+ box-shadow: var(--shadow-lg);
22
+ box-sizing: border-box;
23
+ color: #fff;
24
+ }
25
+
26
+ .components-wrapper {
27
+ position: relative;
28
+ min-height: 200px;
29
+ display: flex;
30
+ flex-direction: column;
31
+ align-items: stretch;
32
+ container-type: inline-size;
33
+ container-name: page;
34
+ }
35
+
36
+ .canvas-item {
37
+ display: block;
38
+ width: 100%;
39
+ position: relative;
40
+ cursor: pointer;
41
+ background: transparent;
42
+ border: none;
43
+ padding: 0;
44
+ text-align: left;
45
+ box-sizing: border-box;
46
+ outline: 2px dashed transparent;
47
+ outline-offset: -2px;
48
+ transition: outline-color 0.15s ease;
49
+ }
50
+
51
+ .canvas-item:hover {
52
+ outline-color: rgba(46, 107, 55, 0.45);
53
+ }
54
+
55
+ .canvas-item.selected {
56
+ outline-color: var(--accent);
57
+ outline-style: solid;
58
+ }
59
+
60
+ .canvas-item-content {
61
+ max-width: 100%;
62
+ overflow: visible;
63
+ }
@@ -0,0 +1,9 @@
1
+ export interface CreateBuilderOptions {
2
+ data?: unknown;
3
+ save?: (state: unknown) => void | Promise<void>;
4
+ translate?: ((text: string, targetLang: string) => Promise<string>) | null;
5
+ }
6
+ export interface BuilderInstance {
7
+ destroy(): void;
8
+ }
9
+ export declare function createBuilder(target: HTMLElement, options?: CreateBuilderOptions): BuilderInstance;
@@ -0,0 +1,17 @@
1
+ import { mount, unmount } from 'svelte';
2
+ import BuilderView from './BuilderView.svelte';
3
+ export function createBuilder(target, options = {}) {
4
+ const instance = mount(BuilderView, {
5
+ target,
6
+ props: {
7
+ data: options.data,
8
+ save: options.save,
9
+ translate: options.translate ?? null
10
+ }
11
+ });
12
+ return {
13
+ destroy() {
14
+ unmount(instance);
15
+ }
16
+ };
17
+ }
@@ -0,0 +1,8 @@
1
+ import LeftBar from './leftbar/leftBar.svelte';
2
+ import TopBar from './topbar/TopBar.svelte';
3
+ import Canvas from './canvas/canvas.svelte';
4
+ import RightBar from './rightbar/rightBar.svelte';
5
+ export { LeftBar, TopBar, Canvas, RightBar };
6
+ export { default as BuilderView } from './BuilderView.svelte';
7
+ export { createBuilder } from './createBuilder.svelte';
8
+ export type { CreateBuilderOptions, BuilderInstance } from './createBuilder.svelte';
@@ -0,0 +1,7 @@
1
+ import LeftBar from './leftbar/leftBar.svelte';
2
+ import TopBar from './topbar/TopBar.svelte';
3
+ import Canvas from './canvas/canvas.svelte';
4
+ import RightBar from './rightbar/rightBar.svelte';
5
+ export { LeftBar, TopBar, Canvas, RightBar };
6
+ export { default as BuilderView } from './BuilderView.svelte';
7
+ export { createBuilder } from './createBuilder.svelte';