@myissue/vue-website-page-builder 3.3.58 → 3.3.60
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 +94 -36
- package/dist/vue-website-page-builder.css +1 -1
- package/dist/vue-website-page-builder.js +1037 -1003
- package/dist/vue-website-page-builder.umd.cjs +10 -10
- package/package.json +1 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +9 -2
- package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +9 -2
- package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +36 -4
- package/src/DemoComponents/HomeSection.vue +1 -1
- package/src/PageBuilder/PageBuilder.vue +1 -1
- package/src/composables/PageBuilderService.ts +102 -81
- package/src/css/app.css +3 -5
package/README.md
CHANGED
|
@@ -4,18 +4,68 @@
|
|
|
4
4
|
|
|
5
5
|
# Free Click & Drop Page Builder
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- [Free Click \& Drop Page Builder](#free-click--drop-page-builder)
|
|
8
|
+
- [Demo](#demo)
|
|
9
|
+
- [Overview](#overview)
|
|
10
|
+
- [Get Started in Minutes](#get-started-in-minutes)
|
|
11
|
+
- [Installation](#installation)
|
|
12
|
+
- [About](#about)
|
|
13
|
+
- [Features](#features)
|
|
14
|
+
- [Technical details](#technical-details)
|
|
15
|
+
- [Documentation](#documentation)
|
|
16
|
+
- [Requirements](#requirements)
|
|
17
|
+
- [Getting started \& installation](#getting-started--installation)
|
|
18
|
+
- [Quick Start](#quick-start)
|
|
19
|
+
- [Initializing the Page Builder](#initializing-the-page-builder)
|
|
20
|
+
- [Why Use the Shared Instance?](#why-use-the-shared-instance)
|
|
21
|
+
- [Using the Page Builder Component](#using-the-page-builder-component)
|
|
22
|
+
- [Important: CSS Prefixing (`pbx-`)](#important-css-prefixing-pbx-)
|
|
23
|
+
- [Rendering HTML Output in Other Frameworks (React, Nuxt, etc.)](#rendering-html-output-in-other-frameworks-react-nuxt-etc)
|
|
24
|
+
- [Providing Configuration to the Page Builder](#providing-configuration-to-the-page-builder)
|
|
25
|
+
- [Local Storage \& Auto-Save](#local-storage--auto-save)
|
|
26
|
+
- [Retrieving the Latest HTML Content for Form Submission](#retrieving-the-latest-html-content-for-form-submission)
|
|
27
|
+
- [Resetting the Builder After Successful Resource Creation or Update](#resetting-the-builder-after-successful-resource-creation-or-update)
|
|
28
|
+
- [Loading existing Content or Components into the Page Builder](#loading-existing-content-or-components-into-the-page-builder)
|
|
29
|
+
- [Automatic Draft Recovery](#automatic-draft-recovery)
|
|
30
|
+
- [Embedding Page Builder in a Modal or Dialog](#embedding-page-builder-in-a-modal-or-dialog)
|
|
31
|
+
- [Styling the Main Page Builder Container](#styling-the-main-page-builder-container)
|
|
32
|
+
- [Download HTML file](#download-html-file)
|
|
33
|
+
- [Custom Components](#custom-components)
|
|
34
|
+
- [Custom Media Library Component](#custom-media-library-component)
|
|
35
|
+
- [Custom Layout Builder Component](#custom-layout-builder-component)
|
|
36
|
+
- [Troubleshooting](#troubleshooting)
|
|
37
|
+
- [Fonts or Icons Not Displaying](#fonts-or-icons-not-displaying)
|
|
38
|
+
- [Page Builder Architecture](#page-builder-architecture)
|
|
39
|
+
- [How the Page Builder Works](#how-the-page-builder-works)
|
|
40
|
+
- [Contributing](#contributing)
|
|
41
|
+
- [Security Vulnerabilities](#security-vulnerabilities)
|
|
42
|
+
- [Get in touch for customization or any questions](#get-in-touch-for-customization-or-any-questions)
|
|
43
|
+
- [Feedback](#feedback)
|
|
44
|
+
- [Support the Project](#support-the-project)
|
|
45
|
+
- [License](#license)
|
|
46
|
+
|
|
47
|
+
## Demo
|
|
8
48
|
|
|
9
49
|
A Vue 3 page builder component with drag & drop functionality for creating dynamic web pages.
|
|
10
50
|
|
|
11
|
-
|
|
12
|
-
|
|
51
|
+
Create and enhance digital experiences with Vue on any backend.
|
|
52
|
+
|
|
53
|
+
Experience the power and simplicity of the Vue Website Page Builder in action.
|
|
54
|
+
Try the live demo to explore real-time visual updates, and smooth content management
|
|
55
|
+
|
|
56
|
+
[Play around with the Page Builder](https://www.builder-demo.myissue.dk)
|
|
57
|
+
|
|
58
|
+
## Overview
|
|
59
|
+
|
|
60
|
+
If you're a Vue 3 developer, this builder feels right at home. It installs quickly via npm and supports full customization through props and configuration objects. You can even set specific user settings like image, name, theme, language, company logo and autosave preferences, making it a personalized experience for every user.
|
|
61
|
+
|
|
62
|
+
Lightweight & Minimalist Page Builder with an elegant and intuitive design, focused on simplicity and speed.
|
|
13
63
|
|
|
14
|
-
|
|
64
|
+
Build responsive pages like listings, jobs or blog posts and manage content easily.
|
|
15
65
|
|
|
16
|
-
|
|
66
|
+
<img style="max-width: 100%;" src="./public/home/editor.jpg" alt="Vue Website Page Builder - the editor" />
|
|
17
67
|
|
|
18
|
-
##
|
|
68
|
+
## Get Started in Minutes
|
|
19
69
|
|
|
20
70
|
Easy setup and instant productivity.
|
|
21
71
|
Follow the [Quick Start](#quick-start) guide to begin building with just a few simple steps.
|
|
@@ -30,22 +80,7 @@ The web builder for stunning pages. Enable users to design and publish modern pa
|
|
|
30
80
|
npm install @myissue/vue-website-page-builder
|
|
31
81
|
```
|
|
32
82
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
[Play around with the Page Builder](https://www.builder-demo.myissue.dk)
|
|
36
|
-
|
|
37
|
-
Lightweight & Minimalist Page Builder with an elegant and intuitive design, focused on simplicity and speed.
|
|
38
|
-
|
|
39
|
-
Build responsive pages like listings, jobs or blog posts and manage content easily using the free Click & Drop Page Builder.
|
|
40
|
-
|
|
41
|
-
<img style="max-width: 100%;" src="./public/home/editor.jpg" alt="Vue Website Page Builder - the editor" />
|
|
42
|
-
|
|
43
|
-
## Demo
|
|
44
|
-
|
|
45
|
-
Introducing **The Lightweight Free Vue Click & Drop Page Builder**
|
|
46
|
-
create and enhance digital experiences with Vue on any backend.
|
|
47
|
-
|
|
48
|
-
[Play around with the Page Builder](https://www.builder-demo.myissue.dk)
|
|
83
|
+
---
|
|
49
84
|
|
|
50
85
|
## About
|
|
51
86
|
|
|
@@ -69,11 +104,13 @@ The Page Builder is packed with features:
|
|
|
69
104
|
- **Local Storage & Auto-Save**: Never lose your work - changes are saved as you go.
|
|
70
105
|
- **Unsplash**: Unsplash Integration.
|
|
71
106
|
- **Responsive Editing**: Ensure your site looks great on all devices.
|
|
72
|
-
- **Text Editing
|
|
107
|
+
- **Text Editing**: Edit text content live and in real-time.
|
|
73
108
|
- **Font Customization**: Choose the perfect fonts to match your style.
|
|
74
109
|
- **Undo & Redo**: Experiment confidently with the ability to revert changes.
|
|
75
110
|
- **Global Styles**: Global Styles for fonts, designs, & colors.
|
|
76
111
|
- **YouTube Videos**: Integrate video content smoothly.
|
|
112
|
+
- **Download HTML**: Export the entire page as a standalone HTML file.
|
|
113
|
+
- **Global Page Styling**: Instantly define, update, or clear global styles for the main page wrapper at initialization or dynamically at runtime. Gain full control over fonts, colors, backgrounds, and more for a dynamic user experience.
|
|
77
114
|
- **Tailwind Support**: Fully compatible with Tailwind CSS (with automatic class prefixing to avoid conflicts).
|
|
78
115
|
- **Styles Prefixed**: To ensure clean and predictable styling, the builder uses Scoped Style Isolation. No risk of style conflicts between the builder and your app.
|
|
79
116
|
|
|
@@ -88,6 +125,9 @@ Powerful Page Builder for any growing merchants, brands, & agencies. Empower use
|
|
|
88
125
|
|
|
89
126
|
## Documentation
|
|
90
127
|
|
|
128
|
+
Find everything you need to get started, configure, and master the Vue Website Page Builder.
|
|
129
|
+
This section covers installation, requirements, quick start, advanced usage, and integration tips—so you can build and launch pages with confidence.
|
|
130
|
+
|
|
91
131
|
## Requirements
|
|
92
132
|
|
|
93
133
|
Please note that these instructions assume you have Node.js installed.
|
|
@@ -116,6 +156,9 @@ bun install
|
|
|
116
156
|
|
|
117
157
|
## Quick Start
|
|
118
158
|
|
|
159
|
+
Get up and running with the Vue Website Page Builder in just a few minutes.
|
|
160
|
+
This section walks you through the essential steps—from installation to rendering your first page—so you can start building beautiful, dynamic content right away.
|
|
161
|
+
|
|
119
162
|
### Initializing the Page Builder
|
|
120
163
|
|
|
121
164
|
To get started with the Page Builder, follow these steps:
|
|
@@ -141,18 +184,14 @@ app.mount('#app')
|
|
|
141
184
|
> **Note:**
|
|
142
185
|
> You only need to import the CSS file once. If you have already imported it in your app entry, you do not need to import it again in individual components.
|
|
143
186
|
|
|
144
|
-
### Accessing the Shared Page Builder Service
|
|
145
|
-
|
|
146
|
-
After initializing the Page Builder service in your application (by calling `initPageBuilder()` once in your app entry point), you may access the shared instance from anywhere in your application using the `getPageBuilder()` composable.
|
|
147
|
-
|
|
148
187
|
> **Note**
|
|
149
188
|
> The Page Builder is implemented as a singleton service. This ensures that all page-building logic and state are managed by a single, shared instance throughout your application.
|
|
150
189
|
|
|
151
|
-
|
|
190
|
+
### Why Use the Shared Instance?
|
|
152
191
|
|
|
153
192
|
By always accessing the shared instance, you avoid creating multiple, isolated copies of the builder. This prevents data inconsistencies, synchronization issues, and unpredictable behavior. All components and modules interact with the same centralized service, ensuring that updates and state changes are reflected everywhere in your application.
|
|
154
193
|
|
|
155
|
-
|
|
194
|
+
### Using the Page Builder Component
|
|
156
195
|
|
|
157
196
|
Ensure the following configuration options are set:
|
|
158
197
|
|
|
@@ -160,7 +199,7 @@ Ensure the following configuration options are set:
|
|
|
160
199
|
Indicates whether you are creating or updating a resource. This is used to retrieve the correct content from local storage.
|
|
161
200
|
|
|
162
201
|
- **`formName` (required):**
|
|
163
|
-
Specifies the resource type (for example, `article`, `jobPost`, `store`, etc.).
|
|
202
|
+
Specifies the resource type (for example, `article`, `jobPost`, `store`, etc.).
|
|
164
203
|
|
|
165
204
|
```vue
|
|
166
205
|
<script setup>
|
|
@@ -482,7 +521,9 @@ function closePageBuilder() {
|
|
|
482
521
|
> You can name your handler function anything you like.
|
|
483
522
|
> This pattern makes it easy to embed the builder in modals, dialogs, or overlays in any Vue app.
|
|
484
523
|
|
|
485
|
-
|
|
524
|
+
## Styling the Main Page Builder Container
|
|
525
|
+
|
|
526
|
+
The Page Builder allows you to define and update global styles for the main wrapper (#pagebuilder) at any time. These settings control the overall appearance, including font family, text color, background color, and more. Whether you set them initially in your config or update them dynamically at runtime, your changes are instantly reflected across all sections.
|
|
486
527
|
|
|
487
528
|
Use the `pageSettings` config to apply custom CSS classes and inline styles to the Page Builder’s main wrapper.
|
|
488
529
|
The Page Builder renders all components wrapped inside a single parent container `<div id="pagebuilder">`.
|
|
@@ -502,7 +543,9 @@ const configPageBuilder = {
|
|
|
502
543
|
} as const
|
|
503
544
|
```
|
|
504
545
|
|
|
505
|
-
|
|
546
|
+
You have full control over the page’s appearance at any time — instantly override or clear global styles for the entire page, ensuring a seamless and dynamic user experience.
|
|
547
|
+
|
|
548
|
+
## Download HTML file
|
|
506
549
|
|
|
507
550
|
Export the entire page as a standalone HTML file. This includes all sections, content, and applied styles, making the file ready for use or integration elsewhere.
|
|
508
551
|
|
|
@@ -519,10 +562,25 @@ const configPageBuilder = {
|
|
|
519
562
|
} as const
|
|
520
563
|
```
|
|
521
564
|
|
|
522
|
-
|
|
565
|
+
# Custom Components
|
|
566
|
+
|
|
567
|
+
If you want to use your own components—whether custom-designed or tailored to your application's needs—you can inject them directly into the builder.
|
|
568
|
+
|
|
569
|
+
### Custom Media Library Component
|
|
570
|
+
|
|
571
|
+
By default, the Page Builder does not include a built-in media library.
|
|
572
|
+
|
|
573
|
+
This is intentional—without a custom media library, layout components that rely on images (such as Image Blocks, Hero Sections, and similar) are disabled by default. Only helper components like containers, headings, text, and buttons are available in this state.
|
|
574
|
+
|
|
575
|
+
You may extend the Page Builder by adding your own media library.
|
|
576
|
+
Inject your media library component easily to tailor the builder to your application's needs.
|
|
577
|
+
|
|
578
|
+
📚 **[Custom Components Setup Guide](./CUSTOM_COMPONENTS_SETUP.md)**
|
|
579
|
+
Learn how to create and integrate your own components step by step.
|
|
580
|
+
|
|
581
|
+
### Custom Layout Builder Component
|
|
523
582
|
|
|
524
|
-
|
|
525
|
-
Inject your components easily to tailor the builder to your application's needs.
|
|
583
|
+
The Page Builder comes with a growing collection of built-in components, including both layout and helper components. These defaults are continuously improved and expanded.
|
|
526
584
|
|
|
527
585
|
📚 **[Custom Components Setup Guide](./CUSTOM_COMPONENTS_SETUP.md)**
|
|
528
586
|
Learn how to create and integrate your own components step by step.
|
|
@@ -543,7 +601,7 @@ import '@myissue/vue-website-page-builder/style.css'
|
|
|
543
601
|
|
|
544
602
|
The Page Builder is designed as a modular, state-driven editor for dynamic page content. Its architecture separates configuration, state management, and DOM interaction, ensuring flexibility and maintainability.
|
|
545
603
|
|
|
546
|
-
|
|
604
|
+
### How the Page Builder Works
|
|
547
605
|
|
|
548
606
|
The Page Builder is designed to be easy to use and flexible for any web project. Here’s how it works behind the scenes:
|
|
549
607
|
|