@jxsuite/studio 3.0.0 → 4.1.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 (197) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/{2020-xp8vnwma.js → 2020-n6tfwnda.js} +2 -2
  3. package/dist/chunks/Overlay.dev-etqjwyf9.js +23 -0
  4. package/dist/chunks/cf-account-picker-en86v7x7.js +163 -0
  5. package/dist/chunks/{cf-settings-zj2cj1ar.js → cf-settings-45fgyx8y.js} +6 -5
  6. package/dist/chunks/{components-z6cnkyy1.js → components-zmx10t62.js} +6 -5
  7. package/dist/chunks/content-source-48xg86wj.js +49 -0
  8. package/dist/chunks/{convert-to-repeater-6vvx96n2.js → convert-to-repeater-43tfn7cs.js} +33 -25
  9. package/dist/chunks/entry-commands-e63f1xc0.js +46 -0
  10. package/dist/chunks/{extension-sections-kwzvpemr.js → extension-sections-txv08xxg.js} +34 -26
  11. package/dist/chunks/file-ops-wbh4hhsx.js +48 -0
  12. package/dist/chunks/files-3kfkwhk4.js +93 -0
  13. package/dist/chunks/{focus-trap.esm-ggawf1hy.js → focus-trap.esm-9t2drp0g.js} +6 -5
  14. package/dist/chunks/{format-host-8fr3545e.js → format-host-w16q81tf.js} +3 -3
  15. package/dist/chunks/fs-events-hrrg328g.js +21 -0
  16. package/dist/chunks/{git-panel-g01d93vc.js → git-panel-532whr1y.js} +22 -16
  17. package/dist/chunks/{index-nj44jpzj.js → index-wcnt3r9g.js} +2 -2
  18. package/dist/chunks/{jx-validate-jj9rnt4n.js → jx-validate-8er6gbxy.js} +6 -4
  19. package/dist/chunks/layers-panel-07hm7g5j.js +67 -0
  20. package/dist/chunks/layers-q75tj2mf.js +45 -0
  21. package/dist/chunks/lit-html-j055mkh8.js +22 -0
  22. package/dist/chunks/monaco-buffer-dqw0xxpx.js +25 -0
  23. package/dist/chunks/{monaco-setup-a5wkmbgh.js → monaco-setup-vx9bhp1d.js} +4 -4
  24. package/dist/chunks/notify-yjm79n4s.js +30 -0
  25. package/dist/chunks/parse-24d0gay3.js +19 -0
  26. package/dist/chunks/platform-ba1j1gbh.js +16 -0
  27. package/dist/chunks/publish-panel-v9st96ja.js +29 -0
  28. package/dist/chunks/quick-search-zccjp6gv.js +66 -0
  29. package/dist/chunks/references-3qx8fkyp.js +29 -0
  30. package/dist/chunks/right-panel-vm3b6kwy.js +46 -0
  31. package/dist/chunks/sp-overlay.dev-qgvhnxf4.js +18 -0
  32. package/dist/chunks/sp-popover.dev-n2etmqdp.js +9 -0
  33. package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +15 -0
  34. package/dist/chunks/sp-tooltip.dev-4sastdnw.js +15 -0
  35. package/dist/chunks/{sp-tray.dev-64v4pxw8.js → sp-tray.dev-tkbscm06.js} +5 -5
  36. package/dist/chunks/{studio-wdt9y92a.js → studio-0bq6eh7v.js} +2 -2
  37. package/dist/chunks/studio-1ngbejft.js +181 -0
  38. package/dist/chunks/studio-1wagb550.js +118 -0
  39. package/dist/chunks/{studio-j595e748.js → studio-2b946z26.js} +172 -95
  40. package/dist/chunks/{studio-pkp61mh8.js → studio-3bqpr0zh.js} +25 -17
  41. package/dist/chunks/{studio-k4jvjcfx.js → studio-4b5z1x43.js} +46 -12
  42. package/dist/chunks/{studio-ry1vz5sv.js → studio-4n2b5gzb.js} +15 -13
  43. package/dist/chunks/{studio-p5dja96s.js → studio-4r1pv6zf.js} +2 -2
  44. package/dist/chunks/{studio-kvfx9z2c.js → studio-4rzyrtjz.js} +70 -31
  45. package/dist/chunks/{studio-tzx3xmvx.js → studio-5fx3g9jg.js} +33 -52
  46. package/dist/chunks/{studio-rh1cnamv.js → studio-5myknm0a.js} +565 -135
  47. package/dist/chunks/studio-6yw4y3my.js +91 -0
  48. package/dist/chunks/{studio-0rqqhrdy.js → studio-7nte2hj4.js} +2 -2
  49. package/dist/chunks/studio-92ab2jqe.js +282 -0
  50. package/dist/chunks/{studio-6z5eyjwn.js → studio-950k0dx6.js} +72 -135
  51. package/dist/chunks/{studio-sas7mt3k.js → studio-9ab8gqsm.js} +2 -2
  52. package/dist/chunks/studio-9n4mrmnb.js +184 -0
  53. package/dist/chunks/{studio-hcxzyk3x.js → studio-ahn3pdgx.js} +6 -6
  54. package/dist/chunks/studio-b55y6ewx.js +498 -0
  55. package/dist/chunks/{studio-s519zc99.js → studio-bgxt93ga.js} +3 -3
  56. package/dist/chunks/studio-cft9r4r7.js +119 -0
  57. package/dist/chunks/{studio-dc8s8heb.js → studio-cmb03bg5.js} +6904 -8321
  58. package/dist/chunks/studio-dm19q43r.js +195 -0
  59. package/dist/chunks/{studio-2x9zbxmx.js → studio-ef49pnzx.js} +11 -9
  60. package/dist/chunks/{studio-ay8wcr2b.js → studio-eqq1w638.js} +7 -9
  61. package/dist/chunks/{studio-5efrtn1m.js → studio-ew0djmhg.js} +23 -19
  62. package/dist/chunks/{studio-tr20m8g8.js → studio-f3wqjtk5.js} +39 -3
  63. package/dist/chunks/{studio-xntfdy1x.js → studio-fbf92ckf.js} +36 -23
  64. package/dist/chunks/{studio-4q0wznzf.js → studio-gcye7qka.js} +442 -126
  65. package/dist/chunks/{studio-7p35254k.js → studio-gfgb8pe6.js} +36 -193
  66. package/dist/chunks/studio-jc994dnr.js +1066 -0
  67. package/dist/chunks/{studio-hj2se583.js → studio-jkftxyvz.js} +69 -3423
  68. package/dist/chunks/{studio-5x5774ak.js → studio-kryvsw6j.js} +3 -3
  69. package/dist/chunks/{studio-kfpek536.js → studio-kyh9avvv.js} +2 -2
  70. package/dist/chunks/{studio-twsafr1e.js → studio-m3hwn7y1.js} +3 -3
  71. package/dist/chunks/studio-msd847zn.js +1315 -0
  72. package/dist/chunks/{studio-g5gdqnyd.js → studio-mtfnaqs9.js} +19 -19
  73. package/dist/chunks/{studio-7ejemhej.js → studio-n6j9t10q.js} +6 -6
  74. package/dist/chunks/{studio-vhk5fmfv.js → studio-n8b9wqwy.js} +5 -5
  75. package/dist/chunks/{studio-cjm7fdjf.js → studio-p4ngc046.js} +8 -104
  76. package/dist/chunks/studio-q43a5y9h.js +394 -0
  77. package/dist/chunks/studio-q7v10cg2.js +106 -0
  78. package/dist/chunks/{studio-6kv3apa9.js → studio-q9jd1a60.js} +27 -11
  79. package/dist/chunks/studio-qcy05dp8.js +1743 -0
  80. package/dist/chunks/{studio-a0yp7syn.js → studio-qjy2z9bv.js} +29 -132
  81. package/dist/chunks/{studio-2w11grav.js → studio-qq6jym04.js} +3 -3
  82. package/dist/chunks/{studio-3fk1ac9z.js → studio-rdx8jcxy.js} +4 -4
  83. package/dist/chunks/{studio-4mqb9a0j.js → studio-rn9ta2mz.js} +4 -4
  84. package/dist/chunks/studio-t7qb9db8.js +665 -0
  85. package/dist/chunks/studio-tmc5emrw.js +8 -0
  86. package/dist/chunks/{studio-r5xbtctf.js → studio-trxrabqf.js} +292 -2297
  87. package/dist/chunks/studio-wcy8trfx.js +263 -0
  88. package/dist/chunks/{studio-3dkcd4c5.js → studio-x4qkdat5.js} +62 -57
  89. package/dist/chunks/studio-x813zp48.js +195 -0
  90. package/dist/chunks/{studio-qpfq7xhm.js → studio-xrapxwwc.js} +22 -285
  91. package/dist/chunks/{studio-xm3dbxvn.js → studio-zczps70q.js} +2 -2
  92. package/dist/chunks/{studio-8ezdegcx.js → studio-zqazsct2.js} +40 -36
  93. package/dist/chunks/workspace-fjx52ryv.js +89 -0
  94. package/dist/iframe-entry.js +141 -56
  95. package/dist/manifest.json +7 -0
  96. package/dist/studio.js +2605 -1950
  97. package/favicon.ico +0 -0
  98. package/index.html +1 -0
  99. package/package.json +20 -18
  100. package/src/about/about-modal.ts +4 -3
  101. package/src/browse/library-pane.ts +57 -3
  102. package/src/canvas/canvas-render.ts +23 -1
  103. package/src/canvas/iframe-patch.ts +47 -21
  104. package/src/canvas/iframe-render.ts +22 -6
  105. package/src/commands/app-commands.ts +4 -0
  106. package/src/commands/command-args.ts +29 -0
  107. package/src/commands/context.ts +15 -1
  108. package/src/commands/defaults.ts +29 -1
  109. package/src/commands/levels.ts +16 -0
  110. package/src/commands/live-context.ts +3 -0
  111. package/src/content/collection-match.ts +267 -0
  112. package/src/content/entry-commands.ts +38 -29
  113. package/src/content/entry-fields.ts +6 -0
  114. package/src/editor/shortcuts.ts +5 -0
  115. package/src/files/file-ops.ts +10 -42
  116. package/src/files/files.ts +487 -59
  117. package/src/files/fs-events.ts +9 -0
  118. package/src/files/gitignore.ts +432 -0
  119. package/src/files/media-paths.ts +13 -42
  120. package/src/files/media-usage.ts +41 -131
  121. package/src/files/serialize-document.ts +60 -0
  122. package/src/format/convert-file.ts +511 -0
  123. package/src/format/format-choices.ts +199 -0
  124. package/src/grid/grid-view.ts +16 -2
  125. package/src/hosting/document.ts +2 -0
  126. package/src/hosting/layout.ts +8 -0
  127. package/src/media/media-open.ts +58 -0
  128. package/src/media/media-pane.ts +310 -0
  129. package/src/new-project/import-tab.ts +357 -163
  130. package/src/new-project/location-fields.ts +8 -5
  131. package/src/new-project/new-project-modal.ts +27 -34
  132. package/src/packages/ensure-deps.ts +14 -7
  133. package/src/packages/jxsuite-update.ts +11 -11
  134. package/src/page-params.ts +10 -46
  135. package/src/panels/activity-bar.ts +45 -16
  136. package/src/panels/ai-chat/attached-context.ts +6 -1
  137. package/src/panels/ai-chat/chat-view.ts +255 -13
  138. package/src/panels/ai-chat/composer.ts +31 -97
  139. package/src/panels/ai-panel.ts +116 -2
  140. package/src/panels/navigator-panels.ts +7 -6
  141. package/src/panels/settings-menu.ts +799 -0
  142. package/src/panels/toolbar.ts +135 -15
  143. package/src/platforms/cloud.ts +261 -70
  144. package/src/platforms/devserver.ts +67 -33
  145. package/src/preview/preview-overlay.ts +226 -0
  146. package/src/publish/publish-panel.ts +62 -2
  147. package/src/services/ai-ask.ts +247 -0
  148. package/src/services/ai-import-tools.ts +532 -0
  149. package/src/services/ai-models.ts +108 -1
  150. package/src/services/ai-project-tools.ts +20 -26
  151. package/src/services/ai-system-prompt.ts +88 -2
  152. package/src/services/ai-turn-signal.ts +70 -0
  153. package/src/services/connection.ts +74 -0
  154. package/src/services/context-manager.ts +101 -1
  155. package/src/services/document-assistant.ts +45 -4
  156. package/src/services/import-client.ts +33 -6
  157. package/src/services/import-run.ts +158 -0
  158. package/src/services/import-seed.ts +120 -0
  159. package/src/services/jx-validate.ts +58 -6
  160. package/src/services/project-adoption.ts +71 -0
  161. package/src/services/references.ts +0 -0
  162. package/src/services/settings/definitions.ts +17 -0
  163. package/src/services/tool-executor.ts +45 -2
  164. package/src/settings/contexts-section.ts +45 -3
  165. package/src/settings/dependencies-editor.ts +43 -23
  166. package/src/settings/general-settings.ts +30 -12
  167. package/src/settings/preferences-accounts.ts +193 -12
  168. package/src/settings/preferences-dialog.ts +93 -59
  169. package/src/settings/preferences-sections.ts +57 -0
  170. package/src/settings/settings-document.ts +65 -9
  171. package/src/studio.ts +33 -6
  172. package/src/tabs/transact.ts +42 -19
  173. package/src/types.ts +129 -7
  174. package/src/ui/ai-managed-connect.ts +62 -13
  175. package/src/ui/ai-model-picker.ts +189 -0
  176. package/src/ui/cf-account-picker.ts +200 -0
  177. package/src/ui/choice-field.ts +72 -0
  178. package/src/ui/layers.ts +83 -5
  179. package/src/utils/studio-utils.ts +22 -52
  180. package/styles/forced-colors.css +7 -0
  181. package/styles/overlays.css +256 -0
  182. package/styles/panels.css +13 -1
  183. package/styles/shell.css +147 -0
  184. package/dist/chunks/Overlay.dev-d2ajy6sj.js +0 -23
  185. package/dist/chunks/content-source-7fy9qrm0.js +0 -40
  186. package/dist/chunks/files-xcybanxe.js +0 -70
  187. package/dist/chunks/layers-panel-27essgkc.js +0 -60
  188. package/dist/chunks/publish-panel-09sy2bab.js +0 -22
  189. package/dist/chunks/quick-search-sefb61v8.js +0 -55
  190. package/dist/chunks/right-panel-9r32jd5j.js +0 -39
  191. package/dist/chunks/sp-overlay.dev-s18hymn9.js +0 -18
  192. package/dist/chunks/sp-popover.dev-dj9x7e7a.js +0 -9
  193. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +0 -15
  194. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +0 -15
  195. package/dist/chunks/studio-bw5dz6km.js +0 -608
  196. package/dist/chunks/studio-c31yb4t6.js +0 -55
  197. package/src/canvas/site-style-css.ts +0 -117
@@ -0,0 +1,106 @@
1
+ // ../schema/src/guards.ts
2
+ function isJsonObject(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
+ }
5
+ function isRef(value) {
6
+ return isJsonObject(value) && typeof value.$ref === "string";
7
+ }
8
+ function isFunctionDef(value) {
9
+ return isJsonObject(value) && value.$prototype === "Function";
10
+ }
11
+ function isExpressionDef(value) {
12
+ return isJsonObject(value) && isJsonObject(value.$expression);
13
+ }
14
+ function isNamedFormulaDef(value) {
15
+ return isExpressionDef(value) && Array.isArray(value.parameters) && value.parameters.length > 0;
16
+ }
17
+ function hasStructuredBody(value) {
18
+ return isFunctionDef(value) && Array.isArray(value.body);
19
+ }
20
+ function isPrototypeDef(value) {
21
+ return isJsonObject(value) && typeof value.$prototype === "string" && value.$prototype !== "Function";
22
+ }
23
+ function isServerFnDef(value) {
24
+ return isJsonObject(value) && value.timing === "server" && typeof value.$src === "string" && typeof value.$export === "string" && !value.$prototype;
25
+ }
26
+ var SCHEMA_KEYWORDS = new Set([
27
+ "type",
28
+ "enum",
29
+ "minimum",
30
+ "maximum",
31
+ "minLength",
32
+ "maxLength",
33
+ "pattern",
34
+ "format",
35
+ "items",
36
+ "properties",
37
+ "required",
38
+ "description",
39
+ "title",
40
+ "$comment"
41
+ ]);
42
+ function isMappedArray(value) {
43
+ return isJsonObject(value) && value.$prototype === "Array";
44
+ }
45
+ function isTemplateString(value) {
46
+ return typeof value === "string" && value.includes("${");
47
+ }
48
+ function bodyReturnsValue(body) {
49
+ return /\breturn\b[^\S\n]*(?![;}\s]|$)/.test(body);
50
+ }
51
+ function isNestedStyle(value) {
52
+ return typeof value === "object" && value !== null;
53
+ }
54
+ function getNestedStyle(style, key) {
55
+ const value = style?.[key];
56
+ return isNestedStyle(value) ? value : undefined;
57
+ }
58
+ function ensureNestedStyle(style, key) {
59
+ const existing = style[key];
60
+ if (isNestedStyle(existing)) {
61
+ return existing;
62
+ }
63
+ const created = {};
64
+ style[key] = created;
65
+ return created;
66
+ }
67
+ function isEventBinding(value) {
68
+ return isRef(value) || isFunctionDef(value) || isExpressionDef(value);
69
+ }
70
+ function getEventBinding(node, key) {
71
+ const value = node[key];
72
+ return isEventBinding(value) ? value : undefined;
73
+ }
74
+ function paramNames(parameters) {
75
+ if (!parameters) {
76
+ return [];
77
+ }
78
+ return parameters.map((p) => typeof p === "string" ? p : p.name);
79
+ }
80
+ function isTagExpression(tagName) {
81
+ return isJsonObject(tagName) && isJsonObject(tagName.$expression);
82
+ }
83
+ function tagNameCandidates(tagName) {
84
+ if (typeof tagName === "string") {
85
+ return [tagName];
86
+ }
87
+ if (!isTagExpression(tagName)) {
88
+ return [];
89
+ }
90
+ const expression = tagName.$expression;
91
+ if (expression.operator === "?:") {
92
+ return [...new Set([expression.value, expression.initial])];
93
+ }
94
+ return [...new Set([...Object.values(expression.cases), expression.default])];
95
+ }
96
+ function displayTagName(tagName) {
97
+ return typeof tagName === "string" ? tagName : tagNameCandidates(tagName).join("|");
98
+ }
99
+ function isPrivateStateKey(key) {
100
+ return key.startsWith("#");
101
+ }
102
+
103
+ export { isJsonObject, isRef, isFunctionDef, isExpressionDef, isNamedFormulaDef, hasStructuredBody, isPrototypeDef, isServerFnDef, isMappedArray, isTemplateString, bodyReturnsValue, getNestedStyle, ensureNestedStyle, isEventBinding, getEventBinding, paramNames, isTagExpression, tagNameCandidates, displayTagName, isPrivateStateKey };
104
+
105
+ //# debugId=8B99E181A008FB9464756E2164756E21
106
+ //# sourceMappingURL=studio-q7v10cg2.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  project_schema_default,
3
3
  schema_default
4
- } from "./studio-tr20m8g8.js";
4
+ } from "./studio-f3wqjtk5.js";
5
5
  import {
6
6
  __require,
7
7
  __toESM
@@ -21,8 +21,8 @@ var reportedFailure = false;
21
21
  function getValidator(kind) {
22
22
  compiling[kind] ??= (async () => {
23
23
  try {
24
- const { default: Ajv2020 } = await import("./2020-xp8vnwma.js").then((m)=>__toESM(m.default,1));
25
- const { default: addFormats } = await import("./index-nj44jpzj.js").then((m)=>__toESM(m.default,1));
24
+ const { default: Ajv2020 } = await import("./2020-n6tfwnda.js").then((m)=>__toESM(m.default,1));
25
+ const { default: addFormats } = await import("./index-wcnt3r9g.js").then((m)=>__toESM(m.default,1));
26
26
  const ajv = new Ajv2020({ allErrors: true, strict: false, allowUnionTypes: true });
27
27
  addFormats(ajv);
28
28
  return ajv.compile(active[kind]);
@@ -36,23 +36,32 @@ function getValidator(kind) {
36
36
  })();
37
37
  return compiling[kind];
38
38
  }
39
+ function asSchema(value) {
40
+ return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).length > 0 ? value : undefined;
41
+ }
39
42
  function applyProjectSchemas(schemas) {
40
- const document = schemas?.document ?? CORE.document;
41
- const project = schemas?.project ?? CORE.project;
43
+ const document = asSchema(schemas?.document) ?? CORE.document;
44
+ const project = asSchema(schemas?.project) ?? CORE.project;
45
+ const applied = document !== CORE.document || project !== CORE.project;
42
46
  if (document === active.document && project === active.project) {
43
- return Boolean(schemas?.document || schemas?.project);
47
+ return applied;
44
48
  }
45
49
  active.document = document;
46
50
  active.project = project;
47
51
  compiling.document = null;
48
52
  compiling.project = null;
49
- return Boolean(schemas?.document || schemas?.project);
53
+ return applied;
50
54
  }
51
55
  function resetProjectSchemas() {
52
56
  applyProjectSchemas(null);
53
57
  }
58
+ var ERROR_PROPERTY_KEYS = ["unevaluatedProperty", "additionalProperty", "missingProperty"];
54
59
  function formatErrors(validate) {
55
- return (validate.errors || []).map((e) => `${e.instancePath || "(root)"}: ${e.message}`);
60
+ return (validate.errors || []).map((e) => {
61
+ const key = ERROR_PROPERTY_KEYS.find((name) => typeof e.params?.[name] === "string");
62
+ const property = key ? ` (${String(e.params?.[key])})` : "";
63
+ return `${e.instancePath || "(root)"}: ${e.message}${property}`;
64
+ });
56
65
  }
57
66
  async function validateDoc(doc) {
58
67
  const validate = await getValidator("document");
@@ -61,6 +70,13 @@ async function validateDoc(doc) {
61
70
  }
62
71
  return formatErrors(validate);
63
72
  }
73
+ async function validateDocOrNull(doc) {
74
+ const validate = await getValidator("document");
75
+ if (!validate) {
76
+ return null;
77
+ }
78
+ return validate(doc) ? [] : formatErrors(validate);
79
+ }
64
80
  async function validateProjectConfig(config) {
65
81
  const validate = await getValidator("project");
66
82
  if (!validate || validate(config)) {
@@ -69,7 +85,7 @@ async function validateProjectConfig(config) {
69
85
  return formatErrors(validate);
70
86
  }
71
87
 
72
- export { applyProjectSchemas, resetProjectSchemas, validateDoc, validateProjectConfig };
88
+ export { applyProjectSchemas, resetProjectSchemas, validateDoc, validateDocOrNull, validateProjectConfig };
73
89
 
74
- //# debugId=65EFF2410CACDD1964756E2164756E21
75
- //# sourceMappingURL=studio-6kv3apa9.js.map
90
+ //# debugId=8C68AEE13E72EFF064756E2164756E21
91
+ //# sourceMappingURL=studio-q9jd1a60.js.map