@myissue/vue-website-page-builder 3.0.17 → 3.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +79 -76
  2. package/dist/page-builder/2-images-text.png +0 -0
  3. package/dist/page-builder/3-images-text.png +0 -0
  4. package/dist/page-builder/3-vertical-images.png +0 -0
  5. package/dist/page-builder/4-images-text.png +0 -0
  6. package/dist/vue-website-page-builder.css +1 -1
  7. package/dist/vue-website-page-builder.js +7168 -7261
  8. package/dist/vue-website-page-builder.umd.cjs +146 -81
  9. package/package.json +5 -4
  10. package/src/App.vue +4 -115
  11. package/src/Components/Homepage/HomeSection.vue +70 -162
  12. package/src/Components/MediaLibrary/SidebarUnsplash.vue +9 -16
  13. package/src/Components/MediaLibrary/Unsplash.vue +51 -91
  14. package/src/Components/Modals/MediaLibraryModal.vue +56 -318
  15. package/src/Components/Modals/PageBuilderPreviewModal.vue +22 -40
  16. package/src/Components/PageBuilder/AdvancedPageBuilderSettings.vue +7 -0
  17. package/src/Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue +165 -110
  18. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +9 -16
  19. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +18 -18
  20. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +16 -21
  21. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +12 -12
  22. package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +10 -9
  23. package/src/Components/PageBuilder/EditorMenu/Editables/DeleteElement.vue +9 -9
  24. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +144 -136
  25. package/src/Components/PageBuilder/EditorMenu/Editables/ElementEditor.vue +9 -10
  26. package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +31 -27
  27. package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +20 -14
  28. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +9 -10
  29. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +9 -10
  30. package/src/Components/PageBuilder/EditorMenu/Editables/PaddingPlusMargin.vue +16 -16
  31. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +9 -16
  32. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +22 -20
  33. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +25 -27
  34. package/src/Components/PageBuilder/NoneCustomMediaLibraryComponent.vue +3 -0
  35. package/src/Components/PageBuilder/NoneCustomSearchComponent.vue +91 -0
  36. package/src/Components/PageBuilder/PageBuilderSettings.vue +8 -0
  37. package/src/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue +31 -72
  38. package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +32 -36
  39. package/src/Components/Search/SearchComponents.vue +11 -199
  40. package/src/Components/TipTap/TipTap.vue +8 -7
  41. package/src/Components/TipTap/TipTapInput.vue +136 -134
  42. package/src/PageBuilder/PageBuilder.vue +220 -32
  43. package/src/composables/{PageBuilder.ts → PageBuilderClass.ts} +223 -142
  44. package/src/composables/usePageBuilderModal.ts +25 -0
  45. package/src/index.ts +8 -2
  46. package/src/stores/media-library.ts +1 -5
  47. package/src/stores/page-builder-state.ts +52 -36
  48. package/src/stores/user.ts +8 -6
  49. package/src/types/global.d.ts +6 -44
  50. package/src/types/index.ts +169 -0
  51. package/src/utils/html-elements/component.ts +88 -0
  52. package/src/utils/html-elements/componentHelpers.ts +101 -0
  53. package/src/Components/Modals/PageBuilderModal.vue +0 -233
  54. package/src/utils/builder/html-elements/componentHelpers.ts +0 -101
package/README.md CHANGED
@@ -1,20 +1,14 @@
1
- # @myissue/vue-website-page-builder
2
-
3
- ## 🚧 **DEVELOPMENT VERSION - NOT READY FOR PRODUCTION** 🚧
1
+ <p align="center" dir="auto">
2
+ <img width="200" style="max-width: 100%;" src="./public/logo/logo.svg" alt="Logo">
3
+ </p>
4
4
 
5
- > **⚠️ WARNING**: This package is currently in **alpha development stage**.
6
- >
7
- > - **DO NOT USE IN PRODUCTION** applications
8
- > - APIs may change without notice
9
- > - Features may be incomplete or unstable
10
- > - Documentation is work in progress
11
- > - Use only for testing and development purposes
5
+ ## **DEVELOPMENT VERSION - NOT READY FOR PRODUCTION**
12
6
 
13
- ---
7
+ # Free Click & Drop Page Builder
14
8
 
15
9
  ## Overview
16
10
 
17
- A Vue.js page builder component with drag & drop functionality for creating dynamic web pages.
11
+ A Vue 3 page builder component with drag & drop functionality for creating dynamic web pages.
18
12
 
19
13
  ## Installation
20
14
 
@@ -22,63 +16,7 @@ A Vue.js page builder component with drag & drop functionality for creating dyna
22
16
  npm install @myissue/vue-website-page-builder
23
17
  ```
24
18
 
25
- ## Quick Start
26
-
27
- ```vue
28
- <script setup>
29
- import { PageBuilder } from '@myissue/vue-website-page-builder'
30
- import '@myissue/vue-website-page-builder/style.css'
31
- </script>
32
-
33
- <template>
34
- <PageBuilder />
35
- </template>
36
- ```
37
-
38
- ## Features
39
-
40
- - 🎯 **Zero Configuration** - Just import and use
41
- - 🔧 **Self-contained** - Manages its own state internally
42
- - 🎨 **Drag & Drop** - Visual page building experience
43
- - 📱 **Responsive** - Mobile-friendly interface
44
- - ⚡ **Vue 3** - Built with modern Vue.js
45
-
46
- ## Development Status
47
-
48
- | Feature | Status |
49
- | ------------------ | -------------- |
50
- | Basic Page Builder | 🟡 Alpha |
51
- | Component Library | 🟡 Alpha |
52
- | State Management | 🟡 Alpha |
53
- | Documentation | 🔴 In Progress |
54
- | Testing | 🔴 Not Started |
55
- | Stable API | 🔴 Not Ready |
56
-
57
- ## Requirements
58
-
59
- - Node.js ≥ 18.0.0
60
- - Vue.js ≥ 3.0.0
61
- - Modern browser with ES6+ support
62
-
63
- ## License
64
-
65
- MIT License - see LICENSE file for details
66
-
67
- ## Author
68
-
69
- **qaiswardag**
70
-
71
- - GitHub: [@qaiswardag](https://github.com/qaiswardag)
72
-
73
- ---
74
-
75
- > 🚧 **Remember**: This is a development version. Wait for v1.0.0 for production use!
76
-
77
- <p align="center" dir="auto">
78
- <img width="200" style="max-width: 100%;" src="./public/logo/logo.svg" alt="Logo">
79
- </p>
80
-
81
- # Free Click & Drop Page Builder
19
+ ## Click & Drop Page Builder
82
20
 
83
21
  [Play around with the page builder](https://www.builder-demo.myissue.dk)
84
22
 
@@ -130,10 +68,14 @@ agencies. Empower users to create the perfect content with the Page Builder.
130
68
 
131
69
  ## Documentation
132
70
 
133
- ### Required software installation
71
+ ### Requirements
134
72
 
135
73
  Please note that these instructions assume you have Node.js installed.
136
74
 
75
+ - Node.js ≥ 18.0.0
76
+ - Vue.js ≥ 3.0.0
77
+ - Modern browser with ES6+ support
78
+
137
79
  ### Getting started & installation
138
80
 
139
81
  Make sure to install the dependencies:
@@ -152,13 +94,48 @@ yarn install
152
94
  bun install
153
95
  ```
154
96
 
155
- ### Customization
97
+ ### Quick Start
156
98
 
157
- I have separated all the logic for manipulating the HTML elements into its own PageBuilder class, which can be found at the path: `src/composables/PageBuilder.js`.
99
+ ```vue
100
+ <script setup>
101
+ import { PageBuilder } from '@myissue/vue-website-page-builder'
102
+ import '@myissue/vue-website-page-builder/style.css'
103
+ </script>
104
+
105
+ <template>
106
+ <PageBuilder />
107
+ </template>
108
+ ```
109
+
110
+ ### Customization
158
111
 
159
112
  Customizing the page builder is made simple since all the logic resides in the PageBuilder Class.
160
113
 
161
- ### Example use of Page Builder
114
+ ### Custom Components
115
+
116
+ Want to add your own media library or search functionality? Create custom components that can be injected into the page builder:
117
+
118
+ 📚 **[Custom Components Setup Guide](./CUSTOM_COMPONENTS_SETUP.md)** - Learn how to create and integrate your own components
119
+
120
+ Example integration:
121
+
122
+ ```vue
123
+ <script setup>
124
+ import { PageBuilder } from '@myissue/vue-website-page-builder'
125
+ import MediaLibraryComponent from './ComponentsPageBuilder/MediaLibraryComponent.vue'
126
+ import SearchComponent from './ComponentsPageBuilder/SearchComponent.vue'
127
+ </script>
128
+
129
+ <template>
130
+ <PageBuilder :MediaLibraryComponent="MediaLibraryComponent" :SearchComponent="SearchComponent" />
131
+ </template>
132
+ ```
133
+
134
+ ### Company Logo
135
+
136
+ You can display your company logo in the page builder interface by passing a logo URL to the `PageBuilderLogo` prop. When provided, the logo will appear in the top toolbar of the page builder.
137
+
138
+ #### Basic Usage
162
139
 
163
140
  ```vue
164
141
  <script setup>
@@ -167,13 +144,34 @@ import '@myissue/vue-website-page-builder/style.css'
167
144
  </script>
168
145
 
169
146
  <template>
170
- <PageBuilder />
147
+ <PageBuilder PageBuilderLogo="/logo/square-logo.svg" />
171
148
  </template>
172
149
  ```
173
150
 
174
- ## License
151
+ #### Configuration Options
175
152
 
176
- [MIT License](./LICENSE)
153
+ | Prop | Type | Default | Description |
154
+ | ----------------- | -------- | ------- | ----------------------------------- |
155
+ | `PageBuilderLogo` | `String` | `null` | URL path to your company logo image |
156
+
157
+ #### Examples
158
+
159
+ **With company logo:**
160
+
161
+ ```vue
162
+ <PageBuilder PageBuilderLogo="/logo/square-logo.svg" />
163
+ ```
164
+
165
+ ```
166
+
167
+ #### Logo Requirements
168
+
169
+ - **Format**: SVG, PNG, or JPG recommended
170
+ - **Size**: Optimized for 24px height (width will scale proportionally)
171
+ - **Path**: Can be absolute URL, relative path, or imported asset
172
+ - **Accessibility**: Include appropriate alt text (automatically set to "Logo")
173
+
174
+ The logo will be displayed with a subtle border separator and proper spacing in the page builder toolbar.
177
175
 
178
176
  ## Contributing
179
177
 
@@ -182,3 +180,8 @@ import '@myissue/vue-website-page-builder/style.css'
182
180
  3. Make your changes
183
181
  4. Build and test locally
184
182
  5. Submit a pull request
183
+
184
+ ## License
185
+
186
+ [MIT License](./LICENSE)
187
+ ```