@myissue/vue-website-page-builder 3.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.
- package/LICENSE +21 -0
- package/README.md +470 -0
- package/dist/android-chrome-192x192.png +0 -0
- package/dist/android-chrome-512x512.png +0 -0
- package/dist/apple-touch-icon.png +0 -0
- package/dist/browserconfig.xml +9 -0
- package/dist/components.json +36 -0
- package/dist/favicon-16x16.png +0 -0
- package/dist/favicon-32x32.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/home/features.jpg +0 -0
- package/dist/home/page-builder-example.jpg +0 -0
- package/dist/logo/logo.svg +49 -0
- package/dist/mstile-310x150.png +0 -0
- package/dist/mstile-310x310.png +0 -0
- package/dist/page-builder/2-images-text-top.png +0 -0
- package/dist/page-builder/2-images.png +0 -0
- package/dist/page-builder/3-images.png +0 -0
- package/dist/page-builder/6-images.png +0 -0
- package/dist/page-builder/image.png +0 -0
- package/dist/page-builder/placeholder.jpg +0 -0
- package/dist/page-builder/two-vertical-images.png +0 -0
- package/dist/placeholder_image.jpg +0 -0
- package/dist/robots.txt +2 -0
- package/dist/vue-website-page-builder.css +1 -0
- package/dist/vue-website-page-builder.js +24794 -0
- package/dist/vue-website-page-builder.umd.cjs +195 -0
- package/package.json +99 -0
- package/src/App.vue +122 -0
- package/src/Components/Homepage/Footer.vue +42 -0
- package/src/Components/Homepage/HomeSection.vue +540 -0
- package/src/Components/Homepage/Navbar.vue +30 -0
- package/src/Components/Layouts/FullWidthElement.vue +34 -0
- package/src/Components/Loaders/FullScreenSpinner.vue +13 -0
- package/src/Components/Loaders/SmallUniversalSpinner.vue +26 -0
- package/src/Components/MediaLibrary/SidebarUnsplash.vue +40 -0
- package/src/Components/MediaLibrary/Unsplash.vue +306 -0
- package/src/Components/Modals/DynamicModal.vue +476 -0
- package/src/Components/Modals/MediaLibraryModal.vue +418 -0
- package/src/Components/Modals/Modal.vue +102 -0
- package/src/Components/Modals/PageBuilderModal.vue +233 -0
- package/src/Components/Modals/PageBuilderPreviewModal.vue +123 -0
- package/src/Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue +202 -0
- package/src/Components/PageBuilder/DropdownsPlusToggles/SaveDesign.vue +7 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +91 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +163 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +164 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +80 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +93 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/DeleteElement.vue +42 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +338 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ElementEditor.vue +58 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +82 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +301 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +109 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +107 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +16 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/PaddingPlusMargin.vue +134 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +91 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +199 -0
- package/src/Components/PageBuilder/EditorMenu/EditorAccordion.vue +42 -0
- package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +113 -0
- package/src/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue +229 -0
- package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +101 -0
- package/src/Components/PageBuilder/Slidebars/SlideOverRight.vue +91 -0
- package/src/Components/PageBuilder/Slidebars/SlideOverRightParent.vue +91 -0
- package/src/Components/Search/SearchComponents.vue +259 -0
- package/src/Components/TipTap/TipTap.vue +32 -0
- package/src/Components/TipTap/TipTapInput.vue +325 -0
- package/src/PageBuilder/PageBuilder.vue +347 -0
- package/src/PageBuilder/Preview.vue +24 -0
- package/src/composables/PageBuilder.ts +1483 -0
- package/src/composables/delay.ts +5 -0
- package/src/composables/extract-text-content-html.ts +34 -0
- package/src/composables/isObject.ts +6 -0
- package/src/composables/usePromise.ts +10 -0
- package/src/composables/vueFetch.ts +278 -0
- package/src/css/app.css +614 -0
- package/src/index.ts +16 -0
- package/src/main.ts +11 -0
- package/src/stores/media-library.ts +34 -0
- package/src/stores/page-builder-state.ts +461 -0
- package/src/stores/unsplash.ts +107 -0
- package/src/stores/user.ts +30 -0
- package/src/types/global.d.ts +49 -0
- package/src/utils/builder/compiledCSS.ts +2205 -0
- package/src/utils/builder/html-doc-declaration-with-components.ts +7 -0
- package/src/utils/builder/html-elements/componentHelpers.ts +101 -0
- package/src/utils/builder/tailwaind-colors.ts +503 -0
- package/src/utils/builder/tailwind-border-radius.ts +67 -0
- package/src/utils/builder/tailwind-border-style-width-color.ts +272 -0
- package/src/utils/builder/tailwind-font-sizes.ts +76 -0
- package/src/utils/builder/tailwind-font-styles.ts +24 -0
- package/src/utils/builder/tailwind-opacities.ts +45 -0
- package/src/utils/builder/tailwind-padding-margin.ts +159 -0
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const emit = defineEmits(['handleButton']);
|
|
3
|
+
import FullWidthElement from '@/Components/Layouts/FullWidthElement.vue';
|
|
4
|
+
|
|
5
|
+
// first button function
|
|
6
|
+
const handleButton = function () {
|
|
7
|
+
emit('handleButton');
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const features = [
|
|
11
|
+
{
|
|
12
|
+
name: 'Live Drag & Drop Builder',
|
|
13
|
+
description:
|
|
14
|
+
'Click & Drop content on a page and watch your pages come to life. Bring your vision to life and create impressive pages using a click & drop Page Builder',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: 'True Visual Editing',
|
|
18
|
+
description:
|
|
19
|
+
'See your changes in real-time as you make them. Elevate your creative vision and create pages using an intuitive click & drop page builder. Break free from design limitations and turn your visions into reality.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Features',
|
|
23
|
+
description:
|
|
24
|
+
'Click & Drop, Reordering, True Visual Editing, Responsive Editing, Font Customization, Undo & Redo, Text Editing, Media Library, Unsplash Integration, YouTube Videos.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'Technologies',
|
|
28
|
+
description:
|
|
29
|
+
'Developed with JavaScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS and HTML.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'Set Brand and Link Colors one place',
|
|
33
|
+
description:
|
|
34
|
+
'Global Styles for fonts, designs, & colors. Set Brand and Link Colors once and apply them across the entire Platform with ease.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Mobile-First Approach',
|
|
38
|
+
description:
|
|
39
|
+
'Developed with Mobile-First approach. The Page Builder even works on mobile phones.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Media Library',
|
|
43
|
+
description:
|
|
44
|
+
'A beautiful and user-friendly media library that allows you to change and update images. Unsplash Integration is included.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Minimal and Intuitive Design',
|
|
48
|
+
description:
|
|
49
|
+
'Beautiful, elegant and intuitive design. Enhance user engagement with amazing visual experience.',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<template>
|
|
55
|
+
<div>
|
|
56
|
+
<div class="myPrimaryWidthScreenModule bg-red-50 lg:block">
|
|
57
|
+
<div class="myPrimaryContentSection">
|
|
58
|
+
<h2 class="mySecondaryHeader">
|
|
59
|
+
Bring your vision to life and create impressive pages using a click &
|
|
60
|
+
drop Page Builder
|
|
61
|
+
</h2>
|
|
62
|
+
<p class="myPrimaryParagraph font-normal">
|
|
63
|
+
The web builder for stunning pages. Enable users to design and publish
|
|
64
|
+
modern pages at any scale. Build responsive pages like listings, jobs
|
|
65
|
+
or blog posts and manage content easily using the free click & drop
|
|
66
|
+
Page Builder. Developed with JavaScript, Vue 3, Composition API,
|
|
67
|
+
Pinia, CSS, Tailwind CSS and HTML
|
|
68
|
+
<br />
|
|
69
|
+
<a
|
|
70
|
+
class="text-myPrimaryLinkColor font-medium"
|
|
71
|
+
href="https://github.com/qaiswardag/vue-website-page-builder"
|
|
72
|
+
target="_blank"
|
|
73
|
+
>
|
|
74
|
+
Go to the GitHub repository
|
|
75
|
+
</a>
|
|
76
|
+
or
|
|
77
|
+
<span
|
|
78
|
+
@click="handleButton"
|
|
79
|
+
class="text-myPrimaryLinkColor font-medium cursor-pointer"
|
|
80
|
+
>
|
|
81
|
+
play around with the page builder.
|
|
82
|
+
</span>
|
|
83
|
+
</p>
|
|
84
|
+
</div>
|
|
85
|
+
<div
|
|
86
|
+
@click="handleButton"
|
|
87
|
+
class="myPrimaryContentSection cursor-pointer"
|
|
88
|
+
>
|
|
89
|
+
<div
|
|
90
|
+
class="relative overflow-hidden bg-cover bg-no-repeat grid grid-cols-12 h-[68rem] rounded-2xl shadow-sm outline outline-2 outline-offset-4 outline-myPrimaryLinkColor hover:outline-myPrimaryLinkColor/50"
|
|
91
|
+
style="background-image: url('/home/page-builder-example.jpg')"
|
|
92
|
+
>
|
|
93
|
+
<div
|
|
94
|
+
class="col-span-12 px-4 top-0 h-[4rem] w-full border-b border-gray-200"
|
|
95
|
+
>
|
|
96
|
+
<div class="flex items-center justify-between h-full">
|
|
97
|
+
<div
|
|
98
|
+
class="lg:flex hidden items-center justify-end myPrimaryGap h-full"
|
|
99
|
+
>
|
|
100
|
+
<div class="flex gap-2">
|
|
101
|
+
<span
|
|
102
|
+
class="w-2 h-2 rounded-full bg-red-400 hover:bg-red-600"
|
|
103
|
+
></span
|
|
104
|
+
><span
|
|
105
|
+
class="w-2 h-2 rounded-full bg-yellow-400 hover:bg-yellow-600"
|
|
106
|
+
></span
|
|
107
|
+
><span
|
|
108
|
+
class="w-2 h-2 rounded-full bg-green-400 hover:bg-green-600"
|
|
109
|
+
></span>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="flex justify-center items-center gap-2">
|
|
113
|
+
<button
|
|
114
|
+
type="button"
|
|
115
|
+
class="mySecondaryButton text-[10px] py-2 px-6 cursor-default min-h-2 lg:block hidden"
|
|
116
|
+
>
|
|
117
|
+
Save</button
|
|
118
|
+
><button
|
|
119
|
+
type="button"
|
|
120
|
+
class="mySecondaryButton text-[10px] py-2 px-6 cursor-default min-h-2"
|
|
121
|
+
>
|
|
122
|
+
Publish
|
|
123
|
+
</button>
|
|
124
|
+
<button
|
|
125
|
+
type="button"
|
|
126
|
+
class="myPrimaryButton text-[10px] py-2 px-6 min-h-2 cursor-pointer"
|
|
127
|
+
>
|
|
128
|
+
Demo
|
|
129
|
+
</button>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="lg:flex hidden justify-center items-center gap-2">
|
|
132
|
+
<p class="myPrimaryParagraph text-[10px] text-white italic">
|
|
133
|
+
Editing: Listing ID 1
|
|
134
|
+
</p>
|
|
135
|
+
</div>
|
|
136
|
+
<div class="flex items-center justify-end myPrimaryGap h-full">
|
|
137
|
+
<div
|
|
138
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
139
|
+
>
|
|
140
|
+
<span class="material-symbols-outlined"> add </span>
|
|
141
|
+
</div>
|
|
142
|
+
<div
|
|
143
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
144
|
+
>
|
|
145
|
+
<span class="material-symbols-outlined"> visibility </span>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="lg:flex hidden justify-center items-center gap-2">
|
|
148
|
+
<p
|
|
149
|
+
class="myPrimaryParagraph text-[12px] text-white font-medium"
|
|
150
|
+
>
|
|
151
|
+
Page Builder
|
|
152
|
+
</p>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
<div
|
|
158
|
+
class="lg:col-span-9 col-span-5 top-0 w-full h-[64rem] rounded-l-2xl"
|
|
159
|
+
>
|
|
160
|
+
<div class="flex items-center justify-between">
|
|
161
|
+
<div
|
|
162
|
+
class="w-[4rem] bg-red-100 bg-opacity-50 hover:bg-opacity-40 h-[40rem] rounded-full pt-8 ml-2"
|
|
163
|
+
>
|
|
164
|
+
<div class="flex flex-col justify-center items-center gap-8">
|
|
165
|
+
<div
|
|
166
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
167
|
+
>
|
|
168
|
+
<span class="material-symbols-outlined">
|
|
169
|
+
arrow_selector_tool
|
|
170
|
+
</span>
|
|
171
|
+
</div>
|
|
172
|
+
<div
|
|
173
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
174
|
+
>
|
|
175
|
+
<span class="material-symbols-outlined"> add </span>
|
|
176
|
+
</div>
|
|
177
|
+
<div
|
|
178
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
179
|
+
>
|
|
180
|
+
<span class="material-symbols-outlined"> replay </span>
|
|
181
|
+
</div>
|
|
182
|
+
<div
|
|
183
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryErrorColor hover:text-white focus-visible:ring-0"
|
|
184
|
+
>
|
|
185
|
+
<span class="material-symbols-outlined"> delete </span>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
<div
|
|
190
|
+
class="flex items-center justify-center w-full h-[64rem] pt-2 pr-8"
|
|
191
|
+
>
|
|
192
|
+
<div
|
|
193
|
+
class="lg:flex hidden items-center w-full h-full justify-end"
|
|
194
|
+
>
|
|
195
|
+
<div class="flex flex-col gap-2">
|
|
196
|
+
<div
|
|
197
|
+
class="w-[22rem] rounded-2xl hover:bg-opacity-80 flex flex-col justify-between top-0"
|
|
198
|
+
>
|
|
199
|
+
<div class="flex items-center justify-end gap-2">
|
|
200
|
+
<button
|
|
201
|
+
class="myPrimaryParagraph mySecondaryButton text-[10px] py-2 px-6 cursor-default min-h-2"
|
|
202
|
+
>
|
|
203
|
+
Add text element
|
|
204
|
+
</button>
|
|
205
|
+
<div
|
|
206
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
207
|
+
>
|
|
208
|
+
<span class="material-symbols-outlined text-[20px]">
|
|
209
|
+
edit
|
|
210
|
+
</span>
|
|
211
|
+
</div>
|
|
212
|
+
<div
|
|
213
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
214
|
+
>
|
|
215
|
+
<span class="material-symbols-outlined text-[20px]">
|
|
216
|
+
add
|
|
217
|
+
</span>
|
|
218
|
+
</div>
|
|
219
|
+
<div
|
|
220
|
+
class="h-8 w-8 rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryErrorColor hover:text-white focus-visible:ring-0"
|
|
221
|
+
>
|
|
222
|
+
<span class="material-symbols-outlined text-[20px]">
|
|
223
|
+
delete
|
|
224
|
+
</span>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
<div
|
|
229
|
+
class="lg:flex hidden items-center w-full h-full justify-end"
|
|
230
|
+
>
|
|
231
|
+
<div
|
|
232
|
+
class="w-[22rem] h-[10rem] rounded-2xl bg-gray-200 bg-opacity-90 hover:bg-opacity-80 py-8 flex flex-col justify-between top-0"
|
|
233
|
+
>
|
|
234
|
+
<div
|
|
235
|
+
class="py-2 flex justify-between gap-4 px-4 bg-gray-400 rounded-full mx-6 bg-opacity-30"
|
|
236
|
+
>
|
|
237
|
+
<span class="material-symbols-outlined text-[20px]">
|
|
238
|
+
format_bold </span
|
|
239
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
240
|
+
format_italic </span
|
|
241
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
242
|
+
format_color_text </span
|
|
243
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
244
|
+
format_align_left
|
|
245
|
+
</span>
|
|
246
|
+
</div>
|
|
247
|
+
<div
|
|
248
|
+
class="py-2 flex justify-between gap-4 px-4 bg-gray-400 rounded-full mx-6 bg-opacity-30"
|
|
249
|
+
>
|
|
250
|
+
<span class="material-symbols-outlined text-[20px]">
|
|
251
|
+
format_shapes </span
|
|
252
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
253
|
+
add_photo_alternate </span
|
|
254
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
255
|
+
colors </span
|
|
256
|
+
><span class="material-symbols-outlined text-[20px]">
|
|
257
|
+
attach_file
|
|
258
|
+
</span>
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
<div
|
|
268
|
+
class="lg:col-span-3 col-span-7 px-4 top-0 w-full bg-gray-200 bg-opacity-90 hover:bg-opacity-80 h-[64rem] rounded-br-2xl pt-6 overflow-y-scroll"
|
|
269
|
+
>
|
|
270
|
+
<div class="min-h-[80rem] h-[80rem]">
|
|
271
|
+
<div class="flex justify-between items-center gap-2">
|
|
272
|
+
<div></div>
|
|
273
|
+
<p class="font-medium text-sm">
|
|
274
|
+
Editing <span class="lowercase"><IMG></span>
|
|
275
|
+
</p>
|
|
276
|
+
</div>
|
|
277
|
+
<div class="my-8">
|
|
278
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
279
|
+
Filters
|
|
280
|
+
</p>
|
|
281
|
+
<div class="flex flex-col myPrimaryGap">
|
|
282
|
+
<div class="flex items-center justify-start gap-6">
|
|
283
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
284
|
+
Blur
|
|
285
|
+
</div>
|
|
286
|
+
<div
|
|
287
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
288
|
+
>
|
|
289
|
+
<p class="myPrimaryParagraph text-xs">blur-lg</p>
|
|
290
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
296
|
+
<div class="my-8">
|
|
297
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
298
|
+
Borders
|
|
299
|
+
</p>
|
|
300
|
+
<div class="flex flex-col myPrimaryGap">
|
|
301
|
+
<div class="flex items-center justify-start gap-6">
|
|
302
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
303
|
+
Radius
|
|
304
|
+
</div>
|
|
305
|
+
<div
|
|
306
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
307
|
+
>
|
|
308
|
+
<p class="myPrimaryParagraph text-xs">rounded</p>
|
|
309
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
310
|
+
</div>
|
|
311
|
+
</div>
|
|
312
|
+
<div class="flex items-center justify-start gap-6">
|
|
313
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
314
|
+
Width
|
|
315
|
+
</div>
|
|
316
|
+
<div
|
|
317
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
318
|
+
>
|
|
319
|
+
<p class="myPrimaryParagraph text-xs">border-0</p>
|
|
320
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
</div>
|
|
325
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
326
|
+
<div class="my-4">
|
|
327
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
328
|
+
Typography
|
|
329
|
+
</p>
|
|
330
|
+
<div class="flex flex-col myPrimaryGap">
|
|
331
|
+
<div class="flex items-center justify-start gap-6">
|
|
332
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
333
|
+
Font Family
|
|
334
|
+
</div>
|
|
335
|
+
<div
|
|
336
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
337
|
+
>
|
|
338
|
+
<p class="myPrimaryParagraph text-xs">Jost</p>
|
|
339
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
340
|
+
</div>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
</div>
|
|
344
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
345
|
+
<div class="my-4">
|
|
346
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">Video</p>
|
|
347
|
+
<div class="flex flex-col myPrimaryGap">
|
|
348
|
+
<div class="flex items-center justify-start gap-6">
|
|
349
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
350
|
+
Add Video
|
|
351
|
+
</div>
|
|
352
|
+
<div class="flex justify-end w-full">
|
|
353
|
+
<div
|
|
354
|
+
class="shadow h-8 w-14 rounded-lg flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
355
|
+
>
|
|
356
|
+
<span class="material-symbols-outlined">
|
|
357
|
+
play_arrow
|
|
358
|
+
</span>
|
|
359
|
+
</div>
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
365
|
+
<div class="my-8">
|
|
366
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
367
|
+
Customization
|
|
368
|
+
</p>
|
|
369
|
+
<div class="flex flex-col myPrimaryGap">
|
|
370
|
+
<div class="flex items-center justify-start gap-6">
|
|
371
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
372
|
+
Shadow
|
|
373
|
+
</div>
|
|
374
|
+
<div
|
|
375
|
+
class="myPrimaryParagraph text-xs font-medium flex justify-end w-full"
|
|
376
|
+
>
|
|
377
|
+
<div
|
|
378
|
+
class="pointer-events-auto h-6 w-10 rounded-full p-1 ring-1 ring-inset transition duration-200 ease-in-out bg-myPrimaryLinkColor ring-black/20"
|
|
379
|
+
>
|
|
380
|
+
<div
|
|
381
|
+
class="h-4 w-4 rounded-full bg-white shadow-sm ring-1 ring-slate-700/10 transition duration-200 ease-in-out translate-x-4"
|
|
382
|
+
></div>
|
|
383
|
+
</div>
|
|
384
|
+
</div>
|
|
385
|
+
</div>
|
|
386
|
+
<div class="flex items-center justify-start gap-6">
|
|
387
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
388
|
+
Sepia
|
|
389
|
+
</div>
|
|
390
|
+
<div
|
|
391
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
392
|
+
>
|
|
393
|
+
<p class="myPrimaryParagraph text-xs">sepia-0</p>
|
|
394
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
398
|
+
</div>
|
|
399
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
400
|
+
<div class="my-8">
|
|
401
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
402
|
+
Spacing
|
|
403
|
+
</p>
|
|
404
|
+
<div class="flex flex-col myPrimaryGap">
|
|
405
|
+
<div class="flex items-center justify-start gap-6">
|
|
406
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
407
|
+
Padding
|
|
408
|
+
</div>
|
|
409
|
+
<div
|
|
410
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
411
|
+
>
|
|
412
|
+
<p class="myPrimaryParagraph text-xs">p-0</p>
|
|
413
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
<div class="flex items-center justify-start gap-6">
|
|
417
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
418
|
+
Margin
|
|
419
|
+
</div>
|
|
420
|
+
<div
|
|
421
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
422
|
+
>
|
|
423
|
+
<p class="myPrimaryParagraph text-xs">m-0</p>
|
|
424
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
</div>
|
|
429
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
430
|
+
<div class="my-8">
|
|
431
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
432
|
+
Backgrounds
|
|
433
|
+
</p>
|
|
434
|
+
<div class="flex flex-col myPrimaryGap">
|
|
435
|
+
<div class="flex items-center justify-start gap-6">
|
|
436
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
437
|
+
Color
|
|
438
|
+
</div>
|
|
439
|
+
<div
|
|
440
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
441
|
+
>
|
|
442
|
+
<p class="myPrimaryParagraph text-xs">bg-black</p>
|
|
443
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
<div class="flex items-center justify-start gap-6">
|
|
447
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
448
|
+
Size
|
|
449
|
+
</div>
|
|
450
|
+
<div
|
|
451
|
+
class="border border-myPrimaryDarkGrayColor hover:border-gray-400 h-10 flex items-center justify-between px-2 shadow rounded-lg w-2/3"
|
|
452
|
+
>
|
|
453
|
+
<p class="myPrimaryParagraph text-xs">bg-cover</p>
|
|
454
|
+
<div class="material-symbols-outlined">expand_more</div>
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
457
|
+
</div>
|
|
458
|
+
</div>
|
|
459
|
+
<div class="w-full border-t border-gray-300"></div>
|
|
460
|
+
<div class="my-8">
|
|
461
|
+
<p class="myPrimaryParagraph text-sm font-medium pb-3">
|
|
462
|
+
Settings
|
|
463
|
+
</p>
|
|
464
|
+
<div class="flex flex-col myPrimaryGap">
|
|
465
|
+
<div class="flex items-center justify-start gap-6">
|
|
466
|
+
<div class="myPrimaryParagraph text-xs font-medium w-1/3">
|
|
467
|
+
Download
|
|
468
|
+
</div>
|
|
469
|
+
<div class="flex justify-end w-full">
|
|
470
|
+
<div
|
|
471
|
+
class="shadow h-8 w-14 rounded-lg flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white focus-visible:ring-0"
|
|
472
|
+
>
|
|
473
|
+
<span class="material-symbols-outlined">
|
|
474
|
+
cloud_download
|
|
475
|
+
</span>
|
|
476
|
+
</div>
|
|
477
|
+
</div>
|
|
478
|
+
</div>
|
|
479
|
+
</div>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
</div>
|
|
483
|
+
</div>
|
|
484
|
+
</div>
|
|
485
|
+
</div>
|
|
486
|
+
|
|
487
|
+
<FullWidthElement
|
|
488
|
+
:descriptionArea="true"
|
|
489
|
+
class="bg-gray-50"
|
|
490
|
+
>
|
|
491
|
+
<template #title
|
|
492
|
+
>Everything you need. Break free from design limitations
|
|
493
|
+
</template>
|
|
494
|
+
<template #description>
|
|
495
|
+
<p class="myPrimaryParagraph font-normal">
|
|
496
|
+
A Page Builder designed for growth. Build your website pages with
|
|
497
|
+
ready-made components that are fully customizable and always
|
|
498
|
+
responsive, designed to fit every need. A powerful Page Builder for
|
|
499
|
+
growing merchants, brands, and agencies.
|
|
500
|
+
<br />
|
|
501
|
+
<a
|
|
502
|
+
class="text-myPrimaryLinkColor font-medium"
|
|
503
|
+
href="https://github.com/qaiswardag/vue-website-page-builder"
|
|
504
|
+
target="_blank"
|
|
505
|
+
>
|
|
506
|
+
Go to the GitHub repository
|
|
507
|
+
</a>
|
|
508
|
+
or
|
|
509
|
+
<span
|
|
510
|
+
@click="handleButton"
|
|
511
|
+
class="text-myPrimaryLinkColor font-medium cursor-pointer"
|
|
512
|
+
>
|
|
513
|
+
play around with the page builder.
|
|
514
|
+
</span>
|
|
515
|
+
</p>
|
|
516
|
+
</template>
|
|
517
|
+
<template #content>
|
|
518
|
+
<div
|
|
519
|
+
class="grid grid-cols-1 gap-8 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-4 mt-8"
|
|
520
|
+
>
|
|
521
|
+
<div
|
|
522
|
+
v-for="feature in features"
|
|
523
|
+
:key="feature.name"
|
|
524
|
+
class="bg-red-200 bg-opacity-20 hover:bg-opacity-10 w-full lg:min-h-[20rem] min-h-[12rem] relative col-span-1 flex flex-col text-center rounded-lg shadow-sm outline outline-2 outline-offset-8 outline-yellow-400"
|
|
525
|
+
>
|
|
526
|
+
<div
|
|
527
|
+
class="bg-black/0 absolute top-0 left-0 w-full h-full rounded-lg"
|
|
528
|
+
></div>
|
|
529
|
+
<div class="px-2 pt-8 absolute top-0 w-full">
|
|
530
|
+
<p class="myTertiaryHeader">{{ feature.name }}</p>
|
|
531
|
+
<p class="myPrimaryParagraph font-medium drop-shadow-sm">
|
|
532
|
+
{{ feature.description }}
|
|
533
|
+
</p>
|
|
534
|
+
</div>
|
|
535
|
+
</div>
|
|
536
|
+
</div>
|
|
537
|
+
</template>
|
|
538
|
+
</FullWidthElement>
|
|
539
|
+
</div>
|
|
540
|
+
</template>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const emit = defineEmits(['handleButton']);
|
|
3
|
+
|
|
4
|
+
// first button function
|
|
5
|
+
const handleButton = function () {
|
|
6
|
+
emit('handleButton');
|
|
7
|
+
};
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<nav
|
|
12
|
+
class="px-6 py-6 mx-auto flex items-center justify-between bg-gray-50 px-4 lg:h-[10vh] h-[16vh]"
|
|
13
|
+
aria-label="Global"
|
|
14
|
+
>
|
|
15
|
+
<img
|
|
16
|
+
class="h-6"
|
|
17
|
+
src="/logo/logo.svg"
|
|
18
|
+
alt="Logo"
|
|
19
|
+
/>
|
|
20
|
+
|
|
21
|
+
<div class="flex lg:gap-x-12 myPrimaryGap">
|
|
22
|
+
<p
|
|
23
|
+
@click="handleButton"
|
|
24
|
+
class="text-lg font-medium text-myPrimaryDarkGrayColor flex gap-2 items-center cursor-pointer"
|
|
25
|
+
>
|
|
26
|
+
Start Builder
|
|
27
|
+
</p>
|
|
28
|
+
</div>
|
|
29
|
+
</nav>
|
|
30
|
+
</template>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
defineProps({
|
|
3
|
+
descriptionArea: {
|
|
4
|
+
Type: Boolean,
|
|
5
|
+
required: true,
|
|
6
|
+
default: true,
|
|
7
|
+
},
|
|
8
|
+
headerArea: {
|
|
9
|
+
Type: Boolean,
|
|
10
|
+
default: true,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<!-- chimp start -->
|
|
17
|
+
<div class="myPrimaryWidthScreenModule">
|
|
18
|
+
<template v-if="headerArea">
|
|
19
|
+
<div class="myPrimaryContentSection">
|
|
20
|
+
<h2 class="mySecondaryHeader">
|
|
21
|
+
<slot name="title" />
|
|
22
|
+
</h2>
|
|
23
|
+
<template v-if="descriptionArea === true">
|
|
24
|
+
<p class="myPrimaryParagraph font-normal">
|
|
25
|
+
<slot name="description" />
|
|
26
|
+
</p>
|
|
27
|
+
</template>
|
|
28
|
+
</div>
|
|
29
|
+
</template>
|
|
30
|
+
<div class="myPrimaryContentSection">
|
|
31
|
+
<slot name="content" />
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</template>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<teleport to="body">
|
|
3
|
+
<div
|
|
4
|
+
class="bg-white flex justify-center items-center h-screen w-screen fixed inset-0 z-40"
|
|
5
|
+
>
|
|
6
|
+
<div class="absolute top-1/3">
|
|
7
|
+
<div
|
|
8
|
+
class="inline-block h-10 w-10 animate-spin rounded-full border-4 border-solid border-current border-r-transparent"
|
|
9
|
+
></div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</teleport>
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
defineProps({
|
|
3
|
+
width: {
|
|
4
|
+
required: false,
|
|
5
|
+
},
|
|
6
|
+
height: {
|
|
7
|
+
required: false,
|
|
8
|
+
},
|
|
9
|
+
border: {
|
|
10
|
+
required: false,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<div class="flex items-center justify-center min-h-80 max-h-80">
|
|
17
|
+
<div
|
|
18
|
+
class="inline-block animate-spin rounded-full border-solid border-current border-r-transparent"
|
|
19
|
+
:class="[
|
|
20
|
+
width ? width : 'w-4',
|
|
21
|
+
height ? height : 'h-4',
|
|
22
|
+
border ? border : 'border-2',
|
|
23
|
+
]"
|
|
24
|
+
></div>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|