@myissue/vue-website-page-builder 3.0.29 → 3.0.31

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 (35) hide show
  1. package/dist/vue-website-page-builder.js +20905 -20846
  2. package/dist/vue-website-page-builder.umd.cjs +49 -49
  3. package/package.json +1 -1
  4. package/src/Components/MediaLibrary/SidebarUnsplash.vue +3 -3
  5. package/src/Components/MediaLibrary/Unsplash.vue +2 -3
  6. package/src/Components/Modals/MediaLibraryModal.vue +1 -1
  7. package/src/Components/Modals/PageBuilderPreviewModal.vue +27 -9
  8. package/src/Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue +3 -5
  9. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +1 -2
  10. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +1 -2
  11. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +1 -2
  12. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +1 -2
  13. package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +1 -2
  14. package/src/Components/PageBuilder/EditorMenu/Editables/DeleteElement.vue +1 -2
  15. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +1 -2
  16. package/src/Components/PageBuilder/EditorMenu/Editables/ElementEditor.vue +1 -2
  17. package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +1 -2
  18. package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +1 -2
  19. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +1 -2
  20. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +1 -2
  21. package/src/Components/PageBuilder/EditorMenu/Editables/PaddingPlusMargin.vue +1 -2
  22. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +1 -2
  23. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +1 -2
  24. package/src/Components/PageBuilder/NoneCustomMediaLibraryComponent.vue +1 -3
  25. package/src/Components/PageBuilder/NoneCustomSearchComponent.vue +3 -4
  26. package/src/Components/TipTap/TipTap.vue +1 -2
  27. package/src/Components/TipTap/TipTapInput.vue +1 -2
  28. package/src/PageBuilder/PageBuilder.vue +5 -11
  29. package/src/composables/PageBuilderClass.ts +8 -12
  30. package/src/index.ts +1 -3
  31. package/src/stores/page-builder-state.ts +159 -0
  32. package/src/types/index.ts +4 -7
  33. package/src/stores/media-library.ts +0 -30
  34. package/src/stores/unsplash.ts +0 -107
  35. package/src/stores/user.ts +0 -32
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myissue/vue-website-page-builder",
3
- "version": "v3.0.29",
3
+ "version": "v3.0.31",
4
4
  "description": "🚧 DEVELOPMENT VERSION - Vue.js page builder component with drag & drop functionality. Not ready for production use.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",
@@ -1,11 +1,11 @@
1
1
  <script setup>
2
2
  import { ref, computed, onMounted, inject } from 'vue'
3
3
 
4
- // Get stores from parent PageBuilder component
5
- const mediaLibraryStore = inject('mediaLibraryStore')
4
+ // Get consolidated store from parent PageBuilder component
5
+ const pageBuilderStateStore = inject('pageBuilderStateStore')
6
6
 
7
7
  const getCurrentImage = computed(() => {
8
- return mediaLibraryStore.getCurrentImage
8
+ return pageBuilderStateStore.getCurrentImage
9
9
  })
10
10
  </script>
11
11
 
@@ -3,7 +3,6 @@ import { ref, computed, onMounted, inject } from 'vue'
3
3
  import { useUnsplashStore } from '@/stores/unsplash'
4
4
 
5
5
  // Get stores from parent PageBuilder component
6
- const mediaLibraryStore = inject('mediaLibraryStore')
7
6
  const unsplashStore = useUnsplashStore()
8
7
  const searchQuery = ref('')
9
8
  const currentPage = ref(1)
@@ -18,8 +17,8 @@ const getUnsplashImages = computed(() => {
18
17
  })
19
18
 
20
19
  const handleImageClick = function (file) {
21
- mediaLibraryStore.setCurrentImage({ src: file })
22
- mediaLibraryStore.setCurrentPreviewImage(null)
20
+ pageBuilderStateStore.setCurrentImage({ src: file })
21
+ pageBuilderStateStore.setCurrentPreviewImage(null)
23
22
  }
24
23
 
25
24
  // search by orientation
@@ -94,7 +94,7 @@ provide('closeMediaLibraryModal', closeMediaLibraryModal)
94
94
  leave-to="opacity-0 scale-95"
95
95
  >
96
96
  <div
97
- class="relative max-h-[65rem] my-2 inline-block align-bottom bg-white rounded-2xl text-left overflow-hidden shadow-xl transform transition-all sm:align-middle sm:max-w-7xl sm:w-full w-[96%]"
97
+ class="font-sans relative max-h-[65rem] my-2 inline-block align-bottom bg-white rounded-2xl text-left overflow-hidden shadow-xl transform transition-all sm:align-middle sm:max-w-7xl sm:w-full w-[96%]"
98
98
  >
99
99
  <div
100
100
  class="flex gap-2 justify-between items-center border-b border-gray-200 p-4 mb-2"
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { computed, inject } from 'vue'
3
3
  import { delay } from '@/composables/delay'
4
+ import { usePageBuilderStateStore } from '@/stores/page-builder-state'
4
5
 
5
6
  import {
6
7
  Dialog,
@@ -11,8 +12,8 @@ import {
11
12
  } from '@headlessui/vue'
12
13
  import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/vue'
13
14
 
14
- // Get stores from parent PageBuilder component
15
- const userStore = inject('userStore')
15
+ // Get store from parent PageBuilder component
16
+ const internalPinia = inject('internalPinia')
16
17
 
17
18
  defineProps({
18
19
  show: {
@@ -28,14 +29,20 @@ const emit = defineEmits(['firstPageBuilderPreviewModalButton'])
28
29
  const firstButton = async function () {
29
30
  emit('firstPageBuilderPreviewModalButton')
30
31
 
31
- userStore.setIsLoading(true)
32
+ pageBuilderStateStore.setIsLoading(true)
32
33
  await delay()
33
- userStore.setIsLoading(false)
34
+ pageBuilderStateStore.setIsLoading(false)
34
35
  }
35
36
 
36
37
  const handleEscapeKey = function () {
37
38
  firstButton()
38
39
  }
40
+
41
+ const pageBuilderStateStore = usePageBuilderStateStore(internalPinia)
42
+
43
+ const getPageBuilderLogo = computed(() => {
44
+ return pageBuilderStateStore.getPageBuilderLogo
45
+ })
39
46
  </script>
40
47
 
41
48
  <template>
@@ -48,7 +55,9 @@ const handleEscapeKey = function () {
48
55
  class="fixed z-30 inset-0 overflow-y-auto focus:outline-none"
49
56
  tabindex="0"
50
57
  >
51
- <div class="flex items-end justify-center pb-20 text-center sm:block sm:p-0 bg-white">
58
+ <div
59
+ class="font-sans flex items-end justify-center pb-20 text-center sm:block sm:p-0 bg-white"
60
+ >
52
61
  <TransitionChild
53
62
  as="template"
54
63
  enter="ease-out duration-100"
@@ -78,11 +87,20 @@ const handleEscapeKey = function () {
78
87
  class="bg-red-100 inline-block align-bottom text-left transform transition-all sm:align-middle w-full overflow-hidden h-[100vh] top-0 left-0 right-0 absolute"
79
88
  >
80
89
  <div
81
- class="px-4 px-4 lg:h-[10vh] h-[16vh] flex items-center justify-between border-b border-gray-200 bg-white"
90
+ class="px-4 lg:h-[10vh] h-[16vh] flex items-center justify-between border-b border-gray-200 bg-white"
82
91
  >
83
- <button type="button" @click="firstButton">
84
- <img class="h-6" src="/logo/logo.svg" alt="Logo" />
85
- </button>
92
+ <div v-if="getPageBuilderLogo" class="flex items-center divide-x divide-gray-200">
93
+ <div class="pr-4">
94
+ <img class="h-6" :src="getPageBuilderLogo" alt="Logo" />
95
+ </div>
96
+ <span class="myPrimaryParagraph font-medium pl-4">Preview mode </span>
97
+ </div>
98
+ <div v-else>
99
+ <div class="pr-6">
100
+ <span class="myPrimaryParagraph font-medium">Preview mode </span>
101
+ </div>
102
+ </div>
103
+
86
104
  <div
87
105
  @click="firstButton"
88
106
  class="flex items-center justify-center gap-1 cursor-pointer"
@@ -8,20 +8,18 @@ import SlideOverRight from '@/Components/PageBuilder/Slidebars/SlideOverRight.vu
8
8
  import PageBuilderSettings from '@/Components/PageBuilder/Settings/PageBuilderSettings.vue'
9
9
  import DynamicModal from '@/Components/Modals/DynamicModal.vue'
10
10
 
11
- // Get stores from parent PageBuilder component
11
+ // Get consolidated store from parent PageBuilder component
12
12
  const pageBuilderStateStore = inject('pageBuilderStateStore')
13
- const mediaLibraryStore = inject('mediaLibraryStore')
14
- const userStore = inject('userStore')
15
13
 
16
14
  const getCurrentUser = computed(() => {
17
- return userStore.getCurrentUser
15
+ return pageBuilderStateStore.getCurrentUser
18
16
  })
19
17
 
20
18
  const getCurrentResourceData = computed(() => {
21
19
  return pageBuilderStateStore.getCurrentResourceData
22
20
  })
23
21
 
24
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
22
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
25
23
  const emit = defineEmits(['previewCurrentDesign'])
26
24
 
27
25
  const showModalDeleteAllComponents = ref(false)
@@ -6,8 +6,7 @@ import tailwindColors from '@/utils/builder/tailwaind-colors'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
9
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
11
10
  const backgroundColor = ref(null)
12
11
  const getBackgroundColor = computed(() => {
13
12
  return pageBuilderStateStore.getBackgroundColor
@@ -6,9 +6,8 @@ import tailwindBorderRadius from '@/utils/builder/tailwind-border-radius'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
9
 
11
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
10
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
12
11
  const borderRadiusGlobal = ref(null)
13
12
  const borderRadiusTopLeft = ref(null)
14
13
  const borderRadiusTopRight = ref(null)
@@ -8,9 +8,8 @@ import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headless
8
8
 
9
9
  // Get stores from parent PageBuilder component
10
10
  const pageBuilderStateStore = inject('pageBuilderStateStore')
11
- const mediaLibraryStore = inject('mediaLibraryStore')
12
11
 
13
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
12
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
14
13
  const borderStyle = ref(null)
15
14
  const borderWidth = ref(null)
16
15
  const borderColor = ref(null)
@@ -5,9 +5,8 @@ import PageBuilderClass from '@/composables/PageBuilderClass.ts'
5
5
 
6
6
  // Get stores from parent PageBuilder component
7
7
  const pageBuilderStateStore = inject('pageBuilderStateStore')
8
- const mediaLibraryStore = inject('mediaLibraryStore')
9
8
 
10
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
9
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
11
10
  const currentClasses = ref(null)
12
11
  const getCurrentClasses = computed(() => {
13
12
  return pageBuilderStateStore.getCurrentClasses
@@ -6,7 +6,6 @@ import { ref } from 'vue'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
9
 
11
10
  const showModalDeleteComponent = ref(false)
12
11
  // use dynamic model
@@ -21,7 +20,7 @@ const thirdButtonModal = ref(null)
21
20
  const firstModalButtonFunction = ref(null)
22
21
  const secondModalButtonFunction = ref(null)
23
22
  const thirdModalButtonFunction = ref(null)
24
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
23
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
25
24
 
26
25
  // remove component
27
26
  const deleteComponent = function (e) {
@@ -5,9 +5,8 @@ import PageBuilderClass from '@/composables/PageBuilderClass.ts'
5
5
 
6
6
  // Get stores from parent PageBuilder component
7
7
  const pageBuilderStateStore = inject('pageBuilderStateStore')
8
- const mediaLibraryStore = inject('mediaLibraryStore')
9
8
 
10
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
9
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
11
10
  const getRestoredElement = computed(() => {
12
11
  return pageBuilderStateStore.getRestoredElement
13
12
  })
@@ -9,10 +9,9 @@ import BackgroundColorEditor from '@/Components/PageBuilder/EditorMenu/Editables
9
9
 
10
10
  // Get stores from parent PageBuilder component
11
11
  const pageBuilderStateStore = inject('pageBuilderStateStore')
12
- const mediaLibraryStore = inject('mediaLibraryStore')
13
12
  const customMediaComponent = inject('CustomMediaComponent')
14
13
 
15
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
14
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
16
15
 
17
16
  const getElement = computed(() => {
18
17
  return pageBuilderStateStore.getElement
@@ -5,9 +5,8 @@ import EditorAccordion from '@/Components/PageBuilder/EditorMenu/EditorAccordion
5
5
 
6
6
  // Get stores from parent PageBuilder component
7
7
  const pageBuilderStateStore = inject('pageBuilderStateStore')
8
- const mediaLibraryStore = inject('mediaLibraryStore')
9
8
 
10
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
9
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
11
10
 
12
11
  const getElement = computed(() => {
13
12
  return pageBuilderStateStore.getElement
@@ -6,10 +6,9 @@ import PageBuilderClass from '@/composables/PageBuilderClass.ts'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
9
  const customMediaComponent = inject('CustomMediaComponent')
11
10
 
12
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
11
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
13
12
  const isLoading = ref(false)
14
13
 
15
14
  // use media library
@@ -6,9 +6,8 @@ import { Switch } from '@headlessui/vue'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
9
 
11
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
10
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
12
11
  const hyperlinkEnable = ref(false)
13
12
  const urlInput = ref(null)
14
13
  const openHyperlinkInNewTab = ref(false)
@@ -13,8 +13,7 @@ import {
13
13
 
14
14
  // Get stores from parent PageBuilder component
15
15
  const pageBuilderStateStore = inject('pageBuilderStateStore')
16
- const mediaLibraryStore = inject('mediaLibraryStore')
17
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
16
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
18
17
  const opacityVueModel = ref(null)
19
18
  const getBackgroundOpacity = computed(() => {
20
19
  return pageBuilderStateStore.getBackgroundOpacity
@@ -13,8 +13,7 @@ import {
13
13
 
14
14
  // Get stores from parent PageBuilder component
15
15
  const pageBuilderStateStore = inject('pageBuilderStateStore')
16
- const mediaLibraryStore = inject('mediaLibraryStore')
17
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
16
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
18
17
  const opacityVueModel = ref(null)
19
18
  const getOpacity = computed(() => {
20
19
  return pageBuilderStateStore.getOpacity
@@ -6,9 +6,8 @@ import tailwindPaddingPlusMargin from '@/utils/builder/tailwind-padding-margin'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
9
 
11
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
10
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
12
11
  const fontVerticalPadding = ref(null)
13
12
  const fontHorizontalPadding = ref(null)
14
13
  const fontVerticalMargin = ref(null)
@@ -6,8 +6,7 @@ import tailwindColors from '@/utils/builder/tailwaind-colors'
6
6
 
7
7
  // Get stores from parent PageBuilder component
8
8
  const pageBuilderStateStore = inject('pageBuilderStateStore')
9
- const mediaLibraryStore = inject('mediaLibraryStore')
10
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
9
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
11
10
  const textColor = ref(null)
12
11
  const getTextColor = computed(() => {
13
12
  return pageBuilderStateStore.getTextColor
@@ -7,9 +7,8 @@ import tailwindFontStyles from '@/utils/builder/tailwind-font-styles'
7
7
 
8
8
  // Get stores from parent PageBuilder component
9
9
  const pageBuilderStateStore = inject('pageBuilderStateStore')
10
- const mediaLibraryStore = inject('mediaLibraryStore')
11
10
 
12
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
11
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
13
12
  const fontBase = ref(null)
14
13
  const fontDesktop = ref(null)
15
14
  const fontTablet = ref(null)
@@ -1,5 +1,3 @@
1
1
  <template>
2
- <div class="font-sans">
3
- <div>NoneCustomMediaLibraryComponent here for the page builder to add media if needed</div>
4
- </div>
2
+ <div>NoneCustomMediaLibraryComponent here for the page builder to add media if needed</div>
5
3
  </template>
@@ -4,18 +4,17 @@ import components from '../../utils/html-elements/component'
4
4
  import PageBuilderClass from '../../composables/PageBuilderClass'
5
5
  import { usePageBuilderModal } from '../../composables/usePageBuilderModal'
6
6
  import { generateComponentPreview } from '../../utils/componentPreviews'
7
- import type { ComponentObject, PageBuilderStateStore, MediaLibraryStore } from '../../types'
7
+ import type { ComponentObject, PageBuilderStateStore } from '../../types'
8
8
 
9
9
  import { inject, ref } from 'vue'
10
10
 
11
11
  // Get stores from parent PageBuilder component
12
12
  const pageBuilderStateStore = inject<PageBuilderStateStore>('pageBuilderStateStore')
13
- const mediaLibraryStore = inject<MediaLibraryStore>('mediaLibraryStore')
14
13
 
15
14
  // Get modal close function
16
15
  const { closeAddComponentModal } = usePageBuilderModal()
17
16
 
18
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore!, mediaLibraryStore!)
17
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore!)
19
18
 
20
19
  // Track image loading states
21
20
  const imageLoadingStates = ref<Record<string, boolean>>({})
@@ -63,7 +62,7 @@ const getSvgPreview = (title: string) => {
63
62
  </style>
64
63
 
65
64
  <template>
66
- <div class="font-sans p-4">
65
+ <div class="p-4">
67
66
  <!-- Helper Components Section -->
68
67
  <div class="mb-8">
69
68
  <h3 class="myQuaternaryHeader mb-4">Helper Components</h3>
@@ -4,9 +4,8 @@ import PageBuilderClass from '@/composables/PageBuilderClass.ts'
4
4
 
5
5
  // Get stores from parent PageBuilder component
6
6
  const pageBuilderStateStore = inject('pageBuilderStateStore')
7
- const mediaLibraryStore = inject('mediaLibraryStore')
8
7
 
9
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
8
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
10
9
  </script>
11
10
 
12
11
  <template>
@@ -8,7 +8,6 @@ import DynamicModal from '@/Components/Modals/DynamicModal.vue'
8
8
 
9
9
  // Get stores from parent PageBuilder component
10
10
  const pageBuilderStateStore = inject('pageBuilderStateStore')
11
- const mediaLibraryStore = inject('mediaLibraryStore')
12
11
 
13
12
  const showModalUrl = ref(false)
14
13
 
@@ -25,7 +24,7 @@ const firstModalButtonFunction = ref(null)
25
24
  const secondModalButtonFunction = ref(null)
26
25
  const thirdModalButtonFunction = ref(null)
27
26
 
28
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
27
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
29
28
 
30
29
  const getElement = computed(() => {
31
30
  return pageBuilderStateStore.getElement
@@ -11,8 +11,6 @@ import SearchComponents from '@/Components/Search/SearchComponents.vue'
11
11
  import OptionsDropdown from '@/Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue'
12
12
  import RightSidebarEditor from '@/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue'
13
13
  import { usePageBuilderStateStore } from '@/stores/page-builder-state'
14
- import { useMediaLibraryStore } from '@/stores/media-library'
15
- import { useUserStore } from '@/stores/user'
16
14
 
17
15
  /**
18
16
  * Props for PageBuilder component
@@ -66,9 +64,7 @@ const props = defineProps({
66
64
 
67
65
  // Create internal Pinia instance for PageBuilder package
68
66
  const internalPinia = createPinia()
69
- const mediaLibraryStore = useMediaLibraryStore(internalPinia)
70
67
  const pageBuilderStateStore = usePageBuilderStateStore(internalPinia)
71
- const userStore = useUserStore(internalPinia)
72
68
 
73
69
  // Set logo
74
70
  if (props.PageBuilderLogo) {
@@ -85,19 +81,17 @@ if (props.resourceData) {
85
81
  }
86
82
  // Set current user if provided
87
83
  if (props.userForPageBuilder) {
88
- userStore.setCurrentUser(props.userForPageBuilder)
84
+ pageBuilderStateStore.setCurrentUser(props.userForPageBuilder)
89
85
  }
90
86
 
91
87
  // Set updateOrCreate in store
92
88
  pageBuilderStateStore.setUpdateOrCreate(props.updateOrCreate)
93
89
 
94
- // Initialize PageBuilder with stores
95
- const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore, mediaLibraryStore)
90
+ // Initialize PageBuilder with store
91
+ const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
96
92
 
97
- // Provide stores for child components
93
+ // Provide store for child components (all pointing to the same consolidated store)
98
94
  provide('pageBuilderStateStore', pageBuilderStateStore)
99
- provide('mediaLibraryStore', mediaLibraryStore)
100
- provide('userStore', userStore)
101
95
 
102
96
  // Provide the internal Pinia instance for components that need to create stores
103
97
  provide('internalPinia', internalPinia)
@@ -158,7 +152,7 @@ const getComponents = computed(() => {
158
152
  })
159
153
 
160
154
  const getCurrentUser = computed(() => {
161
- return userStore.getCurrentUser
155
+ return pageBuilderStateStore.getCurrentUser
162
156
  })
163
157
 
164
158
  const getCurrentResourceData = computed(() => {
@@ -2,8 +2,6 @@
2
2
  import type {
3
3
  ComponentObject,
4
4
  ImageObject,
5
- PageBuilderStateStore,
6
- MediaLibraryStore,
7
5
  TimerHandle,
8
6
  MutationObserver as MutationObserverType,
9
7
  TailwindColors,
@@ -14,6 +12,7 @@ import type {
14
12
  TailwindBorderRadius,
15
13
  TailwindBorderStyleWidthColor,
16
14
  } from '@/types'
15
+ import type { usePageBuilderStateStore } from '@/stores/page-builder-state'
17
16
 
18
17
  import tailwindColors from '@/utils/builder/tailwaind-colors'
19
18
  import tailwindOpacities from '@/utils/builder/tailwind-opacities'
@@ -33,11 +32,10 @@ class PageBuilderClass {
33
32
  private nextTick: Promise<void>
34
33
  private containsPagebuilder: Element | null
35
34
  private timer: number | null
36
- private pageBuilderStateStore: PageBuilderStateStore
37
- private mediaLibraryStore: MediaLibraryStore
35
+ private pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>
38
36
  private getTextAreaVueModel: ComputedRef<string | null>
39
37
  private getLocalStorageItemName: ComputedRef<string | null>
40
- private getCurrentImage: ComputedRef<ImageObject | null>
38
+ private getCurrentImage: ComputedRef<ImageObject>
41
39
  private getHyberlinkEnable: ComputedRef<boolean>
42
40
  private getComponents: ComputedRef<ComponentObject[] | null>
43
41
  private getComponent: ComputedRef<ComponentObject | null>
@@ -53,7 +51,7 @@ class PageBuilderClass {
53
51
  private delay: ReturnType<typeof delay>
54
52
  private observer?: MutationObserverType
55
53
 
56
- constructor(pageBuilderStateStore: PageBuilderStateStore, mediaLibraryStore: MediaLibraryStore) {
54
+ constructor(pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>) {
57
55
  /**
58
56
  * Initialize an instance variable 'elementsWithListeners' as a WeakSet.
59
57
  *
@@ -74,16 +72,15 @@ class PageBuilderClass {
74
72
 
75
73
  this.timer = null
76
74
 
77
- // Stores are now required parameters - no fallback to inject
75
+ // Store is now required parameter - no fallback to inject
78
76
  this.pageBuilderStateStore = pageBuilderStateStore
79
- this.mediaLibraryStore = mediaLibraryStore
80
77
 
81
78
  this.getTextAreaVueModel = computed(() => this.pageBuilderStateStore.getTextAreaVueModel)
82
79
  this.getLocalStorageItemName = computed(
83
80
  () => this.pageBuilderStateStore.getLocalStorageItemName,
84
81
  )
85
82
 
86
- this.getCurrentImage = computed(() => this.mediaLibraryStore.getCurrentImage)
83
+ this.getCurrentImage = computed(() => this.pageBuilderStateStore.getCurrentImage)
87
84
  this.getHyberlinkEnable = computed(() => this.pageBuilderStateStore.getHyberlinkEnable)
88
85
  this.getComponents = computed(() => this.pageBuilderStateStore.getComponents)
89
86
 
@@ -144,9 +141,8 @@ class PageBuilderClass {
144
141
  })
145
142
 
146
143
  // set to 'none' if undefined
147
- let elementClass = currentCSS || 'none'
148
-
149
- this.pageBuilderStateStore[mutationName as keyof PageBuilderStateStore](elementClass)
144
+ let elementClass =
145
+ currentCSS || 'none'(this.pageBuilderStateStore as any)[mutationName](elementClass)
150
146
 
151
147
  if (typeof selectedCSS === 'string' && selectedCSS !== 'none') {
152
148
  if (elementClass && this.getElement.value?.classList.contains(elementClass)) {
package/src/index.ts CHANGED
@@ -2,10 +2,8 @@
2
2
  export { default as PageBuilder } from './PageBuilder/PageBuilder.vue'
3
3
  export { default as Preview } from './PageBuilder/Preview.vue'
4
4
 
5
- // Export stores
5
+ // Export stores (consolidated into single store)
6
6
  export { usePageBuilderStateStore } from './stores/page-builder-state'
7
- export { useMediaLibraryStore } from './stores/media-library'
8
- export { useUserStore } from './stores/user'
9
7
 
10
8
  export { default as PageBuilderClass } from './composables/PageBuilderClass'
11
9