@myissue/vue-website-page-builder 3.4.16 → 3.4.17
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
CHANGED
|
@@ -162,7 +162,7 @@ The Page Builder is packed with features:
|
|
|
162
162
|
- **YouTube Videos**: Integrate video content smoothly.
|
|
163
163
|
- **Download HTML**: Export the entire page as a standalone HTML file.
|
|
164
164
|
- **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.
|
|
165
|
-
- **Tailwind Support**: Fully compatible with Tailwind CSS (with automatic class prefixing to avoid conflicts).
|
|
165
|
+
- **Tailwind Support**: Fully compatible with Tailwind CSS (with automatic class prefixing to avoid conflicts). Tailwind installation is not required for the Page Builder to work.
|
|
166
166
|
- **Scoped Styles**: To ensure clean and predictable styling, the builder uses scoped style isolation. There is no risk of style conflicts between the builder and your app.
|
|
167
167
|
- **HTML Editor**: Access and edit raw HTML directly for full customization and developer-level control.
|
|
168
168
|
|
|
@@ -311,6 +311,8 @@ This prevents global styles from leaking into the builder and vice versa, which
|
|
|
311
311
|
|
|
312
312
|
When a user adds a component into the page builder, all classes from that component are automatically prefixed with `pbx-` (e.g., `pbx-button`, `pbx-container`) to ensure style isolation and avoid conflicts.
|
|
313
313
|
|
|
314
|
+
Tailwind installation is not required. The page builder ships with prefixed utility classes to ensure there are no naming conflicts. If you wish to use Tailwind in your own application, you may install and configure it as usual without interfering with the page builder.
|
|
315
|
+
|
|
314
316
|
> **Note:**
|
|
315
317
|
> Simply import the builder’s CSS file once in your project. All builder styles are namespaced, so there is no risk of style conflicts.
|
|
316
318
|
|
|
@@ -2403,8 +2403,8 @@ class cb {
|
|
|
2403
2403
|
}
|
|
2404
2404
|
const t = e.closest("section");
|
|
2405
2405
|
if (e.tagName === "SECTION")
|
|
2406
|
-
this.deleteComponentFromDOM();
|
|
2407
|
-
else if (e.remove(), t && this.isSectionEmpty(t)) {
|
|
2406
|
+
await this.deleteComponentFromDOM();
|
|
2407
|
+
else if (e.remove(), this.syncDomToStoreOnly(), t && this.isSectionEmpty(t)) {
|
|
2408
2408
|
const r = t.getAttribute("data-componentid");
|
|
2409
2409
|
if (r) {
|
|
2410
2410
|
const i = this.pageBuilderStateStore.getComponents;
|
|
@@ -2415,7 +2415,7 @@ class cb {
|
|
|
2415
2415
|
...i.slice(0, s),
|
|
2416
2416
|
...i.slice(s + 1)
|
|
2417
2417
|
];
|
|
2418
|
-
this.pageBuilderStateStore.setComponents(o), t.remove();
|
|
2418
|
+
this.pageBuilderStateStore.setComponents(o), t.remove(), this.syncDomToStoreOnly(), this.saveDomComponentsToLocalStorage();
|
|
2419
2419
|
}
|
|
2420
2420
|
}
|
|
2421
2421
|
}
|
|
@@ -2436,12 +2436,13 @@ class cb {
|
|
|
2436
2436
|
o,
|
|
2437
2437
|
...i.slice(s + 1)
|
|
2438
2438
|
];
|
|
2439
|
-
this.pageBuilderStateStore.setComponents(l);
|
|
2439
|
+
this.pageBuilderStateStore.setComponents(l), this.syncDomToStoreOnly(), this.saveDomComponentsToLocalStorage();
|
|
2440
2440
|
}
|
|
2441
2441
|
}
|
|
2442
2442
|
}
|
|
2443
|
-
}
|
|
2444
|
-
|
|
2443
|
+
} else
|
|
2444
|
+
this.syncDomToStoreOnly(), this.saveDomComponentsToLocalStorage();
|
|
2445
|
+
this.pageBuilderStateStore.setComponent(null), this.pageBuilderStateStore.setElement(null), await this.clearHtmlSelection(), await oe(), await this.addListenersToEditableElements();
|
|
2445
2446
|
}
|
|
2446
2447
|
/**
|
|
2447
2448
|
* Removes a CSS class from the currently selected element.
|
|
@@ -2609,7 +2610,7 @@ class cb {
|
|
|
2609
2610
|
if (o) {
|
|
2610
2611
|
const l = localStorage.getItem(o);
|
|
2611
2612
|
if (l || localStorage.setItem(o, JSON.stringify(s)), l) {
|
|
2612
|
-
const a = JSON.parse(l), p = a.components || [],
|
|
2613
|
+
const a = JSON.parse(l), p = a.components || [], c = s.components || [], d = c.length !== p.length || c.some((h, b) => {
|
|
2613
2614
|
const x = p[b];
|
|
2614
2615
|
return (
|
|
2615
2616
|
// New component added
|
|
@@ -24992,7 +24993,7 @@ const Wk = ["src"], Kk = {
|
|
|
24992
24993
|
}, RT = { class: "pbx-overflow-hidden pbx-shadow pbx-ring-1 pbx-ring-black pbx-ring-opacity-5 md:pbx-rounded-lg" }, HT = { class: "pbx-overflow-x-auto" }, FT = { class: "pbx-w-max" }, jT = { class: "pbx-bg-white pbx-divide-y pbx-divide-gray-200" }, zT = { class: "pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500" }, VT = { class: "pbx-min-w-[30rem] pbx-w-max" }, qT = { key: 0 }, UT = { key: 1 }, WT = { key: 0 }, KT = { class: "pbx-px-6 pbx-py-4 pbx-whitespace-nowrap pbx-text-sm pbx-text-gray-500" }, GT = { class: "pbx-min-w-[30rem] pbx-w-max" }, JT = { class: "pbx-inline-flex pbx-items-center pbx-px-2.5 pbx-py-0.5 pbx-rounded-full pbx-text-xs pbx-font-medium" }, YT = { class: "pbx-mt-4 pbx-mb-4 pbx-py-8 pbx-px-2 pbx-border pbx-border-solid pbx-border-gray-600 pbx-rounded-xl" }, QT = { class: "pbx-mt-4 pbx-whitespace-pre-wrap pbx-text-white pbx-overflow-hidden pbx-bg-gray-900" }, XT = { class: "pbx-px-4 pbx-pb-8 pbx-pt-4 pbx-text-white pbx-text-xs pbx-break-all" }, ZT = { class: "pbx-myPrimaryParagraph pbx-text-xs pbx-text-white" }, e3 = {
|
|
24993
24994
|
__name: "PageBuilderSettings",
|
|
24994
24995
|
setup(n) {
|
|
24995
|
-
const e = "3.4.
|
|
24996
|
+
const e = "3.4.17", t = Se, r = N(() => t.getPageBuilderConfig);
|
|
24996
24997
|
return (i, s) => {
|
|
24997
24998
|
var o, l, a, p, c, d, f, h, b, x, m, v, S, k, g, O;
|
|
24998
24999
|
return w(), M("div", CE, [
|