juxscript 1.1.403 → 1.1.408

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 +37 -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 +41 -23
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +39 -23
  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 -94
  146. package/dist/widgets/canvas.d.ts.map +1 -1
  147. package/dist/widgets/canvas.js +3 -1007
  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,215 @@
1
+ let injected = false;
2
+ export function injectCanvasStyles() {
3
+ if (injected)
4
+ return;
5
+ injected = true;
6
+ const s = document.createElement('style');
7
+ s.id = 'jux-canvas-styles';
8
+ const rules = [
9
+ ':root{',
10
+ ' --jcv-bg:#ffffff;--jcv-fg:#1f1f1f;--jcv-card:#ffffff;',
11
+ ' --jcv-muted:#f0f4f9;--jcv-muted-fg:#5f6368;--jcv-border:#dadce0;',
12
+ ' --jcv-primary:#ffffff;--jcv-primary-fg:#1f1f1f;--jcv-accent:#e8f0fe;',
13
+ ' --jcv-ring:#1a73e8;--jcv-destructive:#ea4335;',
14
+ ' --jcv-radius:0px;--jcv-radius-sm:0px;--jcv-radius-xs:0px;',
15
+ ' --jcv-editor-bg:#f8f9fa;--jcv-editor-fg:#1f1f1f;--jcv-editor-line:#e8eaed;',
16
+ ' --jcv-editor-gutter:#80868b;--jcv-editor-cursor:#1a73e8;',
17
+ '}',
18
+ '.jcv-ide{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:15px;display:flex;flex-direction:column;background:var(--jcv-bg);color:var(--jcv-fg);overflow:hidden;margin:0;padding:0;box-sizing:border-box;width:100%;height:100%}',
19
+ '#app-nav-header .jcv-toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--jcv-primary);color:var(--jcv-primary-fg);min-height:44px;width:100%;height:100%;box-sizing:border-box;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:15px}',
20
+ '.jcv-toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--jcv-primary);color:var(--jcv-primary-fg);border-bottom:1px solid var(--jcv-border);min-height:44px}',
21
+ '.jcv-toolbar-title{font-weight:700;font-size:14px;letter-spacing:-.01em}',
22
+ '.jcv-toolbar-btn{border:1px solid var(--jcv-border);background:transparent;color:var(--jcv-primary-fg);padding:6px 16px;font-size:12px;font-weight:500;border-radius:var(--jcv-radius-xs);cursor:pointer;font-family:inherit;transition:background .12s}',
23
+ '.jcv-toolbar-btn:hover{background:var(--jcv-muted)}',
24
+ '.jcv-toolbar-status{font-size:12px;font-weight:600;padding:0 8px}',
25
+ '.jcv-toolbar-status--ok{color:#1e8e3e}',
26
+ '.jcv-toolbar-status--err{color:#ea4335}',
27
+ // ── Layout toggle buttons ──
28
+ '.jcv-layout-group{display:flex;gap:2px;margin-left:12px;padding:2px;background:var(--jcv-muted);border-radius:6px;border:1px solid var(--jcv-border)}',
29
+ '.jcv-layout-btn{border:none;background:transparent;color:var(--jcv-muted-fg);padding:4px 8px;font-size:13px;line-height:1;cursor:pointer;border-radius:4px;transition:background .12s,color .12s;font-family:inherit;letter-spacing:1px}',
30
+ '.jcv-layout-btn:hover{background:rgba(26,115,232,.08);color:var(--jcv-fg)}',
31
+ '.jcv-layout-btn--active{background:#ffffff;color:#1a73e8;box-shadow:0 1px 3px rgba(0,0,0,.1)}',
32
+ '.jcv-li{display:inline-flex;gap:2px;align-items:center}',
33
+ '.jcv-li--v{flex-direction:column;gap:1px}',
34
+ '.jcv-li-c,.jcv-li-p{font-size:9px;line-height:1;padding:2px 4px;border-radius:2px;font-weight:600;font-family:ui-monospace,monospace;display:flex;align-items:center;justify-content:center}',
35
+ '.jcv-li-c{background:rgba(26,115,232,.12);color:#1a73e8}',
36
+ '.jcv-li-p{background:rgba(30,142,62,.12);color:#1e8e3e}',
37
+ // ── Sidebar collapse toggle ──
38
+ '.jcv-sidebar-toggle{font-size:16px;padding:4px 10px;margin-left:4px}',
39
+ // ── 3-column body: page sidebar | code editor | preview ──
40
+ '.jcv-body{flex:1;display:flex;overflow:hidden;margin:0;padding:0}',
41
+ // ── Left page sidebar ──
42
+ '.jcv-page-sidebar{display:flex;flex-direction:column;width:100%;height:100%;background:hsl(var(--card,0 0% 100%));overflow:hidden;flex-shrink:0;font-family:var(--font-sans,"Google Sans","Inter",system-ui,sans-serif)}',
43
+ '.jcv-page-sidebar-header{padding:14px 16px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--muted-foreground,220 9% 46%));border-bottom:1px solid hsl(var(--border,220 13% 91%));user-select:none;flex-shrink:0}',
44
+ '.jcv-page-sidebar-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:6px 0;scrollbar-width:thin;scrollbar-color:hsl(var(--border,220 13% 91%)) transparent}',
45
+ '.jcv-page-sidebar-list::-webkit-scrollbar{width:4px}',
46
+ '.jcv-page-sidebar-list::-webkit-scrollbar-track{background:transparent}',
47
+ '.jcv-page-sidebar-list::-webkit-scrollbar-thumb{background:hsl(var(--border,220 13% 91%));border-radius:4px}',
48
+ '.jcv-page-item{display:flex;align-items:center;gap:8px;padding:8px 16px;margin:1px 6px;border-radius:var(--radius,12px);font-size:13px;font-family:var(--font-sans,"Google Sans","Inter",system-ui,sans-serif);color:hsl(var(--foreground,220 13% 18%));cursor:pointer;border:none;background:transparent;outline:none;-webkit-appearance:none;appearance:none;transition:background .12s,color .12s;user-select:none;white-space:nowrap;text-align:left;width:calc(100% - 12px);box-sizing:border-box;min-height:36px;position:relative;font-weight:500}',
49
+ '.jcv-page-item:hover{background:hsl(var(--accent,217 91% 97%));color:hsl(var(--accent-foreground,217 89% 41%))}',
50
+ '.jcv-page-item:focus-visible{box-shadow:0 0 0 2px hsl(var(--ring,217 89% 61%)) inset}',
51
+ '.jcv-page-item--active{background:hsl(var(--accent,217 91% 97%));color:hsl(var(--accent-foreground,217 89% 41%));font-weight:600}',
52
+ ".jcv-page-item--active::before{content:'';position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:3px;height:60%;background:hsl(var(--primary,217 89% 51%));border-radius:0 2px 2px 0}",
53
+ '.jcv-page-item--layout{font-style:italic}',
54
+ '.jcv-page-item--routed{color:hsl(142 60% 35%)}',
55
+ '.jcv-page-item-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center;opacity:.7}',
56
+ '.jcv-page-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;pointer-events:none}',
57
+ '.jcv-page-item-close{font-size:12px;line-height:1;opacity:0;cursor:pointer;padding:2px 4px;border-radius:var(--radius,12px);pointer-events:all;flex-shrink:0;transition:opacity .12s}',
58
+ '.jcv-page-item:hover .jcv-page-item-close{opacity:.5}',
59
+ '.jcv-page-item-close:hover{opacity:1!important;background:hsl(0 72% 95%);color:hsl(0 72% 51%)}',
60
+ '.jcv-page-sidebar-add{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:2px 6px;border-radius:var(--radius,12px);font-size:13px;font-family:var(--font-sans,"Google Sans","Inter",system-ui,sans-serif);color:hsl(var(--muted-foreground,220 9% 46%));cursor:pointer;border:none;background:transparent;outline:none;-webkit-appearance:none;appearance:none;transition:background .12s,color .12s;user-select:none;text-align:left;width:calc(100% - 12px);box-sizing:border-box;border-top:1px solid hsl(var(--border,220 13% 91%));font-weight:500}',
61
+ '.jcv-page-sidebar-add:hover{color:hsl(142 60% 35%);background:hsl(142 60% 97%)}',
62
+ '.jcv-page-sidebar-add-icon{font-size:15px}',
63
+ '.jcv-split{flex:1;display:flex;overflow:hidden;margin:0;padding:0}',
64
+ '.jcv-code-panel{display:flex;flex-direction:column;overflow:hidden;min-width:200px;margin:0;padding:0}',
65
+ '.jcv-preview-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:200px;background:var(--jcv-bg);margin:0;padding:0}',
66
+ '.jcv-splitter{width:4px;background:var(--jcv-border);cursor:col-resize;flex-shrink:0;transition:background .12s}',
67
+ '.jcv-splitter:hover{background:var(--jcv-ring)}',
68
+ '.jcv-split--vertical{flex-direction:column}',
69
+ '.jcv-split--vertical .jcv-code-panel{min-width:0;min-height:100px;width:100%!important}',
70
+ '.jcv-split--vertical .jcv-preview-panel{min-width:0;min-height:100px}',
71
+ '.jcv-splitter--horizontal{width:auto;height:4px;cursor:row-resize}',
72
+ '.jcv-tab-bar{display:flex;align-items:stretch;background:#f0f4f9;border-bottom:1px solid var(--jcv-border);overflow-x:auto;flex-shrink:0;min-height:36px}',
73
+ '.jcv-tab{display:inline-flex;align-items:center;gap:4px;padding:6px 16px;font-size:12px;font-family:ui-monospace,monospace;color:var(--jcv-muted-fg);cursor:pointer;border:none;border-right:1px solid var(--jcv-border);white-space:nowrap;transition:background .12s,color .12s;user-select:none;background:transparent;outline:none;-webkit-appearance:none;appearance:none;line-height:1.4}',
74
+ '.jcv-tab:hover{background:rgba(26,115,232,.06);color:var(--jcv-fg)}',
75
+ '.jcv-tab:focus-visible{box-shadow:0 0 0 2px #1a73e8 inset}',
76
+ '.jcv-tab--active{background:#ffffff;color:#1a73e8;font-weight:600;border-bottom:2px solid #1a73e8;margin-bottom:-1px}',
77
+ '.jcv-tab--layout{font-style:italic}',
78
+ '.jcv-tab--routed{border-bottom:2px solid #1e8e3e;margin-bottom:-1px}',
79
+ '.jcv-tab--add{color:var(--jcv-muted-fg);font-size:15px;padding:6px 12px;border-right:none}',
80
+ '.jcv-tab--add:hover{color:#1e8e3e;background:rgba(30,142,62,.08)}',
81
+ '.jcv-tab-label{cursor:pointer;pointer-events:none}',
82
+ '.jcv-tab-close{font-size:13px;line-height:1;opacity:.4;cursor:pointer;padding:0 2px;border-radius:2px;pointer-events:all}',
83
+ '.jcv-tab-close:hover{opacity:1;background:rgba(234,67,53,.1);color:#ea4335}',
84
+ '.jcv-editor-wrap{flex:1;display:flex;overflow:hidden;background:var(--jcv-editor-bg);position:relative}',
85
+ '.jcv-line-nums{width:52px;padding:16px 0;text-align:right;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:22px;color:var(--jcv-editor-gutter);background:var(--jcv-editor-bg);overflow:hidden;user-select:none;flex-shrink:0;border-right:1px solid var(--jcv-editor-line)}',
86
+ '.jcv-line-nums div{padding:0 8px 0 0;position:relative}',
87
+ // ── Snippet insert "+" button on line gutter ──
88
+ '.jcv-line-nums div .jcv-line-add{position:absolute;left:2px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;border:1px solid var(--jcv-border);background:var(--jcv-bg);color:#1a73e8;font-size:14px;line-height:16px;text-align:center;cursor:pointer;opacity:0;transition:opacity .12s,background .12s;display:flex;align-items:center;justify-content:center;padding:0;font-family:ui-sans-serif,system-ui,sans-serif;z-index:3}',
89
+ '.jcv-line-nums div:hover .jcv-line-add{opacity:1}',
90
+ '.jcv-line-nums div .jcv-line-add:hover{background:#e8f0fe;border-color:#1a73e8}',
91
+ // ── Snippet insertion menu ──
92
+ '.jcv-snippet-menu{position:absolute;z-index:20;background:#ffffff;border:1px solid var(--jcv-border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);width:320px;max-height:360px;display:flex;flex-direction:column;overflow:hidden;animation:jcv-snippet-in .15s ease}',
93
+ '@keyframes jcv-snippet-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}',
94
+ '.jcv-snippet-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--jcv-border);font-size:12px;font-weight:600;color:var(--jcv-fg)}',
95
+ '.jcv-snippet-header-icon{color:#1a73e8;font-size:14px}',
96
+ '.jcv-snippet-search{flex:1;border:1px solid var(--jcv-border);border-radius:6px;padding:6px 10px;font-size:12px;font-family:ui-monospace,monospace;outline:none;background:var(--jcv-muted);color:var(--jcv-fg)}',
97
+ '.jcv-snippet-search:focus{border-color:#1a73e8}',
98
+ '.jcv-snippet-search::placeholder{color:var(--jcv-muted-fg)}',
99
+ '.jcv-snippet-list{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin;scrollbar-color:var(--jcv-border) transparent}',
100
+ '.jcv-snippet-list::-webkit-scrollbar{width:4px}',
101
+ '.jcv-snippet-list::-webkit-scrollbar-thumb{background:var(--jcv-border);border-radius:4px}',
102
+ '.jcv-snippet-cat{padding:6px 14px 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--jcv-muted-fg);user-select:none}',
103
+ '.jcv-snippet-item{display:flex;align-items:center;gap:8px;padding:6px 14px;cursor:pointer;font-size:13px;font-family:ui-monospace,monospace;color:var(--jcv-fg);transition:background .1s}',
104
+ '.jcv-snippet-item:hover{background:rgba(26,115,232,.08)}',
105
+ '.jcv-snippet-item-icon{width:16px;text-align:center;font-size:12px;color:#1a73e8;flex-shrink:0}',
106
+ '.jcv-snippet-item-label{font-weight:600;flex-shrink:0}',
107
+ '.jcv-snippet-item-detail{color:var(--jcv-muted-fg);font-size:11px;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}',
108
+ '.jcv-editor-container{flex:1;position:relative;overflow:hidden}',
109
+ '.jcv-highlight{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:16px;margin:0;border:none;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:22px;white-space:pre;word-wrap:normal;overflow:hidden;box-sizing:border-box;tab-size:2;-moz-tab-size:2;background:var(--jcv-editor-bg);pointer-events:none;z-index:1}',
110
+ '.jcv-editor{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;padding:16px;margin:0;border:none;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:22px;white-space:pre;word-wrap:normal;overflow:auto;box-sizing:border-box;tab-size:2;-moz-tab-size:2;color:transparent;caret-color:var(--jcv-editor-cursor);background:transparent;resize:none;outline:none;z-index:2}',
111
+ '.jcv-editor::selection{background:rgba(26,115,232,.2)}',
112
+ '.jcv-error-bar{position:absolute;bottom:0;left:0;right:0;padding:6px 14px;font-size:12px;font-family:ui-monospace,monospace;background:#fef2f2;color:#ea4335;border-top:1px solid #fecaca;z-index:5}',
113
+ '.jcv-autocomplete{position:absolute;z-index:10;background:#ffffff;border:1px solid var(--jcv-border);border-radius:var(--jcv-radius-xs);box-shadow:0 4px 12px rgba(0,0,0,.12);max-height:200px;overflow-y:auto;min-width:280px}',
114
+ '.jcv-ac-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;font-family:ui-monospace,monospace;color:var(--jcv-fg)}',
115
+ '.jcv-ac-item:hover,.jcv-ac-item--active{background:rgba(26,115,232,.08)}',
116
+ '.jcv-ac-icon{width:16px;text-align:center;font-size:12px;color:#1a73e8;flex-shrink:0}',
117
+ '.jcv-ac-label{font-weight:600;flex-shrink:0}',
118
+ '.jcv-ac-detail{color:var(--jcv-muted-fg);font-size:12px;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}',
119
+ '.jcv-preview-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--jcv-muted-fg);border-bottom:1px solid var(--jcv-border);background:var(--jcv-card)}',
120
+ '.jcv-route-indicator{font-family:ui-monospace,monospace;font-size:12px;color:#1a73e8;font-weight:500;text-transform:none;letter-spacing:0;background:rgba(26,115,232,.08);padding:2px 10px;border-radius:4px}',
121
+ '.jcv-preview-area{flex:1;overflow:hidden;padding:0;margin:0;display:flex;flex-direction:column;position:relative;min-height:0}',
122
+ // ── Canvas-local layout regions — mirrors #app-* from index.html ──
123
+ // These use the SAME ids as the real regions but prefixed, so components
124
+ // that target e.g. "app-sidebar" get redirected to the canvas copy.
125
+ // Outer wrapper is column flex: header, body-row, footer, statusbar.
126
+ '.jcv-region-nav-header{flex-shrink:0;display:flex;align-items:center;min-height:0;padding:0;background:hsl(var(--card,0 0% 100%));border-bottom:1px solid hsl(var(--border,0 0% 89.8%));box-sizing:border-box;font-family:var(--font-sans,system-ui,sans-serif)}',
127
+ '.jcv-region-nav-header:empty{display:none}',
128
+ '.jcv-region-body{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0}',
129
+ '.jcv-region-sidebar{flex-shrink:0;overflow-y:auto;overflow-x:hidden;min-width:0;transition:width 0.2s ease;box-sizing:border-box}',
130
+ '.jcv-region-sidebar:empty{display:none}',
131
+ '.jcv-region-sidebar-right{flex-shrink:0;overflow-y:auto;overflow-x:hidden;min-width:0;transition:width 0.2s ease;box-sizing:border-box}',
132
+ '.jcv-region-sidebar-right:empty{display:none}',
133
+ '.jcv-region-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0}',
134
+ '.jcv-region-toolbar{flex-shrink:0;display:flex;align-items:center;min-height:0;padding:0;background:hsl(var(--background,0 0% 100%));border-bottom:1px solid hsl(var(--border,0 0% 89.8%));box-sizing:border-box}',
135
+ '.jcv-region-toolbar:empty{display:none}',
136
+ '.jcv-region-content{flex:1;padding:28px 32px;overflow:auto;box-sizing:border-box;font-size:15px;min-width:0}',
137
+ '.jcv-region-nav-footer{flex-shrink:0;display:flex;align-items:center;min-height:0;padding:0;background:hsl(var(--card,0 0% 100%));border-top:1px solid hsl(var(--border,0 0% 89.8%));box-sizing:border-box}',
138
+ '.jcv-region-nav-footer:empty{display:none}',
139
+ '.jcv-region-statusbar{flex-shrink:0;display:flex;align-items:center;min-height:0;padding:0 0.5rem;background:hsl(var(--primary,221.2 83.2% 53.3%));color:hsl(var(--primary-foreground,210 40% 98%));font-size:11px;box-sizing:border-box}',
140
+ '.jcv-region-statusbar:empty{display:none}',
141
+ // Portal regions — positioned within the preview area
142
+ '.jcv-region-toast{position:absolute;bottom:1rem;right:1rem;z-index:90;pointer-events:none}',
143
+ '.jcv-region-toast:empty{display:none}',
144
+ '.jcv-region-toast>*{pointer-events:auto}',
145
+ '.jcv-region-modal{position:absolute;inset:0;z-index:100;pointer-events:none}',
146
+ '.jcv-region-modal:empty{display:none}',
147
+ '.jcv-region-modal>*{pointer-events:auto}',
148
+ '.jcv-region-drawer{position:absolute;inset:0;z-index:95;pointer-events:none}',
149
+ '.jcv-region-drawer:empty{display:none}',
150
+ '.jcv-region-drawer>*{pointer-events:auto}',
151
+ // Sidebar/menu inside canvas regions — relative, not fixed
152
+ '.jcv-region-sidebar .jux-sidebar,.jcv-region-sidebar-right .jux-sidebar{position:relative!important;top:auto!important;left:auto!important;right:auto!important;min-height:100%!important;height:auto!important;z-index:auto!important;flex-shrink:0;border-radius:0;max-height:none;overflow-y:auto}',
153
+ '.jcv-region-sidebar .jux-menu,.jcv-region-sidebar-right .jux-menu{height:100%!important;flex-shrink:0}',
154
+ // Input full-width in preview
155
+ '.jcv-preview-area .jux-input{width:100%}',
156
+ '.jcv-nav-toast{position:fixed;bottom:16px;right:16px;background:#ffffff;color:var(--jcv-fg);padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;font-family:ui-monospace,monospace;z-index:100;animation:jcv-toast-in .2s ease;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.12);border:1px solid var(--jcv-border)}',
157
+ '@keyframes jcv-toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}',
158
+ '.jcv-live-error-block{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--jcv-radius-sm);overflow:hidden;width:100%;box-sizing:border-box;margin-top:4px}',
159
+ '.jcv-live-error-title{padding:6px 12px;font-size:13px;font-weight:700;color:#dc2626;background:#fee2e2;border-bottom:1px solid #fecaca}',
160
+ '.jcv-live-error-msg{padding:8px 12px;font-size:13px;font-family:ui-monospace,monospace;color:#991b1b}',
161
+ '.jcv-live-error-ctx{margin:0;padding:8px 12px;font-size:12px;line-height:18px;font-family:ui-monospace,monospace;background:#fff5f5;color:#71717a;border-top:1px solid #fecaca;overflow-x:auto;white-space:pre}',
162
+ '.jcv-live-warn{color:#ca8a04;font-size:12px;padding:4px 8px;background:#fefce8;border:1px solid #fef08a;border-radius:var(--jcv-radius-xs);font-family:ui-monospace,monospace;width:100%;box-sizing:border-box}',
163
+ '.jcv-stub{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--jcv-muted);border:1px dashed var(--jcv-border);border-radius:var(--jcv-radius-sm);font-size:14px;color:var(--jcv-fg)}',
164
+ '.jcv-stub-type{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--jcv-muted-fg);background:var(--jcv-bg);padding:1px 6px;border-radius:3px;border:1px solid var(--jcv-border)}',
165
+ '.jcv-stub-id{font-size:12px;color:var(--jcv-muted-fg);font-family:ui-monospace,monospace}',
166
+ '.jcv-stub-content{font-weight:500}',
167
+ '.jcv-ai-fab{position:absolute;bottom:20px;right:20px;z-index:25;width:48px;height:48px;border-radius:50%;background:#1a73e8;color:#ffffff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 12px rgba(26,115,232,.3);transition:transform .15s,box-shadow .15s,background .15s}',
168
+ '.jcv-ai-fab:hover{transform:scale(1.08);box-shadow:0 4px 16px rgba(26,115,232,.4);background:#1557b0}',
169
+ '.jcv-ai-fab--hidden{display:none}',
170
+ '.jcv-ai-chat{position:absolute;bottom:20px;right:20px;z-index:25;width:380px;max-height:480px;background:#ffffff;border:1px solid var(--jcv-border);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);display:none;flex-direction:column;overflow:hidden;animation:jcv-chat-in .2s ease}',
171
+ '.jcv-ai-chat--open{display:flex}',
172
+ '@keyframes jcv-chat-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}',
173
+ '.jcv-ai-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--jcv-border);font-size:13px;font-weight:600;color:var(--jcv-fg);cursor:default}',
174
+ '.jcv-ai-header svg{width:16px;height:16px}',
175
+ '.jcv-ai-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:rgba(26,115,232,.1);color:#1a73e8;letter-spacing:.04em}',
176
+ '.jcv-ai-shortcut{font-size:10px;color:var(--jcv-muted-fg);margin-left:4px;font-family:ui-monospace,monospace}',
177
+ '.jcv-ai-close{margin-left:auto;background:none;border:none;color:var(--jcv-muted-fg);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px}',
178
+ '.jcv-ai-close:hover{background:var(--jcv-muted);color:var(--jcv-fg)}',
179
+ '.jcv-ai-input-wrap{display:flex;align-items:center;gap:8px;padding:12px 16px}',
180
+ '.jcv-ai-input{flex:1;background:var(--jcv-muted);border:1px solid var(--jcv-border);border-radius:8px;padding:10px 14px;font-size:13px;font-family:ui-monospace,monospace;color:var(--jcv-fg);outline:none;resize:none;min-height:36px;max-height:120px}',
181
+ '.jcv-ai-input:focus{border-color:#1a73e8}',
182
+ '.jcv-ai-input::placeholder{color:var(--jcv-muted-fg)}',
183
+ '.jcv-ai-send{background:#1a73e8;color:#ffffff;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}',
184
+ '.jcv-ai-send:hover{background:#1557b0}',
185
+ '.jcv-ai-send:disabled{opacity:.5;cursor:not-allowed}',
186
+ '.jcv-ai-status{padding:8px 16px;font-size:12px;color:var(--jcv-muted-fg);font-family:ui-monospace,monospace;border-top:1px solid var(--jcv-border);display:none}',
187
+ '.jcv-ai-status--visible{display:block}',
188
+ '.jcv-ai-status--error{color:#ea4335}',
189
+ '.jcv-ai-status--loading{color:#1a73e8}',
190
+ '.jcv-ai-result{padding:12px 16px;font-size:13px;font-family:ui-monospace,monospace;color:#1e8e3e;background:var(--jcv-muted);border-top:1px solid var(--jcv-border);max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;display:none}',
191
+ '.jcv-ai-result--visible{display:block}',
192
+ '.jcv-ai-actions{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--jcv-border);display:none}',
193
+ '.jcv-ai-actions--visible{display:flex}',
194
+ '.jcv-ai-action-btn{background:rgba(30,142,62,.08);color:#1e8e3e;border:1px solid rgba(30,142,62,.2);border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer}',
195
+ '.jcv-ai-action-btn:hover{background:rgba(30,142,62,.15)}',
196
+ '.jcv-ai-action-btn--secondary{background:rgba(26,115,232,.08);color:#1a73e8;border-color:rgba(26,115,232,.2)}',
197
+ '.jcv-ai-action-btn--secondary:hover{background:rgba(26,115,232,.15)}',
198
+ '.jcv-highlight .token-control{color:#9334e6;font-weight:700}',
199
+ '.jcv-highlight .token-declaration{color:#1a73e8;font-weight:700}',
200
+ '.jcv-highlight .token-operator-keyword{color:#ea4335;font-weight:600}',
201
+ '.jcv-highlight .token-special{color:#e37400;font-weight:600}',
202
+ '.jcv-highlight .token-jux{color:#137333;font-weight:700}',
203
+ '.jcv-highlight .token-number{color:#e37400}',
204
+ '.jcv-highlight .token-string{color:#1e8e3e}',
205
+ '.jcv-highlight .token-comment{color:#80868b;font-style:italic}',
206
+ '.jcv-highlight .token-function{color:#1967d2}',
207
+ '.jcv-highlight .token-identifier{color:#1f1f1f}',
208
+ '.jcv-highlight .token-structural{color:#1f1f1f;font-weight:700}',
209
+ '.jcv-highlight .token-delimiter{color:#80868b}',
210
+ '.jcv-highlight .token-operator{color:#1967d2}',
211
+ ];
212
+ s.textContent = rules.join('\n');
213
+ document.head.appendChild(s);
214
+ }
215
+ //# sourceMappingURL=canvas-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-styles.js","sourceRoot":"","sources":["../../../lib/components/widgets/canvas-styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { EditorTab } from './canvas-persist.js';
2
+ export interface CanvasOptions {
3
+ title?: string;
4
+ width?: string;
5
+ height?: string;
6
+ codePanelWidth?: string;
7
+ class?: string;
8
+ style?: string;
9
+ initialCode?: string;
10
+ tabs?: EditorTab[];
11
+ }
12
+ declare class Canvas {
13
+ id: string;
14
+ private _opts;
15
+ private _el;
16
+ private _editorEl;
17
+ private _highlightEl;
18
+ private _lineNumEl;
19
+ private _previewEl;
20
+ private _statusEl;
21
+ private _errorEl;
22
+ private _autocompleteEl;
23
+ private _tabBarEl;
24
+ private _pageSidebarEl;
25
+ private _onChange;
26
+ private _compileTimer;
27
+ private _persistTimer;
28
+ private _knownIds;
29
+ private _previewId;
30
+ private _isCompiling;
31
+ private _clickInterceptAttached;
32
+ private _tabs;
33
+ private _activeTabId;
34
+ private _currentRoute;
35
+ private _appName;
36
+ private _savedNavigateTo;
37
+ private _aiFabEl;
38
+ private _aiChatEl;
39
+ private _aiLoading;
40
+ private _layout;
41
+ private _sidebarCollapsed;
42
+ private _splitEl;
43
+ private _codePanelEl;
44
+ private _previewPanelEl;
45
+ private _splitterEl;
46
+ private _sidebarWrapEl;
47
+ private _bodyEl;
48
+ private _snippetMenuEl;
49
+ private _snippetMenuLine;
50
+ constructor(id: string, options?: CanvasOptions);
51
+ _rerenderCanvas(): void;
52
+ title(val: string): this;
53
+ width(val: string): this;
54
+ height(val: string): this;
55
+ codePanelWidth(val: string): this;
56
+ style(val: string): this;
57
+ class(val: string): this;
58
+ onChange(fn: (value: any) => void): this;
59
+ getValue(): string;
60
+ setValue(val: string): this;
61
+ getElement(): HTMLElement | null;
62
+ getTitle(): string;
63
+ setTitle(val: string): this;
64
+ setWidth(val: string): this;
65
+ setHeight(val: string): this;
66
+ get state(): any;
67
+ generateFullCode(): string;
68
+ render(target?: string | HTMLElement | {
69
+ element: HTMLElement;
70
+ }): this;
71
+ into(target?: string | HTMLElement | {
72
+ element: HTMLElement;
73
+ }): this;
74
+ destroy(): void;
75
+ private _loadPersistedTabs;
76
+ private _persistTabs;
77
+ private _getActiveTab;
78
+ private _switchTab;
79
+ private _addTab;
80
+ private _closeTab;
81
+ private _renameTab;
82
+ private _renderTabBar;
83
+ private _navigatePreview;
84
+ private _buildDOM;
85
+ private _buildToolbar;
86
+ private _buildPageSidebar;
87
+ private _buildCodePanel;
88
+ private _buildPreviewPanel;
89
+ private _toolbarBtn;
90
+ private _onInput;
91
+ private _updateLineNumbers;
92
+ private _syncScroll;
93
+ private _updateHighlight;
94
+ private _format;
95
+ private _scheduleCompile;
96
+ private _compile;
97
+ private _renderCompileResult;
98
+ private _checkAutocomplete;
99
+ private _showAutocomplete;
100
+ private _hideAutocomplete;
101
+ private _toggleSnippetMenu;
102
+ private _showSnippetMenu;
103
+ private _hideSnippetMenu;
104
+ private _renderSnippetMenu;
105
+ private _insertSnippetAtLine;
106
+ private _acceptCompletion;
107
+ private _onKeyDown;
108
+ private _setActiveCompletion;
109
+ private _getCaretCoords;
110
+ private _buildAiFab;
111
+ private _buildAiChat;
112
+ private _toggleAiChat;
113
+ private _openAiChat;
114
+ private _closeAiChat;
115
+ private _submitAiPrompt;
116
+ private _insertAiResult;
117
+ private _replaceWithAiResult;
118
+ private _setLayout;
119
+ private _toggleSidebar;
120
+ private _startResize;
121
+ }
122
+ export declare function canvas(id: string, options?: CanvasOptions): Canvas;
123
+ export { Canvas, EditorTab };
124
+ export default canvas;
125
+ //# sourceMappingURL=canvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../lib/components/widgets/canvas.ts"],"names":[],"mappings":"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"}