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.
- package/dist/components/button.d.ts +1 -0
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +37 -0
- package/dist/components/button.js.map +1 -1
- package/dist/components/c.d.ts +53 -0
- package/dist/components/c.d.ts.map +1 -0
- package/dist/components/c.js +127 -0
- package/dist/components/c.js.map +1 -0
- package/dist/components/charts/barChart.d.ts +119 -0
- package/dist/components/charts/barChart.d.ts.map +1 -0
- package/dist/components/charts/barChart.js +644 -0
- package/dist/components/charts/barChart.js.map +1 -0
- package/dist/components/charts/lineChart.d.ts +104 -0
- package/dist/components/charts/lineChart.d.ts.map +1 -0
- package/dist/components/charts/lineChart.js +466 -0
- package/dist/components/charts/lineChart.js.map +1 -0
- package/dist/components/charts/pieChart.d.ts +93 -0
- package/dist/components/charts/pieChart.d.ts.map +1 -0
- package/dist/components/charts/pieChart.js +397 -0
- package/dist/components/charts/pieChart.js.map +1 -0
- package/dist/components/checkbox.d.ts +2 -0
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +47 -0
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/flex.d.ts +91 -0
- package/dist/components/flex.d.ts.map +1 -0
- package/dist/components/flex.js +166 -0
- package/dist/components/flex.js.map +1 -0
- package/dist/components/g.d.ts +21 -0
- package/dist/components/g.d.ts.map +1 -0
- package/dist/components/g.js +52 -0
- package/dist/components/g.js.map +1 -0
- package/dist/components/input.d.ts +2 -0
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +21 -2
- package/dist/components/input.js.map +1 -1
- package/dist/components/jtable.d.ts +47 -0
- package/dist/components/jtable.d.ts.map +1 -0
- package/dist/components/jtable.js +307 -0
- package/dist/components/jtable.js.map +1 -0
- package/dist/components/link.d.ts +1 -0
- package/dist/components/link.d.ts.map +1 -1
- package/dist/components/link.js +17 -0
- package/dist/components/link.js.map +1 -1
- package/dist/components/list.d.ts +1 -0
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +18 -0
- package/dist/components/list.js.map +1 -1
- package/dist/components/menu.d.ts +108 -0
- package/dist/components/menu.d.ts.map +1 -0
- package/dist/components/menu.js +665 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/nav.d.ts +1 -0
- package/dist/components/nav.d.ts.map +1 -1
- package/dist/components/nav.js +19 -0
- package/dist/components/nav.js.map +1 -1
- package/dist/components/radio.d.ts +1 -0
- package/dist/components/radio.d.ts.map +1 -1
- package/dist/components/radio.js +23 -0
- package/dist/components/radio.js.map +1 -1
- package/dist/components/routes.d.ts +17 -0
- package/dist/components/routes.d.ts.map +1 -1
- package/dist/components/routes.js +86 -0
- package/dist/components/routes.js.map +1 -1
- package/dist/components/select.d.ts +1 -0
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +17 -0
- package/dist/components/select.js.map +1 -1
- package/dist/components/table.d.ts +1 -0
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/table.js +20 -0
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +17 -1
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +50 -8
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag.d.ts +1 -0
- package/dist/components/tag.d.ts.map +1 -1
- package/dist/components/tag.js +16 -0
- package/dist/components/tag.js.map +1 -1
- package/dist/components/widgets/calendar.d.ts +74 -0
- package/dist/components/widgets/calendar.d.ts.map +1 -0
- package/dist/components/widgets/calendar.js +308 -0
- package/dist/components/widgets/calendar.js.map +1 -0
- package/dist/components/widgets/canvas-ai.d.ts +12 -0
- package/dist/components/widgets/canvas-ai.d.ts.map +1 -0
- package/dist/components/widgets/canvas-ai.js +97 -0
- package/dist/components/widgets/canvas-ai.js.map +1 -0
- package/dist/components/widgets/canvas-compile.d.ts +36 -0
- package/dist/components/widgets/canvas-compile.d.ts.map +1 -0
- package/dist/components/widgets/canvas-compile.js +379 -0
- package/dist/components/widgets/canvas-compile.js.map +1 -0
- package/dist/components/widgets/canvas-persist.d.ts +11 -0
- package/dist/components/widgets/canvas-persist.d.ts.map +1 -0
- package/dist/components/widgets/canvas-persist.js +60 -0
- package/dist/components/widgets/canvas-persist.js.map +1 -0
- package/dist/components/widgets/canvas-registry.d.ts +42 -0
- package/dist/components/widgets/canvas-registry.d.ts.map +1 -0
- package/dist/components/widgets/canvas-registry.js +338 -0
- package/dist/components/widgets/canvas-registry.js.map +1 -0
- package/dist/components/widgets/canvas-styles.d.ts +2 -0
- package/dist/components/widgets/canvas-styles.d.ts.map +1 -0
- package/dist/components/widgets/canvas-styles.js +215 -0
- package/dist/components/widgets/canvas-styles.js.map +1 -0
- package/dist/components/widgets/canvas.d.ts +125 -0
- package/dist/components/widgets/canvas.d.ts.map +1 -0
- package/dist/components/widgets/canvas.js +1359 -0
- package/dist/components/widgets/canvas.js.map +1 -0
- package/dist/components/widgets/sidebar.d.ts +100 -0
- package/dist/components/widgets/sidebar.d.ts.map +1 -0
- package/dist/components/widgets/sidebar.js +434 -0
- package/dist/components/widgets/sidebar.js.map +1 -0
- package/dist/components/widgets/stepper.d.ts +87 -0
- package/dist/components/widgets/stepper.d.ts.map +1 -0
- package/dist/components/widgets/stepper.js +388 -0
- package/dist/components/widgets/stepper.js.map +1 -0
- package/dist/generated/jux-registry.d.ts +24 -0
- package/dist/generated/jux-registry.d.ts.map +1 -0
- package/dist/generated/jux-registry.js +90 -0
- package/dist/generated/jux-registry.js.map +1 -0
- package/dist/index.d.ts +41 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -23
- package/dist/index.js.map +1 -1
- package/dist/state/pageState.d.ts +6 -0
- package/dist/state/pageState.d.ts.map +1 -1
- package/dist/state/pageState.js +24 -16
- package/dist/state/pageState.js.map +1 -1
- package/dist/styles/layout-regions-observer.d.ts +7 -0
- package/dist/styles/layout-regions-observer.d.ts.map +1 -0
- package/dist/styles/layout-regions-observer.js +52 -0
- package/dist/styles/layout-regions-observer.js.map +1 -0
- package/dist/utils/colors.d.ts +0 -3
- package/dist/utils/colors.d.ts.map +1 -1
- package/dist/utils/colors.js +20 -6
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/resolveContent.d.ts +11 -0
- package/dist/utils/resolveContent.d.ts.map +1 -0
- package/dist/utils/resolveContent.js +37 -0
- package/dist/utils/resolveContent.js.map +1 -0
- package/dist/utils/theme.d.ts +58 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +172 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/widgets/canvas.d.ts +3 -94
- package/dist/widgets/canvas.d.ts.map +1 -1
- package/dist/widgets/canvas.js +3 -1007
- package/dist/widgets/canvas.js.map +1 -1
- package/juxconfig.example.js +19 -0
- package/machinery/compiler4.js +103 -9
- package/machinery/errors-client.js +171 -67
- package/machinery/jux-errors.js +218 -0
- package/machinery/serve.js +67 -0
- 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":"AAEA,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,kBAAkB;IAC9B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,GAAG,mBAAmB,CAAC;IAC3B,MAAM,KAAK,GAAG;QACV,QAAQ;QACR,yDAAyD;QACzD,oEAAoE;QACpE,wEAAwE;QACxE,iDAAiD;QACjD,6DAA6D;QAC7D,8EAA8E;QAC9E,4DAA4D;QAC5D,GAAG;QACH,uPAAuP;QACvP,4RAA4R;QAC5R,6LAA6L;QAC7L,0EAA0E;QAC1E,0PAA0P;QAC1P,qDAAqD;QACrD,mEAAmE;QACnE,wCAAwC;QACxC,yCAAyC;QACzC,8BAA8B;QAC9B,uJAAuJ;QACvJ,0OAA0O;QAC1O,4EAA4E;QAC5E,+FAA+F;QAC/F,yDAAyD;QACzD,2CAA2C;QAC3C,8LAA8L;QAC9L,0DAA0D;QAC1D,yDAAyD;QACzD,gCAAgC;QAChC,sEAAsE;QACtE,4DAA4D;QAC5D,mEAAmE;QACnE,0BAA0B;QAC1B,0NAA0N;QAC1N,mQAAmQ;QACnQ,gKAAgK;QAChK,sDAAsD;QACtD,yEAAyE;QACzE,8GAA8G;QAC9G,2hBAA2hB;QAC3hB,iHAAiH;QACjH,uFAAuF;QACvF,mIAAmI;QACnI,qMAAqM;QACrM,2CAA2C;QAC3C,gDAAgD;QAChD,2FAA2F;QAC3F,yFAAyF;QACzF,uLAAuL;QACvL,uDAAuD;QACvD,gGAAgG;QAChG,uiBAAuiB;QACviB,iFAAiF;QACjF,4CAA4C;QAC5C,oEAAoE;QACpE,wGAAwG;QACxG,2IAA2I;QAC3I,kHAAkH;QAClH,iDAAiD;QACjD,6CAA6C;QAC7C,yFAAyF;QACzF,uEAAuE;QACvE,oEAAoE;QACpE,2JAA2J;QAC3J,iYAAiY;QACjY,qEAAqE;QACrE,4DAA4D;QAC5D,uHAAuH;QACvH,qCAAqC;QACrC,sEAAsE;QACtE,4FAA4F;QAC5F,mEAAmE;QACnE,oDAAoD;QACpD,2HAA2H;QAC3H,6EAA6E;QAC7E,yGAAyG;QACzG,iUAAiU;QACjU,yDAAyD;QACzD,iDAAiD;QACjD,icAAic;QACjc,mDAAmD;QACnD,iFAAiF;QACjF,+BAA+B;QAC/B,kRAAkR;QAClR,4GAA4G;QAC5G,6KAA6K;QAC7K,wDAAwD;QACxD,kNAAkN;QAClN,iDAAiD;QACjD,6DAA6D;QAC7D,4HAA4H;QAC5H,iDAAiD;QACjD,4FAA4F;QAC5F,gKAAgK;QAChK,4LAA4L;QAC5L,0DAA0D;QAC1D,iGAAiG;QACjG,wDAAwD;QACxD,+IAA+I;QAC/I,iEAAiE;QACjE,mYAAmY;QACnY,ibAAib;QACjb,wDAAwD;QACxD,sMAAsM;QACtM,iOAAiO;QACjO,6JAA6J;QAC7J,0EAA0E;QAC1E,uFAAuF;QACvF,8CAA8C;QAC9C,qIAAqI;QACrI,kRAAkR;QAClR,+MAA+M;QAC/M,gIAAgI;QAChI,qEAAqE;QACrE,yEAAyE;QACzE,oEAAoE;QACpE,qEAAqE;QACrE,kQAAkQ;QAClQ,4CAA4C;QAC5C,uFAAuF;QACvF,mIAAmI;QACnI,yCAAyC;QACzC,yIAAyI;QACzI,+CAA+C;QAC/C,sGAAsG;QACtG,mNAAmN;QACnN,yCAAyC;QACzC,8GAA8G;QAC9G,6MAA6M;QAC7M,4CAA4C;QAC5C,2OAA2O;QAC3O,2CAA2C;QAC3C,sDAAsD;QACtD,4FAA4F;QAC5F,uCAAuC;QACvC,0CAA0C;QAC1C,8EAA8E;QAC9E,uCAAuC;QACvC,0CAA0C;QAC1C,8EAA8E;QAC9E,wCAAwC;QACxC,2CAA2C;QAC3C,2DAA2D;QAC3D,uSAAuS;QACvS,wGAAwG;QACxG,8BAA8B;QAC9B,0CAA0C;QAC1C,4UAA4U;QAC5U,yGAAyG;QACzG,uKAAuK;QACvK,yIAAyI;QACzI,uGAAuG;QACvG,iNAAiN;QACjN,iNAAiN;QACjN,2MAA2M;QAC3M,iMAAiM;QACjM,2FAA2F;QAC3F,oCAAoC;QACpC,iVAAiV;QACjV,uGAAuG;QACvG,mCAAmC;QACnC,iSAAiS;QACjS,kCAAkC;QAClC,6HAA6H;QAC7H,uLAAuL;QACvL,4CAA4C;QAC5C,mJAAmJ;QACnJ,+GAA+G;QAC/G,uJAAuJ;QACvJ,sEAAsE;QACtE,+EAA+E;QAC/E,0PAA0P;QAC1P,2CAA2C;QAC3C,uDAAuD;QACvD,iKAAiK;QACjK,wCAAwC;QACxC,sDAAsD;QACtD,kKAAkK;QAClK,wCAAwC;QACxC,sCAAsC;QACtC,wCAAwC;QACxC,6PAA6P;QAC7P,wCAAwC;QACxC,6GAA6G;QAC7G,wCAAwC;QACxC,uLAAuL;QACvL,0DAA0D;QAC1D,+GAA+G;QAC/G,sEAAsE;QACtE,8DAA8D;QAC9D,kEAAkE;QAClE,uEAAuE;QACvE,8DAA8D;QAC9D,0DAA0D;QAC1D,6CAA6C;QAC7C,6CAA6C;QAC7C,gEAAgE;QAChE,+CAA+C;QAC/C,iDAAiD;QACjD,iEAAiE;QACjE,gDAAgD;QAChD,+CAA+C;KAClD,CAAC;IACF,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -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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"}
|