juxscript 1.1.404 → 1.1.409

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 (154) hide show
  1. package/dist/components/button.d.ts +1 -0
  2. package/dist/components/button.d.ts.map +1 -1
  3. package/dist/components/button.js +38 -0
  4. package/dist/components/button.js.map +1 -1
  5. package/dist/components/c.d.ts +53 -0
  6. package/dist/components/c.d.ts.map +1 -0
  7. package/dist/components/c.js +127 -0
  8. package/dist/components/c.js.map +1 -0
  9. package/dist/components/charts/barChart.d.ts +119 -0
  10. package/dist/components/charts/barChart.d.ts.map +1 -0
  11. package/dist/components/charts/barChart.js +644 -0
  12. package/dist/components/charts/barChart.js.map +1 -0
  13. package/dist/components/charts/lineChart.d.ts +104 -0
  14. package/dist/components/charts/lineChart.d.ts.map +1 -0
  15. package/dist/components/charts/lineChart.js +466 -0
  16. package/dist/components/charts/lineChart.js.map +1 -0
  17. package/dist/components/charts/pieChart.d.ts +93 -0
  18. package/dist/components/charts/pieChart.d.ts.map +1 -0
  19. package/dist/components/charts/pieChart.js +397 -0
  20. package/dist/components/charts/pieChart.js.map +1 -0
  21. package/dist/components/checkbox.d.ts +2 -0
  22. package/dist/components/checkbox.d.ts.map +1 -1
  23. package/dist/components/checkbox.js +47 -0
  24. package/dist/components/checkbox.js.map +1 -1
  25. package/dist/components/flex.d.ts +91 -0
  26. package/dist/components/flex.d.ts.map +1 -0
  27. package/dist/components/flex.js +166 -0
  28. package/dist/components/flex.js.map +1 -0
  29. package/dist/components/g.d.ts +21 -0
  30. package/dist/components/g.d.ts.map +1 -0
  31. package/dist/components/g.js +52 -0
  32. package/dist/components/g.js.map +1 -0
  33. package/dist/components/input.d.ts +2 -0
  34. package/dist/components/input.d.ts.map +1 -1
  35. package/dist/components/input.js +21 -2
  36. package/dist/components/input.js.map +1 -1
  37. package/dist/components/jtable.d.ts +47 -0
  38. package/dist/components/jtable.d.ts.map +1 -0
  39. package/dist/components/jtable.js +307 -0
  40. package/dist/components/jtable.js.map +1 -0
  41. package/dist/components/link.d.ts +1 -0
  42. package/dist/components/link.d.ts.map +1 -1
  43. package/dist/components/link.js +17 -0
  44. package/dist/components/link.js.map +1 -1
  45. package/dist/components/list.d.ts +1 -0
  46. package/dist/components/list.d.ts.map +1 -1
  47. package/dist/components/list.js +18 -0
  48. package/dist/components/list.js.map +1 -1
  49. package/dist/components/menu.d.ts +108 -0
  50. package/dist/components/menu.d.ts.map +1 -0
  51. package/dist/components/menu.js +665 -0
  52. package/dist/components/menu.js.map +1 -0
  53. package/dist/components/nav.d.ts +1 -0
  54. package/dist/components/nav.d.ts.map +1 -1
  55. package/dist/components/nav.js +19 -0
  56. package/dist/components/nav.js.map +1 -1
  57. package/dist/components/radio.d.ts +1 -0
  58. package/dist/components/radio.d.ts.map +1 -1
  59. package/dist/components/radio.js +23 -0
  60. package/dist/components/radio.js.map +1 -1
  61. package/dist/components/routes.d.ts +17 -0
  62. package/dist/components/routes.d.ts.map +1 -1
  63. package/dist/components/routes.js +86 -0
  64. package/dist/components/routes.js.map +1 -1
  65. package/dist/components/select.d.ts +1 -0
  66. package/dist/components/select.d.ts.map +1 -1
  67. package/dist/components/select.js +17 -0
  68. package/dist/components/select.js.map +1 -1
  69. package/dist/components/table.d.ts +1 -0
  70. package/dist/components/table.d.ts.map +1 -1
  71. package/dist/components/table.js +20 -0
  72. package/dist/components/table.js.map +1 -1
  73. package/dist/components/tabs.d.ts +17 -1
  74. package/dist/components/tabs.d.ts.map +1 -1
  75. package/dist/components/tabs.js +50 -8
  76. package/dist/components/tabs.js.map +1 -1
  77. package/dist/components/tag.d.ts +1 -0
  78. package/dist/components/tag.d.ts.map +1 -1
  79. package/dist/components/tag.js +16 -0
  80. package/dist/components/tag.js.map +1 -1
  81. package/dist/components/widgets/calendar.d.ts +74 -0
  82. package/dist/components/widgets/calendar.d.ts.map +1 -0
  83. package/dist/components/widgets/calendar.js +308 -0
  84. package/dist/components/widgets/calendar.js.map +1 -0
  85. package/dist/components/widgets/canvas-ai.d.ts +12 -0
  86. package/dist/components/widgets/canvas-ai.d.ts.map +1 -0
  87. package/dist/components/widgets/canvas-ai.js +97 -0
  88. package/dist/components/widgets/canvas-ai.js.map +1 -0
  89. package/dist/components/widgets/canvas-compile.d.ts +36 -0
  90. package/dist/components/widgets/canvas-compile.d.ts.map +1 -0
  91. package/dist/components/widgets/canvas-compile.js +379 -0
  92. package/dist/components/widgets/canvas-compile.js.map +1 -0
  93. package/dist/components/widgets/canvas-persist.d.ts +11 -0
  94. package/dist/components/widgets/canvas-persist.d.ts.map +1 -0
  95. package/dist/components/widgets/canvas-persist.js +60 -0
  96. package/dist/components/widgets/canvas-persist.js.map +1 -0
  97. package/dist/components/widgets/canvas-registry.d.ts +42 -0
  98. package/dist/components/widgets/canvas-registry.d.ts.map +1 -0
  99. package/dist/components/widgets/canvas-registry.js +338 -0
  100. package/dist/components/widgets/canvas-registry.js.map +1 -0
  101. package/dist/components/widgets/canvas-styles.d.ts +2 -0
  102. package/dist/components/widgets/canvas-styles.d.ts.map +1 -0
  103. package/dist/components/widgets/canvas-styles.js +215 -0
  104. package/dist/components/widgets/canvas-styles.js.map +1 -0
  105. package/dist/components/widgets/canvas.d.ts +125 -0
  106. package/dist/components/widgets/canvas.d.ts.map +1 -0
  107. package/dist/components/widgets/canvas.js +1359 -0
  108. package/dist/components/widgets/canvas.js.map +1 -0
  109. package/dist/components/widgets/sidebar.d.ts +100 -0
  110. package/dist/components/widgets/sidebar.d.ts.map +1 -0
  111. package/dist/components/widgets/sidebar.js +434 -0
  112. package/dist/components/widgets/sidebar.js.map +1 -0
  113. package/dist/components/widgets/stepper.d.ts +87 -0
  114. package/dist/components/widgets/stepper.d.ts.map +1 -0
  115. package/dist/components/widgets/stepper.js +388 -0
  116. package/dist/components/widgets/stepper.js.map +1 -0
  117. package/dist/generated/jux-registry.d.ts +24 -0
  118. package/dist/generated/jux-registry.d.ts.map +1 -0
  119. package/dist/generated/jux-registry.js +90 -0
  120. package/dist/generated/jux-registry.js.map +1 -0
  121. package/dist/index.d.ts +39 -23
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +38 -24
  124. package/dist/index.js.map +1 -1
  125. package/dist/state/pageState.d.ts +6 -0
  126. package/dist/state/pageState.d.ts.map +1 -1
  127. package/dist/state/pageState.js +24 -16
  128. package/dist/state/pageState.js.map +1 -1
  129. package/dist/styles/layout-regions-observer.d.ts +7 -0
  130. package/dist/styles/layout-regions-observer.d.ts.map +1 -0
  131. package/dist/styles/layout-regions-observer.js +52 -0
  132. package/dist/styles/layout-regions-observer.js.map +1 -0
  133. package/dist/utils/colors.d.ts +0 -3
  134. package/dist/utils/colors.d.ts.map +1 -1
  135. package/dist/utils/colors.js +20 -6
  136. package/dist/utils/colors.js.map +1 -1
  137. package/dist/utils/resolveContent.d.ts +11 -0
  138. package/dist/utils/resolveContent.d.ts.map +1 -0
  139. package/dist/utils/resolveContent.js +37 -0
  140. package/dist/utils/resolveContent.js.map +1 -0
  141. package/dist/utils/theme.d.ts +58 -0
  142. package/dist/utils/theme.d.ts.map +1 -0
  143. package/dist/utils/theme.js +172 -0
  144. package/dist/utils/theme.js.map +1 -0
  145. package/dist/widgets/canvas.d.ts +3 -69
  146. package/dist/widgets/canvas.d.ts.map +1 -1
  147. package/dist/widgets/canvas.js +3 -791
  148. package/dist/widgets/canvas.js.map +1 -1
  149. package/juxconfig.example.js +19 -0
  150. package/machinery/compiler4.js +103 -9
  151. package/machinery/errors-client.js +171 -67
  152. package/machinery/jux-errors.js +218 -0
  153. package/machinery/serve.js +67 -0
  154. package/package.json +1 -1
@@ -0,0 +1,379 @@
1
+ import { pageState } from '../../state/pageState.js';
2
+ import { COMPONENT_REGISTRY, PASSTHROUGH_COMPONENTS, UTILITY_REGISTRY, LAYOUT_REGISTRY } from './canvas-registry.js';
3
+ export function splitIntoStatements(lines) {
4
+ const statements = [];
5
+ let current = '';
6
+ let startLine = 1;
7
+ let depth = 0;
8
+ for (let i = 0; i < lines.length; i++) {
9
+ const line = lines[i];
10
+ const trimmed = line.trim();
11
+ if (!current && (!trimmed || trimmed.startsWith('//')))
12
+ continue;
13
+ if (!current)
14
+ startLine = i + 1;
15
+ current += (current ? '\n' : '') + line;
16
+ for (const ch of trimmed) {
17
+ if (ch === '(' || ch === '{' || ch === '[')
18
+ depth++;
19
+ else if (ch === ')' || ch === '}' || ch === ']')
20
+ depth--;
21
+ }
22
+ if (depth <= 0) {
23
+ statements.push({ code: current, startLine });
24
+ current = '';
25
+ depth = 0;
26
+ }
27
+ }
28
+ if (current.trim())
29
+ statements.push({ code: current, startLine });
30
+ return statements;
31
+ }
32
+ export function runtimeAutowrap(codeStr) {
33
+ const lines = codeStr.split('\n');
34
+ const result = [];
35
+ let i = 0;
36
+ while (i < lines.length) {
37
+ const line = lines[i];
38
+ const trimmed = line.trim();
39
+ if (!trimmed || trimmed.startsWith('//') || trimmed.startsWith('import ')) {
40
+ result.push(line);
41
+ i++;
42
+ continue;
43
+ }
44
+ if (/^\s*if\s*\(\s*pageState\s*\[/.test(line)) {
45
+ const blockLines = [];
46
+ let depth = 0, started = false, j = i;
47
+ while (j < lines.length) {
48
+ const l = lines[j];
49
+ blockLines.push(l);
50
+ for (const ch of l) {
51
+ if (ch === '{') {
52
+ depth++;
53
+ started = true;
54
+ }
55
+ else if (ch === '}')
56
+ depth--;
57
+ }
58
+ j++;
59
+ if (started && depth <= 0)
60
+ break;
61
+ }
62
+ const indent = line.match(/^(\s*)/)?.[1] || '';
63
+ result.push(`${indent}pageState.__watch(() => {`);
64
+ for (const bl of blockLines)
65
+ result.push(`${indent} ${bl.trim()}`);
66
+ result.push(`${indent}});`);
67
+ i = j;
68
+ continue;
69
+ }
70
+ if (/^\s*pageState\s*\[/.test(line) && /=/.test(line) && !line.includes('==')) {
71
+ const indent = line.match(/^(\s*)/)?.[1] || '';
72
+ result.push(`${indent}pageState.__watch(() => {`);
73
+ result.push(`${indent} ${trimmed}`);
74
+ result.push(`${indent}});`);
75
+ i++;
76
+ continue;
77
+ }
78
+ result.push(line);
79
+ i++;
80
+ }
81
+ return result.join('\n');
82
+ }
83
+ /**
84
+ * Convert duplicate const/let declarations in the same scope to plain assignments.
85
+ * Tracks brace depth so block scopes are handled correctly.
86
+ */
87
+ export function deduplicateDeclarations(codeStr) {
88
+ const lines = codeStr.split('\n');
89
+ const scopeStack = [new Set()];
90
+ return lines.map(line => {
91
+ const trimmed = line.trim();
92
+ // Track brace depth for scope
93
+ for (const ch of trimmed) {
94
+ if (ch === '{')
95
+ scopeStack.push(new Set());
96
+ else if (ch === '}' && scopeStack.length > 1)
97
+ scopeStack.pop();
98
+ }
99
+ // Match: const varName = ... or let varName = ...
100
+ const m = trimmed.match(/^(const|let)\s+(\w+)\s*=/);
101
+ if (m) {
102
+ const varName = m[2];
103
+ // Check all active scopes for duplicates
104
+ const isDuplicate = scopeStack.some(scope => scope.has(varName));
105
+ if (isDuplicate) {
106
+ // Replace "const x =" or "let x =" with just "x ="
107
+ return line.replace(/^(\s*)(const|let)\s+/, '$1');
108
+ }
109
+ // Add to current (innermost) scope
110
+ scopeStack[scopeStack.length - 1].add(varName);
111
+ }
112
+ return line;
113
+ }).join('\n');
114
+ }
115
+ export function compileAndRender(codeStr, previewEl, canvasNavigate, contentTarget, canvasTabs, regionTargets) {
116
+ const cleanedCode = codeStr.split('\n')
117
+ .map(line => line.trim().startsWith('import ') ? '// ' + line : line)
118
+ .join('\n');
119
+ const dedupedCode = deduplicateDeclarations(cleanedCode);
120
+ const wrappedCode = runtimeAutowrap(dedupedCode);
121
+ let componentCount = 0;
122
+ // Clear any existing watchers from previous canvas compiles
123
+ if (typeof pageState.__clearWatchers === 'function') {
124
+ pageState.__clearWatchers();
125
+ }
126
+ const sandboxNavigate = (path) => {
127
+ if (canvasNavigate) {
128
+ canvasNavigate(path);
129
+ }
130
+ else {
131
+ const toast = document.createElement('div');
132
+ toast.className = 'jcv-nav-toast';
133
+ toast.textContent = '\u2192 ' + path;
134
+ previewEl.appendChild(toast);
135
+ setTimeout(() => toast.remove(), 1500);
136
+ }
137
+ };
138
+ const realNavigateTo = window.navigateTo;
139
+ window.navigateTo = sandboxNavigate;
140
+ // Build a map from real region ids to canvas mirror elements
141
+ const regionMap = {};
142
+ if (regionTargets) {
143
+ regionMap['app-sidebar'] = regionTargets.sidebarTarget;
144
+ regionMap['app-sidebar-right'] = regionTargets.sidebarRightTarget;
145
+ regionMap['app-nav-header'] = regionTargets.headerTarget;
146
+ regionMap['app-nav-footer'] = regionTargets.footerTarget;
147
+ regionMap['app-toolbar'] = regionTargets.toolbarTarget;
148
+ regionMap['app-statusbar'] = regionTargets.statusbarTarget;
149
+ regionMap['app-toast'] = regionTargets.toastTarget;
150
+ regionMap['app-modal'] = regionTargets.modalTarget;
151
+ regionMap['app-drawer'] = regionTargets.drawerTarget;
152
+ }
153
+ const juxProxy = {};
154
+ for (const [name, entry] of Object.entries(COMPONENT_REGISTRY)) {
155
+ juxProxy[name] = (id, ...args) => {
156
+ componentCount++;
157
+ if (PASSTHROUGH_COMPONENTS.has(name)) {
158
+ try {
159
+ return entry.factory(id, ...args);
160
+ }
161
+ catch (_) {
162
+ return undefined;
163
+ }
164
+ }
165
+ // Determine the correct region target based on component type
166
+ let regionTarget;
167
+ if (name === 'sidebar') {
168
+ regionTarget = regionTargets?.sidebarTarget;
169
+ }
170
+ else if (name === 'menu') {
171
+ regionTarget = regionTargets?.sidebarTarget;
172
+ }
173
+ else if (name === 'nav') {
174
+ regionTarget = regionTargets?.headerTarget;
175
+ }
176
+ else {
177
+ regionTarget = contentTarget;
178
+ }
179
+ // Intercept target option values that reference real layout region ids
180
+ // and redirect them to canvas mirror elements
181
+ const rewriteTarget = (a) => {
182
+ if (typeof a === 'object' && a !== null && !Array.isArray(a) && typeof a.target === 'string') {
183
+ const mirrorEl = regionMap[a.target];
184
+ if (mirrorEl) {
185
+ return { ...a, target: mirrorEl.id };
186
+ }
187
+ }
188
+ return a;
189
+ };
190
+ args = args.map(rewriteTarget);
191
+ // For sidebar/menu/nav: ensure the target is set to the mirror region
192
+ // even if the user didn't specify a target at all
193
+ if (regionTarget && (name === 'sidebar' || name === 'menu' || name === 'nav')) {
194
+ // Find the last object arg (options) and inject target if missing
195
+ let hasTarget = args.some(a => typeof a === 'object' && a !== null && !Array.isArray(a) && a.target);
196
+ if (!hasTarget) {
197
+ // Find the last plain-object arg to merge target into
198
+ let injected = false;
199
+ for (let i = args.length - 1; i >= 0; i--) {
200
+ if (typeof args[i] === 'object' && args[i] !== null && !Array.isArray(args[i])) {
201
+ args[i] = { ...args[i], target: regionTarget.id };
202
+ injected = true;
203
+ break;
204
+ }
205
+ }
206
+ if (!injected) {
207
+ args.push({ target: regionTarget.id });
208
+ }
209
+ }
210
+ // For sidebar: also inject onNavigate for canvas routing
211
+ if (name === 'sidebar') {
212
+ for (let i = args.length - 1; i >= 0; i--) {
213
+ if (typeof args[i] === 'object' && args[i] !== null && !Array.isArray(args[i])) {
214
+ if (!args[i].onNavigate) {
215
+ args[i] = { ...args[i], onNavigate: (p) => canvasNavigate?.(p) };
216
+ }
217
+ break;
218
+ }
219
+ }
220
+ }
221
+ try {
222
+ return entry.factory(id, ...args);
223
+ }
224
+ catch (err) {
225
+ console.error(`[canvas] ${name} render error:`, err);
226
+ return undefined;
227
+ }
228
+ }
229
+ // For all other components: inject target into contentTarget
230
+ const target = regionTarget || contentTarget;
231
+ if (!target)
232
+ return undefined;
233
+ if (args.length === 0) {
234
+ args.push({ target: target.id });
235
+ }
236
+ else if (args.length === 1 && typeof args[0] === 'object' && !Array.isArray(args[0]) && args[0] !== null) {
237
+ args[0] = { ...args[0], target: target.id };
238
+ }
239
+ else {
240
+ const last = args[args.length - 1];
241
+ if (typeof last === 'object' && last !== null && !Array.isArray(last)) {
242
+ args[args.length - 1] = { ...last, target: target.id };
243
+ }
244
+ else {
245
+ args.push({ target: target.id });
246
+ }
247
+ }
248
+ try {
249
+ return entry.factory(id, ...args);
250
+ }
251
+ catch (err) {
252
+ const el = document.createElement('div');
253
+ el.className = 'jcv-stub jcv-stub--error';
254
+ el.setAttribute('data-id', id);
255
+ const nice = id.replace(/[-_]/g, ' ').replace(/\b\w/g, ch => ch.toUpperCase());
256
+ el.innerHTML = `<span class="jcv-stub-type">${name}</span><span class="jcv-stub-id">${id}</span><span class="jcv-stub-content">${nice}</span>`;
257
+ contentTarget?.appendChild(el);
258
+ const fluent = {
259
+ id, _element: el,
260
+ getElement: () => el, getValue: () => '', setValue: () => fluent,
261
+ render: () => fluent, into: () => fluent,
262
+ get state() { return pageState[id]; },
263
+ };
264
+ if (pageState.__register)
265
+ pageState.__register(fluent);
266
+ return new Proxy(fluent, {
267
+ get(t, prop) {
268
+ if (prop in t)
269
+ return t[prop];
270
+ if (typeof prop === 'string' && prop !== 'then' && prop !== 'toJSON')
271
+ return () => t;
272
+ return undefined;
273
+ }
274
+ });
275
+ }
276
+ };
277
+ }
278
+ for (const [name, entry] of Object.entries(UTILITY_REGISTRY)) {
279
+ juxProxy[name] = entry.value;
280
+ }
281
+ // Override routes on the jux proxy so canvas tabs are available synchronously
282
+ if (canvasTabs) {
283
+ const canvasRouteInfos = canvasTabs
284
+ .filter(t => !t.isLayout && t.route)
285
+ .map(t => {
286
+ const slug = t.route.replace(/^\//, '') || 'home';
287
+ const name = slug.charAt(0).toUpperCase() + slug.slice(1).replace(/[-_]/g, ' ');
288
+ return { path: t.route, name, file: t.label };
289
+ });
290
+ juxProxy['routes'] = {
291
+ ...juxProxy['routes'],
292
+ all: () => canvasRouteInfos,
293
+ paths: () => canvasRouteInfos.map((r) => r.path),
294
+ canvasAll: async () => canvasRouteInfos,
295
+ canvasPaths: async () => canvasRouteInfos.map((r) => r.path),
296
+ };
297
+ }
298
+ // Expose layout factories on jux proxy with the SAME target-injection as COMPONENT_REGISTRY
299
+ for (const [name, entry] of Object.entries(LAYOUT_REGISTRY)) {
300
+ if (!juxProxy[name]) {
301
+ juxProxy[name] = (...args) => {
302
+ componentCount++;
303
+ // Inject target into the last options arg (same logic as components)
304
+ if (contentTarget) {
305
+ if (args.length === 0) {
306
+ // no args — can't inject options for positional factories like c(w,h,pad)
307
+ }
308
+ else {
309
+ const last = args[args.length - 1];
310
+ if (typeof last === 'object' && last !== null && !Array.isArray(last)) {
311
+ args[args.length - 1] = { ...last, target: contentTarget.id };
312
+ }
313
+ }
314
+ }
315
+ try {
316
+ const result = entry.factory(...args);
317
+ // If target wasn't injected via options, render manually
318
+ if (result && contentTarget && typeof result.render === 'function') {
319
+ // Only auto-render if the element isn't already in the preview
320
+ const el = result.element || result.getElement?.();
321
+ if (!el || !contentTarget.contains(el)) {
322
+ try {
323
+ result.render(contentTarget);
324
+ }
325
+ catch (_) { }
326
+ }
327
+ }
328
+ return result;
329
+ }
330
+ catch (err) {
331
+ return undefined;
332
+ }
333
+ };
334
+ }
335
+ }
336
+ const fnArgNames = ['jux', 'pageState', ...Object.keys(LAYOUT_REGISTRY), 'console'];
337
+ const fnArgVals = [juxProxy, pageState, ...Object.keys(LAYOUT_REGISTRY).map(name => juxProxy[name]), console];
338
+ let result;
339
+ try {
340
+ const asyncWrapped = `return (async () => {\n${wrappedCode}\n})();`;
341
+ const promise = new Function(...fnArgNames, asyncWrapped)(...fnArgVals);
342
+ if (promise && typeof promise.then === 'function') {
343
+ promise.catch((err) => {
344
+ // Log to console but mark as canvas error so jux-errors.js can skip it
345
+ console.error('[canvas] async compile error:', err);
346
+ });
347
+ }
348
+ result = { success: true, componentCount };
349
+ }
350
+ catch (_) {
351
+ result = null;
352
+ }
353
+ if (!result) {
354
+ let failed = false;
355
+ for (const stmt of splitIntoStatements(wrappedCode.split('\n'))) {
356
+ if (!stmt.code.trim() || stmt.code.trim().startsWith('//'))
357
+ continue;
358
+ try {
359
+ const asyncStmt = `return (async () => {\n${stmt.code}\n})();`;
360
+ const p = new Function(...fnArgNames, asyncStmt)(...fnArgVals);
361
+ if (p && typeof p.catch === 'function') {
362
+ p.catch(() => { });
363
+ }
364
+ }
365
+ catch (err) {
366
+ console.error('[canvas] compile error in statement:', stmt.code.substring(0, 120), err);
367
+ result = { success: false, componentCount, error: err.message || String(err) };
368
+ failed = true;
369
+ break;
370
+ }
371
+ }
372
+ if (!failed)
373
+ result = { success: true, componentCount };
374
+ }
375
+ previewEl.__realNavigateTo = realNavigateTo;
376
+ previewEl.__sandboxNavigate = sandboxNavigate;
377
+ return result;
378
+ }
379
+ //# sourceMappingURL=canvas-compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-compile.js","sourceRoot":"","sources":["../../../lib/components/widgets/canvas-compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface EditorTab {
2
+ id: string;
3
+ label: string;
4
+ code: string;
5
+ isLayout: boolean;
6
+ route: string;
7
+ }
8
+ export declare function saveTabs(appName: string, tabs: EditorTab[]): Promise<void>;
9
+ export declare function loadTabs(appName: string): Promise<EditorTab[] | null>;
10
+ export declare const DEFAULT_TABS: EditorTab[];
11
+ //# sourceMappingURL=canvas-persist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-persist.d.ts","sourceRoot":"","sources":["../../../lib/components/widgets/canvas-persist.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAkBD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAU3E;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,EAiBnC,CAAC"}
@@ -0,0 +1,60 @@
1
+ const DB_NAME = 'jux-canvas';
2
+ const DB_VERSION = 1;
3
+ const STORE_NAME = 'tabs';
4
+ function openDB() {
5
+ return new Promise((resolve, reject) => {
6
+ const req = indexedDB.open(DB_NAME, DB_VERSION);
7
+ req.onupgradeneeded = (e) => {
8
+ const db = e.target.result;
9
+ if (!db.objectStoreNames.contains(STORE_NAME))
10
+ db.createObjectStore(STORE_NAME);
11
+ };
12
+ req.onsuccess = (e) => resolve(e.target.result);
13
+ req.onerror = (e) => reject(e.target.error);
14
+ });
15
+ }
16
+ export async function saveTabs(appName, tabs) {
17
+ try {
18
+ const db = await openDB();
19
+ return new Promise((resolve, reject) => {
20
+ const store = db.transaction(STORE_NAME, 'readwrite').objectStore(STORE_NAME);
21
+ const req = store.put(tabs, appName);
22
+ req.onsuccess = () => resolve();
23
+ req.onerror = (e) => reject(e.target.error);
24
+ });
25
+ }
26
+ catch (_) { /* silently fail */ }
27
+ }
28
+ export async function loadTabs(appName) {
29
+ try {
30
+ const db = await openDB();
31
+ return new Promise((resolve, reject) => {
32
+ const store = db.transaction(STORE_NAME, 'readonly').objectStore(STORE_NAME);
33
+ const req = store.get(appName);
34
+ req.onsuccess = (e) => resolve(e.target.result ?? null);
35
+ req.onerror = (e) => reject(e.target.error);
36
+ });
37
+ }
38
+ catch (_) {
39
+ return null;
40
+ }
41
+ }
42
+ export const DEFAULT_TABS = [
43
+ {
44
+ id: 'layout', label: 'layout', isLayout: true, route: '',
45
+ code: "// Layout \u2014 runs on every page\njux.include('/shadcn.css');\n\nconst mySidebar = jux.sidebar('my-sidebar',\n [{ label: 'Home', href: '/' },\n { label: 'About', href: '/about' },\n { label: 'Settings', href: '/settings' }],\n { title: 'My App', logo: 'M' }\n);\n",
46
+ },
47
+ {
48
+ id: 'home', label: 'home.jux', isLayout: false, route: '/',
49
+ code: "// Home page (route: /)\nconst heading = jux.h1('home-title', { content: 'Welcome Home' });\nconst desc = jux.p('home-desc', { content: 'This is the home page.' });\n\nconst nameInput = jux.input('user-name', { label: 'Your Name', placeholder: 'Enter your name...' });\nconst greetBtn = jux.btn('greet-btn', { content: 'Say Hello' });\n\nif (pageState['greet-btn'].click) {\n pageState['home-desc'].content = 'Hello, ' + pageState['user-name'].value + '!';\n}\n",
50
+ },
51
+ {
52
+ id: 'about', label: 'about.jux', isLayout: false, route: '/about',
53
+ code: "// About page (route: /about)\nconst heading = jux.h1('about-title', { content: 'About' });\nconst text = jux.p('about-text', { content: 'This is a simple multi-page app built in the JUX Canvas.' });\n",
54
+ },
55
+ {
56
+ id: 'settings', label: 'settings.jux', isLayout: false, route: '/settings',
57
+ code: "// Settings page (route: /settings)\nconst heading = jux.h1('settings-title', { content: 'Settings' });\nconst theme = jux.select('theme-select', {\n label: 'Theme',\n options: [{ label: 'Light', value: 'light' }, { label: 'Dark', value: 'dark' }]\n});\n",
58
+ },
59
+ ];
60
+ //# sourceMappingURL=canvas-persist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-persist.js","sourceRoot":"","sources":["../../../lib/components/widgets/canvas-persist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface RegistryEntry {
2
+ factory: Function;
3
+ detail: string;
4
+ insertText: string;
5
+ methods: string[];
6
+ }
7
+ export declare const COMPONENT_REGISTRY: Record<string, RegistryEntry>;
8
+ export declare const PASSTHROUGH_COMPONENTS: Set<string>;
9
+ export declare const UTILITY_REGISTRY: Record<string, {
10
+ value: any;
11
+ detail: string;
12
+ insertText: string;
13
+ methods: string[];
14
+ }>;
15
+ export declare const LAYOUT_REGISTRY: Record<string, {
16
+ factory: Function;
17
+ detail: string;
18
+ insertText: string;
19
+ }>;
20
+ export interface CompletionItem {
21
+ label: string;
22
+ detail: string;
23
+ insertText: string;
24
+ kind: 'function' | 'property' | 'variable' | 'keyword' | 'method';
25
+ }
26
+ export declare const METHOD_SIGNATURES: Record<string, string>;
27
+ export declare const COMMON_METHODS: CompletionItem[];
28
+ export declare const JUX_COMPLETIONS: CompletionItem[];
29
+ export declare const LAYOUT_COMPLETIONS: CompletionItem[];
30
+ export declare const STATE_PROPS: CompletionItem[];
31
+ export declare const KEYWORD_COMPLETIONS: CompletionItem[];
32
+ export declare const LAYOUT_METHODS: Record<string, string[]>;
33
+ export interface SnippetCategory {
34
+ label: string;
35
+ items: {
36
+ name: string;
37
+ detail: string;
38
+ snippet: string;
39
+ }[];
40
+ }
41
+ export declare const SNIPPET_CATEGORIES: SnippetCategory[];
42
+ //# sourceMappingURL=canvas-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-registry.d.ts","sourceRoot":"","sources":["../../../lib/components/widgets/canvas-registry.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAiD5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAuB,CAAC;AAE3D,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6GlH,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQrG,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CACrE;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2BpD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,EAC2E,CAAC;AAEvH,eAAO,MAAM,eAAe,EAAE,cAAc,EAW3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAE5C,CAAC;AAEJ,eAAO,MAAM,WAAW,EAAE,cAAc,EAWvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQnD,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA0D/C,CAAC"}