@papu1337/builder 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.
- package/README.md +1 -65
- package/dist/elements/accordion/accordionElement.svelte +101 -0
- package/dist/elements/accordion/accordionElement.svelte.d.ts +7 -0
- package/dist/elements/accordion/settings.d.ts +17 -0
- package/dist/elements/accordion/settings.js +54 -0
- package/dist/elements/badge/badgeElement.svelte +4 -3
- package/dist/elements/badge/settings.d.ts +3 -2
- package/dist/elements/badge/settings.js +20 -30
- package/dist/elements/banner/bannerElement.svelte +38 -10
- package/dist/elements/banner/settings.d.ts +5 -3
- package/dist/elements/banner/settings.js +15 -10
- package/dist/elements/button/buttonElement.svelte +7 -3
- package/dist/elements/button/settings.d.ts +1 -0
- package/dist/elements/button/settings.js +10 -6
- package/dist/elements/ctaCard/ctaCardElement.svelte +132 -0
- package/dist/elements/ctaCard/ctaCardElement.svelte.d.ts +7 -0
- package/dist/elements/ctaCard/settings.d.ts +22 -0
- package/dist/elements/ctaCard/settings.js +64 -0
- package/dist/elements/text/settings.d.ts +11 -6
- package/dist/elements/text/settings.js +48 -4
- package/dist/elements/text/textElement.svelte +7 -2
- package/dist/renderer/registry.js +8 -14
- package/dist/renderer/renderer.vanilla.es.js +1172 -1354
- package/dist/renderer/renderer.vanilla.umd.js +27 -19
- package/dist/settings/base.svelte.js +3 -5
- package/dist/settings/components/ColorSettings.svelte +6 -6
- package/dist/settings/components/ListSettings.svelte +12 -12
- package/dist/settings/components/NumberSettings.svelte +6 -6
- package/dist/settings/components/SelectSettings.svelte +6 -6
- package/dist/settings/components/SettingsGroup.svelte +3 -3
- package/dist/settings/components/TextSettings.svelte +53 -2
- package/dist/settings/components/TranslatableSettings.svelte +15 -15
- package/dist/settings/components/UploadSettings.svelte +6 -6
- package/package.json +4 -4
- package/dist/elements/auth/authElement.svelte +0 -115
- package/dist/elements/auth/authElement.svelte.d.ts +0 -7
- package/dist/elements/auth/settings.d.ts +0 -25
- package/dist/elements/auth/settings.js +0 -63
- package/dist/elements/cards/cardsElement.svelte +0 -136
- package/dist/elements/cards/cardsElement.svelte.d.ts +0 -7
- package/dist/elements/cards/settings.d.ts +0 -14
- package/dist/elements/cards/settings.js +0 -52
- package/dist/elements/divider/dividerElement.svelte +0 -34
- package/dist/elements/divider/dividerElement.svelte.d.ts +0 -7
- package/dist/elements/divider/settings.d.ts +0 -7
- package/dist/elements/divider/settings.js +0 -15
- package/dist/elements/products/productsElement.svelte +0 -283
- package/dist/elements/products/productsElement.svelte.d.ts +0 -7
- package/dist/elements/products/settings.d.ts +0 -16
- package/dist/elements/products/settings.js +0 -56
- package/dist/elements/terms/settings.d.ts +0 -11
- package/dist/elements/terms/settings.js +0 -39
- package/dist/elements/terms/termsElement.svelte +0 -124
- package/dist/elements/terms/termsElement.svelte.d.ts +0 -7
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
<div class="translatable-setting">
|
|
25
25
|
<button class="translatable-header" onclick={() => (isExpanded = !isExpanded)}>
|
|
26
|
-
<label>{title}</
|
|
26
|
+
<span class="title-label">{title}</span>
|
|
27
27
|
<div class="header-right">
|
|
28
28
|
<span class="current-lang-badge">{locale.current.toUpperCase()}</span>
|
|
29
29
|
<svg
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
.translatable-setting {
|
|
75
75
|
display: flex;
|
|
76
76
|
flex-direction: column;
|
|
77
|
-
gap:
|
|
78
|
-
padding:
|
|
77
|
+
gap: 8px;
|
|
78
|
+
padding: 12px 0;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
.translatable-header {
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
width: 100%;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
.translatable-header label {
|
|
94
|
-
font-size: 0.
|
|
93
|
+
.translatable-header .title-label {
|
|
94
|
+
font-size: 0.8rem;
|
|
95
95
|
font-weight: 500;
|
|
96
96
|
color: var(--text-secondary);
|
|
97
97
|
text-transform: capitalize;
|
|
@@ -126,11 +126,11 @@
|
|
|
126
126
|
.single-input input {
|
|
127
127
|
width: 100%;
|
|
128
128
|
box-sizing: border-box;
|
|
129
|
-
padding:
|
|
129
|
+
padding: 10px 12px;
|
|
130
130
|
background: var(--bg-elevated);
|
|
131
131
|
border: 1px solid var(--border-light);
|
|
132
|
-
border-radius: var(--radius-
|
|
133
|
-
font-size: 0.
|
|
132
|
+
border-radius: var(--radius-md);
|
|
133
|
+
font-size: 0.85rem;
|
|
134
134
|
color: var(--text-primary);
|
|
135
135
|
font-family: inherit;
|
|
136
136
|
outline: none;
|
|
@@ -145,17 +145,17 @@
|
|
|
145
145
|
.lang-inputs {
|
|
146
146
|
display: flex;
|
|
147
147
|
flex-direction: column;
|
|
148
|
-
gap:
|
|
148
|
+
gap: 6px;
|
|
149
149
|
border: 1px solid var(--border-light);
|
|
150
|
-
border-radius: var(--radius-
|
|
151
|
-
padding:
|
|
150
|
+
border-radius: var(--radius-md);
|
|
151
|
+
padding: 8px;
|
|
152
152
|
background: var(--bg-elevated);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
.lang-row {
|
|
156
156
|
display: flex;
|
|
157
157
|
align-items: center;
|
|
158
|
-
gap:
|
|
158
|
+
gap: 10px;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
.lang-row.active {
|
|
@@ -185,11 +185,11 @@
|
|
|
185
185
|
.lang-row input {
|
|
186
186
|
flex: 1;
|
|
187
187
|
min-width: 0;
|
|
188
|
-
padding:
|
|
188
|
+
padding: 8px 10px;
|
|
189
189
|
background: var(--bg-surface);
|
|
190
190
|
border: 1px solid var(--border-light);
|
|
191
|
-
border-radius: var(--radius-
|
|
192
|
-
font-size: 0.
|
|
191
|
+
border-radius: var(--radius-md);
|
|
192
|
+
font-size: 0.82rem;
|
|
193
193
|
color: var(--text-primary);
|
|
194
194
|
font-family: inherit;
|
|
195
195
|
outline: none;
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
.setting-item {
|
|
52
52
|
display: flex;
|
|
53
53
|
flex-direction: column;
|
|
54
|
-
gap:
|
|
55
|
-
padding:
|
|
54
|
+
gap: 10px;
|
|
55
|
+
padding: 12px 0;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
label:not(.upload-zone):not(.replace-btn) {
|
|
59
|
-
font-size: 0.
|
|
59
|
+
font-size: 0.8rem;
|
|
60
60
|
font-weight: 500;
|
|
61
61
|
color: var(--text-secondary);
|
|
62
62
|
text-transform: capitalize;
|
|
@@ -142,11 +142,11 @@
|
|
|
142
142
|
display: inline-flex;
|
|
143
143
|
align-items: center;
|
|
144
144
|
gap: 5px;
|
|
145
|
-
padding:
|
|
145
|
+
padding: 8px 14px;
|
|
146
146
|
background: var(--accent);
|
|
147
147
|
color: #fff;
|
|
148
|
-
border-radius: var(--radius-
|
|
149
|
-
font-size: 0.
|
|
148
|
+
border-radius: var(--radius-md);
|
|
149
|
+
font-size: 0.8rem;
|
|
150
150
|
font-weight: 500;
|
|
151
151
|
cursor: pointer;
|
|
152
152
|
font-family: var(--font);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@papu1337/builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "vite dev",
|
|
6
6
|
"build": "vite build && npm run prepack",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"format": "prettier --write .",
|
|
16
16
|
"test:unit": "vitest",
|
|
17
17
|
"test": "npm run test:unit -- --run",
|
|
18
|
-
"release": "npm run prepack && npm version patch && npm publish --access public",
|
|
19
|
-
"release:minor": "npm run prepack && npm version minor && npm publish --access public",
|
|
20
|
-
"release:major": "npm run prepack && npm version major && npm publish --access public"
|
|
18
|
+
"release": "npm run prepack && npm version patch --no-git-tag-version && npm publish --access public",
|
|
19
|
+
"release:minor": "npm run prepack && npm version minor --no-git-tag-version && npm publish --access public",
|
|
20
|
+
"release:major": "npm run prepack && npm version major --no-git-tag-version && npm publish --access public"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"dist",
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { AuthSettingsMap } from './settings';
|
|
3
|
-
|
|
4
|
-
let { settings }: { settings: AuthSettingsMap } = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<div
|
|
8
|
-
class="auth-banner"
|
|
9
|
-
style="border-color: {settings.borderColor}; background: {settings.backgroundColor}; margin-top: {settings.marginTop}px; padding: {settings.padding}px;"
|
|
10
|
-
>
|
|
11
|
-
<div class="auth-left">
|
|
12
|
-
<div class="auth-icon" style="border-color: {settings.iconColor};">
|
|
13
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none">
|
|
14
|
-
<path
|
|
15
|
-
d="M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z"
|
|
16
|
-
fill={settings.iconColor}
|
|
17
|
-
/>
|
|
18
|
-
</svg>
|
|
19
|
-
</div>
|
|
20
|
-
<p class="auth-prompt" style="color: {settings.textColor};">
|
|
21
|
-
{settings.promptText}
|
|
22
|
-
</p>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="auth-buttons">
|
|
25
|
-
<button
|
|
26
|
-
class="auth-btn login-btn"
|
|
27
|
-
style="background: {settings.loginButtonBackground}; color: {settings.loginButtonColor};"
|
|
28
|
-
>
|
|
29
|
-
{settings.loginButtonText}
|
|
30
|
-
</button>
|
|
31
|
-
<button
|
|
32
|
-
class="auth-btn signup-btn"
|
|
33
|
-
style="background: {settings.signupButtonBackground}; color: {settings.signupButtonColor};"
|
|
34
|
-
>
|
|
35
|
-
{settings.signupButtonText}
|
|
36
|
-
</button>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<style>
|
|
41
|
-
.auth-banner {
|
|
42
|
-
display: flex;
|
|
43
|
-
align-items: center;
|
|
44
|
-
justify-content: space-between;
|
|
45
|
-
gap: 20px;
|
|
46
|
-
border-radius: 10px;
|
|
47
|
-
border: 1.5px solid;
|
|
48
|
-
max-width: 750px;
|
|
49
|
-
width: 100%;
|
|
50
|
-
margin: 0 auto;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.auth-left {
|
|
54
|
-
display: flex;
|
|
55
|
-
align-items: center;
|
|
56
|
-
gap: 16px;
|
|
57
|
-
flex: 1;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.auth-icon {
|
|
61
|
-
display: flex;
|
|
62
|
-
align-items: center;
|
|
63
|
-
justify-content: center;
|
|
64
|
-
width: 36px;
|
|
65
|
-
height: 36px;
|
|
66
|
-
border-radius: 50%;
|
|
67
|
-
border: 2px solid;
|
|
68
|
-
flex-shrink: 0;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.auth-prompt {
|
|
72
|
-
font-size: 0.95rem;
|
|
73
|
-
line-height: 1.4;
|
|
74
|
-
margin: 0;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.auth-buttons {
|
|
78
|
-
display: flex;
|
|
79
|
-
gap: 12px;
|
|
80
|
-
flex-shrink: 0;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.auth-btn {
|
|
84
|
-
height: 48px;
|
|
85
|
-
border-radius: 8px;
|
|
86
|
-
padding: 13px 32px;
|
|
87
|
-
display: flex;
|
|
88
|
-
align-items: center;
|
|
89
|
-
justify-content: center;
|
|
90
|
-
font-size: 14px;
|
|
91
|
-
font-weight: 600;
|
|
92
|
-
border: none;
|
|
93
|
-
cursor: pointer;
|
|
94
|
-
white-space: nowrap;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@media (max-width: 640px) {
|
|
98
|
-
.auth-banner {
|
|
99
|
-
flex-direction: column;
|
|
100
|
-
text-align: center;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.auth-left {
|
|
104
|
-
flex-direction: column;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.auth-buttons {
|
|
108
|
-
width: 100%;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.auth-btn {
|
|
112
|
-
flex: 1;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
</style>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { AuthSettingsMap } from './settings';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
settings: AuthSettingsMap;
|
|
4
|
-
};
|
|
5
|
-
declare const AuthElement: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
-
type AuthElement = ReturnType<typeof AuthElement>;
|
|
7
|
-
export default AuthElement;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, NumberSetting, TextSetting, Settings, type InferSettingsMapType } from '../../settings';
|
|
2
|
-
export declare const authSettings: Settings<{
|
|
3
|
-
layout: Settings<{
|
|
4
|
-
marginTop: NumberSetting;
|
|
5
|
-
padding: NumberSetting;
|
|
6
|
-
}>;
|
|
7
|
-
content: Settings<{
|
|
8
|
-
promptText: TextSetting;
|
|
9
|
-
loginButtonText: TextSetting;
|
|
10
|
-
signupButtonText: TextSetting;
|
|
11
|
-
}>;
|
|
12
|
-
colors: Settings<{
|
|
13
|
-
borderColor: ColorSetting;
|
|
14
|
-
backgroundColor: ColorSetting;
|
|
15
|
-
textColor: ColorSetting;
|
|
16
|
-
iconColor: ColorSetting;
|
|
17
|
-
}>;
|
|
18
|
-
buttons: Settings<{
|
|
19
|
-
loginButtonBackground: ColorSetting;
|
|
20
|
-
loginButtonColor: ColorSetting;
|
|
21
|
-
signupButtonBackground: ColorSetting;
|
|
22
|
-
signupButtonColor: ColorSetting;
|
|
23
|
-
}>;
|
|
24
|
-
}>;
|
|
25
|
-
export type AuthSettingsMap = InferSettingsMapType<typeof authSettings>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, NumberSetting, TextSetting, Settings } from '../../settings';
|
|
2
|
-
export const authSettings = new Settings('Auth', {
|
|
3
|
-
layout: new Settings('Layout', {
|
|
4
|
-
marginTop: new NumberSetting({
|
|
5
|
-
title: 'Margin Top',
|
|
6
|
-
defaultValue: 0
|
|
7
|
-
}),
|
|
8
|
-
padding: new NumberSetting({
|
|
9
|
-
title: 'Padding',
|
|
10
|
-
defaultValue: 20
|
|
11
|
-
})
|
|
12
|
-
}),
|
|
13
|
-
content: new Settings('Content', {
|
|
14
|
-
promptText: new TextSetting({
|
|
15
|
-
title: 'Prompt Text',
|
|
16
|
-
defaultValue: 'Log in or sign up now to participate in the campaign!'
|
|
17
|
-
}),
|
|
18
|
-
loginButtonText: new TextSetting({
|
|
19
|
-
title: 'Login Button Text',
|
|
20
|
-
defaultValue: 'Log In'
|
|
21
|
-
}),
|
|
22
|
-
signupButtonText: new TextSetting({
|
|
23
|
-
title: 'Signup Button Text',
|
|
24
|
-
defaultValue: 'Sign Up'
|
|
25
|
-
})
|
|
26
|
-
}),
|
|
27
|
-
colors: new Settings('Colors', {
|
|
28
|
-
borderColor: new ColorSetting({
|
|
29
|
-
title: 'Border Color',
|
|
30
|
-
defaultValue: '#b8962a'
|
|
31
|
-
}),
|
|
32
|
-
backgroundColor: new ColorSetting({
|
|
33
|
-
title: 'Background Color',
|
|
34
|
-
defaultValue: '#1a2e3e'
|
|
35
|
-
}),
|
|
36
|
-
textColor: new ColorSetting({
|
|
37
|
-
title: 'Text Color',
|
|
38
|
-
defaultValue: '#ffffff'
|
|
39
|
-
}),
|
|
40
|
-
iconColor: new ColorSetting({
|
|
41
|
-
title: 'Icon Color',
|
|
42
|
-
defaultValue: '#ffffff'
|
|
43
|
-
})
|
|
44
|
-
}),
|
|
45
|
-
buttons: new Settings('Buttons', {
|
|
46
|
-
loginButtonBackground: new ColorSetting({
|
|
47
|
-
title: 'Login Button Background',
|
|
48
|
-
defaultValue: '#4a5568'
|
|
49
|
-
}),
|
|
50
|
-
loginButtonColor: new ColorSetting({
|
|
51
|
-
title: 'Login Button Text Color',
|
|
52
|
-
defaultValue: '#ffffff'
|
|
53
|
-
}),
|
|
54
|
-
signupButtonBackground: new ColorSetting({
|
|
55
|
-
title: 'Signup Button Background',
|
|
56
|
-
defaultValue: '#f0c845'
|
|
57
|
-
}),
|
|
58
|
-
signupButtonColor: new ColorSetting({
|
|
59
|
-
title: 'Signup Button Text Color',
|
|
60
|
-
defaultValue: '#000000'
|
|
61
|
-
})
|
|
62
|
-
})
|
|
63
|
-
});
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { CardsSettingsMap } from './settings';
|
|
3
|
-
|
|
4
|
-
let { settings }: { settings: CardsSettingsMap } = $props();
|
|
5
|
-
|
|
6
|
-
const rows = $derived(() => {
|
|
7
|
-
const all = settings.cards;
|
|
8
|
-
const chunks: (typeof all)[] = [];
|
|
9
|
-
for (let i = 0; i < all.length; i += 3) {
|
|
10
|
-
chunks.push(all.slice(i, i + 3));
|
|
11
|
-
}
|
|
12
|
-
return chunks;
|
|
13
|
-
});
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<div class="cards-wrapper" style="margin-top: {settings.marginTop}px;">
|
|
17
|
-
{#each rows() as row}
|
|
18
|
-
<div class="cards-row">
|
|
19
|
-
{#each row as card, i}
|
|
20
|
-
{#if i > 0}
|
|
21
|
-
<div class="arrow" style="color: {settings.arrowColor};">
|
|
22
|
-
<svg width="20" height="20" viewBox="0 0 24 24" fill="none">
|
|
23
|
-
<path
|
|
24
|
-
d="M9 6l6 6-6 6"
|
|
25
|
-
stroke="currentColor"
|
|
26
|
-
stroke-width="2"
|
|
27
|
-
stroke-linecap="round"
|
|
28
|
-
stroke-linejoin="round"
|
|
29
|
-
/>
|
|
30
|
-
</svg>
|
|
31
|
-
</div>
|
|
32
|
-
{/if}
|
|
33
|
-
<div
|
|
34
|
-
class="card"
|
|
35
|
-
style="background: {settings.backgroundColor}; border: 1px solid {settings.borderColor};"
|
|
36
|
-
>
|
|
37
|
-
<h3 class="card-title" style="color: {settings.titleColor};">
|
|
38
|
-
{card.title}
|
|
39
|
-
</h3>
|
|
40
|
-
<p class="card-content" style="color: {settings.contentColor};">
|
|
41
|
-
{card.content}
|
|
42
|
-
</p>
|
|
43
|
-
</div>
|
|
44
|
-
{/each}
|
|
45
|
-
</div>
|
|
46
|
-
{/each}
|
|
47
|
-
|
|
48
|
-
{#if settings.footerText}
|
|
49
|
-
<div
|
|
50
|
-
class="cards-footer"
|
|
51
|
-
style="background: {settings.footerBackground}; color: {settings.footerTextColor};"
|
|
52
|
-
>
|
|
53
|
-
<p>{settings.footerText}</p>
|
|
54
|
-
</div>
|
|
55
|
-
{/if}
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<style>
|
|
59
|
-
.cards-wrapper {
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-direction: column;
|
|
62
|
-
gap: 12px;
|
|
63
|
-
max-width: 750px;
|
|
64
|
-
width: 100%;
|
|
65
|
-
margin: 0 auto;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.cards-row {
|
|
69
|
-
display: flex;
|
|
70
|
-
align-items: stretch;
|
|
71
|
-
gap: 0;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.arrow {
|
|
75
|
-
display: flex;
|
|
76
|
-
align-items: center;
|
|
77
|
-
justify-content: center;
|
|
78
|
-
flex-shrink: 0;
|
|
79
|
-
padding: 0 6px;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.card {
|
|
83
|
-
flex: 1;
|
|
84
|
-
max-width: calc(33.333% - 12px);
|
|
85
|
-
border-radius: 10px;
|
|
86
|
-
padding: 24px 20px;
|
|
87
|
-
display: flex;
|
|
88
|
-
flex-direction: column;
|
|
89
|
-
align-items: center;
|
|
90
|
-
text-align: center;
|
|
91
|
-
gap: 10px;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.card-title {
|
|
95
|
-
margin: 0;
|
|
96
|
-
font-size: 0.95rem;
|
|
97
|
-
font-weight: 800;
|
|
98
|
-
text-transform: uppercase;
|
|
99
|
-
letter-spacing: 0.03em;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.card-content {
|
|
103
|
-
margin: 0;
|
|
104
|
-
font-size: 0.85rem;
|
|
105
|
-
line-height: 1.5;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.cards-footer {
|
|
109
|
-
border-radius: 8px;
|
|
110
|
-
padding: 14px 20px;
|
|
111
|
-
text-align: center;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.cards-footer p {
|
|
115
|
-
margin: 0;
|
|
116
|
-
font-size: 0.85rem;
|
|
117
|
-
line-height: 1.5;
|
|
118
|
-
font-style: italic;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
@media (max-width: 640px) {
|
|
122
|
-
.cards-row {
|
|
123
|
-
flex-direction: column;
|
|
124
|
-
gap: 12px;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.card {
|
|
128
|
-
max-width: 100%;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.arrow {
|
|
132
|
-
transform: rotate(90deg);
|
|
133
|
-
padding: 4px 0;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
</style>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { CardsSettingsMap } from './settings';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
settings: CardsSettingsMap;
|
|
4
|
-
};
|
|
5
|
-
declare const CardsElement: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
-
type CardsElement = ReturnType<typeof CardsElement>;
|
|
7
|
-
export default CardsElement;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, NumberSetting, TextSetting, ListSetting, Settings, type InferSettingsMapType } from '../../settings';
|
|
2
|
-
export declare const cardsSettings: Settings<{
|
|
3
|
-
marginTop: NumberSetting;
|
|
4
|
-
cards: ListSetting;
|
|
5
|
-
footerText: TextSetting;
|
|
6
|
-
backgroundColor: ColorSetting;
|
|
7
|
-
borderColor: ColorSetting;
|
|
8
|
-
titleColor: ColorSetting;
|
|
9
|
-
contentColor: ColorSetting;
|
|
10
|
-
footerBackground: ColorSetting;
|
|
11
|
-
footerTextColor: ColorSetting;
|
|
12
|
-
arrowColor: ColorSetting;
|
|
13
|
-
}>;
|
|
14
|
-
export type CardsSettingsMap = InferSettingsMapType<typeof cardsSettings>;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, NumberSetting, TextSetting, ListSetting, Settings } from '../../settings';
|
|
2
|
-
export const cardsSettings = new Settings('Cards', {
|
|
3
|
-
marginTop: new NumberSetting({
|
|
4
|
-
title: 'Margin Top',
|
|
5
|
-
defaultValue: 0
|
|
6
|
-
}),
|
|
7
|
-
cards: new ListSetting({
|
|
8
|
-
title: 'Cards',
|
|
9
|
-
defaultValue: [
|
|
10
|
-
{ title: 'CREATE YOUR TICKET', content: 'Pick 3+ positions from UEL & UECL matches' },
|
|
11
|
-
{ title: 'PLACE YOUR BET', content: 'With Combo or Bet Builder ticket' },
|
|
12
|
-
{ title: 'GET 50% FREEBET', content: 'In case you lose any position' }
|
|
13
|
-
],
|
|
14
|
-
extra: {
|
|
15
|
-
addButtonText: '+ Add Card',
|
|
16
|
-
titlePlaceholder: 'Card title',
|
|
17
|
-
contentPlaceholder: 'Card description'
|
|
18
|
-
}
|
|
19
|
-
}),
|
|
20
|
-
footerText: new TextSetting({
|
|
21
|
-
title: 'Footer Text',
|
|
22
|
-
defaultValue: 'Example: Place a 3-leg combo for $200 and get 50% back as a $100 Freebet if your ticket loses.'
|
|
23
|
-
}),
|
|
24
|
-
backgroundColor: new ColorSetting({
|
|
25
|
-
title: 'Card Background',
|
|
26
|
-
defaultValue: 'rgba(22, 45, 63, 0.8)'
|
|
27
|
-
}),
|
|
28
|
-
borderColor: new ColorSetting({
|
|
29
|
-
title: 'Card Border Color',
|
|
30
|
-
defaultValue: 'rgba(177, 202, 223, 0.15)'
|
|
31
|
-
}),
|
|
32
|
-
titleColor: new ColorSetting({
|
|
33
|
-
title: 'Card Title Color',
|
|
34
|
-
defaultValue: '#ffffff'
|
|
35
|
-
}),
|
|
36
|
-
contentColor: new ColorSetting({
|
|
37
|
-
title: 'Card Content Color',
|
|
38
|
-
defaultValue: 'rgba(255, 255, 255, 0.7)'
|
|
39
|
-
}),
|
|
40
|
-
footerBackground: new ColorSetting({
|
|
41
|
-
title: 'Footer Background',
|
|
42
|
-
defaultValue: 'rgba(22, 45, 63, 0.6)'
|
|
43
|
-
}),
|
|
44
|
-
footerTextColor: new ColorSetting({
|
|
45
|
-
title: 'Footer Text Color',
|
|
46
|
-
defaultValue: 'rgba(255, 255, 255, 0.7)'
|
|
47
|
-
}),
|
|
48
|
-
arrowColor: new ColorSetting({
|
|
49
|
-
title: 'Arrow Color',
|
|
50
|
-
defaultValue: 'rgba(255, 255, 255, 0.4)'
|
|
51
|
-
})
|
|
52
|
-
});
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { DividerSettingsMap } from './settings';
|
|
3
|
-
|
|
4
|
-
let { settings }: { settings: DividerSettingsMap } = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<div class="divider" style="color: {settings.textColor};">
|
|
8
|
-
<div class="divider-line" style="background: {settings.lineColor};"></div>
|
|
9
|
-
<span class="divider-text">{settings.text}</span>
|
|
10
|
-
<div class="divider-line" style="background: {settings.lineColor};"></div>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<style>
|
|
14
|
-
.divider {
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: center;
|
|
17
|
-
justify-content: center;
|
|
18
|
-
gap: 20px;
|
|
19
|
-
max-width: 750px;
|
|
20
|
-
width: 100%;
|
|
21
|
-
margin: 0 auto;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.divider-line {
|
|
25
|
-
flex: 1;
|
|
26
|
-
height: 1px;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.divider-text {
|
|
30
|
-
font-size: 14px;
|
|
31
|
-
font-weight: 800;
|
|
32
|
-
white-space: nowrap;
|
|
33
|
-
}
|
|
34
|
-
</style>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { DividerSettingsMap } from './settings';
|
|
2
|
-
type $$ComponentProps = {
|
|
3
|
-
settings: DividerSettingsMap;
|
|
4
|
-
};
|
|
5
|
-
declare const DividerElement: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
-
type DividerElement = ReturnType<typeof DividerElement>;
|
|
7
|
-
export default DividerElement;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, TextSetting, Settings, type InferSettingsMapType } from '../../settings';
|
|
2
|
-
export declare const dividerSettings: Settings<{
|
|
3
|
-
text: TextSetting;
|
|
4
|
-
textColor: ColorSetting;
|
|
5
|
-
lineColor: ColorSetting;
|
|
6
|
-
}>;
|
|
7
|
-
export type DividerSettingsMap = InferSettingsMapType<typeof dividerSettings>;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ColorSetting, TextSetting, Settings } from '../../settings';
|
|
2
|
-
export const dividerSettings = new Settings('Divider', {
|
|
3
|
-
text: new TextSetting({
|
|
4
|
-
title: 'Text',
|
|
5
|
-
defaultValue: 'OR'
|
|
6
|
-
}),
|
|
7
|
-
textColor: new ColorSetting({
|
|
8
|
-
title: 'Text Color',
|
|
9
|
-
defaultValue: '#ffffff'
|
|
10
|
-
}),
|
|
11
|
-
lineColor: new ColorSetting({
|
|
12
|
-
title: 'Line Color',
|
|
13
|
-
defaultValue: 'rgba(255,255,255,0.2)'
|
|
14
|
-
})
|
|
15
|
-
});
|