lf-pagebuilder-vue 0.0.15 → 0.0.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
@@ -99,6 +99,7 @@ import { Pagebuilder } from 'lf-pagebuilder-vue';
99
99
 
100
100
  | Prop | Tipo | Default | Descripción |
101
101
  |------|------|---------|-------------|
102
+ | `limboToken` | `string` | - | Token JWT de Limbo, obtenido server-side con `fetchLimboToken()` |
102
103
  | `isProduction` | `boolean` | `false` | `true` = API producción, `false` = API desarrollo |
103
104
  | `debugMode` | `boolean` | `false` | Activa el modo debug |
104
105
  | `submitForm` | `boolean` | `false` | Envía el formulario automáticamente |
@@ -126,22 +127,20 @@ import { Pagebuilder } from 'lf-pagebuilder-vue';
126
127
 
127
128
  ### Dependencias requeridas en el proyecto padre
128
129
 
129
- El proyecto que use este Pagebuilder debe tener instaladas estas dependencias:
130
+ El proyecto que use este Pagebuilder solo necesita instalar `lf-pagebuilder-vue`. La librería de componentes (`libreria-astro-lefebvre`) se instala automáticamente como dependencia transitiva:
130
131
 
131
132
  ```bash
132
- npm install vue@^3.3.0 vuedraggable@^4.1.0 @vueup/vue-quill@^1.2.0 libreria-astro-lefebvre@latest
133
+ npm install lf-pagebuilder-vue@latest vue@^3.3.0 vuedraggable@^4.1.0 @vueup/vue-quill@^1.2.0
133
134
  ```
134
135
 
135
- | Dependencia | Versión | Descripción |
136
- |-------------|---------|-------------|
137
- | `vue` | ^3.3.0 | Framework Vue 3 |
138
- | `vuedraggable` | ^4.1.0 | Drag & drop para Vue 3 |
139
- | `@vueup/vue-quill` | ^1.2.0 | Editor de texto enriquecido |
140
- | `libreria-astro-lefebvre` | latest | Librería de componentes Astro de Lefebvre |
136
+ | Dependencia | Tipo | Descripción |
137
+ |-------------|------|-------------|
138
+ | `lf-pagebuilder-vue` | directa | Page Builder (incluye `libreria-astro-lefebvre` como dep) |
139
+ | `vue` | peerDep | Framework Vue 3 |
140
+ | `vuedraggable` | peerDep | Drag & drop para Vue 3 |
141
+ | `@vueup/vue-quill` | peerDep | Editor de texto enriquecido |
141
142
 
142
- ### Configuración especial del proyecto padre
143
-
144
- #### En proyectos Astro
143
+ ### Configuración en proyectos Astro
145
144
 
146
145
  El proyecto debe tener las integraciones de Vue y Tailwind:
147
146
 
@@ -153,8 +152,6 @@ En `astro.config.mjs`:
153
152
 
154
153
  ```js
155
154
  import { defineConfig } from 'astro/config';
156
- import { searchForWorkspaceRoot } from 'vite';
157
- import path from 'path';
158
155
  import vue from '@astrojs/vue';
159
156
  import tailwindcss from '@tailwindcss/vite';
160
157
 
@@ -163,20 +160,54 @@ export default defineConfig({
163
160
 
164
161
  vite: {
165
162
  plugins: [tailwindcss()],
166
- server: {
167
- fs: {
168
- // Necesario si usas npm link con librerías hermanas
169
- allow: [
170
- searchForWorkspaceRoot(process.cwd()),
171
- path.resolve(process.cwd(), '..'),
172
- ],
173
- },
163
+ ssr: {
164
+ noExternal: ['libreria-astro-lefebvre', 'lf-pagebuilder-vue'],
174
165
  },
175
166
  },
176
167
  });
177
168
  ```
178
169
 
179
- > **Nota:** La configuración de `vite.server.fs.allow` es necesaria cuando usas `npm link` para desarrollo local con librerías en carpetas hermanas. Si instalas el paquete desde npm, no es necesaria.
170
+ ### Integración con Limbo (gestión de imágenes)
171
+
172
+ Si se quiere usar el sistema de imágenes Limbo desde el Pagebuilder:
173
+
174
+ **1. Variables de entorno** (`.env`):
175
+
176
+ ```env
177
+ PUBLIC_LIMBO_PUBLIC_KEY=pk_tu_public_key
178
+ IS_PROD=FALSE
179
+ ```
180
+
181
+ **2. Obtener token server-side y pasarlo al componente:**
182
+
183
+ ```astro
184
+ ---
185
+ import { Pagebuilder } from 'lf-pagebuilder-vue';
186
+ import { fetchLimboToken } from 'lf-pagebuilder-vue/limbo';
187
+
188
+ let limboToken = '';
189
+ try {
190
+ const result = await fetchLimboToken({
191
+ publicKey: import.meta.env.PUBLIC_LIMBO_PUBLIC_KEY || '',
192
+ isProduction: import.meta.env.IS_PROD === 'TRUE'
193
+ });
194
+ limboToken = result.token;
195
+ } catch (e) {
196
+ console.error('[Pagebuilder] Error obteniendo token de Limbo:', e);
197
+ }
198
+ ---
199
+
200
+ <Pagebuilder
201
+ limboToken={limboToken}
202
+ isProduction={import.meta.env.IS_PROD === 'TRUE'}
203
+ inputId="mi-input"
204
+ client:only="vue"
205
+ />
206
+ ```
207
+
208
+ El token se obtiene en el frontmatter (server-side), evitando exponer la Public Key al cliente. La URL de la API de Limbo se determina automáticamente según `isProduction`. Los assets de `limbo-component` se cargan internamente desde el paquete npm (no se usa CDN externo).
209
+
210
+ Para más detalles, consulta [README_LIMBO.md](README_LIMBO.md).
180
211
 
181
212
  ---
182
213
 
@@ -0,0 +1,55 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface PageSection {
4
+ section: string;
5
+ config: any;
6
+ rows: any[];
7
+ }
8
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
9
+ isComponentMode: BooleanConstructor;
10
+ fullwidthMode: BooleanConstructor;
11
+ globalPageConfiguration: PropType<PageSection[]>;
12
+ sectionSelected: StringConstructor;
13
+ removeComponent: PropType<(obj: any, section: string) => void>;
14
+ cloneComponent: PropType<(obj: any, section: string) => void>;
15
+ addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
16
+ addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
17
+ addRow: PropType<(index: number | null, section: string) => void>;
18
+ removeRow: PropType<(index: number, section: string) => void>;
19
+ removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
20
+ moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
21
+ moveRow: PropType<(rowIndex: number, section: string, direction?: "up" | "down") => void>;
22
+ updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
23
+ updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
24
+ renderApiDomain: StringConstructor;
25
+ isProduction: {
26
+ type: BooleanConstructor;
27
+ default: boolean;
28
+ };
29
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
30
+ isComponentMode: BooleanConstructor;
31
+ fullwidthMode: BooleanConstructor;
32
+ globalPageConfiguration: PropType<PageSection[]>;
33
+ sectionSelected: StringConstructor;
34
+ removeComponent: PropType<(obj: any, section: string) => void>;
35
+ cloneComponent: PropType<(obj: any, section: string) => void>;
36
+ addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
37
+ addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
38
+ addRow: PropType<(index: number | null, section: string) => void>;
39
+ removeRow: PropType<(index: number, section: string) => void>;
40
+ removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
41
+ moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
42
+ moveRow: PropType<(rowIndex: number, section: string, direction?: "up" | "down") => void>;
43
+ updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
44
+ updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
45
+ renderApiDomain: StringConstructor;
46
+ isProduction: {
47
+ type: BooleanConstructor;
48
+ default: boolean;
49
+ };
50
+ }>> & Readonly<{}>, {
51
+ isProduction: boolean;
52
+ isComponentMode: boolean;
53
+ fullwidthMode: boolean;
54
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
55
+ export default _default;
@@ -0,0 +1,55 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface PageSection {
4
+ section: string;
5
+ config: any;
6
+ rows: Array<{
7
+ config: any;
8
+ columns: Array<{
9
+ config: {
10
+ width?: string;
11
+ gap?: string;
12
+ flexDirection?: string;
13
+ };
14
+ components: any[];
15
+ }>;
16
+ }>;
17
+ }
18
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
19
+ globalPageConfiguration: PropType<PageSection[]>;
20
+ rowIndex: {
21
+ type: NumberConstructor;
22
+ required: true;
23
+ };
24
+ columnIndex: {
25
+ type: NumberConstructor;
26
+ required: true;
27
+ };
28
+ fullwidthMode: BooleanConstructor;
29
+ addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
30
+ updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
31
+ removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
32
+ addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
33
+ moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
34
+ section: StringConstructor;
35
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
36
+ globalPageConfiguration: PropType<PageSection[]>;
37
+ rowIndex: {
38
+ type: NumberConstructor;
39
+ required: true;
40
+ };
41
+ columnIndex: {
42
+ type: NumberConstructor;
43
+ required: true;
44
+ };
45
+ fullwidthMode: BooleanConstructor;
46
+ addCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
47
+ updateColConfig: PropType<(rowIndex: number, columnIndex: number, section: string, width: string, gap: string, flexDirection: string) => void>;
48
+ removeCol: PropType<(rowIndex: number, colIndex: number, section: string) => void>;
49
+ addComponentFunction: PropType<(rowIndex: number, columnIndex: number, section: string) => void>;
50
+ moveCol: PropType<(rowIndex: number, colIndex: number, section: string, direction?: "left" | "right") => void>;
51
+ section: StringConstructor;
52
+ }>> & Readonly<{}>, {
53
+ fullwidthMode: boolean;
54
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
55
+ export default _default;
@@ -0,0 +1,36 @@
1
+ interface ColumnToInsert {
2
+ rowIndex: number | null;
3
+ columnIndex: number | null;
4
+ section: string | null;
5
+ }
6
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
7
+ isComponentMode: boolean;
8
+ fullwidthMode: boolean;
9
+ columnToInsert: ColumnToInsert;
10
+ addComponentToColumn: (component: any) => void;
11
+ renderApiDomain: string;
12
+ toggleComponentModeFunction: () => void;
13
+ isProduction: boolean;
14
+ components: Record<string, any>;
15
+ excludedCategories?: string[];
16
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
17
+ isComponentMode: boolean;
18
+ fullwidthMode: boolean;
19
+ columnToInsert: ColumnToInsert;
20
+ addComponentToColumn: (component: any) => void;
21
+ renderApiDomain: string;
22
+ toggleComponentModeFunction: () => void;
23
+ isProduction: boolean;
24
+ components: Record<string, any>;
25
+ excludedCategories?: string[];
26
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
27
+ export default _default;
28
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
29
+ type __VLS_TypePropsToRuntimeProps<T> = {
30
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
31
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
32
+ } : {
33
+ type: import('vue').PropType<T[K]>;
34
+ required: true;
35
+ };
36
+ };
@@ -0,0 +1,72 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface ComponentField {
4
+ name: string;
5
+ label: string;
6
+ type: string;
7
+ mappedTo?: string;
8
+ example_value?: string | boolean;
9
+ }
10
+ interface ComponentObject {
11
+ id?: string;
12
+ name: string;
13
+ fields: ComponentField[];
14
+ repeat_data?: FinalCriteria | null;
15
+ }
16
+ interface FinalCriteria {
17
+ dynamicUpdate?: boolean;
18
+ elementCount?: number;
19
+ orientation?: 'horizontal' | 'vertical';
20
+ name?: string;
21
+ url?: string;
22
+ mapping?: Array<{
23
+ fieldName: string;
24
+ mappedTo: string;
25
+ }>;
26
+ }
27
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
28
+ object: {
29
+ type: PropType<ComponentObject>;
30
+ required: true;
31
+ };
32
+ toggleFeedSection: {
33
+ type: PropType<() => void>;
34
+ required: true;
35
+ };
36
+ updateObjectByFeedContent: {
37
+ type: PropType<(mappeo: Array<{
38
+ fieldName: string;
39
+ mappedTo: string;
40
+ value: any;
41
+ }>, criteria: FinalCriteria | null) => void>;
42
+ required: true;
43
+ };
44
+ isProduction: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
49
+ object: {
50
+ type: PropType<ComponentObject>;
51
+ required: true;
52
+ };
53
+ toggleFeedSection: {
54
+ type: PropType<() => void>;
55
+ required: true;
56
+ };
57
+ updateObjectByFeedContent: {
58
+ type: PropType<(mappeo: Array<{
59
+ fieldName: string;
60
+ mappedTo: string;
61
+ value: any;
62
+ }>, criteria: FinalCriteria | null) => void>;
63
+ required: true;
64
+ };
65
+ isProduction: {
66
+ type: BooleanConstructor;
67
+ default: boolean;
68
+ };
69
+ }>> & Readonly<{}>, {
70
+ isProduction: boolean;
71
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
72
+ export default _default;
@@ -0,0 +1,55 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface ComponentField {
4
+ name: string;
5
+ label: string;
6
+ type: 'text' | 'textArea' | 'image' | 'select' | 'boolean';
7
+ mandatory?: boolean;
8
+ example_value?: string | boolean;
9
+ options?: string[];
10
+ image_cuts?: Array<{
11
+ width: number;
12
+ height: number;
13
+ label: string;
14
+ required?: boolean;
15
+ }>;
16
+ }
17
+ interface ComponentObject {
18
+ id?: string;
19
+ name: string;
20
+ fields: ComponentField[];
21
+ }
22
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
23
+ object: {
24
+ type: PropType<ComponentObject>;
25
+ required: true;
26
+ };
27
+ toggleShowForm: {
28
+ type: PropType<() => void>;
29
+ required: true;
30
+ };
31
+ showForm: {
32
+ type: BooleanConstructor;
33
+ default: boolean;
34
+ };
35
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
36
+ fieldUpdated: (fieldName: string, value: string | boolean) => void;
37
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
38
+ object: {
39
+ type: PropType<ComponentObject>;
40
+ required: true;
41
+ };
42
+ toggleShowForm: {
43
+ type: PropType<() => void>;
44
+ required: true;
45
+ };
46
+ showForm: {
47
+ type: BooleanConstructor;
48
+ default: boolean;
49
+ };
50
+ }>> & Readonly<{
51
+ onFieldUpdated?: ((fieldName: string, value: string | boolean) => any) | undefined;
52
+ }>, {
53
+ showForm: boolean;
54
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
55
+ export default _default;
@@ -0,0 +1,81 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface PageSection {
4
+ section: string;
5
+ config: {
6
+ width?: string;
7
+ };
8
+ rows: any[];
9
+ }
10
+ interface PageParameters {
11
+ global: {
12
+ sidebarEnabled: boolean;
13
+ renderAsBodyPart: boolean;
14
+ headSlot: string;
15
+ bodyBeginSlot: string;
16
+ footerSlot: string;
17
+ };
18
+ seo: {
19
+ title: string;
20
+ description: string;
21
+ robots: string;
22
+ };
23
+ }
24
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
25
+ isComponentMode: BooleanConstructor;
26
+ fullwidthMode: BooleanConstructor;
27
+ debugMode: BooleanConstructor;
28
+ submitForm: BooleanConstructor;
29
+ toggleComponentModeFunction: PropType<() => void>;
30
+ toggleFullwidthMode: PropType<() => void>;
31
+ importConfigurationFunction: PropType<(config: any) => void>;
32
+ globalPageConfiguration: PropType<PageSection[]>;
33
+ sectionSelected: StringConstructor;
34
+ availableSections: PropType<string[]>;
35
+ parametersPageConfiguration: PropType<PageParameters>;
36
+ renderApiDomain: StringConstructor;
37
+ inputId: PropType<string | null>;
38
+ }>, {
39
+ validateSeo: () => void;
40
+ importConfig: import('vue').Ref<string, string>;
41
+ showAdvancedConfig: import('vue').Ref<boolean, boolean>;
42
+ previewFunction: () => void;
43
+ importFunction: () => void;
44
+ exportFunction: () => void;
45
+ saveButtonAction: () => void;
46
+ loadFromLocalStorage: () => void;
47
+ toggleExpandScreen: () => void;
48
+ sectionWidth: import('vue').WritableComputedRef<string, string>;
49
+ isSaved: import('vue').Ref<boolean, boolean>;
50
+ componentRoot: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
51
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("update:sectionSelected" | "update:parametersPageConfiguration.global.sidebarEnabled" | "update:parametersPageConfiguration.global.renderAsBodyPart" | "update:parametersPageConfiguration.global.headSlot" | "update:parametersPageConfiguration.global.bodyBeginSlot" | "update:parametersPageConfiguration.global.footerSlot" | "update:parametersPageConfiguration.seo.robots" | "update:parametersPageConfiguration.seo.title" | "update:parametersPageConfiguration.seo.description")[], "update:sectionSelected" | "update:parametersPageConfiguration.global.sidebarEnabled" | "update:parametersPageConfiguration.global.renderAsBodyPart" | "update:parametersPageConfiguration.global.headSlot" | "update:parametersPageConfiguration.global.bodyBeginSlot" | "update:parametersPageConfiguration.global.footerSlot" | "update:parametersPageConfiguration.seo.robots" | "update:parametersPageConfiguration.seo.title" | "update:parametersPageConfiguration.seo.description", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
52
+ isComponentMode: BooleanConstructor;
53
+ fullwidthMode: BooleanConstructor;
54
+ debugMode: BooleanConstructor;
55
+ submitForm: BooleanConstructor;
56
+ toggleComponentModeFunction: PropType<() => void>;
57
+ toggleFullwidthMode: PropType<() => void>;
58
+ importConfigurationFunction: PropType<(config: any) => void>;
59
+ globalPageConfiguration: PropType<PageSection[]>;
60
+ sectionSelected: StringConstructor;
61
+ availableSections: PropType<string[]>;
62
+ parametersPageConfiguration: PropType<PageParameters>;
63
+ renderApiDomain: StringConstructor;
64
+ inputId: PropType<string | null>;
65
+ }>> & Readonly<{
66
+ "onUpdate:sectionSelected"?: ((...args: any[]) => any) | undefined;
67
+ "onUpdate:parametersPageConfiguration.global.sidebarEnabled"?: ((...args: any[]) => any) | undefined;
68
+ "onUpdate:parametersPageConfiguration.global.renderAsBodyPart"?: ((...args: any[]) => any) | undefined;
69
+ "onUpdate:parametersPageConfiguration.global.headSlot"?: ((...args: any[]) => any) | undefined;
70
+ "onUpdate:parametersPageConfiguration.global.bodyBeginSlot"?: ((...args: any[]) => any) | undefined;
71
+ "onUpdate:parametersPageConfiguration.global.footerSlot"?: ((...args: any[]) => any) | undefined;
72
+ "onUpdate:parametersPageConfiguration.seo.robots"?: ((...args: any[]) => any) | undefined;
73
+ "onUpdate:parametersPageConfiguration.seo.title"?: ((...args: any[]) => any) | undefined;
74
+ "onUpdate:parametersPageConfiguration.seo.description"?: ((...args: any[]) => any) | undefined;
75
+ }>, {
76
+ isComponentMode: boolean;
77
+ fullwidthMode: boolean;
78
+ debugMode: boolean;
79
+ submitForm: boolean;
80
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
81
+ export default _default;
@@ -0,0 +1,93 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface ComponentField {
4
+ name: string;
5
+ label: string;
6
+ type: 'text' | 'textArea' | 'image' | 'select' | 'boolean';
7
+ mandatory?: boolean;
8
+ example_value?: string | boolean;
9
+ mappedTo?: string;
10
+ options?: string[];
11
+ image_cuts?: Array<{
12
+ width: number;
13
+ height: number;
14
+ label: string;
15
+ required?: boolean;
16
+ }>;
17
+ }
18
+ interface RepeatData {
19
+ dynamicUpdate?: boolean;
20
+ elementCount?: number;
21
+ orientation?: 'horizontal' | 'vertical';
22
+ name?: string;
23
+ url?: string;
24
+ mapping?: Array<{
25
+ fieldName: string;
26
+ mappedTo: string;
27
+ }>;
28
+ }
29
+ interface ComponentObject {
30
+ id?: string;
31
+ name: string;
32
+ component_name: string;
33
+ description: string;
34
+ category: string;
35
+ framework: string;
36
+ tags: string[];
37
+ fields: ComponentField[];
38
+ repeat_data?: RepeatData | null;
39
+ }
40
+ interface ColumnToInsert {
41
+ rowIndex: number | null;
42
+ columnIndex: number | null;
43
+ section: string | null;
44
+ }
45
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
46
+ object: {
47
+ type: PropType<ComponentObject>;
48
+ required: true;
49
+ };
50
+ columnToInsert: PropType<ColumnToInsert>;
51
+ isComponentMode: BooleanConstructor;
52
+ fullwidthMode: BooleanConstructor;
53
+ addComponentToColumn: PropType<(component: any) => void>;
54
+ removeComponent: PropType<(obj: any, section: string) => void>;
55
+ cloneComponent: PropType<(obj: any, section: string) => void>;
56
+ section: StringConstructor;
57
+ renderApiDomain: StringConstructor;
58
+ insideComponentBox: {
59
+ type: BooleanConstructor;
60
+ default: boolean;
61
+ };
62
+ isProduction: {
63
+ type: BooleanConstructor;
64
+ default: boolean;
65
+ };
66
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
67
+ object: {
68
+ type: PropType<ComponentObject>;
69
+ required: true;
70
+ };
71
+ columnToInsert: PropType<ColumnToInsert>;
72
+ isComponentMode: BooleanConstructor;
73
+ fullwidthMode: BooleanConstructor;
74
+ addComponentToColumn: PropType<(component: any) => void>;
75
+ removeComponent: PropType<(obj: any, section: string) => void>;
76
+ cloneComponent: PropType<(obj: any, section: string) => void>;
77
+ section: StringConstructor;
78
+ renderApiDomain: StringConstructor;
79
+ insideComponentBox: {
80
+ type: BooleanConstructor;
81
+ default: boolean;
82
+ };
83
+ isProduction: {
84
+ type: BooleanConstructor;
85
+ default: boolean;
86
+ };
87
+ }>> & Readonly<{}>, {
88
+ isProduction: boolean;
89
+ isComponentMode: boolean;
90
+ fullwidthMode: boolean;
91
+ insideComponentBox: boolean;
92
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
93
+ export default _default;
@@ -0,0 +1,27 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ isProduction?: boolean;
3
+ debugMode?: boolean;
4
+ submitForm?: boolean;
5
+ inputId?: string | null;
6
+ excludeComponentTypes?: string[];
7
+ /** Token JWT de Limbo - obtenido server-side con fetchLimboToken() */
8
+ limboToken?: string;
9
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
10
+ isProduction?: boolean;
11
+ debugMode?: boolean;
12
+ submitForm?: boolean;
13
+ inputId?: string | null;
14
+ excludeComponentTypes?: string[];
15
+ /** Token JWT de Limbo - obtenido server-side con fetchLimboToken() */
16
+ limboToken?: string;
17
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
18
+ export default _default;
19
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
20
+ type __VLS_TypePropsToRuntimeProps<T> = {
21
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
22
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
23
+ } : {
24
+ type: import('vue').PropType<T[K]>;
25
+ required: true;
26
+ };
27
+ };
@@ -0,0 +1,38 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface PageSection {
4
+ section: string;
5
+ config: any;
6
+ rows: Array<{
7
+ config: {
8
+ padding?: string;
9
+ gap?: string;
10
+ width?: string;
11
+ };
12
+ columns: any[];
13
+ }>;
14
+ }
15
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
16
+ rowIndex: {
17
+ type: NumberConstructor;
18
+ required: true;
19
+ };
20
+ updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
21
+ removeRow: PropType<(index: number, section: string) => void>;
22
+ addRow: PropType<(index: number | null, section: string) => void>;
23
+ globalPageConfiguration: PropType<PageSection[]>;
24
+ section: StringConstructor;
25
+ moveRow: PropType<(rowIndex: number, section: string, direction: "up" | "down") => void>;
26
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
27
+ rowIndex: {
28
+ type: NumberConstructor;
29
+ required: true;
30
+ };
31
+ updateRowConfig: PropType<(rowIndex: number, section: string, padding: string, gap: string, width: string) => void>;
32
+ removeRow: PropType<(index: number, section: string) => void>;
33
+ addRow: PropType<(index: number | null, section: string) => void>;
34
+ globalPageConfiguration: PropType<PageSection[]>;
35
+ section: StringConstructor;
36
+ moveRow: PropType<(rowIndex: number, section: string, direction: "up" | "down") => void>;
37
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
38
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import { PropType } from 'vue';
2
+
3
+ interface FeedCriteria {
4
+ name: string;
5
+ url: string;
6
+ }
7
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
8
+ onSubmit: {
9
+ type: PropType<(data: any[]) => void>;
10
+ required: true;
11
+ };
12
+ updateFeedCriteria: {
13
+ type: PropType<(criteria: FeedCriteria) => void>;
14
+ required: true;
15
+ };
16
+ isProduction: {
17
+ type: BooleanConstructor;
18
+ default: boolean;
19
+ };
20
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
21
+ onSubmit: {
22
+ type: PropType<(data: any[]) => void>;
23
+ required: true;
24
+ };
25
+ updateFeedCriteria: {
26
+ type: PropType<(criteria: FeedCriteria) => void>;
27
+ required: true;
28
+ };
29
+ isProduction: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ }>> & Readonly<{}>, {
34
+ isProduction: boolean;
35
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
36
+ export default _default;