@myissue/vue-website-page-builder 3.4.11 → 3.4.13
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/dist/style.css +1 -1
- package/dist/vue-website-page-builder.js +5581 -5469
- package/dist/vue-website-page-builder.umd.cjs +113 -57
- package/package.json +1 -1
- package/src/App.vue +1 -2
- package/src/Components/Homepage/Footer.vue +22 -23
- package/src/Components/PageBuilder/EditorMenu/Editables/HTMLEditor.vue +4 -16
- package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +4 -3
- package/src/services/PageBuilderService.ts +61 -8
- package/src/tests/DefaultComponents/DefaultBuilderComponents.vue +5 -5
- package/src/tests/PageBuilderTest.vue +8 -69
- package/src/utils/html-elements/component.ts +78 -2
- package/src/utils/html-elements/themes.ts +11 -1
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -4,30 +4,29 @@ const version = __APP_VERSION__
|
|
|
4
4
|
|
|
5
5
|
<template>
|
|
6
6
|
<div
|
|
7
|
-
class="pbx-flex pbx-justify-between pbx-gap-2 pbx-
|
|
7
|
+
class="pbx-flex pbx-justify-between pbx-gap-2 lg:pbx-px-12 pbx-mx-2 pbx-py-3 pbx-border-t pbx-border-t-gray-900"
|
|
8
8
|
>
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<span class="pbx-text-myPrimaryDarkGrayColor pbx-text-sm">{{ version }}</span>
|
|
9
|
+
<p class="pbx-myPrimaryParagraph pbx-text-xs pbx-font-medium pbx-underline">
|
|
10
|
+
<a
|
|
11
|
+
href="https://www.npmjs.com/package/@myissue/vue-website-page-builder"
|
|
12
|
+
target="_blank"
|
|
13
|
+
class="pbx-myPrimaryLink pbx-text-myPrimaryDarkGrayColor"
|
|
14
|
+
>
|
|
15
|
+
Install via npm
|
|
16
|
+
</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p class="pbx-myPrimaryParagraph pbx-text-xs pbx-font-medium pbx-underline">
|
|
20
|
+
<a
|
|
21
|
+
href="https://github.com/myissue-org/vue-website-page-builder"
|
|
22
|
+
target="_blank"
|
|
23
|
+
class="pbx-myPrimaryLink pbx-text-myPrimaryDarkGrayColor"
|
|
24
|
+
>
|
|
25
|
+
View on GitHub
|
|
26
|
+
</a>
|
|
27
|
+
</p>
|
|
28
|
+
<p class="pbx-myPrimaryParagraph pbx-text-xs pbx-font-medium pbx-underline">
|
|
29
|
+
<span class="pbx-text-myPrimaryDarkGrayColor">{{ version }}</span>
|
|
31
30
|
</p>
|
|
32
31
|
</div>
|
|
33
32
|
</template>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { ref, computed } from 'vue'
|
|
2
|
+
import { ref, computed, nextTick } from 'vue'
|
|
3
3
|
import { sharedPageBuilderStore } from '../../../../stores/shared-store'
|
|
4
4
|
import ModalBuilder from '../../../../Components/Modals/ModalBuilder.vue'
|
|
5
5
|
import EditorAccordion from '../EditorAccordion.vue'
|
|
@@ -18,7 +18,6 @@ const props = defineProps({
|
|
|
18
18
|
})
|
|
19
19
|
|
|
20
20
|
const getElement = computed(() => pageBuilderStateStore.getElement)
|
|
21
|
-
const getComponents = computed(() => pageBuilderStateStore.getComponents)
|
|
22
21
|
|
|
23
22
|
const elementHTML = computed(() => {
|
|
24
23
|
if (!getElement.value || !(getElement.value instanceof HTMLElement)) {
|
|
@@ -32,26 +31,15 @@ const showModalHTMLEditor = ref(false)
|
|
|
32
31
|
const editableHtml = ref('')
|
|
33
32
|
const editableComponents = ref('')
|
|
34
33
|
|
|
35
|
-
const handleShowHTMLEditor = () => {
|
|
34
|
+
const handleShowHTMLEditor = async () => {
|
|
36
35
|
showModalHTMLEditor.value = true
|
|
37
36
|
|
|
38
37
|
if (!props.globalPage) {
|
|
39
38
|
editableHtml.value = elementHTML.value
|
|
39
|
+
return
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
const compsHTMLString =
|
|
44
|
-
Array.isArray(getComponents.value) &&
|
|
45
|
-
getComponents.value
|
|
46
|
-
.map((comp) => {
|
|
47
|
-
return comp.html_code
|
|
48
|
-
.replace(/data-componentid="[^"]*"/g, '') // remove data-componentid
|
|
49
|
-
.replace(/\s{2,}/g, ' ') // optional: clean up excess spaces
|
|
50
|
-
})
|
|
51
|
-
.join('\n')
|
|
52
|
-
|
|
53
|
-
editableComponents.value = compsHTMLString
|
|
54
|
-
}
|
|
42
|
+
editableComponents.value = await pageBuilderService.generateHtmlFromComponents()
|
|
55
43
|
}
|
|
56
44
|
|
|
57
45
|
const handleCloseHTMLEditor = () => {
|
|
@@ -82,11 +82,12 @@ const openMainSettings = function () {
|
|
|
82
82
|
const showHTMLSettings = ref(false)
|
|
83
83
|
|
|
84
84
|
// handle slideover window
|
|
85
|
-
const
|
|
85
|
+
const closeHTMLSettings = function () {
|
|
86
86
|
showHTMLSettings.value = false
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const openHTMLSettings = function () {
|
|
89
|
+
const openHTMLSettings = async function () {
|
|
90
|
+
await pageBuilderService.generateHtmlFromComponents()
|
|
90
91
|
showHTMLSettings.value = true
|
|
91
92
|
}
|
|
92
93
|
</script>
|
|
@@ -219,7 +220,7 @@ const openHTMLSettings = function () {
|
|
|
219
220
|
maxWidth="5xl"
|
|
220
221
|
:showModalBuilder="showHTMLSettings"
|
|
221
222
|
:title="translate('Selected HTML')"
|
|
222
|
-
@closeMainModalBuilder="
|
|
223
|
+
@closeMainModalBuilder="closeHTMLSettings"
|
|
223
224
|
minHeight=""
|
|
224
225
|
maxHeight=""
|
|
225
226
|
>
|
|
@@ -1599,6 +1599,29 @@ export class PageBuilderService {
|
|
|
1599
1599
|
}
|
|
1600
1600
|
}
|
|
1601
1601
|
}
|
|
1602
|
+
} else if (parentSection) {
|
|
1603
|
+
// If the section is not empty, update its HTML content in the store
|
|
1604
|
+
const componentId = parentSection.getAttribute('data-componentid')
|
|
1605
|
+
if (componentId) {
|
|
1606
|
+
const components = this.pageBuilderStateStore.getComponents
|
|
1607
|
+
if (components) {
|
|
1608
|
+
const componentIndex = components.findIndex(
|
|
1609
|
+
(c: ComponentObject) => c.id === componentId,
|
|
1610
|
+
)
|
|
1611
|
+
if (componentIndex !== -1) {
|
|
1612
|
+
const updatedComponent = {
|
|
1613
|
+
...components[componentIndex],
|
|
1614
|
+
html_code: parentSection.outerHTML,
|
|
1615
|
+
}
|
|
1616
|
+
const newComponents = [
|
|
1617
|
+
...components.slice(0, componentIndex),
|
|
1618
|
+
updatedComponent,
|
|
1619
|
+
...components.slice(componentIndex + 1),
|
|
1620
|
+
]
|
|
1621
|
+
this.pageBuilderStateStore.setComponents(newComponents)
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
}
|
|
1602
1625
|
}
|
|
1603
1626
|
}
|
|
1604
1627
|
|
|
@@ -1888,7 +1911,7 @@ export class PageBuilderService {
|
|
|
1888
1911
|
* Syncs the current DOM state of components to the in-memory store.
|
|
1889
1912
|
* @private
|
|
1890
1913
|
*/
|
|
1891
|
-
|
|
1914
|
+
public syncDomToStoreOnly() {
|
|
1892
1915
|
const pagebuilder = document.querySelector('#pagebuilder')
|
|
1893
1916
|
if (!pagebuilder) return
|
|
1894
1917
|
|
|
@@ -1906,6 +1929,30 @@ export class PageBuilderService {
|
|
|
1906
1929
|
this.pageBuilderStateStore.setComponents(componentsToSave)
|
|
1907
1930
|
}
|
|
1908
1931
|
|
|
1932
|
+
public async generateHtmlFromComponents(): Promise<string> {
|
|
1933
|
+
this.syncDomToStoreOnly()
|
|
1934
|
+
await nextTick()
|
|
1935
|
+
|
|
1936
|
+
const components = this.pageBuilderStateStore.getComponents
|
|
1937
|
+
|
|
1938
|
+
if (!Array.isArray(components)) {
|
|
1939
|
+
return ''
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
// Wait for Vue to finish DOM updates before attaching event listeners. This ensure elements exist in the DOM.
|
|
1943
|
+
await nextTick()
|
|
1944
|
+
// Attach event listeners to all editable elements in the Builder
|
|
1945
|
+
await this.addListenersToEditableElements()
|
|
1946
|
+
|
|
1947
|
+
return components
|
|
1948
|
+
.map((comp) => {
|
|
1949
|
+
return comp.html_code
|
|
1950
|
+
.replace(/data-componentid="[^"]*"/g, '') // remove data-componentid
|
|
1951
|
+
.replace(/\s{2,}/g, ' ') // optional: clean up excess spaces
|
|
1952
|
+
})
|
|
1953
|
+
.join('\n')
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1909
1956
|
/**
|
|
1910
1957
|
* Saves the current DOM state of components to local storage.
|
|
1911
1958
|
* @private
|
|
@@ -2166,6 +2213,15 @@ export class PageBuilderService {
|
|
|
2166
2213
|
this.pageBuilderStateStore.setIsRestoring(false)
|
|
2167
2214
|
}
|
|
2168
2215
|
|
|
2216
|
+
public async returnLatestComponents() {
|
|
2217
|
+
this.syncDomToStoreOnly()
|
|
2218
|
+
// Wait for Vue to finish DOM updates before attaching event listeners. This ensure elements exist in the DOM.
|
|
2219
|
+
await nextTick()
|
|
2220
|
+
// Attach event listeners to all editable elements in the Builder
|
|
2221
|
+
await this.addListenersToEditableElements()
|
|
2222
|
+
|
|
2223
|
+
return this.pageBuilderStateStore.getComponents
|
|
2224
|
+
}
|
|
2169
2225
|
/**
|
|
2170
2226
|
* Gets the local storage key for the current resource.
|
|
2171
2227
|
* @returns {string | null} The local storage key.
|
|
@@ -2445,14 +2501,11 @@ export class PageBuilderService {
|
|
|
2445
2501
|
}
|
|
2446
2502
|
|
|
2447
2503
|
public async addTheme(components: string): Promise<void> {
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
}
|
|
2452
|
-
await this.handleAutoSave()
|
|
2453
|
-
} catch (error) {
|
|
2454
|
-
console.error('Error adding component:', error)
|
|
2504
|
+
if (components) {
|
|
2505
|
+
this.validateMountingHTML(components)
|
|
2506
|
+
await this.mountComponentsToDOM(components)
|
|
2455
2507
|
}
|
|
2508
|
+
await this.handleAutoSave()
|
|
2456
2509
|
}
|
|
2457
2510
|
|
|
2458
2511
|
/**
|
|
@@ -168,12 +168,12 @@ const convertToComponentObject = function (comp: any): ComponentObject {
|
|
|
168
168
|
</div>
|
|
169
169
|
|
|
170
170
|
<div
|
|
171
|
-
class="pbx-
|
|
171
|
+
class="pbx-grid pbx-grid-cols-1 sm:pbx-grid-cols-2 md:pbx-grid-cols-3 pbx-gap-4 pbx-pb-4 pbx-min-h-[96rem]"
|
|
172
172
|
>
|
|
173
173
|
<div
|
|
174
174
|
v-for="theme in filteredThemes"
|
|
175
175
|
:key="theme.title"
|
|
176
|
-
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer"
|
|
176
|
+
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer pbx-max-h-96"
|
|
177
177
|
@click="handleDropTheme(theme.html_code)"
|
|
178
178
|
>
|
|
179
179
|
<div
|
|
@@ -209,7 +209,7 @@ const convertToComponentObject = function (comp: any): ComponentObject {
|
|
|
209
209
|
<div
|
|
210
210
|
v-for="helper in componentHelpers"
|
|
211
211
|
:key="helper.title"
|
|
212
|
-
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer pbx-p-4"
|
|
212
|
+
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer pbx-max-h-96 pbx-p-4"
|
|
213
213
|
@click="handleDropComponent(helper)"
|
|
214
214
|
>
|
|
215
215
|
<div
|
|
@@ -247,12 +247,12 @@ const convertToComponentObject = function (comp: any): ComponentObject {
|
|
|
247
247
|
</button>
|
|
248
248
|
</div>
|
|
249
249
|
<div
|
|
250
|
-
class="pbx-grid pbx-grid-cols-1 sm:pbx-grid-cols-2 md:pbx-grid-cols-3 pbx-gap-4 pbx-pb-4"
|
|
250
|
+
class="pbx-grid pbx-grid-cols-1 sm:pbx-grid-cols-2 md:pbx-grid-cols-3 pbx-gap-4 pbx-pb-4 pbx-min-h-[96rem]"
|
|
251
251
|
>
|
|
252
252
|
<div
|
|
253
253
|
v-for="comp in filteredComponents"
|
|
254
254
|
:key="comp.title"
|
|
255
|
-
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer"
|
|
255
|
+
class="pbx-border-solid pbx-border pbx-border-gray-400 pbx-overflow-hidden hover:pbx-border-myPrimaryLinkColor pbx-duration-100 pbx-cursor-pointer pbx-max-h-96"
|
|
256
256
|
@click="handleDropComponent(convertToComponentObject(comp))"
|
|
257
257
|
>
|
|
258
258
|
<div
|
|
@@ -69,75 +69,14 @@ watch(currentTranslations, async () => {
|
|
|
69
69
|
</script>
|
|
70
70
|
|
|
71
71
|
<template>
|
|
72
|
-
<div>
|
|
73
|
-
<div class="
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}}
|
|
81
|
-
</h2>
|
|
82
|
-
<p class="pbx-myPrimaryParagraph pbx-font-normal">
|
|
83
|
-
{{
|
|
84
|
-
translate(
|
|
85
|
-
'The web builder for stunning pages. Enable users to design and publish modern pages at any scale. Build responsive pages like listings, jobs or blog posts and manage content easily using the free click & drop Page Builder. Developed with TypeScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS and HTML.',
|
|
86
|
-
)
|
|
87
|
-
}}
|
|
88
|
-
<br />
|
|
89
|
-
</p>
|
|
90
|
-
<div class="pbx-mt-4">
|
|
91
|
-
<p class="pbx-myPrimaryParagraph pbx-font-normal">
|
|
92
|
-
{{
|
|
93
|
-
translate(
|
|
94
|
-
'Download or install our powerful, flexible, and easy-to-use free Vue 3 Page Builder via',
|
|
95
|
-
)
|
|
96
|
-
}}
|
|
97
|
-
<br />
|
|
98
|
-
<strong> npm:</strong>
|
|
99
|
-
<a
|
|
100
|
-
class="pbx-text-myPrimaryLinkColor"
|
|
101
|
-
href="https://www.npmjs.com/package/@myissue/vue-website-page-builder"
|
|
102
|
-
target="_blank"
|
|
103
|
-
>
|
|
104
|
-
@myissue/vue-website-page-builder
|
|
105
|
-
</a>
|
|
106
|
-
</p>
|
|
107
|
-
</div>
|
|
108
|
-
</div>
|
|
109
|
-
<div class="lg:pbx-m-2 pbx-m-1">
|
|
110
|
-
<!-- :CustomBuilderComponents="DemoBuilderComponentsTest" -->
|
|
111
|
-
<PageBuilder
|
|
112
|
-
:CustomMediaLibraryComponent="DemoMediaLibraryComponentTest"
|
|
113
|
-
:showPublishButton="true"
|
|
114
|
-
@handlePublishPageBuilder="publishPageBuilder"
|
|
115
|
-
></PageBuilder>
|
|
116
|
-
</div>
|
|
72
|
+
<div class="pbx-bg-white">
|
|
73
|
+
<div class="lg:pbx-p-2">
|
|
74
|
+
<!-- :CustomBuilderComponents="DemoBuilderComponentsTest" -->
|
|
75
|
+
<PageBuilder
|
|
76
|
+
:CustomMediaLibraryComponent="DemoMediaLibraryComponentTest"
|
|
77
|
+
:showPublishButton="true"
|
|
78
|
+
@handlePublishPageBuilder="publishPageBuilder"
|
|
79
|
+
></PageBuilder>
|
|
117
80
|
</div>
|
|
118
|
-
|
|
119
|
-
<FullWidthElement :descriptionArea="true" class="pbx-bg-gray-50">
|
|
120
|
-
<template #title>
|
|
121
|
-
{{ translate('Everything you need. Break free from design limitations') }}
|
|
122
|
-
</template>
|
|
123
|
-
<template #description>
|
|
124
|
-
<p class="pbx-myPrimaryParagraph pbx-font-normal">
|
|
125
|
-
{{
|
|
126
|
-
translate(
|
|
127
|
-
'A Page Builder designed for growth. Build your website pages with ready-made components that are fully customizable and always responsive, designed to fit every need. A powerful Page Builder for growing merchants, brands, and agencies.',
|
|
128
|
-
)
|
|
129
|
-
}}
|
|
130
|
-
</p>
|
|
131
|
-
</template>
|
|
132
|
-
<template #content>
|
|
133
|
-
<p class="pbx-myPrimaryParagraph pbx-font-normal">
|
|
134
|
-
{{
|
|
135
|
-
translate(
|
|
136
|
-
"Try the powerful Click & Drop Page Builder—designed for developers and creators who want full control without the hassle. Customize layouts, fonts, and colors. Edit content visually in real time. Add media, embed YouTube videos, or export everything as clean HTML. With responsive editing, local auto-save, Tailwind support, and even Unsplash integration, it's everything you need—wrapped in one seamless builder. Build Stunning Pages in Minutes.",
|
|
137
|
-
)
|
|
138
|
-
}}
|
|
139
|
-
</p>
|
|
140
|
-
</template>
|
|
141
|
-
</FullWidthElement>
|
|
142
81
|
</div>
|
|
143
82
|
</template>
|
|
@@ -349,10 +349,86 @@ const component: Components[] = [
|
|
|
349
349
|
</svg>
|
|
350
350
|
`,
|
|
351
351
|
},
|
|
352
|
+
{
|
|
353
|
+
title: 'Stats Split with image',
|
|
354
|
+
html_code: `<section> <div class="md:pbx-pt-12 md:pbx-pb-12 pbx-pt-4 pbx-pb-4 lg:pbx-px-4 pbx-px-2"><div class="pbx-mx-auto pbx-max-w-7xl"><div class="pbx-myPrimaryGap pbx-grid pbx-grid-cols-1 sm:pbx-grid-cols-2 lg:pbx-grid-cols-2"> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"> </div> <div> <div class=""> <p class="pbx-font-semibold">Our track record</p> </div> <div class="pbx-font-medium pbx-text-2xl lg:pbx-text-4xl"><p>Trusted by thousands of creators worldwide</p></div> <div><p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.</p></div> <div class="pbx-mt-16 pbx-grid pbx-max-w-xl pbx-grid-cols-1 pbx-gap-8 sm:pbx-mt-20 sm:pbx-grid-cols-2 xl:pbx-mt-16"> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div><p>Creators on the platform</p></div> <div class="pbx-font-medium pbx-text-lg lg:pbx-text-2xl"><p>8,000+</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Flat platform fee</p> </div> <div class="pbx-font-medium pbx-text-lg lg:pbx-text-2xl"><p>3%</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Uptime guarantee</p> </div> <div class="pbx-text-lg lg:pbx-text-2xl pbx-font-medium"><p>99.9%</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Paid out to creators</p> </div> <div class="pbx-text-lg lg:pbx-text-2xl pbx-font-medium"><p>$70M</p></div> </div> </div> </div></div> </div></div> </section>`,
|
|
355
|
+
category: 'Marketing',
|
|
356
|
+
cover_image: `
|
|
357
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="103.953 200.017 225.995 103.408" width="225.995px" height="103.408px">
|
|
358
|
+
<rect class="bg" x="103.953" width="103.408" height="103.408" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
359
|
+
<polygon class="fg" points="119.698 267.14 145.377 236.302 171.076 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
360
|
+
<polygon class="fg" points="165.937 267.14 178.786 251.721 191.636 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
361
|
+
<circle class="fg" cx="178.786" cy="240.579" r="4.277" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
362
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
363
|
+
<rect class="bg" x="226.54" y="207.688" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
364
|
+
<rect class="bg" x="226.54" y="223.011" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
365
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="230.62"/>
|
|
366
|
+
<rect class="bg" x="226.54" y="238.291" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
367
|
+
<rect class="bg" x="226.54" y="215.499" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
368
|
+
</svg>
|
|
369
|
+
`,
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
title: 'Stats Stepped',
|
|
373
|
+
html_code: `<section><div class="pbx-relative pbx-py-4 pbx-bg-slate-200"><div class="pbx-mx-auto pbx-max-w-7xl pbx-px-6 lg:pbx-px-8 pbx-pt-12"> <div class="pbx-mx-auto pbx-max-w-2xl lg:pbx-mx-0"><div class="pbx-text-2xl lg:pbx-text-4xl pbx-font-medium"><h2>We approach work as a place to make the world better</h2></div><div><p>Diam nunc lacus lacus aliquam turpis enim. Eget hac velit est euismod lacus. Est non placerat nam arcu. Cras purus nibh cursus sit eu in id. Integer vel nibh.</p></div> </div> <div class="pbx-mx-auto pbx-mt-16 pbx-flex pbx-max-w-2xl pbx-flex-col pbx-gap-8 lg:pbx-mx-0 lg:pbx-mt-20 lg:pbx-max-w-none lg:pbx-flex-row lg:pbx-items-end pbx-pb-20"> <div class="pbx-flex pbx-flex-col-reverse pbx-justify-between pbx-gap-x-16 pbx-gap-y-8 pbx-rounded-2xl pbx-bg-gray-50 pbx-p-8 sm:pbx-w-3/4 sm:pbx-max-w-md sm:pbx-flex-row-reverse sm:pbx-items-end lg:pbx-w-72 lg:pbx-max-w-none lg:pbx-flex-none lg:pbx-flex-col lg:pbx-items-start"><div class="pbx-text-lg lg:pbx-text-2xl"><p>250k</p></div><div><p>Users on the platform</p><p>Vel labore deleniti veniam consequuntur sunt nobis.</p></div> </div> <div class="pbx-flex pbx-flex-col-reverse pbx-justify-between pbx-gap-x-16 pbx-gap-y-8 pbx-rounded-2xl pbx-bg-gray-900 pbx-p-8 sm:pbx-flex-row-reverse sm:pbx-items-end lg:pbx-w-full lg:pbx-max-w-sm lg:pbx-flex-auto lg:pbx-flex-col lg:pbx-items-start lg:pbx-gap-y-44"><div class="pbx-text-white pbx-text-lg lg:pbx-text-2xl"><p>$8.9 billion</p></div><div class="sm:pbx-w-80 sm:pbx-shrink lg:pbx-w-auto lg:pbx-flex-none pbx-text-white"><p>We’re that our customers have made over $8 billion in total revenue.</p><p>Eu duis porta aliquam ornare. Elementum eget magna egestas.</p></div> </div> <div class="pbx-flex pbx-flex-col-reverse pbx-justify-between pbx-gap-x-16 pbx-gap-y-8 pbx-rounded-2xl pbx-bg-indigo-600 pbx-p-8 sm:pbx-w-11/12 sm:pbx-max-w-xl sm:pbx-flex-row-reverse sm:pbx-items-end lg:pbx-w-full lg:pbx-max-w-none lg:pbx-flex-auto lg:pbx-flex-col lg:pbx-items-start lg:pbx-gap-y-28"><div class="pbx-text-white pbx-text-lg lg:pbx-text-2xl"><p>401k</p></div><div class="sm:pbx-w-80 sm:pbx-shrink lg:pbx-w-auto lg:pbx-flex-none pbx-text-white"><p>Transactions this year</p><p>Eu duis porta aliquam ornare. Elementum eget magna egestas. Eu duis porta aliquam ornare.</p></div> </div> </div> </div></div></section>`,
|
|
374
|
+
category: 'Marketing',
|
|
375
|
+
cover_image: `
|
|
376
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="103.953 200.017 225.995 103.408" width="225.995px" height="103.408px">
|
|
377
|
+
<rect class="bg" x="103.953" width="103.408" height="103.408" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
378
|
+
<polygon class="fg" points="119.698 267.14 145.377 236.302 171.076 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
379
|
+
<polygon class="fg" points="165.937 267.14 178.786 251.721 191.636 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
380
|
+
<circle class="fg" cx="178.786" cy="240.579" r="4.277" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
381
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
382
|
+
<rect class="bg" x="226.54" y="207.688" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
383
|
+
<rect class="bg" x="226.54" y="223.011" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
384
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="230.62"/>
|
|
385
|
+
<rect class="bg" x="226.54" y="238.291" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
386
|
+
<rect class="bg" x="226.54" y="215.499" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
387
|
+
</svg>
|
|
388
|
+
`,
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
title: 'Stats With two column',
|
|
392
|
+
html_code: `<section><div class="pbx-relative pbx-py-4 pbx-bg-gray-900"><div class="pbx-py-24 sm:pbx-py-32"> <div class="pbx-mx-auto pbx-max-w-7xl pbx-px-6 lg:pbx-px-8"> <div class="pbx-mx-auto pbx-max-w-2xl lg:pbx-mx-0 lg:pbx-max-w-none"> <div class="pbx-text-base/7 pbx-font-semibold pbx-text-indigo-400"> <p>Deploy faster</p> </div> <div class="pbx-mt-2 pbx-text-pretty pbx-font-semibold pbx-tracking-tight pbx-text-white pbx-text-2xl lg:pbx-text-4xl pbx-font-medium"><h1>A better workflow</h1></div> <div class="pbx-mt-10 pbx-grid pbx-max-w-xl pbx-grid-cols-1 pbx-gap-8 pbx-text-base/7 pbx-text-gray-300 lg:pbx-max-w-none lg:pbx-grid-cols-2"> <div> <div><p>Faucibus commodo massa rhoncus, volutpat. Dignissim sed eget risus enim. Mattis mauris semper sed amet vitae sed turpis id. Id dolor praesent donec est. Odio penatibus risus viverra tellus varius sit neque erat velit. Faucibus commodo massa rhoncus, volutpat. Dignissim sed eget risus enim. Mattis mauris semper sed amet vitae sed turpis id.</p></div> <div class="pbx-mt-8"><p>Et vitae blandit facilisi magna lacus commodo. Vitae sapien duis odio id et. Id blandit molestie auctor fermentum dignissim. Lacus diam tincidunt ac cursus in vel. Mauris varius vulputate et ultrices hac adipiscing egestas.</p></div> </div> <div> <div><p>Erat pellentesque dictumst ligula porttitor risus eget et eget. Ultricies tellus felis id dignissim eget. Est augue maecenas risus nulla ultrices congue nunc tortor. Enim et nesciunt doloremque nesciunt voluptate.</p></div> <div class="pbx-mt-8"><p>Et vitae blandit facilisi magna lacus commodo. Vitae sapien duis odio id et. Id blandit molestie auctor fermentum dignissim. Lacus diam tincidunt ac cursus in vel. Mauris varius vulputate et ultrices hac adipiscing egestas. Iaculis convallis ac tempor et ut. Ac lorem vel integer orci.</p></div> </div> </div> <div class="pbx-mt-16 pbx-grid pbx-grid-cols-1 pbx-gap-x-8 pbx-gap-y-12 sm:pbx-mt-20 sm:pbx-grid-cols-2 sm:pbx-gap-y-16 lg:pbx-mt-28 lg:pbx-grid-cols-4"> <div class="pbx-flex pbx-flex-col-reverse pbx-gap-y-3 pbx-border-l pbx-border-white/20 pbx-pl-6"> <div class="pbx-text-base/7 pbx-text-white"><p>Founded</p></div> <div class="pbx-text-3xl pbx-font-semibold pbx-tracking-tight pbx-text-white"><p>2021</p></div> </div> <div class="pbx-flex pbx-flex-col-reverse pbx-gap-y-3 pbx-border-l pbx-border-white/20 pbx-pl-6"> <div class="pbx-text-base/7 pbx-text-white"><p>Employees</p></div> <div class="pbx-text-3xl pbx-font-semibold pbx-tracking-tight pbx-text-white"><p>37</p></div> </div> <div class="pbx-flex pbx-flex-col-reverse pbx-gap-y-3 pbx-border-l pbx-border-white/20 pbx-pl-6"> <div class="pbx-text-base/7 pbx-text-white"> <p>Countries</p> </div> <div class="pbx-text-3xl pbx-font-semibold pbx-tracking-tight pbx-text-white"><p>12</p></div> </div> <div class="pbx-flex pbx-flex-col-reverse pbx-gap-y-3 pbx-border-l pbx-border-white/20 pbx-pl-6"> <div class="pbx-text-base/7 pbx-text-white"> <p>Raised</p> </div> <div class="pbx-text-3xl pbx-font-semibold pbx-tracking-tight pbx-text-white"><p>$25M</p></div> </div> </div> </div> </div> </div></div></section>`,
|
|
393
|
+
category: 'Marketing',
|
|
394
|
+
cover_image: `
|
|
395
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="103.953 200.017 225.995 103.408" width="225.995px" height="103.408px">
|
|
396
|
+
<rect class="bg" x="103.953" width="103.408" height="103.408" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
397
|
+
<polygon class="fg" points="119.698 267.14 145.377 236.302 171.076 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
398
|
+
<polygon class="fg" points="165.937 267.14 178.786 251.721 191.636 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
399
|
+
<circle class="fg" cx="178.786" cy="240.579" r="4.277" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
400
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
401
|
+
<rect class="bg" x="226.54" y="207.688" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
402
|
+
<rect class="bg" x="226.54" y="223.011" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
403
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="230.62"/>
|
|
404
|
+
<rect class="bg" x="226.54" y="238.291" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
405
|
+
<rect class="bg" x="226.54" y="215.499" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
406
|
+
</svg>
|
|
407
|
+
`,
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
title: 'Timeline Simple',
|
|
411
|
+
html_code: `<section><div class="pbx-bg-white pbx-py-24 sm:pbx-py-32"> <div class="pbx-mx-auto pbx-max-w-7xl pbx-px-6 lg:pbx-px-8"> <div class="pbx-mx-auto pbx-grid pbx-max-w-2xl pbx-grid-cols-1 pbx-gap-8 pbx-overflow-hidden lg:pbx-mx-0 lg:pbx-max-w-none lg:pbx-grid-cols-4"> <div> <div class="pbx-flex pbx-items-center pbx-text-sm/6 pbx-font-semibold pbx-text-indigo-600"> <div class="pbx-text-black"><p>Aug 2021</p></div> </div> <div class="pbx-mt-6 pbx-text-lg/8 pbx-font-semibold pbx-tracking-tight pbx-text-black"><p>Founded company</p></div> <div class="pbx-mt-1 pbx-text-base/7 pbx-text-black"><p>Nihil aut nam. Dignissimos a pariatur et quos omnis. Aspernatur asperiores et dolorem dolorem optio voluptate repudiandae.</p></div> </div> <div> <div class="pbx-flex pbx-items-center pbx-text-sm/6 pbx-font-semibold pbx-text-indigo-600"> <div class="pbx-text-black"><p>Dec 2021</p></div> </div> <div class="pbx-mt-6 pbx-text-lg/8 pbx-font-semibold pbx-tracking-tight pbx-text-black"><p>Secured $65m in funding</p></div> <div class="pbx-mt-1 pbx-text-base/7 pbx-text-black"> <p>Provident quia ut esse. Vero vel eos repudiandae aspernatur. Cumque minima impedit sapiente a architecto nihil.</p> </div> </div> <div> <div class="pbx-flex pbx-items-center pbx-text-sm/6 pbx-font-semibold pbx-text-indigo-600"> <div class="pbx-text-black"><p>Feb 2022</p></div> </div> <div class="pbx-mt-6 pbx-text-lg/8 pbx-font-semibold pbx-tracking-tight pbx-text-black"><p>Released beta</p></div> <div class="pbx-mt-1 pbx-text-base/7 pbx-text-black"> <p>Sunt perspiciatis incidunt. Non necessitatibus aliquid. Consequatur ut officiis earum eum quia facilis. Hic deleniti dolorem quia et.</p> </div> </div> <div> <div class="pbx-flex pbx-items-center pbx-text-sm/6 pbx-font-semibold pbx-text-indigo-600"> <div class="pbx-text-black"><p>Dec 2022</p></div> </div> <div class="pbx-mt-6 pbx-text-lg/8 pbx-font-semibold pbx-tracking-tight pbx-text-black"> <p>Global launch of product</p> </div> <div class="pbx-mt-1 pbx-text-base/7 pbx-text-black"><p>Ut ipsa sint distinctio quod itaque nam qui. Possimus aut unde id architecto voluptatem hic aut pariatur velit.</p></div> </div> </div> </div> </div></section>`,
|
|
412
|
+
category: 'Marketing',
|
|
413
|
+
cover_image: `
|
|
414
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="103.953 200.017 225.995 103.408" width="225.995px" height="103.408px">
|
|
415
|
+
<rect class="bg" x="103.953" width="103.408" height="103.408" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
416
|
+
<polygon class="fg" points="119.698 267.14 145.377 236.302 171.076 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
417
|
+
<polygon class="fg" points="165.937 267.14 178.786 251.721 191.636 267.14" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
418
|
+
<circle class="fg" cx="178.786" cy="240.579" r="4.277" style="fill: rgb(113, 128, 150); stroke-width: 1;"/>
|
|
419
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="200.017"/>
|
|
420
|
+
<rect class="bg" x="226.54" y="207.688" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
421
|
+
<rect class="bg" x="226.54" y="223.011" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
422
|
+
<rect class="bg" x="226.54" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;" y="230.62"/>
|
|
423
|
+
<rect class="bg" x="226.54" y="238.291" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
424
|
+
<rect class="bg" x="226.54" y="215.499" width="103.408" height="5.619" style="fill: rgb(56, 65, 82); stroke-width: 1;"/>
|
|
425
|
+
</svg>
|
|
426
|
+
`,
|
|
427
|
+
},
|
|
352
428
|
{
|
|
353
429
|
title: 'Show Single Product',
|
|
354
|
-
html_code: `<section
|
|
355
|
-
category: '
|
|
430
|
+
html_code: `<section> <div class="md:pbx-pt-12 md:pbx-pb-12 pbx-pt-4 pbx-pb-4 lg:pbx-px-4 pbx-px-2"><div class="pbx-mx-auto pbx-max-w-7xl"><div class="pbx-myPrimaryGap"> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"> <div class="pbx-break-words pbx-py-2"><p>Layouts and visual.</p><p>Start customizing by editing this default text directly in the editor.</p></div> </div> </div> </div> </div> </section>`,
|
|
431
|
+
category: 'Products',
|
|
356
432
|
cover_image: `
|
|
357
433
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="122.319 300.3 122.364 160.763" width="122.364px" height="160.763px">
|
|
358
434
|
<rect class="bg" width="122.364" height="122.364" style="fill: rgb(56, 65, 82); stroke-width: 1;" x="122.319" y="300.3"/>
|
|
@@ -42,7 +42,7 @@ const component: Themes[] = [
|
|
|
42
42
|
html_code: `<div id="pagebuilder" class=" style=""><section data-component-title="Header H2"><div class="pbx-relative pbx-py-4"><div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"><div class="pbx-break-words pbx-font-medium pbx-text-3xl lg:pbx-text-6xl"><h2>Inceptos himenaeos</h2></div></div></div></section> <section data-component-title="Text"> <div class="pbx-relative pbx-py-4"> <div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"> <div><p>Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra.<br><br>Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.</p></div> </div> </div> </section> <section data-component-title="Header H3" class=""><div class="pbx-relative pbx-py-4"><div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"><div class="pbx-break-words pbx-text-1xl lg:pbx-text-3xl pbx-font-medium"><h3>Fringilla lacus nec metus</h3></div></div></div></section> <section data-component-title="Text" class=""> <div class="pbx-relative pbx-py-4"> <div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"> <div><p>Sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra.</p><ul><li><p><strong>Blorf nizgat quarnip veloop</strong></p></li><li><p><strong>Dramble froop with lartic spindles</strong></p></li><li><p><strong>Quibber on flemt zarglo dynamics</strong></p></li><li><p><strong>Slooped jarnix under flibble zones</strong></p></li><li><p><strong>Plonk-ready trizzit with garm logic</strong></p><p><br></p></li></ul><p>Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.</p></div> </div> </div> </section> <section data-component-title="Header H3" class=""><div class="pbx-relative pbx-py-4"><div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"><div class="pbx-break-words pbx-text-1xl lg:pbx-text-3xl pbx-font-medium"><h3>Conubia nostra inceptos</h3></div></div></div></section> <section data-component-title="Text"> <div class="pbx-relative pbx-py-4"> <div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"> <div><p>Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. <br><br>Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos. <br><br>Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.</p></div> </div> </div> </section></div>`,
|
|
43
43
|
category: 'Article',
|
|
44
44
|
cover_image: `
|
|
45
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"
|
|
45
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
|
|
46
46
|
<path fill="#4e4e50" d="M32 4H0V0h32v4zM20 12H0V8h20v4zM32 24H0v-4h32v4zM24 32H0v-4h24v4zM32 30a2.001 2.001 0 0 1-4.004 0A2.001 2.001 0 0 1 32 30z"/>
|
|
47
47
|
</svg>
|
|
48
48
|
`,
|
|
@@ -67,6 +67,16 @@ const component: Themes[] = [
|
|
|
67
67
|
</svg>
|
|
68
68
|
`,
|
|
69
69
|
},
|
|
70
|
+
{
|
|
71
|
+
title: 'Stats Simple',
|
|
72
|
+
html_code: `<section data-component-title="Header H2" ><div class="pbx-relative pbx-py-4"><div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"><div class="pbx-break-words pbx-font-medium pbx-text-3xl lg:pbx-text-6xl"><h2>Eaque, iste dolor cupiditate blanditiis ratione</h2></div></div></div></section> <section data-component-title="Stats Split with image" > <div class="md:pbx-pt-12 md:pbx-pb-12 pbx-pt-4 pbx-pb-4 lg:pbx-px-4 pbx-px-2"><div class="pbx-mx-auto pbx-max-w-7xl"><div class="pbx-myPrimaryGap pbx-grid pbx-grid-cols-1 sm:pbx-grid-cols-2 lg:pbx-grid-cols-2"> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square "src="${getPlaceholderImageDataUrl()}" alt="provider"> </div> <div> <div class=""> <p class="pbx-font-semibold">Our track record</p> </div> <div class="pbx-font-medium pbx-text-2xl lg:pbx-text-4xl"><p>Trusted by thousands of creators worldwide</p></div> <div><p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.</p></div> <div class="pbx-mt-16 pbx-grid pbx-max-w-xl pbx-grid-cols-1 pbx-gap-8 sm:pbx-mt-20 sm:pbx-grid-cols-2 xl:pbx-mt-16"> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div><p>Creators on the platform</p></div> <div class="pbx-font-medium pbx-text-lg lg:pbx-text-2xl"><p>8,000+</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Flat platform fee</p> </div> <div class="pbx-font-medium pbx-text-lg lg:pbx-text-2xl"><p>3%</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Uptime guarantee</p> </div> <div class="pbx-text-lg lg:pbx-text-2xl pbx-font-medium"><p>99.9%</p></div> </div> <div class="pbx-flex pbx-flex-col pbx-gap-y-3 pbx-border-l pbx-border-gray-900/10 pbx-pl-6"> <div> <p class="pbx-text-sm/6 pbx-text-gray-600">Paid out to creators</p> </div> <div class="pbx-text-lg lg:pbx-text-2xl pbx-font-medium"><p>$70M</p></div> </div> </div> </div></div> </div></div> </section> <section data-component-title="Header H3" ><div class="pbx-relative pbx-py-4"><div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"><div class="pbx-break-words pbx-text-1xl lg:pbx-text-3xl pbx-font-medium"><h3>Layouts and visual.</h3></div></div></div></section> <section data-component-title="Text" > <div class="pbx-relative pbx-py-4"> <div class="pbx-mx-auto pbx-max-w-7xl lg:pbx-px-4 pbx-px-2"> <div><p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione. Dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione. Cadipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.</p></div> </div> </div> </section> <section data-component-title="Four Square Images With Text" > <div class="md:pbx-pt-12 md:pbx-pb-12 pbx-pt-4 pbx-pb-4 lg:pbx-px-4 pbx-px-2"><div class="pbx-mx-auto pbx-max-w-7xl"><div class="pbx-myPrimaryGap pbx-grid pbx-grid-cols-2 sm:pbx-grid-cols-2 lg:pbx-grid-cols-4"> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"> <div class="pbx-break-words pbx-py-2"><p>Layouts and visual.</p><p>Start customizing by editing this default text directly in the editor.</p></div> </div> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"> <div class="pbx-break-words pbx-py-2"><p>Layouts and visual.</p><p>Start customizing by editing this default text directly in the editor.</p></div> </div> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"> <div class="pbx-break-words pbx-py-2"><p>Layouts and visual.</p><p>Start customizing by editing this default text directly in the editor.</p></div> </div> <div class="pbx-flex-1 pbx-py-2"> <img class="pbx-object-cover pbx-w-full pbx-object-top pbx-aspect-square " src="${getPlaceholderImageDataUrl()}" alt="provider"><div class="pbx-break-words pbx-py-2"><p>Layouts and visual.</p><p>Start customizing by editing this default text directly in the editor.</p></div> </div> </div> </div> </div> </section>`,
|
|
73
|
+
category: 'Marketing',
|
|
74
|
+
cover_image: `
|
|
75
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
|
|
76
|
+
<path fill="#4e4e50" d="M32 4H0V0h32v4zM20 12H0V8h20v4zM32 24H0v-4h32v4zM24 32H0v-4h24v4zM32 30a2.001 2.001 0 0 1-4.004 0A2.001 2.001 0 0 1 32 30z"/>
|
|
77
|
+
</svg>
|
|
78
|
+
`,
|
|
79
|
+
},
|
|
70
80
|
],
|
|
71
81
|
},
|
|
72
82
|
},
|