camox 0.6.0 → 0.7.0

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 (79) hide show
  1. package/dist/core/components/AddBlockControlBar.d.ts.map +1 -1
  2. package/dist/core/components/AddBlockControlBar.js +51 -117
  3. package/dist/core/components/lexical/InlineLexicalEditor.js +1 -1
  4. package/dist/core/components/lexical/SidebarLexicalEditor.js +1 -1
  5. package/dist/core/createApp.d.ts +314 -44
  6. package/dist/core/createApp.d.ts.map +1 -1
  7. package/dist/core/createBlock.d.ts +160 -22
  8. package/dist/core/createBlock.d.ts.map +1 -1
  9. package/dist/core/createBlock.js +467 -579
  10. package/dist/features/content/components/AssetCard.js +1 -1
  11. package/dist/features/preview/CamoxPreview.d.ts.map +1 -1
  12. package/dist/features/preview/CamoxPreview.js +12 -16
  13. package/dist/features/preview/components/AddBlockSheet.d.ts.map +1 -1
  14. package/dist/features/preview/components/AddBlockSheet.js +1 -2
  15. package/dist/features/preview/components/AssetLightbox.d.ts.map +1 -1
  16. package/dist/features/preview/components/AssetLightbox.js +13 -15
  17. package/dist/features/preview/components/BlockActionsPopover.d.ts.map +1 -1
  18. package/dist/features/preview/components/BlockActionsPopover.js +19 -22
  19. package/dist/features/preview/components/CreatePageSheet.d.ts.map +1 -1
  20. package/dist/features/preview/components/CreatePageSheet.js +10 -4
  21. package/dist/features/preview/components/EditPageSheet.d.ts +1 -1
  22. package/dist/features/preview/components/EditPageSheet.d.ts.map +1 -1
  23. package/dist/features/preview/components/EditPageSheet.js +20 -17
  24. package/dist/features/preview/components/FieldOverlayStyles.d.ts +2 -0
  25. package/dist/features/preview/components/FieldOverlayStyles.d.ts.map +1 -0
  26. package/dist/features/preview/components/FieldOverlayStyles.js +15 -0
  27. package/dist/features/preview/components/Frame.d.ts +20 -0
  28. package/dist/features/preview/components/Frame.d.ts.map +1 -0
  29. package/dist/features/preview/components/Frame.js +162 -0
  30. package/dist/features/preview/components/LinkFieldEditor.d.ts.map +1 -1
  31. package/dist/features/preview/components/LinkFieldEditor.js +11 -12
  32. package/dist/features/preview/components/OverlayTracker.js +1 -1
  33. package/dist/features/preview/components/PageContentSheet.d.ts.map +1 -1
  34. package/dist/features/preview/components/PageContentSheet.js +3 -3
  35. package/dist/features/preview/components/PageLocationFieldset.d.ts.map +1 -1
  36. package/dist/features/preview/components/PageLocationFieldset.js +9 -11
  37. package/dist/features/preview/components/PagePicker.d.ts.map +1 -1
  38. package/dist/features/preview/components/PagePicker.js +15 -15
  39. package/dist/features/preview/components/PageTree.d.ts.map +1 -1
  40. package/dist/features/preview/components/PageTree.js +215 -203
  41. package/dist/features/preview/components/PreviewPanel.d.ts.map +1 -1
  42. package/dist/features/preview/components/PreviewPanel.js +21 -15
  43. package/dist/features/preview/components/PreviewSideSheet.d.ts.map +1 -1
  44. package/dist/features/preview/components/PreviewSideSheet.js +42 -26
  45. package/dist/features/preview/components/PreviewToolbar.d.ts.map +1 -1
  46. package/dist/features/preview/components/PreviewToolbar.js +191 -171
  47. package/dist/features/preview/components/RepeatableItemsList.d.ts.map +1 -1
  48. package/dist/features/preview/components/RepeatableItemsList.js +4 -5
  49. package/dist/features/preview/components/TextFormatToolbar.d.ts.map +1 -1
  50. package/dist/features/preview/components/TextFormatToolbar.js +5 -6
  51. package/dist/features/preview/components/UnlinkAssetButton.d.ts.map +1 -1
  52. package/dist/features/preview/components/UnlinkAssetButton.js +70 -91
  53. package/dist/features/preview/studio-overlays.css?inline.js +4 -0
  54. package/dist/features/provider/components/CamoxAppContext.d.ts +314 -44
  55. package/dist/features/provider/components/CamoxAppContext.d.ts.map +1 -1
  56. package/dist/features/provider/components/CommandPalette.d.ts.map +1 -1
  57. package/dist/features/provider/components/CommandPalette.js +22 -14
  58. package/dist/features/studio/CamoxStudio.d.ts +2 -3
  59. package/dist/features/studio/CamoxStudio.d.ts.map +1 -1
  60. package/dist/features/studio/components/EnvironmentMenu.d.ts.map +1 -1
  61. package/dist/features/studio/components/EnvironmentMenu.js +39 -35
  62. package/dist/features/studio/components/Navbar.js +2 -2
  63. package/dist/features/studio/components/ProjectMenu.d.ts.map +1 -1
  64. package/dist/features/studio/components/ProjectMenu.js +143 -129
  65. package/dist/features/studio/components/UserButton.d.ts.map +1 -1
  66. package/dist/features/studio/components/UserButton.js +8 -9
  67. package/dist/features/vite/definitionsSync.d.ts.map +1 -1
  68. package/dist/features/vite/definitionsSync.js +24 -2
  69. package/dist/features/vite/vite.d.ts +2 -0
  70. package/dist/features/vite/vite.d.ts.map +1 -1
  71. package/dist/features/vite/vite.js +27 -31
  72. package/dist/lib/api-client.d.ts +17 -17
  73. package/dist/lib/queries.d.ts +7 -7
  74. package/dist/studio.css +1 -1
  75. package/package.json +5 -6
  76. package/skills/camox-block/SKILL.md +55 -28
  77. package/dist/features/preview/overlayConstants.d.ts +0 -19
  78. package/dist/features/preview/overlayConstants.d.ts.map +0 -1
  79. package/dist/features/preview/overlayConstants.js +0 -21
@@ -7,18 +7,11 @@ import { readFileSync } from "node:fs";
7
7
  import { homedir } from "node:os";
8
8
  import { dirname, join, resolve } from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
+ import { createServer } from "vite";
10
11
  //#region src/features/vite/vite.ts
11
12
  var sdkRoot = resolve(dirname(fileURLToPath(import.meta.url)), "../../..");
12
13
  var VIRTUAL_STUDIO_CSS = "virtual:camox-studio-css";
13
14
  var RESOLVED_VIRTUAL_STUDIO_CSS = "\0" + VIRTUAL_STUDIO_CSS;
14
- /**
15
- * use-sync-external-store is CJS-only and causes issues in ESM environments.
16
- * Since all Camox apps use React 19+, we can redirect imports to React's built-in
17
- * useSyncExternalStore instead. This handles all subpaths (e.g. /shim, /shim/index.js).
18
- */
19
- var USE_SYNC_EXTERNAL_STORE_RE = /^use-sync-external-store(\/|$)/;
20
- var RESOLVED_USE_SYNC_SHIM = "\0use-sync-external-store-shim";
21
- var USE_SYNC_SHIM_CODE = `export { useSyncExternalStore } from "react";\n`;
22
15
  var PRODUCTION_API_URL = "https://api.camox.ai";
23
16
  /** Authentication URL to use for Camox authentication (production Camox web app) */
24
17
  var DEFAULT_AUTHENTICATION_URL = "https://camox.ai";
@@ -39,6 +32,7 @@ function camox(options) {
39
32
  const apiUrl = options._internal?.apiUrl ?? PRODUCTION_API_URL;
40
33
  const authenticationUrl = options._internal?.authenticationUrl ?? DEFAULT_AUTHENTICATION_URL;
41
34
  const enableTanstackDevtools = options._internal?.enableTanstackDevtools ?? false;
35
+ const disableCodeGen = options._internal?.disableCodeGen ?? false;
42
36
  let isBuild = false;
43
37
  let resolvedConfig;
44
38
  let environmentName;
@@ -46,10 +40,8 @@ function camox(options) {
46
40
  name: "camox",
47
41
  resolveId(id) {
48
42
  if (id === VIRTUAL_STUDIO_CSS) return RESOLVED_VIRTUAL_STUDIO_CSS;
49
- if (USE_SYNC_EXTERNAL_STORE_RE.test(id)) return RESOLVED_USE_SYNC_SHIM;
50
43
  },
51
44
  load(id) {
52
- if (id === RESOLVED_USE_SYNC_SHIM) return USE_SYNC_SHIM_CODE;
53
45
  if (id !== RESOLVED_VIRTUAL_STUDIO_CSS) return;
54
46
  const cssPath = resolve(sdkRoot, "dist/studio.css");
55
47
  if (isBuild) {
@@ -76,31 +68,36 @@ function camox(options) {
76
68
  configResolved(config) {
77
69
  resolvedConfig = config;
78
70
  const routesDir = resolve(config.root, "src/routes");
79
- generateAppFile(config.root);
80
- generateRouteFiles({
81
- routesDir,
82
- authenticationUrl,
83
- apiUrl,
84
- projectSlug: options.projectSlug,
85
- environmentName
86
- });
87
- generateSkillFiles(config.root);
71
+ if (!disableCodeGen) {
72
+ generateAppFile(config.root);
73
+ generateRouteFiles({
74
+ routesDir,
75
+ authenticationUrl,
76
+ apiUrl,
77
+ projectSlug: options.projectSlug,
78
+ environmentName
79
+ });
80
+ generateSkillFiles(config.root);
81
+ }
82
+ if (disableCodeGen) config.logger.warn("⚠️ Code generation is disabled (_internal.disableCodeGen). This option is only meant for momentary debugging — do not deploy or commit your app with it enabled.", { timestamp: true });
88
83
  const mode = config.command === "serve" ? "Running" : "Building";
89
84
  config.logger.info(`${mode} Camox app (environment: ${environmentName})`, { timestamp: true });
90
85
  },
91
86
  configureServer(server) {
92
87
  const routesDir = resolve(server.config.root, "src/routes");
93
- watchAppFile(server, server.config.root);
94
- watchRouteFiles({
95
- server,
96
- routesDir,
97
- authenticationUrl,
98
- apiUrl,
99
- projectSlug: options.projectSlug,
100
- environmentName
101
- });
102
- watchSkillFiles(server, server.config.root);
103
- watchNewBlockFiles(server);
88
+ if (!disableCodeGen) {
89
+ watchAppFile(server, server.config.root);
90
+ watchRouteFiles({
91
+ server,
92
+ routesDir,
93
+ authenticationUrl,
94
+ apiUrl,
95
+ projectSlug: options.projectSlug,
96
+ environmentName
97
+ });
98
+ watchSkillFiles(server, server.config.root);
99
+ watchNewBlockFiles(server);
100
+ }
104
101
  server.httpServer?.once("listening", () => {
105
102
  syncDefinitions(server, {
106
103
  projectSlug: options.projectSlug,
@@ -112,7 +109,6 @@ function camox(options) {
112
109
  },
113
110
  async closeBundle() {
114
111
  if (!isBuild) return;
115
- const { createServer } = await import("vite");
116
112
  const camoxAppPath = "./src/camox/app.ts";
117
113
  const tempServer = await createServer({
118
114
  configFile: false,
@@ -66,10 +66,10 @@ export declare function getOrpc(): {
66
66
  name: string;
67
67
  id: number;
68
68
  slug: string;
69
- syncSecret: string;
70
- createdAt: number;
71
69
  organizationId: string;
70
+ createdAt: number;
72
71
  updatedAt: number;
72
+ syncSecret: string;
73
73
  }, Error> & import('@orpc/tanstack-query').GeneralUtils<{
74
74
  name: string;
75
75
  organizationId: string;
@@ -81,10 +81,10 @@ export declare function getOrpc(): {
81
81
  name: string;
82
82
  id: number;
83
83
  slug: string;
84
- syncSecret: string;
85
- createdAt: number;
86
84
  organizationId: string;
85
+ createdAt: number;
87
86
  updatedAt: number;
87
+ syncSecret: string;
88
88
  }, Error> & import('@orpc/tanstack-query').GeneralUtils<{
89
89
  name: string;
90
90
  id: number;
@@ -95,10 +95,10 @@ export declare function getOrpc(): {
95
95
  name: string;
96
96
  id: number;
97
97
  slug: string;
98
- syncSecret: string;
99
- createdAt: number;
100
98
  organizationId: string;
99
+ createdAt: number;
101
100
  updatedAt: number;
101
+ syncSecret: string;
102
102
  } | undefined, Error> & import('@orpc/tanstack-query').GeneralUtils<{
103
103
  id: number;
104
104
  }>;
@@ -299,10 +299,10 @@ export declare function getOrpc(): {
299
299
  updatedAt: number;
300
300
  projectId: number;
301
301
  environmentId: number;
302
+ layoutId: number;
302
303
  pathSegment: string;
303
304
  fullPath: string;
304
305
  parentPageId: number | null;
305
- layoutId: number;
306
306
  metaTitle: string | null;
307
307
  metaDescription: string | null;
308
308
  aiSeoEnabled: boolean | null;
@@ -325,10 +325,10 @@ export declare function getOrpc(): {
325
325
  updatedAt: number;
326
326
  projectId: number;
327
327
  environmentId: number;
328
+ layoutId: number;
328
329
  pathSegment: string;
329
330
  fullPath: string;
330
331
  parentPageId: number | null;
331
- layoutId: number;
332
332
  metaTitle: string | null;
333
333
  metaDescription: string | null;
334
334
  aiSeoEnabled: boolean | null;
@@ -345,10 +345,10 @@ export declare function getOrpc(): {
345
345
  updatedAt: number;
346
346
  projectId: number;
347
347
  environmentId: number;
348
+ layoutId: number;
348
349
  pathSegment: string;
349
350
  fullPath: string;
350
351
  parentPageId: number | null;
351
- layoutId: number;
352
352
  metaTitle: string | null;
353
353
  metaDescription: string | null;
354
354
  aiSeoEnabled: boolean | null;
@@ -364,10 +364,10 @@ export declare function getOrpc(): {
364
364
  updatedAt: number;
365
365
  projectId: number;
366
366
  environmentId: number;
367
+ layoutId: number;
367
368
  pathSegment: string;
368
369
  fullPath: string;
369
370
  parentPageId: number | null;
370
- layoutId: number;
371
371
  metaTitle: string | null;
372
372
  metaDescription: string | null;
373
373
  aiSeoEnabled: boolean | null;
@@ -384,10 +384,10 @@ export declare function getOrpc(): {
384
384
  updatedAt: number;
385
385
  projectId: number;
386
386
  environmentId: number;
387
+ layoutId: number;
387
388
  pathSegment: string;
388
389
  fullPath: string;
389
390
  parentPageId: number | null;
390
- layoutId: number;
391
391
  metaTitle: string | null;
392
392
  metaDescription: string | null;
393
393
  aiSeoEnabled: boolean | null;
@@ -404,10 +404,10 @@ export declare function getOrpc(): {
404
404
  updatedAt: number;
405
405
  projectId: number;
406
406
  environmentId: number;
407
+ layoutId: number;
407
408
  pathSegment: string;
408
409
  fullPath: string;
409
410
  parentPageId: number | null;
410
- layoutId: number;
411
411
  metaTitle: string | null;
412
412
  metaDescription: string | null;
413
413
  aiSeoEnabled: boolean | null;
@@ -424,10 +424,10 @@ export declare function getOrpc(): {
424
424
  updatedAt: number;
425
425
  projectId: number;
426
426
  environmentId: number;
427
+ layoutId: number;
427
428
  pathSegment: string;
428
429
  fullPath: string;
429
430
  parentPageId: number | null;
430
- layoutId: number;
431
431
  metaTitle: string | null;
432
432
  metaDescription: string | null;
433
433
  aiSeoEnabled: boolean | null;
@@ -720,12 +720,12 @@ export declare function getOrpc(): {
720
720
  }[];
721
721
  }, {
722
722
  id: number;
723
+ description: string | null;
723
724
  createdAt: number;
724
725
  updatedAt: number;
725
726
  projectId: number;
726
727
  environmentId: number;
727
728
  layoutId: string;
728
- description: string | null;
729
729
  }[], Error> & import('@orpc/tanstack-query').GeneralUtils<{
730
730
  projectSlug: string;
731
731
  syncSecret: string;
@@ -1100,11 +1100,11 @@ export declare function getOrpc(): {
1100
1100
  title: string;
1101
1101
  id: number;
1102
1102
  blockId: string;
1103
+ description: string;
1103
1104
  createdAt: number;
1104
1105
  updatedAt: number;
1105
1106
  projectId: number;
1106
1107
  environmentId: number;
1107
- description: string;
1108
1108
  contentSchema: unknown;
1109
1109
  settingsSchema: unknown;
1110
1110
  defaultContent: unknown;
@@ -1142,11 +1142,11 @@ export declare function getOrpc(): {
1142
1142
  title: string;
1143
1143
  id: number;
1144
1144
  blockId: string;
1145
+ description: string;
1145
1146
  createdAt: number;
1146
1147
  updatedAt: number;
1147
1148
  projectId: number;
1148
1149
  environmentId: number;
1149
- description: string;
1150
1150
  contentSchema: unknown;
1151
1151
  settingsSchema: unknown;
1152
1152
  defaultContent: unknown;
@@ -1157,11 +1157,11 @@ export declare function getOrpc(): {
1157
1157
  title: string;
1158
1158
  id: number;
1159
1159
  blockId: string;
1160
+ description: string;
1160
1161
  createdAt: number;
1161
1162
  updatedAt: number;
1162
1163
  projectId: number;
1163
1164
  environmentId: number;
1164
- description: string;
1165
1165
  contentSchema: unknown;
1166
1166
  settingsSchema: unknown;
1167
1167
  defaultContent: unknown;
@@ -595,10 +595,10 @@ export declare const pageMutations: {
595
595
  updatedAt: number;
596
596
  projectId: number;
597
597
  environmentId: number;
598
+ layoutId: number;
598
599
  pathSegment: string;
599
600
  fullPath: string;
600
601
  parentPageId: number | null;
601
- layoutId: number;
602
602
  metaTitle: string | null;
603
603
  metaDescription: string | null;
604
604
  aiSeoEnabled: boolean | null;
@@ -613,10 +613,10 @@ export declare const pageMutations: {
613
613
  updatedAt: number;
614
614
  projectId: number;
615
615
  environmentId: number;
616
+ layoutId: number;
616
617
  pathSegment: string;
617
618
  fullPath: string;
618
619
  parentPageId: number | null;
619
- layoutId: number;
620
620
  metaTitle: string | null;
621
621
  metaDescription: string | null;
622
622
  aiSeoEnabled: boolean | null;
@@ -631,10 +631,10 @@ export declare const pageMutations: {
631
631
  updatedAt: number;
632
632
  projectId: number;
633
633
  environmentId: number;
634
+ layoutId: number;
634
635
  pathSegment: string;
635
636
  fullPath: string;
636
637
  parentPageId: number | null;
637
- layoutId: number;
638
638
  metaTitle: string | null;
639
639
  metaDescription: string | null;
640
640
  aiSeoEnabled: boolean | null;
@@ -648,10 +648,10 @@ export declare const pageMutations: {
648
648
  updatedAt: number;
649
649
  projectId: number;
650
650
  environmentId: number;
651
+ layoutId: number;
651
652
  pathSegment: string;
652
653
  fullPath: string;
653
654
  parentPageId: number | null;
654
- layoutId: number;
655
655
  metaTitle: string | null;
656
656
  metaDescription: string | null;
657
657
  aiSeoEnabled: boolean | null;
@@ -665,10 +665,10 @@ export declare const pageMutations: {
665
665
  updatedAt: number;
666
666
  projectId: number;
667
667
  environmentId: number;
668
+ layoutId: number;
668
669
  pathSegment: string;
669
670
  fullPath: string;
670
671
  parentPageId: number | null;
671
- layoutId: number;
672
672
  metaTitle: string | null;
673
673
  metaDescription: string | null;
674
674
  aiSeoEnabled: boolean | null;
@@ -682,10 +682,10 @@ export declare const pageMutations: {
682
682
  updatedAt: number;
683
683
  projectId: number;
684
684
  environmentId: number;
685
+ layoutId: number;
685
686
  pathSegment: string;
686
687
  fullPath: string;
687
688
  parentPageId: number | null;
688
- layoutId: number;
689
689
  metaTitle: string | null;
690
690
  metaDescription: string | null;
691
691
  aiSeoEnabled: boolean | null;
@@ -699,10 +699,10 @@ export declare const pageMutations: {
699
699
  updatedAt: number;
700
700
  projectId: number;
701
701
  environmentId: number;
702
+ layoutId: number;
702
703
  pathSegment: string;
703
704
  fullPath: string;
704
705
  parentPageId: number | null;
705
- layoutId: number;
706
706
  metaTitle: string | null;
707
707
  metaDescription: string | null;
708
708
  aiSeoEnabled: boolean | null;