@bagelink/blox 1.5.15 → 1.5.20
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 +105 -1
- package/dist/blox.css +720 -68
- package/dist/components/base/Button.vue.d.ts.map +1 -1
- package/dist/components/base/Container.vue.d.ts.map +1 -1
- package/dist/components/base/Image.vue.d.ts.map +1 -1
- package/dist/components/base/Spacer.vue.d.ts.map +1 -1
- package/dist/components/base/Text.vue.d.ts.map +1 -1
- package/dist/components/base/Title.vue.d.ts.map +1 -1
- package/dist/components/blocks/BigImage.vue.d.ts +12 -0
- package/dist/components/blocks/BigImage.vue.d.ts.map +1 -0
- package/dist/components/blocks/BigQuote.vue.d.ts +14 -0
- package/dist/components/blocks/BigQuote.vue.d.ts.map +1 -0
- package/dist/components/blocks/BlockFooter.vue.d.ts +17 -0
- package/dist/components/blocks/BlockFooter.vue.d.ts.map +1 -0
- package/dist/components/blocks/BlockNav.vue.d.ts +22 -0
- package/dist/components/blocks/BlockNav.vue.d.ts.map +1 -0
- package/dist/components/blocks/Cards.vue.d.ts +18 -0
- package/dist/components/blocks/Cards.vue.d.ts.map +1 -0
- package/dist/components/blocks/Contact.vue.d.ts +22 -0
- package/dist/components/blocks/Contact.vue.d.ts.map +1 -0
- package/dist/components/blocks/CountDown.vue.d.ts +76 -0
- package/dist/components/blocks/CountDown.vue.d.ts.map +1 -0
- package/dist/components/blocks/Cta.vue.d.ts +15 -0
- package/dist/components/blocks/Cta.vue.d.ts.map +1 -0
- package/dist/components/blocks/Faq.vue.d.ts +20 -0
- package/dist/components/blocks/Faq.vue.d.ts.map +1 -0
- package/dist/components/blocks/Grid.vue.d.ts +24 -0
- package/dist/components/blocks/Grid.vue.d.ts.map +1 -0
- package/dist/components/blocks/Icons.vue.d.ts +16 -0
- package/dist/components/blocks/Icons.vue.d.ts.map +1 -0
- package/dist/components/blocks/IconsList.vue.d.ts +22 -0
- package/dist/components/blocks/IconsList.vue.d.ts.map +1 -0
- package/dist/components/blocks/ImageCarousel.vue.d.ts +16 -0
- package/dist/components/blocks/ImageCarousel.vue.d.ts.map +1 -0
- package/dist/components/blocks/ImageLinkBoxes.vue.d.ts +14 -0
- package/dist/components/blocks/ImageLinkBoxes.vue.d.ts.map +1 -0
- package/dist/components/blocks/Logos.vue.d.ts +17 -0
- package/dist/components/blocks/Logos.vue.d.ts.map +1 -0
- package/dist/components/blocks/PopUp.vue.d.ts +23 -0
- package/dist/components/blocks/PopUp.vue.d.ts.map +1 -0
- package/dist/components/blocks/PriceTable.vue.d.ts +24 -0
- package/dist/components/blocks/PriceTable.vue.d.ts.map +1 -0
- package/dist/components/blocks/Space.vue.d.ts +25 -0
- package/dist/components/blocks/Space.vue.d.ts.map +1 -0
- package/dist/components/blocks/Tabs.vue.d.ts +15 -0
- package/dist/components/blocks/Tabs.vue.d.ts.map +1 -0
- package/dist/components/blocks/Team.vue.d.ts +19 -0
- package/dist/components/blocks/Team.vue.d.ts.map +1 -0
- package/dist/components/blocks/Testimonials.vue.d.ts +18 -0
- package/dist/components/blocks/Testimonials.vue.d.ts.map +1 -0
- package/dist/components/blocks/Text.vue.d.ts +10 -0
- package/dist/components/blocks/Text.vue.d.ts.map +1 -0
- package/dist/components/blocks/TextImage.vue.d.ts +20 -0
- package/dist/components/blocks/TextImage.vue.d.ts.map +1 -0
- package/dist/components/blocks/TextSide.vue.d.ts +19 -0
- package/dist/components/blocks/TextSide.vue.d.ts.map +1 -0
- package/dist/components/blocks/Title.vue.d.ts +16 -0
- package/dist/components/blocks/Title.vue.d.ts.map +1 -0
- package/dist/components/blocks/TitleSide.vue.d.ts +21 -0
- package/dist/components/blocks/TitleSide.vue.d.ts.map +1 -0
- package/dist/components/blocks/VideoBox.vue.d.ts +15 -0
- package/dist/components/blocks/VideoBox.vue.d.ts.map +1 -0
- package/dist/components/blocks/blocks.d.ts +27 -0
- package/dist/components/blocks/blocks.d.ts.map +1 -0
- package/dist/components/index.d.ts +4 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/config/baseComponents.d.ts +12 -2
- package/dist/config/baseComponents.d.ts.map +1 -1
- package/dist/config/blockComponents.d.ts +41 -0
- package/dist/config/blockComponents.d.ts.map +1 -0
- package/dist/core/communication.d.ts.map +1 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.cjs +9420 -480
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +9325 -478
- package/dist/setup.d.ts +114 -6
- package/dist/setup.d.ts.map +1 -1
- package/dist/utils/componentPreviewGenerator.d.ts +113 -0
- package/dist/utils/componentPreviewGenerator.d.ts.map +1 -0
- package/dist/utils/normalizer.d.ts.map +1 -1
- package/dist/utils/styles.d.ts.map +1 -1
- package/dist/views/ExternalPreview.vue.d.ts.map +1 -1
- package/dist/views/RenderPage.vue.d.ts.map +1 -1
- package/package.json +5 -2
- package/components/base/Button.vue +0 -140
- package/components/base/Container.vue +0 -64
- package/components/base/Image.vue +0 -75
- package/components/base/Spacer.vue +0 -33
- package/components/base/Text.vue +0 -37
- package/components/base/Title.vue +0 -55
- package/components/index.ts +0 -20
- package/config/baseComponents.ts +0 -342
- package/core/communication.ts +0 -140
- package/core/registry.ts +0 -108
- package/core/renderer.ts +0 -217
- package/core/types.ts +0 -148
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/index.ts +0 -33
- package/setup.ts +0 -56
- package/utils/normalizer.ts +0 -74
- package/utils/styles.ts +0 -228
- package/views/ExternalPreview.vue +0 -420
- package/views/RenderPage.vue +0 -127
package/README.md
CHANGED
|
@@ -22,7 +22,111 @@ pnpm add @bagelink/blox
|
|
|
22
22
|
yarn add @bagelink/blox
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
# @bagelink/blox
|
|
26
|
+
|
|
27
|
+
Blox is a Vue 3 library for building drag-and-drop page builders and managing static data for web applications. It provides a complete solution for creating external preview systems and rendering dynamic page content.
|
|
28
|
+
|
|
29
|
+
## Features
|
|
30
|
+
|
|
31
|
+
- 🎨 **Page Builder Integration** - Full support for drag-and-drop page building
|
|
32
|
+
- 📄 **Static Page Management** - Manage JSON-based static page data
|
|
33
|
+
- 🔌 **Component Registry** - Flexible component registration system
|
|
34
|
+
- 📡 **Communication System** - Built-in messaging for builder-preview communication
|
|
35
|
+
- 🎯 **Type-Safe** - Full TypeScript support
|
|
36
|
+
- 🖼️ **Base Components** - Pre-built components (Button, Text, Image, etc.)
|
|
37
|
+
- 📱 **Responsive** - Mobile and desktop support
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm install @bagelink/blox vue-router
|
|
43
|
+
# or
|
|
44
|
+
pnpm add @bagelink/blox vue-router
|
|
45
|
+
# or
|
|
46
|
+
yarn add @bagelink/blox vue-router
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Quick Start (Recommended)
|
|
50
|
+
|
|
51
|
+
The simplest way to set up Blox in your Vue application:
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// main.ts
|
|
55
|
+
import { createApp } from 'vue'
|
|
56
|
+
import { createRouter, createWebHistory } from 'vue-router'
|
|
57
|
+
import { createBlox, ButtonConfig, TextConfig, TitleConfig } from '@bagelink/blox'
|
|
58
|
+
import '@bagelink/blox/dist/blox.css'
|
|
59
|
+
|
|
60
|
+
import App from './App.vue'
|
|
61
|
+
|
|
62
|
+
const app = createApp(App)
|
|
63
|
+
const router = createRouter({
|
|
64
|
+
history: createWebHistory(),
|
|
65
|
+
routes: [
|
|
66
|
+
// Your app routes
|
|
67
|
+
],
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
// Create and configure Blox
|
|
71
|
+
const blox = createBlox()
|
|
72
|
+
blox
|
|
73
|
+
.registerComponents([ButtonConfig, TextConfig, TitleConfig])
|
|
74
|
+
.registerRoutes(router)
|
|
75
|
+
|
|
76
|
+
app.use(blox)
|
|
77
|
+
app.use(router)
|
|
78
|
+
app.mount('#app')
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
That's it! Preview routes are now available at:
|
|
82
|
+
- `/blox/preview/:pageId?` - External preview with editor communication
|
|
83
|
+
- `/blox/render/:pageId?` - Static page rendering
|
|
84
|
+
|
|
85
|
+
### With Custom Components
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { createBlox, createComponentConfig, ButtonConfig } from '@bagelink/blox'
|
|
89
|
+
import MyHeroSection from './components/MyHeroSection.vue'
|
|
90
|
+
|
|
91
|
+
const MyHeroConfig = createComponentConfig({
|
|
92
|
+
id: 'MyHero',
|
|
93
|
+
label: 'Hero Section',
|
|
94
|
+
icon: 'hero_section',
|
|
95
|
+
component: MyHeroSection,
|
|
96
|
+
content: [
|
|
97
|
+
{
|
|
98
|
+
type: 'text',
|
|
99
|
+
key: 'title',
|
|
100
|
+
label: 'Hero Title',
|
|
101
|
+
defaultValue: 'Welcome!',
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
const blox = createBlox()
|
|
107
|
+
blox
|
|
108
|
+
.registerComponents([ButtonConfig, MyHeroConfig])
|
|
109
|
+
.registerRoutes(router)
|
|
110
|
+
|
|
111
|
+
app.use(blox)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Available Built-in Component Configs
|
|
115
|
+
|
|
116
|
+
Import these configs to register built-in components:
|
|
117
|
+
|
|
118
|
+
- `ButtonConfig` - Customizable button/link
|
|
119
|
+
- `TextConfig` - Rich text content
|
|
120
|
+
- `TitleConfig` - Heading with optional subtitle
|
|
121
|
+
- `ImageConfig` - Responsive image
|
|
122
|
+
- `SpacerConfig` - Vertical spacing
|
|
123
|
+
- `ContainerConfig` - Content container with max-width
|
|
124
|
+
|
|
125
|
+
For more examples, see [SETUP_EXAMPLE.md](./SETUP_EXAMPLE.md).
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Alternative Setup (Legacy)
|
|
26
130
|
|
|
27
131
|
### 1. Register Base Components
|
|
28
132
|
|