@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
@@ -2,45 +2,141 @@
2
2
  import type { BannerSettingsMap } from './settings';
3
3
 
4
4
  let { settings }: { settings: BannerSettingsMap } = $props();
5
+
6
+ const hasImage = $derived(Boolean(settings.desktopImage || settings.mobileImage));
7
+ const layers = $derived(settings.layers ?? []);
8
+
9
+ const alignItems = $derived(
10
+ settings.textAlign === 'left'
11
+ ? 'flex-start'
12
+ : settings.textAlign === 'right'
13
+ ? 'flex-end'
14
+ : 'center'
15
+ );
16
+
17
+ const colorStyle = (color: string): string =>
18
+ /gradient\(/i.test(color)
19
+ ? `background-image: ${color}; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;`
20
+ : `color: ${color};`;
5
21
  </script>
6
22
 
7
- {#if settings.image}
8
- <img src={settings.image} alt="Banner" class="banner-image" />
9
- {:else}
10
- <div class="banner-placeholder">
11
- <span class="placeholder-icon">&#128444;</span>
12
- <span class="placeholder-text">No image — select this element and upload one</span>
23
+ <div class="banner-root" style="margin-top: {settings.marginTop}px;">
24
+ <div class="banner-media">
25
+ {#if hasImage}
26
+ {#if settings.desktopImage}
27
+ <img
28
+ class="banner-img banner-desktop"
29
+ src={settings.desktopImage}
30
+ alt="Banner"
31
+ style="object-fit: {settings.objectFit};"
32
+ />
33
+ {/if}
34
+ {#if settings.mobileImage}
35
+ <img
36
+ class="banner-img banner-mobile"
37
+ src={settings.mobileImage}
38
+ alt="Banner"
39
+ style="object-fit: {settings.objectFit};"
40
+ />
41
+ {/if}
42
+ {:else}
43
+ <div class="banner-empty">Banner image</div>
44
+ {/if}
45
+
46
+ {#if settings.overlayColor && settings.overlayColor !== 'rgba(0,0,0,0)'}
47
+ <div class="banner-scrim" style="background: {settings.overlayColor};"></div>
48
+ {/if}
13
49
  </div>
14
- {/if}
50
+
51
+ {#if layers.length > 0}
52
+ <div
53
+ class="banner-stack"
54
+ style="
55
+ top: {settings.verticalPosition}%;
56
+ align-items: {alignItems};
57
+ text-align: {settings.textAlign};
58
+ gap: {settings.gap}px;
59
+ "
60
+ >
61
+ {#each layers as layer, index (index)}
62
+ {#if layer.text}
63
+ <span
64
+ class="banner-layer-text"
65
+ style="
66
+ font-size: {layer.fontSize}px;
67
+ font-weight: {layer.fontWeight};
68
+ {colorStyle(layer.color)}
69
+ "
70
+ >
71
+ {layer.text}
72
+ </span>
73
+ {/if}
74
+ {/each}
75
+ </div>
76
+ {/if}
77
+ </div>
15
78
 
16
79
  <style>
17
- .banner-image {
80
+ .banner-root {
81
+ position: relative;
82
+ width: 100%;
83
+ }
84
+
85
+ .banner-media {
86
+ position: relative;
87
+ width: 100%;
88
+ overflow: hidden;
89
+ }
90
+
91
+ .banner-img {
18
92
  display: block;
19
93
  width: 100%;
20
- height: auto;
21
- max-height: 480px;
22
- object-fit: cover;
23
94
  }
24
95
 
25
- .banner-placeholder {
96
+ .banner-mobile {
97
+ display: none;
98
+ }
99
+
100
+ @container page (max-width: 767px) {
101
+ .banner-desktop {
102
+ display: none;
103
+ }
104
+ .banner-mobile {
105
+ display: block;
106
+ }
107
+ }
108
+
109
+ .banner-empty {
26
110
  display: flex;
27
- flex-direction: column;
28
111
  align-items: center;
29
112
  justify-content: center;
30
- gap: 10px;
31
- padding: 48px 24px;
32
- border: 1.5px dashed rgba(255, 255, 255, 0.12);
33
- background: rgba(255, 255, 255, 0.03);
113
+ min-height: 280px;
114
+ font-size: 0.85rem;
115
+ color: rgba(255, 255, 255, 0.5);
116
+ background: rgba(255, 255, 255, 0.04);
117
+ border: 1px dashed rgba(255, 255, 255, 0.15);
118
+ }
119
+
120
+ .banner-scrim {
121
+ position: absolute;
122
+ inset: 0;
123
+ pointer-events: none;
34
124
  }
35
125
 
36
- .placeholder-icon {
37
- font-size: 2rem;
38
- opacity: 0.3;
126
+ .banner-stack {
127
+ position: absolute;
128
+ left: 0;
129
+ right: 0;
130
+ transform: translateY(-50%);
131
+ display: flex;
132
+ flex-direction: column;
133
+ padding: 0 1.5rem;
134
+ pointer-events: none;
39
135
  }
40
136
 
41
- .placeholder-text {
42
- font-size: 0.8rem;
43
- color: rgba(255, 255, 255, 0.3);
44
- text-align: center;
137
+ .banner-layer-text {
138
+ display: inline-block;
139
+ line-height: 1.1;
140
+ max-width: 100%;
45
141
  }
46
142
  </style>
@@ -1,6 +1,18 @@
1
- import { NumberSetting, UploadSetting, Settings, type InferSettingsMapType } from '../../settings';
1
+ import { UploadSetting, NumberSetting, SelectSetting, SegmentSetting, ColorSetting, TranslatableSetting, RepeaterSetting, Settings, type InferSettingsMapType } from '../../settings';
2
2
  export declare const bannerSettings: Settings<{
3
- image: UploadSetting;
4
- number: NumberSetting;
3
+ marginTop: NumberSetting;
4
+ objectFit: SelectSetting;
5
+ desktopImage: UploadSetting;
6
+ mobileImage: UploadSetting;
7
+ overlayColor: ColorSetting;
8
+ verticalPosition: NumberSetting;
9
+ textAlign: SegmentSetting;
10
+ gap: NumberSetting;
11
+ layers: RepeaterSetting<{
12
+ text: TranslatableSetting;
13
+ color: ColorSetting;
14
+ fontSize: NumberSetting;
15
+ fontWeight: SelectSetting;
16
+ }>;
5
17
  }>;
6
18
  export type BannerSettingsMap = InferSettingsMapType<typeof bannerSettings>;
@@ -1,15 +1,100 @@
1
- import { NumberSetting, UploadSetting, Settings } from '../../settings';
1
+ import { UploadSetting, NumberSetting, SelectSetting, SegmentSetting, ColorSetting, TranslatableSetting, RepeaterSetting, Settings } from '../../settings';
2
+ const FONT_WEIGHTS = [
3
+ { label: 'Light', value: '300' },
4
+ { label: 'Regular', value: '400' },
5
+ { label: 'Medium', value: '500' },
6
+ { label: 'Semi Bold', value: '600' },
7
+ { label: 'Bold', value: '700' },
8
+ { label: 'Extra Bold', value: '800' },
9
+ { label: 'Black', value: '900' }
10
+ ];
11
+ const LAYER_SEEDS = [
12
+ { text: 'Cashback', color: '#FFFFFF', fontSize: 34, fontWeight: '700' },
13
+ { text: 'Get 15% Back', color: '#E8C75C', fontSize: 46, fontWeight: '800' },
14
+ { text: 'Every Eligible Ticket Gets Covered', color: '#FFFFFF', fontSize: 16, fontWeight: '500' }
15
+ ];
16
+ const layerFactory = (index) => {
17
+ const seed = LAYER_SEEDS[index] ?? {
18
+ text: 'New text',
19
+ color: '#FFFFFF',
20
+ fontSize: 24,
21
+ fontWeight: '700'
22
+ };
23
+ return new Settings('Text layer', {
24
+ text: new TranslatableSetting({ title: 'Text', defaultValue: { en: seed.text } }),
25
+ color: new ColorSetting({
26
+ title: 'Color',
27
+ defaultValue: seed.color,
28
+ extra: { allowGradient: true }
29
+ }),
30
+ fontSize: new NumberSetting({
31
+ title: 'Font Size',
32
+ defaultValue: seed.fontSize,
33
+ extra: { min: 8, max: 120, step: 1 }
34
+ }),
35
+ fontWeight: new SelectSetting({
36
+ title: 'Font Weight',
37
+ defaultValue: seed.fontWeight,
38
+ extra: { options: FONT_WEIGHTS }
39
+ })
40
+ });
41
+ };
2
42
  export const bannerSettings = new Settings('Banner', {
3
- image: new UploadSetting({
4
- title: 'Image',
43
+ marginTop: new NumberSetting({
44
+ title: 'Margin Top',
45
+ defaultValue: 0,
46
+ extra: { min: 0, max: 200 }
47
+ }),
48
+ objectFit: new SelectSetting({
49
+ title: 'Fit',
50
+ defaultValue: 'cover',
51
+ extra: {
52
+ options: [
53
+ { label: 'Cover', value: 'cover' },
54
+ { label: 'Contain', value: 'contain' },
55
+ { label: 'Fill', value: 'fill' }
56
+ ]
57
+ }
58
+ }),
59
+ desktopImage: new UploadSetting({
60
+ title: 'Desktop Image',
61
+ defaultValue: ''
62
+ }),
63
+ mobileImage: new UploadSetting({
64
+ title: 'Mobile Image',
5
65
  defaultValue: ''
6
66
  }),
7
- number: new NumberSetting({
8
- title: 'Number',
9
- defaultValue: 123,
67
+ overlayColor: new ColorSetting({
68
+ title: 'Overlay',
69
+ defaultValue: 'rgba(0,0,0,0)',
70
+ extra: { allowGradient: true }
71
+ }),
72
+ verticalPosition: new NumberSetting({
73
+ title: 'Vertical Position',
74
+ defaultValue: 50,
75
+ extra: { min: 0, max: 100, step: 1 }
76
+ }),
77
+ textAlign: new SegmentSetting({
78
+ title: 'Align',
79
+ defaultValue: 'center',
10
80
  extra: {
11
- min: 0,
12
- step: 1
81
+ options: [
82
+ { label: 'Left', value: 'left', icon: 'align-left' },
83
+ { label: 'Center', value: 'center', icon: 'align-center' },
84
+ { label: 'Right', value: 'right', icon: 'align-right' }
85
+ ]
13
86
  }
87
+ }),
88
+ gap: new NumberSetting({
89
+ title: 'Gap',
90
+ defaultValue: 8,
91
+ extra: { min: 0, max: 80, step: 1 }
92
+ }),
93
+ layers: new RepeaterSetting({
94
+ title: 'Text Layers',
95
+ itemLabel: 'Text layer',
96
+ addButtonText: '+ Add text',
97
+ factory: layerFactory,
98
+ count: 3
14
99
  })
15
100
  });
@@ -2,41 +2,51 @@
2
2
  import type { ButtonSettingsMap } from './settings';
3
3
 
4
4
  let { settings }: { settings: ButtonSettingsMap } = $props();
5
+
6
+ const isGradient = $derived(/gradient\(/i.test(settings.background));
7
+ const backgroundStyle = $derived(
8
+ isGradient ? `background-image: ${settings.background};` : `background: ${settings.background};`
9
+ );
5
10
  </script>
6
11
 
7
- <div class="button-wrapper" style="margin-top: {settings.marginTop}px;">
8
- <button
9
- class="cta-button"
10
- style="
11
- background: {settings.backgroundColor};
12
- color: {settings.textColor};
13
- border-radius: {settings.borderRadius}px;
14
- padding: {settings.paddingY}px {settings.paddingX}px;
15
- font-size: {settings.fontSize}px;
12
+ <div class="button-wrap" style="margin-top: {settings.marginTop}px;">
13
+ <a
14
+ href={settings.link || undefined}
15
+ class="button-element"
16
+ style="
17
+ {backgroundStyle}
18
+ color: {settings.typography.color};
19
+ border-radius: {settings.border.borderRadius}px;
20
+ border: {settings.border.borderWidth}px solid {settings.border.borderColor};
21
+ font-size: {settings.typography.fontSize}px;
22
+ font-weight: {settings.typography.fontWeight};
23
+ font-family: {settings.typography.fontFamily};
16
24
  "
17
25
  >
18
- {settings.text}
19
- </button>
26
+ {settings.typography.text}
27
+ </a>
20
28
  </div>
21
29
 
22
30
  <style>
23
- .button-wrapper {
31
+ .button-wrap {
24
32
  display: flex;
25
33
  justify-content: center;
26
34
  width: 100%;
27
- max-width: 750px;
28
- margin: 0 auto;
29
35
  }
30
36
 
31
- .cta-button {
32
- font-weight: 700;
33
- border: none;
34
- cursor: pointer;
37
+ .button-element {
38
+ display: inline-flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ padding: 0.75rem 2rem;
42
+ text-decoration: none;
43
+ text-align: center;
35
44
  letter-spacing: 0.02em;
36
- transition: opacity 0.2s ease;
45
+ cursor: pointer;
46
+ transition: filter 0.2s ease;
37
47
  }
38
48
 
39
- .cta-button:hover {
40
- opacity: 0.9;
49
+ .button-element:hover {
50
+ filter: brightness(1.05);
41
51
  }
42
52
  </style>
@@ -1,16 +1,19 @@
1
1
  import { ColorSetting, NumberSetting, TextSetting, Settings, type InferSettingsMapType } from '../../settings';
2
2
  export declare const buttonSettings: Settings<{
3
- text: TextSetting;
4
- style: Settings<{
5
- backgroundColor: ColorSetting;
6
- textColor: ColorSetting;
3
+ marginTop: NumberSetting;
4
+ link: TextSetting;
5
+ background: ColorSetting;
6
+ typography: Settings<{
7
+ text: import("../../settings").TranslatableSetting;
8
+ color: ColorSetting;
7
9
  fontSize: NumberSetting;
8
- borderRadius: NumberSetting;
10
+ fontFamily: TextSetting;
11
+ fontWeight: import("../../settings").SelectSetting;
9
12
  }>;
10
- layout: Settings<{
11
- marginTop: NumberSetting;
12
- paddingX: NumberSetting;
13
- paddingY: NumberSetting;
13
+ border: Settings<{
14
+ borderWidth: NumberSetting;
15
+ borderColor: ColorSetting;
16
+ borderRadius: NumberSetting;
14
17
  }>;
15
18
  }>;
16
19
  export type ButtonSettingsMap = InferSettingsMapType<typeof buttonSettings>;
@@ -1,43 +1,26 @@
1
- import { ColorSetting, NumberSetting, TextSetting, Settings } from '../../settings';
1
+ import { ColorSetting, NumberSetting, TextSetting, Settings, TypographySettings, BorderSettings } from '../../settings';
2
2
  export const buttonSettings = new Settings('Button', {
3
- text: new TextSetting({
4
- title: 'Button Text',
5
- defaultValue: 'Bet Now'
3
+ marginTop: new NumberSetting({
4
+ title: 'Margin Top',
5
+ defaultValue: 16,
6
+ extra: { min: 0, max: 200 }
6
7
  }),
7
- style: new Settings('Style', {
8
- backgroundColor: new ColorSetting({
9
- title: 'Background Color',
10
- defaultValue: '#f0c845'
11
- }),
12
- textColor: new ColorSetting({
13
- title: 'Text Color',
14
- defaultValue: '#000000'
15
- }),
16
- fontSize: new NumberSetting({
17
- title: 'Font Size',
18
- defaultValue: 18,
19
- extra: { min: 10, max: 48, step: 1 }
20
- }),
21
- borderRadius: new NumberSetting({
22
- title: 'Border Radius',
23
- defaultValue: 12,
24
- extra: { min: 0, max: 50, step: 1 }
25
- })
8
+ link: new TextSetting({
9
+ title: 'Link URL',
10
+ defaultValue: ''
26
11
  }),
27
- layout: new Settings('Layout', {
28
- marginTop: new NumberSetting({
29
- title: 'Margin Top',
30
- defaultValue: 0
31
- }),
32
- paddingX: new NumberSetting({
33
- title: 'Padding Horizontal',
34
- defaultValue: 48,
35
- extra: { min: 0, step: 1 }
36
- }),
37
- paddingY: new NumberSetting({
38
- title: 'Padding Vertical',
39
- defaultValue: 18,
40
- extra: { min: 0, step: 1 }
41
- })
12
+ background: new ColorSetting({
13
+ title: 'Background',
14
+ defaultValue: '#E8C75C',
15
+ extra: { allowGradient: true }
16
+ }),
17
+ typography: TypographySettings({
18
+ text: 'Bet Now',
19
+ color: '#29220B',
20
+ fontSize: 16,
21
+ fontWeight: '700'
22
+ }),
23
+ border: BorderSettings({
24
+ borderRadius: 12
42
25
  })
43
26
  });
@@ -2,7 +2,8 @@ import { ColorSetting, NumberSetting, Settings } from '../settings';
2
2
  export const globalSettings = new Settings('Global', {
3
3
  background: new ColorSetting({
4
4
  title: 'Background',
5
- defaultValue: '#ffffff'
5
+ defaultValue: 'linear-gradient(160deg, #1B4D7A, #081A30)',
6
+ extra: { allowGradient: true }
6
7
  }),
7
8
  paddingTop: new NumberSetting({
8
9
  title: 'Padding Top',
@@ -14,7 +15,7 @@ export const globalSettings = new Settings('Global', {
14
15
  }),
15
16
  paddingBottom: new NumberSetting({
16
17
  title: 'Padding Bottom',
17
- defaultValue: 22,
18
+ defaultValue: 24,
18
19
  extra: {
19
20
  min: 0,
20
21
  max: 100
@@ -22,7 +23,7 @@ export const globalSettings = new Settings('Global', {
22
23
  }),
23
24
  paddingLeft: new NumberSetting({
24
25
  title: 'Padding Left',
25
- defaultValue: 0,
26
+ defaultValue: 16,
26
27
  extra: {
27
28
  min: 0,
28
29
  max: 100
@@ -30,7 +31,7 @@ export const globalSettings = new Settings('Global', {
30
31
  }),
31
32
  paddingRight: new NumberSetting({
32
33
  title: 'Padding Right',
33
- defaultValue: 0,
34
+ defaultValue: 16,
34
35
  extra: {
35
36
  min: 0,
36
37
  max: 100