@edgedev/create-edge-app 1.2.32 → 1.2.34
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/deploy.sh +77 -0
- package/edge/components/cms/block.vue +228 -18
- package/edge/components/cms/blockApi.vue +3 -3
- package/edge/components/cms/blockEditor.vue +374 -85
- package/edge/components/cms/blockPicker.vue +29 -3
- package/edge/components/cms/blockRender.vue +3 -3
- package/edge/components/cms/blocksManager.vue +755 -82
- package/edge/components/cms/codeEditor.vue +15 -6
- package/edge/components/cms/fontUpload.vue +318 -2
- package/edge/components/cms/htmlContent.vue +230 -89
- package/edge/components/cms/menu.vue +5 -4
- package/edge/components/cms/page.vue +750 -21
- package/edge/components/cms/site.vue +624 -84
- package/edge/components/cms/sitesManager.vue +5 -4
- package/edge/components/cms/themeEditor.vue +196 -162
- package/edge/components/editor.vue +5 -1
- package/edge/composables/global.ts +37 -5
- package/edge/composables/useCmsNewDocs.js +100 -0
- package/edge/composables/useEdgeCmsDialogPositionFix.js +19 -0
- package/edge/routes/cms/dashboard/blocks/[block].vue +5 -0
- package/edge/routes/cms/dashboard/blocks/index.vue +12 -1
- package/edge/routes/cms/dashboard/media/index.vue +5 -0
- package/edge/routes/cms/dashboard/sites/[site]/[[page]].vue +4 -0
- package/edge/routes/cms/dashboard/sites/[site].vue +4 -0
- package/edge/routes/cms/dashboard/sites/index.vue +4 -0
- package/edge/routes/cms/dashboard/templates/[page].vue +4 -0
- package/edge/routes/cms/dashboard/templates/index.vue +4 -0
- package/edge/routes/cms/dashboard/themes/[theme].vue +5 -0
- package/edge/routes/cms/dashboard/themes/index.vue +330 -1
- package/firebase.json +4 -0
- package/nuxt.config.ts +1 -1
- package/package.json +2 -2
- package/pages/app.vue +12 -12
|
@@ -86,6 +86,29 @@ const activeSiteId = computed(() => activeProps.value.siteId || '')
|
|
|
86
86
|
const pickerTheme = computed(() => activeProps.value.theme || null)
|
|
87
87
|
const pickerViewport = computed(() => activeProps.value.viewportMode || 'auto')
|
|
88
88
|
|
|
89
|
+
const normalizePreviewType = (value) => {
|
|
90
|
+
return value === 'dark' ? 'dark' : 'light'
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const previewSurfaceClass = (value) => {
|
|
94
|
+
return normalizePreviewType(value) === 'light'
|
|
95
|
+
? 'bg-white text-black'
|
|
96
|
+
: 'bg-neutral-950 text-neutral-50'
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const blockOverridePreviewType = computed(() => {
|
|
100
|
+
const directPreviewType = normalizePreviewType(props.blockOverride?.previewType)
|
|
101
|
+
if (props.blockOverride?.previewType === 'light' || props.blockOverride?.previewType === 'dark')
|
|
102
|
+
return directPreviewType
|
|
103
|
+
|
|
104
|
+
const blockId = String(props.blockOverride?.blockId || '').trim()
|
|
105
|
+
if (!blockId)
|
|
106
|
+
return 'light'
|
|
107
|
+
|
|
108
|
+
const savedPreviewType = edgeFirebase.data?.[`${edgeGlobal.edgeState.organizationDocPath}/blocks`]?.[blockId]?.previewType
|
|
109
|
+
return normalizePreviewType(savedPreviewType)
|
|
110
|
+
})
|
|
111
|
+
|
|
89
112
|
const blocks = computed(() => {
|
|
90
113
|
let blocks = []
|
|
91
114
|
if (edgeFirebase?.data?.[`${edgeGlobal.edgeState.organizationDocPath}/blocks`]) {
|
|
@@ -245,6 +268,7 @@ const chooseBlock = (block) => {
|
|
|
245
268
|
}
|
|
246
269
|
blockModelData.name = block.name
|
|
247
270
|
blockModelData.blockId = block.docId
|
|
271
|
+
delete blockModelData.previewType
|
|
248
272
|
console.log('Chosen block:', blockModelData)
|
|
249
273
|
if (isSharedMode.value) {
|
|
250
274
|
const handler = HANDLERS.get(SHARED_PICKER_STATE.activeInstance)
|
|
@@ -310,7 +334,7 @@ const clearTagFilters = () => {
|
|
|
310
334
|
</script>
|
|
311
335
|
|
|
312
336
|
<template>
|
|
313
|
-
<div v-if="props.blockOverride">
|
|
337
|
+
<div v-if="props.blockOverride" :class="previewSurfaceClass(blockOverridePreviewType)">
|
|
314
338
|
<edge-cms-block-api
|
|
315
339
|
:content="props.blockOverride.content"
|
|
316
340
|
:values="props.blockOverride.values"
|
|
@@ -357,12 +381,13 @@ const clearTagFilters = () => {
|
|
|
357
381
|
<button
|
|
358
382
|
:ref="el => setBtnRef(block.docId, el)"
|
|
359
383
|
type="button"
|
|
360
|
-
class="p-0 text-left
|
|
384
|
+
class="p-0 text-left text-slate-500 border border-dashed border-border/70 hover:border-primary hover:ring-1 hover:ring-primary/40 cursor-pointer w-full overflow-hidden relative transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/60"
|
|
361
385
|
>
|
|
362
386
|
<div class="scale-wrapper">
|
|
363
387
|
<div
|
|
364
388
|
:ref="el => setInnerRef(block.docId, el)"
|
|
365
389
|
class="scale-inner scale p-4"
|
|
390
|
+
:class="previewSurfaceClass(block.previewType)"
|
|
366
391
|
:data-block-id="block.docId"
|
|
367
392
|
>
|
|
368
393
|
<div class="text-4xl relative text-inherit text-center">
|
|
@@ -432,13 +457,14 @@ const clearTagFilters = () => {
|
|
|
432
457
|
<button
|
|
433
458
|
:ref="el => setBtnRef(block.docId, el)"
|
|
434
459
|
type="button"
|
|
435
|
-
class="p-0 text-left
|
|
460
|
+
class="p-0 text-left text-slate-500 border border-dashed border-border/70 hover:border-primary hover:ring-1 hover:ring-primary/40 cursor-pointer w-full overflow-hidden relative transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/60"
|
|
436
461
|
@click="chooseBlock(block)"
|
|
437
462
|
>
|
|
438
463
|
<div class="scale-wrapper">
|
|
439
464
|
<div
|
|
440
465
|
:ref="el => setInnerRef(block.docId, el)"
|
|
441
466
|
class="scale-inner scale p-4"
|
|
467
|
+
:class="previewSurfaceClass(block.previewType)"
|
|
442
468
|
:data-block-id="block.docId"
|
|
443
469
|
>
|
|
444
470
|
<div class="text-4xl relative text-inherit text-center">
|
|
@@ -4,15 +4,15 @@ import { renderTemplate } from '@edgedev/template-engine'
|
|
|
4
4
|
const props = defineProps({
|
|
5
5
|
content: {
|
|
6
6
|
type: String,
|
|
7
|
-
|
|
7
|
+
default: '',
|
|
8
8
|
},
|
|
9
9
|
values: {
|
|
10
10
|
type: Object,
|
|
11
|
-
|
|
11
|
+
default: () => ({}),
|
|
12
12
|
},
|
|
13
13
|
meta: {
|
|
14
14
|
type: Object,
|
|
15
|
-
|
|
15
|
+
default: () => ({}),
|
|
16
16
|
},
|
|
17
17
|
theme: {
|
|
18
18
|
type: Object,
|