@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.
Files changed (33) hide show
  1. package/deploy.sh +77 -0
  2. package/edge/components/cms/block.vue +228 -18
  3. package/edge/components/cms/blockApi.vue +3 -3
  4. package/edge/components/cms/blockEditor.vue +374 -85
  5. package/edge/components/cms/blockPicker.vue +29 -3
  6. package/edge/components/cms/blockRender.vue +3 -3
  7. package/edge/components/cms/blocksManager.vue +755 -82
  8. package/edge/components/cms/codeEditor.vue +15 -6
  9. package/edge/components/cms/fontUpload.vue +318 -2
  10. package/edge/components/cms/htmlContent.vue +230 -89
  11. package/edge/components/cms/menu.vue +5 -4
  12. package/edge/components/cms/page.vue +750 -21
  13. package/edge/components/cms/site.vue +624 -84
  14. package/edge/components/cms/sitesManager.vue +5 -4
  15. package/edge/components/cms/themeEditor.vue +196 -162
  16. package/edge/components/editor.vue +5 -1
  17. package/edge/composables/global.ts +37 -5
  18. package/edge/composables/useCmsNewDocs.js +100 -0
  19. package/edge/composables/useEdgeCmsDialogPositionFix.js +19 -0
  20. package/edge/routes/cms/dashboard/blocks/[block].vue +5 -0
  21. package/edge/routes/cms/dashboard/blocks/index.vue +12 -1
  22. package/edge/routes/cms/dashboard/media/index.vue +5 -0
  23. package/edge/routes/cms/dashboard/sites/[site]/[[page]].vue +4 -0
  24. package/edge/routes/cms/dashboard/sites/[site].vue +4 -0
  25. package/edge/routes/cms/dashboard/sites/index.vue +4 -0
  26. package/edge/routes/cms/dashboard/templates/[page].vue +4 -0
  27. package/edge/routes/cms/dashboard/templates/index.vue +4 -0
  28. package/edge/routes/cms/dashboard/themes/[theme].vue +5 -0
  29. package/edge/routes/cms/dashboard/themes/index.vue +330 -1
  30. package/firebase.json +4 -0
  31. package/nuxt.config.ts +1 -1
  32. package/package.json +2 -2
  33. 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 hover:bg-primary text-slate-500 border !hover:text-white border-dashed cursor-pointer w-full overflow-hidden relative"
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 hover:bg-primary text-slate-500 border !hover:text-white border-dashed cursor-pointer w-full overflow-hidden relative"
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
- required: true,
7
+ default: '',
8
8
  },
9
9
  values: {
10
10
  type: Object,
11
- required: true,
11
+ default: () => ({}),
12
12
  },
13
13
  meta: {
14
14
  type: Object,
15
- required: true,
15
+ default: () => ({}),
16
16
  },
17
17
  theme: {
18
18
  type: Object,