@base44-preview/vite-plugin 0.2.26-pr.43.e9195be → 0.2.27-pr.41.77be9cb

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 (168) hide show
  1. package/dist/capabilities/inline-edit/controller.d.ts +3 -0
  2. package/dist/capabilities/inline-edit/controller.d.ts.map +1 -0
  3. package/dist/capabilities/inline-edit/controller.js +194 -0
  4. package/dist/capabilities/inline-edit/controller.js.map +1 -0
  5. package/dist/capabilities/inline-edit/dom-utils.d.ts +6 -0
  6. package/dist/capabilities/inline-edit/dom-utils.d.ts.map +1 -0
  7. package/dist/capabilities/inline-edit/dom-utils.js +49 -0
  8. package/dist/capabilities/inline-edit/dom-utils.js.map +1 -0
  9. package/dist/capabilities/inline-edit/index.d.ts +3 -0
  10. package/dist/capabilities/inline-edit/index.d.ts.map +1 -0
  11. package/dist/capabilities/inline-edit/index.js +2 -0
  12. package/dist/capabilities/inline-edit/index.js.map +1 -0
  13. package/dist/capabilities/inline-edit/types.d.ts +25 -0
  14. package/dist/capabilities/inline-edit/types.d.ts.map +1 -0
  15. package/dist/capabilities/inline-edit/types.js.map +1 -0
  16. package/dist/injections/visual-edit-agent/capabilities/inline-editing/core.d.ts +25 -0
  17. package/dist/injections/visual-edit-agent/capabilities/inline-editing/core.d.ts.map +1 -0
  18. package/dist/injections/visual-edit-agent/capabilities/inline-editing/core.js +95 -0
  19. package/dist/injections/visual-edit-agent/capabilities/inline-editing/core.js.map +1 -0
  20. package/dist/injections/visual-edit-agent/capabilities/inline-editing/index.d.ts +4 -0
  21. package/dist/injections/visual-edit-agent/capabilities/inline-editing/index.d.ts.map +1 -0
  22. package/dist/injections/visual-edit-agent/capabilities/inline-editing/index.js +4 -0
  23. package/dist/injections/visual-edit-agent/capabilities/inline-editing/index.js.map +1 -0
  24. package/dist/injections/visual-edit-agent/capabilities/inline-editing/styles.d.ts +9 -0
  25. package/dist/injections/visual-edit-agent/capabilities/inline-editing/styles.d.ts.map +1 -0
  26. package/dist/injections/visual-edit-agent/capabilities/inline-editing/styles.js +26 -0
  27. package/dist/injections/visual-edit-agent/capabilities/inline-editing/styles.js.map +1 -0
  28. package/dist/injections/visual-edit-agent/capabilities/inline-editing/validation.d.ts +17 -0
  29. package/dist/injections/visual-edit-agent/capabilities/inline-editing/validation.d.ts.map +1 -0
  30. package/dist/injections/visual-edit-agent/capabilities/inline-editing/validation.js +76 -0
  31. package/dist/injections/visual-edit-agent/capabilities/inline-editing/validation.js.map +1 -0
  32. package/dist/injections/visual-edit-agent/constants.d.ts +10 -0
  33. package/dist/injections/visual-edit-agent/constants.d.ts.map +1 -0
  34. package/dist/injections/visual-edit-agent/constants.js +10 -0
  35. package/dist/injections/visual-edit-agent/constants.js.map +1 -0
  36. package/dist/injections/visual-edit-agent/handlers/click-handlers.d.ts +10 -0
  37. package/dist/injections/visual-edit-agent/handlers/click-handlers.d.ts.map +1 -0
  38. package/dist/injections/visual-edit-agent/handlers/click-handlers.js +117 -0
  39. package/dist/injections/visual-edit-agent/handlers/click-handlers.js.map +1 -0
  40. package/dist/injections/visual-edit-agent/handlers/hover-handlers.d.ts +14 -0
  41. package/dist/injections/visual-edit-agent/handlers/hover-handlers.d.ts.map +1 -0
  42. package/dist/injections/visual-edit-agent/handlers/hover-handlers.js +64 -0
  43. package/dist/injections/visual-edit-agent/handlers/hover-handlers.js.map +1 -0
  44. package/dist/injections/visual-edit-agent/handlers/inline-edit-handlers.d.ts +14 -0
  45. package/dist/injections/visual-edit-agent/handlers/inline-edit-handlers.d.ts.map +1 -0
  46. package/dist/injections/visual-edit-agent/handlers/inline-edit-handlers.js +114 -0
  47. package/dist/injections/visual-edit-agent/handlers/inline-edit-handlers.js.map +1 -0
  48. package/dist/injections/visual-edit-agent/handlers/message-handlers.d.ts +26 -0
  49. package/dist/injections/visual-edit-agent/handlers/message-handlers.d.ts.map +1 -0
  50. package/dist/injections/visual-edit-agent/handlers/message-handlers.js +148 -0
  51. package/dist/injections/visual-edit-agent/handlers/message-handlers.js.map +1 -0
  52. package/dist/injections/visual-edit-agent/handlers/messages/toggle-inline-edit-mode.d.ts +7 -0
  53. package/dist/injections/visual-edit-agent/handlers/messages/toggle-inline-edit-mode.d.ts.map +1 -0
  54. package/dist/injections/visual-edit-agent/handlers/messages/toggle-inline-edit-mode.js +54 -0
  55. package/dist/injections/visual-edit-agent/handlers/messages/toggle-inline-edit-mode.js.map +1 -0
  56. package/dist/injections/visual-edit-agent/handlers/messages/toggle-visual-edit-mode.d.ts +11 -0
  57. package/dist/injections/visual-edit-agent/handlers/messages/toggle-visual-edit-mode.d.ts.map +1 -0
  58. package/dist/injections/visual-edit-agent/handlers/messages/toggle-visual-edit-mode.js +32 -0
  59. package/dist/injections/visual-edit-agent/handlers/messages/toggle-visual-edit-mode.js.map +1 -0
  60. package/dist/injections/visual-edit-agent/handlers/messages/types.d.ts +105 -0
  61. package/dist/injections/visual-edit-agent/handlers/messages/types.d.ts.map +1 -0
  62. package/dist/injections/visual-edit-agent/handlers/messages/types.js +28 -0
  63. package/dist/injections/visual-edit-agent/handlers/messages/types.js.map +1 -0
  64. package/dist/injections/visual-edit-agent/index.d.ts +6 -0
  65. package/dist/injections/visual-edit-agent/index.d.ts.map +1 -0
  66. package/dist/injections/visual-edit-agent/index.js +109 -0
  67. package/dist/injections/visual-edit-agent/index.js.map +1 -0
  68. package/dist/injections/visual-edit-agent/state/agent-state.d.ts +17 -0
  69. package/dist/injections/visual-edit-agent/state/agent-state.d.ts.map +1 -0
  70. package/dist/injections/visual-edit-agent/state/agent-state.js +18 -0
  71. package/dist/injections/visual-edit-agent/state/agent-state.js.map +1 -0
  72. package/dist/injections/visual-edit-agent/ui/overlay.d.ts +26 -0
  73. package/dist/injections/visual-edit-agent/ui/overlay.d.ts.map +1 -0
  74. package/dist/injections/visual-edit-agent/ui/overlay.js +104 -0
  75. package/dist/injections/visual-edit-agent/ui/overlay.js.map +1 -0
  76. package/dist/injections/visual-edit-agent/utils/dom-utils.d.ts +14 -0
  77. package/dist/injections/visual-edit-agent/utils/dom-utils.d.ts.map +1 -0
  78. package/dist/injections/visual-edit-agent/utils/dom-utils.js +34 -0
  79. package/dist/injections/visual-edit-agent/utils/dom-utils.js.map +1 -0
  80. package/dist/injections/visual-edit-agent.d.ts +1 -1
  81. package/dist/injections/visual-edit-agent.d.ts.map +1 -1
  82. package/dist/injections/visual-edit-agent.js +1 -506
  83. package/dist/injections/visual-edit-agent.js.map +1 -1
  84. package/dist/jsx-processor.d.ts +1 -4
  85. package/dist/jsx-processor.d.ts.map +1 -1
  86. package/dist/jsx-processor.js +6 -33
  87. package/dist/jsx-processor.js.map +1 -1
  88. package/dist/jsx-utils.d.ts +0 -9
  89. package/dist/jsx-utils.d.ts.map +1 -1
  90. package/dist/jsx-utils.js +0 -86
  91. package/dist/jsx-utils.js.map +1 -1
  92. package/dist/processors/shared-utils.d.ts +0 -64
  93. package/dist/processors/shared-utils.d.ts.map +1 -1
  94. package/dist/processors/shared-utils.js +0 -468
  95. package/dist/processors/shared-utils.js.map +1 -1
  96. package/dist/processors/static-array-processor.d.ts +3 -2
  97. package/dist/processors/static-array-processor.d.ts.map +1 -1
  98. package/dist/processors/static-array-processor.js +3 -2
  99. package/dist/processors/static-array-processor.js.map +1 -1
  100. package/dist/statics/index.mjs +5 -1
  101. package/dist/statics/index.mjs.map +1 -1
  102. package/dist/visual-edit-plugin.d.ts +1 -0
  103. package/dist/visual-edit-plugin.d.ts.map +1 -1
  104. package/dist/visual-edit-plugin.js +178 -29
  105. package/dist/visual-edit-plugin.js.map +1 -1
  106. package/package.json +1 -1
  107. package/src/capabilities/inline-edit/controller.ts +245 -0
  108. package/src/capabilities/inline-edit/dom-utils.ts +48 -0
  109. package/src/capabilities/inline-edit/index.ts +2 -0
  110. package/src/capabilities/inline-edit/types.ts +30 -0
  111. package/src/injections/visual-edit-agent/README.md +222 -0
  112. package/src/injections/visual-edit-agent/capabilities/inline-editing/core.ts +120 -0
  113. package/src/injections/visual-edit-agent/capabilities/inline-editing/index.ts +10 -0
  114. package/src/injections/visual-edit-agent/capabilities/inline-editing/styles.ts +26 -0
  115. package/src/injections/visual-edit-agent/capabilities/inline-editing/validation.ts +87 -0
  116. package/src/injections/visual-edit-agent/constants.ts +9 -0
  117. package/src/injections/visual-edit-agent/handlers/click-handlers.ts +146 -0
  118. package/src/injections/visual-edit-agent/handlers/hover-handlers.ts +78 -0
  119. package/src/injections/visual-edit-agent/handlers/inline-edit-handlers.ts +146 -0
  120. package/src/injections/visual-edit-agent/handlers/message-handlers.ts +201 -0
  121. package/src/injections/visual-edit-agent/handlers/messages/toggle-inline-edit-mode.ts +65 -0
  122. package/src/injections/visual-edit-agent/handlers/messages/toggle-visual-edit-mode.ts +40 -0
  123. package/src/injections/visual-edit-agent/handlers/messages/types.ts +134 -0
  124. package/src/injections/visual-edit-agent/index.ts +121 -0
  125. package/src/injections/visual-edit-agent/state/agent-state.ts +31 -0
  126. package/src/injections/visual-edit-agent/ui/overlay.ts +126 -0
  127. package/src/injections/visual-edit-agent/utils/dom-utils.ts +39 -0
  128. package/src/injections/visual-edit-agent.ts +1 -625
  129. package/src/jsx-processor.ts +14 -41
  130. package/src/jsx-utils.ts +0 -116
  131. package/src/processors/shared-utils.ts +0 -596
  132. package/src/processors/static-array-processor.ts +3 -6
  133. package/src/visual-edit-plugin.ts +215 -34
  134. package/dist/consts.d.ts +0 -12
  135. package/dist/consts.d.ts.map +0 -1
  136. package/dist/consts.js +0 -12
  137. package/dist/consts.js.map +0 -1
  138. package/dist/processors/collection-id-processor.d.ts +0 -20
  139. package/dist/processors/collection-id-processor.d.ts.map +0 -1
  140. package/dist/processors/collection-id-processor.js +0 -182
  141. package/dist/processors/collection-id-processor.js.map +0 -1
  142. package/dist/processors/collection-item-field-processor.d.ts +0 -33
  143. package/dist/processors/collection-item-field-processor.d.ts.map +0 -1
  144. package/dist/processors/collection-item-field-processor.js +0 -275
  145. package/dist/processors/collection-item-field-processor.js.map +0 -1
  146. package/dist/processors/collection-item-id-processor.d.ts +0 -12
  147. package/dist/processors/collection-item-id-processor.d.ts.map +0 -1
  148. package/dist/processors/collection-item-id-processor.js +0 -50
  149. package/dist/processors/collection-item-id-processor.js.map +0 -1
  150. package/dist/processors/collection-reference-field-processor.d.ts +0 -31
  151. package/dist/processors/collection-reference-field-processor.d.ts.map +0 -1
  152. package/dist/processors/collection-reference-field-processor.js +0 -174
  153. package/dist/processors/collection-reference-field-processor.js.map +0 -1
  154. package/dist/processors/collection-tracing-utils.d.ts +0 -31
  155. package/dist/processors/collection-tracing-utils.d.ts.map +0 -1
  156. package/dist/processors/collection-tracing-utils.js +0 -326
  157. package/dist/processors/collection-tracing-utils.js.map +0 -1
  158. package/dist/types.d.ts +0 -5
  159. package/dist/types.d.ts.map +0 -1
  160. package/dist/types.js.map +0 -1
  161. package/src/consts.ts +0 -12
  162. package/src/processors/collection-id-processor.ts +0 -261
  163. package/src/processors/collection-item-field-processor.ts +0 -410
  164. package/src/processors/collection-item-id-processor.ts +0 -69
  165. package/src/processors/collection-reference-field-processor.ts +0 -225
  166. package/src/processors/collection-tracing-utils.ts +0 -436
  167. package/src/types.ts +0 -4
  168. /package/dist/{types.js → capabilities/inline-edit/types.js} +0 -0
@@ -1,26 +1,14 @@
1
1
  import type { NodePath } from "@babel/traverse";
2
2
  import type * as t from "@babel/types";
3
- import { CollectionIdProcessor } from "./processors/collection-id-processor.js";
4
- import { ReferenceFieldProcessor } from "./processors/collection-reference-field-processor.js";
5
- import { DataItemIdProcessor } from "./processors/collection-item-id-processor.js";
6
- import { DataItemFieldProcessor } from "./processors/collection-item-field-processor.js";
7
3
  import { StaticArrayProcessor } from "./processors/static-array-processor.js";
8
4
 
9
5
  export class JSXProcessor {
10
- private collectionIdProcessor: CollectionIdProcessor;
11
- private referenceFieldProcessor: ReferenceFieldProcessor;
12
- private dataItemIdProcessor: DataItemIdProcessor;
13
- private dataItemFieldProcessor: DataItemFieldProcessor;
14
6
  private staticArrayProcessor: StaticArrayProcessor;
15
7
 
16
8
  constructor(
17
9
  private types: typeof t,
18
10
  private filename: string
19
11
  ) {
20
- this.collectionIdProcessor = new CollectionIdProcessor(types);
21
- this.referenceFieldProcessor = new ReferenceFieldProcessor(types);
22
- this.dataItemIdProcessor = new DataItemIdProcessor(types);
23
- this.dataItemFieldProcessor = new DataItemFieldProcessor(types);
24
12
  this.staticArrayProcessor = new StaticArrayProcessor(types);
25
13
  }
26
14
 
@@ -29,13 +17,8 @@ export class JSXProcessor {
29
17
 
30
18
  this.addSourceLocationAttribute(path);
31
19
  this.addDynamicContentAttribute(path);
32
-
33
- this.collectionIdProcessor.process(path);
34
- this.referenceFieldProcessor.process(path);
35
- this.dataItemIdProcessor.process(path);
36
- this.dataItemFieldProcessor.process(path);
20
+ this.addContentEditableAttribute(path);
37
21
  this.staticArrayProcessor.process(path);
38
-
39
22
  }
40
23
 
41
24
  private addSourceLocationAttribute(
@@ -44,7 +27,7 @@ export class JSXProcessor {
44
27
  const { line, column } = path.node.loc?.start || { line: 1, column: 0 };
45
28
  const value = `${this.filename}:${line}:${column}`;
46
29
 
47
- path.node.attributes.unshift(
30
+ path.node.attributes.push(
48
31
  this.types.jsxAttribute(
49
32
  this.types.jsxIdentifier("data-source-location"),
50
33
  this.types.stringLiteral(value)
@@ -62,16 +45,7 @@ export class JSXProcessor {
62
45
  parentElement.node as t.JSXElement
63
46
  );
64
47
 
65
- const sourceLocIdx = path.node.attributes.findIndex(
66
- (attr) =>
67
- this.types.isJSXAttribute(attr) &&
68
- this.types.isJSXIdentifier(attr.name) &&
69
- attr.name.name === "data-source-location"
70
- );
71
-
72
- path.node.attributes.splice(
73
- sourceLocIdx + 1,
74
- 0,
48
+ path.node.attributes.push(
75
49
  this.types.jsxAttribute(
76
50
  this.types.jsxIdentifier("data-dynamic-content"),
77
51
  this.types.stringLiteral(isDynamic ? "true" : "false")
@@ -79,6 +53,17 @@ export class JSXProcessor {
79
53
  );
80
54
  }
81
55
 
56
+ private addContentEditableAttribute(
57
+ path: NodePath<t.JSXOpeningElement>
58
+ ): void {
59
+ path.node.attributes.push(
60
+ this.types.jsxAttribute(
61
+ this.types.jsxIdentifier("content-editable"),
62
+ this.types.stringLiteral("true")
63
+ )
64
+ );
65
+ }
66
+
82
67
  private hasAttribute(
83
68
  path: NodePath<t.JSXOpeningElement>,
84
69
  name: string
@@ -152,18 +137,6 @@ export class JSXProcessor {
152
137
  }
153
138
  };
154
139
 
155
- const attributes = jsxElement.openingElement?.attributes || [];
156
- for (const attr of attributes) {
157
- if (hasDynamicContent) break;
158
- if (this.types.isJSXSpreadAttribute(attr)) {
159
- hasDynamicContent = true;
160
- break;
161
- }
162
- if (this.types.isJSXAttribute(attr) && attr.value) {
163
- traverseNode(attr.value as unknown as Record<string, unknown>);
164
- }
165
- }
166
-
167
140
  for (const child of jsxElement.children) {
168
141
  if (hasDynamicContent) break;
169
142
  traverseNode(child as unknown as Record<string, unknown>);
package/src/jsx-utils.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import type * as t from "@babel/types";
2
- import { ALLOWED_CUSTOM_COMPONENTS } from "./consts.js";
3
2
 
4
3
  export class JSXUtils {
5
4
  private static types: typeof t;
@@ -13,119 +12,4 @@ export class JSXUtils {
13
12
  ? `${attr.name.namespace.name}:${attr.name.name.name}`
14
13
  : attr.name.name;
15
14
  }
16
-
17
- static getElementName(node: t.JSXOpeningElement): string | null {
18
- const name = node.name;
19
-
20
- if (this.types.isJSXIdentifier(name)) {
21
- return name.name;
22
- }
23
-
24
- if (this.types.isJSXNamespacedName(name)) {
25
- return `${name.namespace.name}:${name.name.name}`;
26
- }
27
-
28
- if (this.types.isJSXMemberExpression(name)) {
29
- return this.collectJSXMemberName(name);
30
- }
31
-
32
- return null;
33
- }
34
-
35
- private static collectJSXMemberName(
36
- node: t.JSXMemberExpression
37
- ): string {
38
- const parts: string[] = [node.property.name];
39
- let current: t.JSXMemberExpression["object"] = node.object;
40
-
41
- while (this.types.isJSXMemberExpression(current)) {
42
- parts.unshift(current.property.name);
43
- current = current.object;
44
- }
45
-
46
- if (this.types.isJSXIdentifier(current)) {
47
- parts.unshift(current.name);
48
- }
49
-
50
- return parts.join(".");
51
- }
52
-
53
- static isCustomComponent(name: string): boolean {
54
- return name.length > 0 && name.charAt(0) === name.charAt(0).toUpperCase();
55
- }
56
-
57
- static isAllowedCustomComponent(name: string): boolean {
58
- return ALLOWED_CUSTOM_COMPONENTS.includes(name);
59
- }
60
-
61
- static isDOMElement(name: string): boolean {
62
- return name.length > 0 && name.charAt(0) === name.charAt(0).toLowerCase();
63
- }
64
-
65
- static isDOMOrAllowed(name: string): boolean {
66
- return this.isDOMElement(name) || this.isAllowedCustomComponent(name);
67
- }
68
-
69
- static producesJSX(node: t.Expression | t.Node): boolean {
70
- const types = this.types;
71
-
72
- if (types.isJSXElement(node) || types.isJSXFragment(node)) return true;
73
-
74
- if (types.isConditionalExpression(node)) {
75
- return (
76
- this.producesJSX(node.consequent) || this.producesJSX(node.alternate)
77
- );
78
- }
79
-
80
- if (types.isLogicalExpression(node)) {
81
- return this.producesJSX(node.left) || this.producesJSX(node.right);
82
- }
83
-
84
- if (types.isCallExpression(node)) {
85
- if (types.isMemberExpression(node.callee)) {
86
- const prop = node.callee.property;
87
- if (
88
- types.isIdentifier(prop) &&
89
- (prop.name === "map" || prop.name === "flatMap")
90
- ) {
91
- const callback = node.arguments[0];
92
- if (callback) return this.callbackProducesJSX(callback);
93
- }
94
- }
95
- }
96
-
97
- if (types.isParenthesizedExpression(node)) {
98
- return this.producesJSX(node.expression);
99
- }
100
-
101
- return false;
102
- }
103
-
104
- private static callbackProducesJSX(
105
- callback: t.Expression | t.SpreadElement | t.ArgumentPlaceholder
106
- ): boolean {
107
- const types = this.types;
108
-
109
- if (types.isArrowFunctionExpression(callback)) {
110
- if (types.isBlockStatement(callback.body)) {
111
- return this.doesBlockReturnJSX(callback.body);
112
- }
113
- return this.producesJSX(callback.body);
114
- }
115
-
116
- if (types.isFunctionExpression(callback)) {
117
- return this.doesBlockReturnJSX(callback.body);
118
- }
119
-
120
- return false;
121
- }
122
-
123
- static doesBlockReturnJSX(block: t.BlockStatement): boolean {
124
- for (const stmt of block.body) {
125
- if (this.types.isReturnStatement(stmt) && stmt.argument) {
126
- if (this.producesJSX(stmt.argument)) return true;
127
- }
128
- }
129
- return false;
130
- }
131
15
  }