@myissue/vue-website-page-builder 3.5.3 → 3.5.5

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 (56) hide show
  1. package/README.md +33 -1
  2. package/dist/App.vue.d.ts +1 -2
  3. package/dist/Components/ComponentThumbnail.vue.d.ts +8 -4
  4. package/dist/Components/Homepage/Footer.vue.d.ts +1 -2
  5. package/dist/Components/Inputs/ToggleInput.vue.d.ts +1 -2
  6. package/dist/Components/Loaders/ElementLoader.vue.d.ts +1 -2
  7. package/dist/Components/Loaders/GlobalLoader.vue.d.ts +1 -2
  8. package/dist/Components/Modals/BuilderComponents.vue.d.ts +1 -2
  9. package/dist/Components/Modals/DynamicModalBuilder.vue.d.ts +7 -8
  10. package/dist/Components/Modals/MediaLibraryModal.vue.d.ts +1 -2
  11. package/dist/Components/Modals/ModalBuilder.vue.d.ts +4 -5
  12. package/dist/Components/Overlays/FloatingSidePanel.vue.d.ts +4 -5
  13. package/dist/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue.d.ts +1 -2
  14. package/dist/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue.d.ts +1 -2
  15. package/dist/Components/PageBuilder/EditorMenu/Editables/Borders.vue.d.ts +1 -2
  16. package/dist/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue.d.ts +1 -2
  17. package/dist/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue.d.ts +1 -2
  18. package/dist/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue.d.ts +5 -2
  19. package/dist/Components/PageBuilder/EditorMenu/Editables/HTMLEditor.vue.d.ts +1 -2
  20. package/dist/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue.d.ts +1 -2
  21. package/dist/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue.d.ts +1 -2
  22. package/dist/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue.d.ts +1 -2
  23. package/dist/Components/PageBuilder/EditorMenu/Editables/Margin.vue.d.ts +1 -2
  24. package/dist/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue.d.ts +1 -2
  25. package/dist/Components/PageBuilder/EditorMenu/Editables/Padding.vue.d.ts +1 -2
  26. package/dist/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue.d.ts +1 -2
  27. package/dist/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue.d.ts +1 -2
  28. package/dist/Components/PageBuilder/EditorMenu/Editables/ThemeColorPresetManager.vue.d.ts +2 -0
  29. package/dist/Components/PageBuilder/EditorMenu/Editables/Typography.vue.d.ts +1 -2
  30. package/dist/Components/PageBuilder/EditorMenu/Editables/TypographyForTipTap.vue.d.ts +1 -2
  31. package/dist/Components/PageBuilder/EditorMenu/EditorAccordion.vue.d.ts +2 -3
  32. package/dist/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue.d.ts +1 -2
  33. package/dist/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue.d.ts +1 -2
  34. package/dist/Components/PageBuilder/Settings/PageBuilderSettings.vue.d.ts +1 -2
  35. package/dist/Components/PageBuilder/ToolbarOption/ToolbarOption.vue.d.ts +1 -2
  36. package/dist/Components/PageBuilder/UndoRedo/UndoRedo.vue.d.ts +1 -2
  37. package/dist/Components/TipTap/TipTapInput.vue.d.ts +1 -2
  38. package/dist/PageBuilder/PageBuilder.vue.d.ts +1 -2
  39. package/dist/PageBuilder/Preview.vue.d.ts +1 -2
  40. package/dist/composables/useThemeColorPresets.d.ts +47 -0
  41. package/dist/index.d.ts +2 -1
  42. package/dist/services/PageBuilderService.d.ts +56 -0
  43. package/dist/stores/page-builder-state.d.ts +61 -6
  44. package/dist/style.css +1 -1
  45. package/dist/tests/DefaultComponents/DefaultBuilderComponents.vue.d.ts +1 -2
  46. package/dist/tests/DefaultComponents/DefaultMediaLibraryComponent.vue.d.ts +1 -2
  47. package/dist/tests/PageBuilderTest.vue.d.ts +1 -2
  48. package/dist/tests/TestComponents/DemoMediaLibraryComponentTest.vue.d.ts +1 -2
  49. package/dist/tests/TestComponents/DemoUnsplash.vue.d.ts +1 -2
  50. package/dist/tests/composables/useThemeColorPresets.test.d.ts +16 -0
  51. package/dist/types/index.d.ts +76 -6
  52. package/dist/utils/builder/tailwind-padding-margin.d.ts +8 -0
  53. package/dist/utils/html-elements/componentHelpers.d.ts +1 -0
  54. package/dist/vue-website-page-builder.js +12936 -10943
  55. package/dist/vue-website-page-builder.umd.cjs +85 -69
  56. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
2
  customMediaComponent: {
3
3
  type: ObjectConstructor;
4
4
  default: null;
@@ -11,5 +11,4 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
11
11
  }>> & Readonly<{}>, {
12
12
  customMediaComponent: Record<string, any>;
13
13
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
14
- declare const _default: typeof __VLS_export;
15
14
  export default _default;
@@ -1,3 +1,2 @@
1
- declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
- declare const _default: typeof __VLS_export;
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
3
2
  export default _default;
@@ -1,3 +1,2 @@
1
- declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
- declare const _default: typeof __VLS_export;
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
3
2
  export default _default;
@@ -1,3 +1,2 @@
1
- declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
- declare const _default: typeof __VLS_export;
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
3
2
  export default _default;
@@ -1,3 +1,2 @@
1
- declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
- declare const _default: typeof __VLS_export;
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
3
2
  export default _default;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tests for useThemeColorPresets composable.
3
+ *
4
+ * Covers:
5
+ * - buildStorageKey() — user-scoped vs shared key derivation
6
+ * - Initial hydration — config values become initial defaults
7
+ * - Persistence priority — localStorage beats config on re-hydration
8
+ * - Same-session preservation — modal reopen does NOT revert user changes
9
+ * - Page-reload persistence — changes survive clearing hasLoaded
10
+ * - updateThemeColorPreset() — normalises hex, persists to localStorage
11
+ * - setThemeColorPresetsEnabled() — toggles global enabled flag, persists
12
+ * - resetThemeColorPresets() — clears storage and restores built-in defaults
13
+ * - User-specific isolation — different user ids write to separate keys
14
+ * - PageBuilderUser.id type — accepts string and number ids
15
+ */
16
+ export {};
@@ -92,8 +92,16 @@ export interface PageBuilderStateStore {
92
92
  setFontStyle: (style: string) => void;
93
93
  setFontVerticalPadding: (padding: string) => void;
94
94
  setFontHorizontalPadding: (padding: string) => void;
95
+ setFontTopPadding: (padding: string) => void;
96
+ setFontRightPadding: (padding: string) => void;
97
+ setFontBottomPadding: (padding: string) => void;
98
+ setFontLeftPadding: (padding: string) => void;
95
99
  setFontVerticalMargin: (margin: string) => void;
96
100
  setFontHorizontalMargin: (margin: string) => void;
101
+ setFontTopMargin: (margin: string) => void;
102
+ setFontRightMargin: (margin: string) => void;
103
+ setFontBottomMargin: (margin: string) => void;
104
+ setFontLeftMargin: (margin: string) => void;
97
105
  setBorderStyle: (style: string) => void;
98
106
  setBorderWidth: (width: string) => void;
99
107
  setBorderColor: (color: string) => void;
@@ -117,24 +125,85 @@ export interface User {
117
125
  name: string;
118
126
  }
119
127
  export interface PageBuilderUser {
120
- name: string;
128
+ /**
129
+ * Optional stable user identifier.
130
+ * When provided, theme color presets are stored under a user-scoped localStorage
131
+ * key (`vueWebsitePageBuilderThemeColorPresets-u{id}`) so every user keeps their
132
+ * own personalized presets on the same device. Accepts any string or number that
133
+ * uniquely identifies the user in the host application (e.g. a database row id).
134
+ * Also accepts `null` for cases where the DB returns a nullable id column.
135
+ */
136
+ id?: string | number | null;
137
+ /**
138
+ * Display name shown in the builder toolbar.
139
+ * Optional so consumers can omit it or pass auth-user objects where the name
140
+ * field may be `username`, `displayName`, etc. — just pick the right field.
141
+ */
142
+ name?: string;
121
143
  image?: string;
122
144
  }
123
145
  export interface PageSettings {
124
- classes: string;
125
- style?: Record<string, string>;
146
+ classes?: string;
147
+ style?: string | Record<string, string>;
148
+ [key: string]: unknown;
149
+ }
150
+ export type ThemeColorPresetId = 'primary' | 'secondary' | 'custom1' | 'custom2' | 'custom3' | 'custom4' | 'custom5' | 'custom6';
151
+ export interface ThemeColorPreset {
152
+ id: ThemeColorPresetId;
153
+ label: string;
154
+ color: string;
155
+ enabled: boolean;
156
+ }
157
+ /** Flexible input for consumer configs — id accepts any string (e.g. inferred from variables). */
158
+ export interface ThemeColorPresetInput {
159
+ id: ThemeColorPresetId | (string & {});
160
+ label?: string;
161
+ color?: string;
162
+ enabled?: boolean;
163
+ [key: string]: unknown;
164
+ }
165
+ /** Input shape for themeColorPresets in PageBuilderConfig (partial colors are normalized at runtime). */
166
+ export interface ThemeColorPresetSettingsInput {
167
+ enabled?: boolean;
168
+ colors?: ReadonlyArray<ThemeColorPresetInput>;
169
+ [key: string]: unknown;
170
+ }
171
+ export interface ThemeColorPresetSettings {
172
+ enabled: boolean;
173
+ colors: readonly ThemeColorPreset[];
126
174
  }
127
175
  export interface PageBuilderConfig {
128
176
  updateOrCreate: {
129
- formType: 'create' | 'update';
177
+ /**
178
+ * Whether the builder is creating new content or updating existing content.
179
+ * Accepts `'create'`, `'update'`, or any other string for dynamic / computed values.
180
+ * The union with `(string & {})` preserves autocomplete for the two common values
181
+ * while allowing any string without requiring `as const` or explicit casting.
182
+ *
183
+ * @example
184
+ * // Dynamic value — works without `as const`
185
+ * formType: hasContent ? 'update' : 'create'
186
+ */
187
+ formType: 'create' | 'update' | (string & {});
130
188
  formName: FormName | (string & {});
189
+ [key: string]: unknown;
131
190
  };
132
191
  pageBuilderLogo?: {
133
192
  src: string;
193
+ [key: string]: unknown;
134
194
  } | null;
135
195
  resourceData?: {
136
- title: string;
137
- id?: number;
196
+ /**
197
+ * Optional page/resource title shown in the builder toolbar.
198
+ * Made optional so consumers can pass a resource object without a title
199
+ * or when the title isn't known yet at the time `startBuilder` is called.
200
+ */
201
+ title?: string;
202
+ /**
203
+ * Accepts both numeric IDs and string-based IDs (e.g. UUIDs).
204
+ * The service handles both types at runtime when building localStorage keys.
205
+ */
206
+ id?: number | string;
138
207
  [key: string]: unknown;
139
208
  } | null;
140
209
  userForPageBuilder?: PageBuilderUser;
@@ -151,6 +220,7 @@ export interface PageBuilderConfig {
151
220
  } | null;
152
221
  settings?: {
153
222
  brandColor?: string;
223
+ themeColorPresets?: ThemeColorPresetSettingsInput | ThemeColorPresetSettings | null;
154
224
  [key: string]: unknown;
155
225
  } | null;
156
226
  pageSettings?: PageSettings;
@@ -1,8 +1,16 @@
1
1
  interface TailwindPaddingMargin {
2
2
  verticalPadding: string[];
3
3
  horizontalPadding: string[];
4
+ topPadding: string[];
5
+ rightPadding: string[];
6
+ bottomPadding: string[];
7
+ leftPadding: string[];
4
8
  verticalMargin: string[];
5
9
  horizontalMargin: string[];
10
+ topMargin: string[];
11
+ rightMargin: string[];
12
+ bottomMargin: string[];
13
+ leftMargin: string[];
6
14
  }
7
15
  declare const tailwindPaddingAndMargin: TailwindPaddingMargin;
8
16
  export default tailwindPaddingAndMargin;
@@ -3,6 +3,7 @@ interface ComponentHelper {
3
3
  id: string | null;
4
4
  title: string;
5
5
  icon: string;
6
+ category: string;
6
7
  [key: string]: unknown;
7
8
  }
8
9
  declare const componentHelpers: ComponentHelper[];