@myissue/vue-website-page-builder 3.5.20 → 3.5.22
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 +78 -4
- package/dist/index.d.ts +143 -57
- package/dist/style.css +1 -1
- package/dist/vue-website-page-builder.js +11458 -10377
- package/dist/vue-website-page-builder.umd.cjs +81 -75
- package/package.json +21 -14
package/README.md
CHANGED
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
<img width="200" style="max-width: 100%;" src="./public/logo/logo.svg" alt="Vue Website Page Builder Logo" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Vue 3 Page Builder — Free, Self-Hosted, Integration-First
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**The Vue page builder for ecommerce admin panels, multi-tenant SaaS, and API-backed CMS dashboards.** Embed a visual editor in your product, connect your own media library and product catalog, and save portable HTML to your backend.
|
|
8
|
+
|
|
9
|
+
- [Vue 3 Page Builder — Free, Self-Hosted, Integration-First](#vue-3-page-builder--free-self-hosted-integration-first)
|
|
8
10
|
- [Demo](#demo)
|
|
9
11
|
- [Guide \& Documentation](#guide--documentation)
|
|
12
|
+
- [Built for Ecommerce Admin \& Multi-Tenant SaaS](#built-for-ecommerce-admin--multi-tenant-saas)
|
|
13
|
+
- [Ecommerce Product Sections](#ecommerce-product-sections)
|
|
14
|
+
- [Who This Is For](#who-this-is-for)
|
|
10
15
|
- [Backend and CMS Integration](#backend-and-cms-integration)
|
|
11
16
|
- [Why Choose This Vue Page Builder](#why-choose-this-vue-page-builder)
|
|
12
17
|
- [Overview](#overview)
|
|
@@ -27,7 +32,7 @@
|
|
|
27
32
|
|
|
28
33
|
## Demo
|
|
29
34
|
|
|
30
|
-
Vue 3
|
|
35
|
+
Free **Vue 3 page builder** with drag-and-drop editing for ecommerce admin, SaaS dashboards, and CMS workflows. Try the live demo for real-time visual updates, product sections, and content management.
|
|
31
36
|
|
|
32
37
|
Try the live demo to explore real-time visual updates and smooth content management.
|
|
33
38
|
<br>
|
|
@@ -47,6 +52,72 @@ This section covers installation, requirements, quick start, advanced usage, and
|
|
|
47
52
|
|
|
48
53
|
[Open Guides & Docs](https://myissue-studio.github.io/vue-website-page-builder/)
|
|
49
54
|
|
|
55
|
+
Key integration guides:
|
|
56
|
+
|
|
57
|
+
- [Display Products (Ecommerce)](https://myissue-studio.github.io/vue-website-page-builder/display-products) — connect your catalog and insert product grids
|
|
58
|
+
- [Custom Media Library](https://myissue-studio.github.io/vue-website-page-builder/custom-media-library) — wire your uploads, CDN, or DAM
|
|
59
|
+
- [TypeScript Support](https://myissue-studio.github.io/vue-website-page-builder/typescript-support) — typed config, products, and services
|
|
60
|
+
|
|
61
|
+
## Built for Ecommerce Admin & Multi-Tenant SaaS
|
|
62
|
+
|
|
63
|
+
Most page builders are tied to one CMS, one storefront, or one cloud platform. This project is built for teams that already have a **Vue admin**, a **REST or GraphQL API**, and a **database** — and need a visual editor inside that product.
|
|
64
|
+
|
|
65
|
+
**Best fit if you are building:**
|
|
66
|
+
|
|
67
|
+
- **Ecommerce admin** — merchants edit landing pages, collection pages, and promotional blocks while your platform owns catalog, cart, and checkout
|
|
68
|
+
- **Multi-tenant SaaS** — each customer gets branded pages; your app handles auth, billing, and tenancy; the builder outputs HTML you store per tenant
|
|
69
|
+
- **Headless CMS / marketplace admin** — editors compose pages from blocks; your backend persists full HTML and serves it on the public site
|
|
70
|
+
- **Agency & startup dashboards** — free, MIT-licensed, self-hosted; no vendor lock-in on hosting or storage
|
|
71
|
+
|
|
72
|
+
**Why Vue teams choose this over generic builders:**
|
|
73
|
+
|
|
74
|
+
- **Vue-native** — serious Vue 3 component with fewer integration compromises than dropping a React-only or iframe-based editor into a Nuxt or Laravel + Inertia app
|
|
75
|
+
- **Integration-first** — inject `:CustomMediaLibraryComponent` and `:DisplayProducts` instead of being locked to one asset provider or product database
|
|
76
|
+
- **Your backend stays in charge** — authentication, permissions, publishing, CDN, and checkout remain on your stack; the builder focuses on visual editing and portable HTML output
|
|
77
|
+
|
|
78
|
+
[Live demo](https://mybuilder.dev) · [Display Products guide](https://myissue-studio.github.io/vue-website-page-builder/display-products)
|
|
79
|
+
|
|
80
|
+
## Ecommerce Product Sections
|
|
81
|
+
|
|
82
|
+
Add real product catalog blocks to any page — without WooCommerce shortcodes or rigid storefront widgets.
|
|
83
|
+
|
|
84
|
+
Pass `:DisplayProducts` with your own product picker component. The builder opens it in the **Products** modal; when the editor confirms, you call `insertProducts()` and the canvas gets a responsive product grid (1, 2, 3, 4, or 6 columns).
|
|
85
|
+
|
|
86
|
+
**What you get out of the box:**
|
|
87
|
+
|
|
88
|
+
- **Your catalog UI** — search, categories, API pagination, Shopify/WooCommerce/custom ERP feeds (you implement the picker; we provide the hook)
|
|
89
|
+
- **Built-in grid layouts** — `grid-1` through `grid-6`, mobile column options, card styles (clean, bordered, shadow, elevated), rounded product images
|
|
90
|
+
- **Toolbar editing after insert** — change grid, mobile layout, and card style from the floating editor without re-inserting products
|
|
91
|
+
- **Portable HTML** — sections include `data-pbx-product-section` and `data-pbx-product-id` for hydration or tracking on your storefront
|
|
92
|
+
|
|
93
|
+
```vue
|
|
94
|
+
<script setup>
|
|
95
|
+
import PageBuilder from '@myissue/vue-website-page-builder'
|
|
96
|
+
import YourDisplayProducts from './YourDisplayProducts.vue'
|
|
97
|
+
</script>
|
|
98
|
+
|
|
99
|
+
<template>
|
|
100
|
+
<PageBuilder :DisplayProducts="YourDisplayProducts" />
|
|
101
|
+
</template>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Copy the reference picker from `src/tests/TestComponents/DemoDisplayProductsTest.vue` and swap static JSON for your API. Full walkthrough: [Display Products documentation](https://myissue-studio.github.io/vue-website-page-builder/display-products).
|
|
105
|
+
|
|
106
|
+
The package does **not** include cart, checkout, or inventory — by design. You keep your ecommerce stack; the builder handles layout and visual editing.
|
|
107
|
+
|
|
108
|
+
## Who This Is For
|
|
109
|
+
|
|
110
|
+
| Use case | Why this builder |
|
|
111
|
+
|----------|------------------|
|
|
112
|
+
| **Ecommerce admin panels** | Merchants design pages; you connect `:DisplayProducts` to your catalog API |
|
|
113
|
+
| **Multi-tenant SaaS** | Per-tenant pages, your auth and storage; HTML output works on any frontend |
|
|
114
|
+
| **Laravel / Nuxt / Vue admin** | Drop-in `PageBuilder` component + `getPageBuilder()` service |
|
|
115
|
+
| **Headless CMS (Strapi, Directus, custom)** | Save `getSavedPageHtml()` to your content API; reload with `parsePageBuilderHTML()` |
|
|
116
|
+
| **Marketplaces & listings** | Job boards, directories, blogs — same editor, your data layer |
|
|
117
|
+
| **Agencies & startups** | Free, MIT, self-hosted — low friction to embed and ship |
|
|
118
|
+
|
|
119
|
+
Works with Laravel, Rails, Django, Express, Nuxt, Inertia, and any API that can store and return an HTML string.
|
|
120
|
+
|
|
50
121
|
## Backend and CMS Integration
|
|
51
122
|
|
|
52
123
|
This Vue page builder is designed for real CMS, SaaS, marketplace, blog, job board, listing, and ecommerce admin workflows. The editor uses browser local storage for draft recovery and autosave, but production persistence belongs to your backend.
|
|
@@ -104,6 +175,8 @@ Many page builders are heavy, opinionated, or tied to one CMS. This project focu
|
|
|
104
175
|
- **Works with existing systems**: integrate with custom CMS dashboards, SaaS admin panels, marketplaces, job boards, blogs, and ecommerce content tools.
|
|
105
176
|
- **Vue-native integration**: use the `PageBuilder` component and `getPageBuilder()` service directly in Vue or Nuxt projects.
|
|
106
177
|
- **Bring your own media library**: inject your own media picker, storage URLs, and upload flow instead of being locked into one asset provider.
|
|
178
|
+
- **Bring your own product catalog**: inject `:DisplayProducts` to browse real SKUs from your API and insert responsive product grids — ideal for ecommerce admin and storefront content teams.
|
|
179
|
+
- **Edit product sections on canvas**: after insert, change grid layout, mobile columns, card style, and rounded images from the toolbar without re-opening the catalog modal.
|
|
107
180
|
- **Global page styles included**: `pageSettings` can be saved and restored with the page, so editing existing posts keeps fonts, colors, backgrounds, and spacing.
|
|
108
181
|
- **No Tailwind setup required**: the package ships the needed prefixed styles and avoids class conflicts with your app.
|
|
109
182
|
- **Open and customizable**: MIT licensed, component-driven, and practical for teams that need control over the editing experience.
|
|
@@ -224,7 +297,8 @@ The Page Builder is packed with features:
|
|
|
224
297
|
- **Click & Drop**: Easily rearrange elements on your page.
|
|
225
298
|
- **Reordering**: Change the order of your content without hassle.
|
|
226
299
|
- **True Visual Editing**: See your changes in real-time as you make them.
|
|
227
|
-
- **Media Library**:
|
|
300
|
+
- **Media Library**: Inject your own custom media library component (`:CustomMediaLibraryComponent`) — S3, Cloudinary, Unsplash, or internal DAM.
|
|
301
|
+
- **Ecommerce Product Sections**: Inject your own product picker (`:DisplayProducts`) — connect Shopify, WooCommerce, Medusa, or custom APIs; built-in grids, card styles, and toolbar layout editing.
|
|
228
302
|
- **Advanced Sliders & Carousels**: Build responsive image and content sliders with autoplay, navigation controls, touch support, and full customization options.
|
|
229
303
|
- **Draft Recovery & Auto-Save**: Never lose in-progress work—changes are saved locally as a draft while your backend stores published HTML.
|
|
230
304
|
- **Unsplash**: Unsplash integration.
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,74 @@ import { PiniaCustomStateProperties } from 'pinia';
|
|
|
9
9
|
import { PublicProps } from 'vue';
|
|
10
10
|
import { StoreDefinition } from 'pinia';
|
|
11
11
|
|
|
12
|
+
declare const __VLS_export: DefineComponent<ExtractPropTypes<{
|
|
13
|
+
CustomMediaLibraryComponent: {
|
|
14
|
+
type: ObjectConstructor;
|
|
15
|
+
default: null;
|
|
16
|
+
};
|
|
17
|
+
DisplayProducts: {
|
|
18
|
+
type: ObjectConstructor;
|
|
19
|
+
default: null;
|
|
20
|
+
};
|
|
21
|
+
CustomBuilderComponents: {
|
|
22
|
+
type: ObjectConstructor;
|
|
23
|
+
default: null;
|
|
24
|
+
};
|
|
25
|
+
showCloseButton: {
|
|
26
|
+
type: BooleanConstructor;
|
|
27
|
+
default: boolean;
|
|
28
|
+
};
|
|
29
|
+
showPublishButton: {
|
|
30
|
+
type: BooleanConstructor;
|
|
31
|
+
default: boolean;
|
|
32
|
+
};
|
|
33
|
+
}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
34
|
+
handleClosePageBuilder: (...args: any[]) => void;
|
|
35
|
+
handlePublishPageBuilder: (...args: any[]) => void;
|
|
36
|
+
}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
37
|
+
CustomMediaLibraryComponent: {
|
|
38
|
+
type: ObjectConstructor;
|
|
39
|
+
default: null;
|
|
40
|
+
};
|
|
41
|
+
DisplayProducts: {
|
|
42
|
+
type: ObjectConstructor;
|
|
43
|
+
default: null;
|
|
44
|
+
};
|
|
45
|
+
CustomBuilderComponents: {
|
|
46
|
+
type: ObjectConstructor;
|
|
47
|
+
default: null;
|
|
48
|
+
};
|
|
49
|
+
showCloseButton: {
|
|
50
|
+
type: BooleanConstructor;
|
|
51
|
+
default: boolean;
|
|
52
|
+
};
|
|
53
|
+
showPublishButton: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
default: boolean;
|
|
56
|
+
};
|
|
57
|
+
}>> & Readonly<{
|
|
58
|
+
onHandleClosePageBuilder?: ((...args: any[]) => any) | undefined;
|
|
59
|
+
onHandlePublishPageBuilder?: ((...args: any[]) => any) | undefined;
|
|
60
|
+
}>, {
|
|
61
|
+
CustomBuilderComponents: Record<string, any>;
|
|
62
|
+
CustomMediaLibraryComponent: Record<string, any>;
|
|
63
|
+
DisplayProducts: Record<string, any>;
|
|
64
|
+
showCloseButton: boolean;
|
|
65
|
+
showPublishButton: boolean;
|
|
66
|
+
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
67
|
+
|
|
68
|
+
declare const __VLS_export_2: DefineComponent<ExtractPropTypes<{
|
|
69
|
+
mobile: {
|
|
70
|
+
type: BooleanConstructor;
|
|
71
|
+
};
|
|
72
|
+
}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
73
|
+
mobile: {
|
|
74
|
+
type: BooleanConstructor;
|
|
75
|
+
};
|
|
76
|
+
}>> & Readonly<{}>, {
|
|
77
|
+
mobile: boolean;
|
|
78
|
+
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
79
|
+
|
|
12
80
|
declare type AvailableLanguage = 'en' | 'zh-Hans' | 'fr' | 'ja' | 'ru' | 'es' | 'pt' | 'de' | 'ar' | 'hi' | 'da' | 'it';
|
|
13
81
|
|
|
14
82
|
export declare interface BuilderResourceComponent {
|
|
@@ -19,6 +87,14 @@ export declare interface BuilderResourceComponent {
|
|
|
19
87
|
|
|
20
88
|
export declare type BuilderResourceData = BuilderResourceComponent[];
|
|
21
89
|
|
|
90
|
+
export declare function buildProductSectionHtml(products: ReadonlyArray<PageBuilderProductInput>, layout?: ProductGridLayout, sectionTitle?: string, styleOptions?: BuildProductSectionStyleOptions): string;
|
|
91
|
+
|
|
92
|
+
declare interface BuildProductSectionStyleOptions {
|
|
93
|
+
cardStyle?: ProductCardStyle;
|
|
94
|
+
roundedImages?: boolean;
|
|
95
|
+
mobileColumns?: 1 | 2;
|
|
96
|
+
}
|
|
97
|
+
|
|
22
98
|
/**
|
|
23
99
|
* Build a user-scoped storage key so each user keeps their own presets.
|
|
24
100
|
* Falls back to the shared key when no `userForPageBuilder.id` is provided.
|
|
@@ -56,52 +132,18 @@ export declare interface ImageObject {
|
|
|
56
132
|
[key: string]: unknown;
|
|
57
133
|
}
|
|
58
134
|
|
|
59
|
-
export declare
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
};
|
|
72
|
-
showPublishButton: {
|
|
73
|
-
type: BooleanConstructor;
|
|
74
|
-
default: boolean;
|
|
75
|
-
};
|
|
76
|
-
}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
77
|
-
handleClosePageBuilder: (...args: any[]) => void;
|
|
78
|
-
handlePublishPageBuilder: (...args: any[]) => void;
|
|
79
|
-
}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
80
|
-
CustomMediaLibraryComponent: {
|
|
81
|
-
type: ObjectConstructor;
|
|
82
|
-
default: null;
|
|
83
|
-
};
|
|
84
|
-
CustomBuilderComponents: {
|
|
85
|
-
type: ObjectConstructor;
|
|
86
|
-
default: null;
|
|
87
|
-
};
|
|
88
|
-
showCloseButton: {
|
|
89
|
-
type: BooleanConstructor;
|
|
90
|
-
default: boolean;
|
|
91
|
-
};
|
|
92
|
-
showPublishButton: {
|
|
93
|
-
type: BooleanConstructor;
|
|
94
|
-
default: boolean;
|
|
95
|
-
};
|
|
96
|
-
}>> & Readonly<{
|
|
97
|
-
onHandleClosePageBuilder?: ((...args: any[]) => any) | undefined;
|
|
98
|
-
onHandlePublishPageBuilder?: ((...args: any[]) => any) | undefined;
|
|
99
|
-
}>, {
|
|
100
|
-
CustomBuilderComponents: Record<string, any>;
|
|
101
|
-
CustomMediaLibraryComponent: Record<string, any>;
|
|
102
|
-
showCloseButton: boolean;
|
|
103
|
-
showPublishButton: boolean;
|
|
104
|
-
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
135
|
+
export declare interface InsertProductsOptions {
|
|
136
|
+
layout?: ProductGridLayout;
|
|
137
|
+
mobileColumns?: ProductMobileColumns;
|
|
138
|
+
cardStyle?: ProductCardStyle;
|
|
139
|
+
/** Adds rounded corners to product images */
|
|
140
|
+
roundedImages?: boolean;
|
|
141
|
+
sectionTitle?: string;
|
|
142
|
+
/** unshift | push | insert (uses current add index) */
|
|
143
|
+
method?: 'unshift' | 'push' | 'insert' | (string & {});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export declare const PageBuilder: typeof __VLS_export;
|
|
105
147
|
|
|
106
148
|
export declare const pageBuilder: {
|
|
107
149
|
install: (app: App) => void;
|
|
@@ -199,17 +241,35 @@ declare interface PageBuilderElementFonts {
|
|
|
199
241
|
p?: string;
|
|
200
242
|
}
|
|
201
243
|
|
|
202
|
-
export declare const PageBuilderPreview:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
244
|
+
export declare const PageBuilderPreview: typeof __VLS_export_2;
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Flexible product shape for ecommerce integrations.
|
|
248
|
+
* All fields are optional — hosts decide what to show in their custom picker or layouts.
|
|
249
|
+
* Includes an index signature for custom fields used in templates.
|
|
250
|
+
*/
|
|
251
|
+
export declare type PageBuilderProduct = PageBuilderProductInput & {
|
|
252
|
+
[key: string]: unknown;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Product fields accepted by insertProducts() / buildProductSectionHtml().
|
|
257
|
+
* No index signature — assign from your API interfaces without extra casting.
|
|
258
|
+
*/
|
|
259
|
+
export declare interface PageBuilderProductInput {
|
|
260
|
+
id?: string | number;
|
|
261
|
+
title?: string;
|
|
262
|
+
description?: string;
|
|
263
|
+
image?: string;
|
|
264
|
+
imageAlt?: string;
|
|
265
|
+
price?: string | number;
|
|
266
|
+
compareAtPrice?: string | number;
|
|
267
|
+
badge?: string;
|
|
268
|
+
/** Product or checkout URL on the host storefront */
|
|
269
|
+
url?: string;
|
|
270
|
+
buttonText?: string;
|
|
271
|
+
sku?: string;
|
|
272
|
+
}
|
|
213
273
|
|
|
214
274
|
export declare class PageBuilderService {
|
|
215
275
|
private fontSizeRegex;
|
|
@@ -406,6 +466,9 @@ export declare class PageBuilderService {
|
|
|
406
466
|
isSelectedComponentTopElement(): boolean;
|
|
407
467
|
selectedComponentIsFullWidth(): boolean;
|
|
408
468
|
setSelectedComponentFullWidth(enabled: boolean): Promise<void>;
|
|
469
|
+
isSelectedProductSection(): boolean;
|
|
470
|
+
getSelectedProductSectionOptions(): ProductSectionOptions;
|
|
471
|
+
updateSelectedProductSection(options: ProductSectionOptions): Promise<void>;
|
|
409
472
|
/**
|
|
410
473
|
* Returns true when the global page wrapper has the full-width class applied.
|
|
411
474
|
*/
|
|
@@ -881,6 +944,15 @@ export declare class PageBuilderService {
|
|
|
881
944
|
* @returns {Promise<void>}
|
|
882
945
|
*/
|
|
883
946
|
addComponent(componentObject: ComponentObject): Promise<void>;
|
|
947
|
+
/**
|
|
948
|
+
* Inserts a product section using raw HTML from a custom product picker.
|
|
949
|
+
*/
|
|
950
|
+
insertProductHtml(html: string, title?: string): Promise<void>;
|
|
951
|
+
/**
|
|
952
|
+
* Inserts products using a built-in grid layout helper.
|
|
953
|
+
* Hosts can also call insertProductHtml() with fully custom markup.
|
|
954
|
+
*/
|
|
955
|
+
insertProducts(products: ReadonlyArray<PageBuilderProductInput>, options?: InsertProductsOptions): Promise<void>;
|
|
884
956
|
/**
|
|
885
957
|
* Adds a prefix to Tailwind CSS classes in a string.
|
|
886
958
|
* @param {string} classList - The string of classes.
|
|
@@ -1048,6 +1120,19 @@ export declare interface PageSettings {
|
|
|
1048
1120
|
[key: string]: unknown;
|
|
1049
1121
|
}
|
|
1050
1122
|
|
|
1123
|
+
export declare type ProductCardStyle = 'minimal' | 'bordered' | 'shadow' | 'elevated' | (string & {});
|
|
1124
|
+
|
|
1125
|
+
export declare type ProductGridLayout = 'grid-1' | 'grid-2' | 'grid-3' | 'grid-4' | 'grid-6' | (string & {});
|
|
1126
|
+
|
|
1127
|
+
declare type ProductMobileColumns = 1 | 2;
|
|
1128
|
+
|
|
1129
|
+
export declare interface ProductSectionOptions {
|
|
1130
|
+
layout: ProductGridLayout;
|
|
1131
|
+
mobileColumns?: ProductMobileColumns;
|
|
1132
|
+
cardStyle?: ProductCardStyle;
|
|
1133
|
+
roundedImages?: boolean;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1051
1136
|
/**
|
|
1052
1137
|
* Clear the stored theme color presets for the current user and reset the
|
|
1053
1138
|
* in-memory state to built-in defaults.
|
|
@@ -1127,6 +1212,7 @@ export declare interface ThemeColorPresetSettingsInput {
|
|
|
1127
1212
|
export declare function usePageBuilderModal(): {
|
|
1128
1213
|
closeAddComponentModal: () => void;
|
|
1129
1214
|
closeMediaLibraryModal: () => void;
|
|
1215
|
+
closeProductLibraryModal: () => void;
|
|
1130
1216
|
};
|
|
1131
1217
|
|
|
1132
1218
|
export declare const usePageBuilderStateStore: StoreDefinition<"pageBuilderState", PageBuilderState, {
|