treesap 0.1.2 → 0.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleLivePreview.d.ts","sourceRoot":"","sources":["../../src/components/SimpleLivePreview.tsx"],"names":[],"mappings":"AAAA,UAAU,sBAAsB;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAqB,EAAE,WAAkB,EAAE,EAAE,sBAAsB,kDA2EtG"}
1
+ {"version":3,"file":"SimpleLivePreview.d.ts","sourceRoot":"","sources":["../../src/components/SimpleLivePreview.tsx"],"names":[],"mappings":"AAAA,UAAU,sBAAsB;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAqB,EAAE,WAAkB,EAAE,EAAE,sBAAsB,kDAwBtG"}
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
2
  export function SimpleLivePreview({ id = "simple-preview", previewPort = 5173 }) {
3
3
  const defaultSrc = `http://localhost:${previewPort}`;
4
4
  const baseUrl = `localhost:${previewPort}/`;
5
- return (_jsxs("sapling-island", { loading: "visible", children: [_jsxs("template", { children: [_jsx("script", { type: "module", src: "https://code.iconify.design/iconify-icon/2.0.0/iconify-icon.min.js" }), _jsx("script", { type: "module", src: "/components/SimpleLivePreview.js" })] }), _jsxs("div", { id: id, class: "flex-1 h-full flex flex-col bg-white transition-all duration-300", children: [_jsx("div", { class: "p-3 border-b border-gray-200 bg-white", children: _jsxs("div", { class: "flex items-center gap-2", children: [_jsx("button", { id: `${id}-hide-claude-btn`, class: "p-2 hover:bg-gray-100 rounded-md transition-colors flex items-center", title: "Hide Terminal", children: _jsx("iconify-icon", { id: `${id}-hide-claude-icon`, icon: "ph:sidebar-simple", width: "16", height: "16" }) }), _jsx("button", { type: "button", id: `${id}-refresh-btn`, class: "p-2 hover:bg-gray-100 rounded-md transition-colors flex-shrink-0", title: "Reload", children: _jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("path", { d: "m3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })] }) }), _jsxs("div", { class: "flex-1 flex items-center bg-gray-50 border border-gray-300 rounded-full px-4 py-2 hover:bg-white hover:border-gray-400 focus-within:bg-white focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 transition-all", children: [_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "text-gray-400 mr-3", children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M12 1v6M12 17v6M4.22 4.22l4.24 4.24M15.54 15.54l4.24 4.24M1 12h6M17 12h6M4.22 19.78l4.24-4.24M15.54 8.46l4.24-4.24" })] }), _jsx("span", { class: "text-gray-600 text-sm", children: baseUrl }), _jsx("input", { id: `${id}-url-input`, type: "text", placeholder: "path", defaultValue: "", class: "flex-1 bg-transparent text-sm focus:outline-none text-gray-700 ml-0" }), _jsx("button", { type: "button", id: `${id}-load-btn`, class: "ml-2 p-1 hover:bg-gray-100 rounded-full transition-colors flex-shrink-0", title: "Go", children: _jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }) })] })] }) }), _jsx("div", { class: "flex-1 overflow-hidden", children: _jsx("iframe", { id: `${id}-iframe`, src: defaultSrc, class: "w-full h-full border-0 bg-white block", title: "Live Preview", sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-top-navigation allow-downloads allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-storage-access-by-user-activation", "data-preview-port": previewPort }) })] })] }));
5
+ return (_jsxs("sapling-island", { loading: "visible", children: [_jsxs("template", { children: [_jsx("script", { type: "module", src: "https://code.iconify.design/iconify-icon/2.0.0/iconify-icon.min.js" }), _jsx("script", { type: "module", src: "/components/SimpleLivePreview.js" })] }), _jsx("div", { id: id, class: "flex-1 h-full bg-white transition-all duration-300", children: _jsx("iframe", { id: `${id}-iframe`, src: defaultSrc, class: "w-full h-full border-0 bg-white block", title: "Live Preview", sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-top-navigation allow-downloads allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-storage-access-by-user-activation", "data-preview-port": previewPort }) })] }));
6
6
  }
7
7
  //# sourceMappingURL=SimpleLivePreview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleLivePreview.js","sourceRoot":"","sources":["../../src/components/SimpleLivePreview.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,iBAAiB,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,WAAW,GAAG,IAAI,EAA0B;IACrG,MAAM,UAAU,GAAG,oBAAoB,WAAW,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,aAAa,WAAW,GAAG,CAAC;IAE5C,OAAO,CACL,0BAAgB,OAAO,EAAC,SAAS,aAC/B,+BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,oEAAoE,GAAU,EACxG,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,kCAAkC,GAAU,IAC7D,EAEX,eAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAC,kEAAkE,aAEnF,cAAK,KAAK,EAAC,uCAAuC,YAChD,eAAK,KAAK,EAAC,yBAAyB,aAClC,iBACE,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAC3B,KAAK,EAAC,sEAAsE,EAC5E,KAAK,EAAC,eAAe,YAErB,uBAAc,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAC,mBAAmB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACpG,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,GAAG,EAAE,cAAc,EACvB,KAAK,EAAC,kEAAkE,EACxE,KAAK,EAAC,QAAQ,YAEd,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,oBAAgB,OAAO,qBAAiB,OAAO,aAC/I,mBAAU,MAAM,EAAC,kBAAkB,GAAY,EAC/C,mBAAU,MAAM,EAAC,gBAAgB,GAAY,EAC7C,eAAM,CAAC,EAAC,sEAAsE,GAAQ,IAClF,GACC,EACT,eAAK,KAAK,EAAC,yOAAyO,aAClP,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,oBAAgB,OAAO,qBAAiB,OAAO,EAAC,KAAK,EAAC,oBAAoB,aAC1K,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAU,EACvC,eAAM,CAAC,EAAC,oHAAoH,GAAQ,IAChI,EACN,eAAM,KAAK,EAAC,uBAAuB,YAAE,OAAO,GAAQ,EACpD,gBACE,EAAE,EAAE,GAAG,EAAE,YAAY,EACrB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,MAAM,EAClB,YAAY,EAAC,EAAE,EACf,KAAK,EAAC,qEAAqE,GAC3E,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,GAAG,EAAE,WAAW,EACpB,KAAK,EAAC,yEAAyE,EAC/E,KAAK,EAAC,IAAI,YAEV,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,oBAAgB,OAAO,qBAAiB,OAAO,YAC/I,mBAAU,MAAM,EAAC,gBAAgB,GAAY,GACzC,GACC,IACL,IACF,GACF,EAGN,cAAK,KAAK,EAAC,wBAAwB,YACjC,iBACE,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAC,uCAAuC,EAC7C,KAAK,EAAC,cAAc,EACpB,OAAO,EAAC,iNAAiN,uBACtM,WAAW,GACtB,GACN,IACF,IACS,CAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SimpleLivePreview.js","sourceRoot":"","sources":["../../src/components/SimpleLivePreview.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,iBAAiB,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,WAAW,GAAG,IAAI,EAA0B;IACrG,MAAM,UAAU,GAAG,oBAAoB,WAAW,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,aAAa,WAAW,GAAG,CAAC;IAE5C,OAAO,CACL,0BAAgB,OAAO,EAAC,SAAS,aAC/B,+BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,oEAAoE,GAAU,EACxG,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,kCAAkC,GAAU,IAC7D,EAEX,cAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAC,oDAAoD,YAErE,iBACE,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAC,uCAAuC,EAC7C,KAAK,EAAC,cAAc,EACpB,OAAO,EAAC,iNAAiN,uBACtM,WAAW,GACtB,GACN,IACS,CAClB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { startServer, type TreesapConfig } from './server.js';
2
2
  export { startServer, type TreesapConfig };
3
3
  export { default as Layout } from './layouts/Layout.js';
4
4
  export { default as NotFoundLayout } from './layouts/NotFoundLayout.js';
5
- export { Home } from './pages/Home.js';
5
+ export { Welcome } from './pages/Welcome.js';
6
+ export { Code } from './pages/Code.js';
6
7
  export { DevServerManager } from './services/dev-server.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { startServer };
4
4
  // Export components and layouts for library usage
5
5
  export { default as Layout } from './layouts/Layout.js';
6
6
  export { default as NotFoundLayout } from './layouts/NotFoundLayout.js';
7
- export { Home } from './pages/Home.js';
7
+ export { Welcome } from './pages/Welcome.js';
8
+ export { Code } from './pages/Code.js';
8
9
  export { DevServerManager } from './services/dev-server.js';
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAE9D,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAsB,CAAC;AAE3C,kDAAkD;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAE9D,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAsB,CAAC;AAE3C,kDAAkD;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface TerminalProps {
2
+ previewPort?: number;
3
+ workingDirectory?: string;
4
+ }
5
+ export declare function Code({ previewPort, workingDirectory }: TerminalProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.d.ts","sourceRoot":"","sources":["../../src/pages/Code.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,IAAI,CAAC,EAAE,WAAkB,EAAE,gBAAgB,EAAE,EAAE,aAAa,kDAoF3E"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
+ import Layout from "../layouts/Layout.js";
3
+ import { Terminal as TerminalComponent } from "../components/Terminal.js";
4
+ import { SimpleLivePreview } from "../components/SimpleLivePreview.js";
5
+ export function Code({ previewPort = 1234, workingDirectory }) {
6
+ return (_jsx(Layout, { title: "Code Editor", children: _jsxs("div", { id: "code-container", class: "h-screen flex bg-[#1e1e1e]", children: [_jsxs("div", { id: "sidebar-pane", class: "w-2/5 border-r border-[#3c3c3c] transition-all duration-300 flex flex-col bg-[#252526]", children: [_jsx("div", { class: "p-3 border-b border-[#3c3c3c]", children: _jsx("a", { href: "/", class: "text-[#cccccc] hover:text-white text-sm", children: "\u2190 Back to Home" }) }), _jsx("div", { class: "p-3 border-b border-[#3c3c3c] bg-[#2d2d30]", children: _jsxs("div", { class: "flex items-center gap-2", children: [_jsx("button", { id: "live-preview-hide-claude-btn", class: "p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex items-center text-[#cccccc] hover:text-white", title: "Hide Sidebar", children: _jsx("iconify-icon", { id: "live-preview-hide-claude-icon", icon: "ph:sidebar-simple", width: "16", height: "16" }) }), _jsx("button", { type: "button", id: "live-preview-refresh-btn", class: "p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex-shrink-0 text-[#cccccc] hover:text-white", title: "Reload", children: _jsx("iconify-icon", { icon: "tabler:refresh", width: "16", height: "16" }) }), _jsxs("div", { class: "flex-1 flex items-center bg-[#1e1e1e] border border-[#3c3c3c] rounded px-3 py-2 hover:border-[#0e639c] focus-within:border-[#0e639c] transition-all", children: [_jsx("iconify-icon", { icon: "tabler:world", width: "16", height: "16", class: "text-[#cccccc] mr-2" }), _jsxs("span", { class: "text-[#cccccc] text-sm", children: ["localhost:", previewPort, "/"] }), _jsx("input", { id: "live-preview-url-input", type: "text", placeholder: "path", defaultValue: "", class: "flex-1 bg-transparent text-sm focus:outline-none text-[#cccccc] ml-1" }), _jsx("button", { type: "button", id: "live-preview-load-btn", class: "ml-2 p-1 hover:bg-[#3c3c3c] rounded transition-colors flex-shrink-0 text-[#cccccc] hover:text-white", title: "Go", children: _jsx("iconify-icon", { icon: "tabler:chevron-right", width: "16", height: "16" }) })] })] }) }), _jsxs("div", { class: "flex py-2", children: [_jsx("button", { class: "px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center", children: _jsx("iconify-icon", { icon: "tabler:folder", width: "20", height: "20" }) }), _jsx("button", { class: "px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center", children: _jsx("iconify-icon", { icon: "tabler:search", width: "20", height: "20" }) }), _jsx("button", { class: "px-3 py-2 text-white flex items-center justify-center", children: _jsx("iconify-icon", { icon: "tabler:terminal", width: "20", height: "20" }) }), _jsx("button", { class: "px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center", children: _jsx("iconify-icon", { icon: "tabler:git-merge", width: "20", height: "20" }) })] }), _jsx("div", { class: "flex-1 overflow-hidden bg-[#1e1e1e]", children: _jsx("div", { class: "h-full p-4", children: _jsx(TerminalComponent, { id: "terminal", sessionId: "shared-terminal-session" }) }) })] }), _jsx(SimpleLivePreview, { id: "live-preview", previewPort: previewPort })] }) }));
7
+ }
8
+ //# sourceMappingURL=Code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.js","sourceRoot":"","sources":["../../src/pages/Code.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAOvE,MAAM,UAAU,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,gBAAgB,EAAiB;IAC1E,OAAO,CACL,KAAC,MAAM,IAAC,KAAK,EAAC,aAAa,YACzB,eAAK,EAAE,EAAC,gBAAgB,EAAC,KAAK,EAAC,4BAA4B,aAEzD,eAAK,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,wFAAwF,aAEnH,cAAK,KAAK,EAAC,+BAA+B,YACxC,YAAG,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,yCAAyC,oCAAmB,GAC1E,EAGN,cAAK,KAAK,EAAC,4CAA4C,YACrD,eAAK,KAAK,EAAC,yBAAyB,aAClC,iBACE,EAAE,EAAC,8BAA8B,EACjC,KAAK,EAAC,uGAAuG,EAC7G,KAAK,EAAC,cAAc,YAEpB,uBAAc,EAAE,EAAC,+BAA+B,EAAC,IAAI,EAAC,mBAAmB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACzG,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,0BAA0B,EAC7B,KAAK,EAAC,mGAAmG,EACzG,KAAK,EAAC,QAAQ,YAEd,uBAAc,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACnE,EACT,eAAK,KAAK,EAAC,qJAAqJ,aAC9J,uBAAc,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,qBAAqB,GAAgB,EACpG,gBAAM,KAAK,EAAC,wBAAwB,2BAAY,WAAW,SAAS,EACpE,gBACE,EAAE,EAAC,wBAAwB,EAC3B,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,MAAM,EAClB,YAAY,EAAC,EAAE,EACf,KAAK,EAAC,sEAAsE,GAC5E,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,uBAAuB,EAC1B,KAAK,EAAC,qGAAqG,EAC3G,KAAK,EAAC,IAAI,YAEV,uBAAc,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACzE,IACL,IACF,GACF,EAGN,eAAK,KAAK,EAAC,WAAW,aACpB,iBAAQ,KAAK,EAAC,kGAAkG,YAC9G,uBAAc,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GAClE,EACT,iBAAQ,KAAK,EAAC,kGAAkG,YAC9G,uBAAc,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GAClE,EACT,iBAAQ,KAAK,EAAC,uDAAuD,YACnE,uBAAc,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACpE,EACT,iBAAQ,KAAK,EAAC,kGAAkG,YAC9G,uBAAc,IAAI,EAAC,kBAAkB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACrE,IACL,EAGN,cAAK,KAAK,EAAC,qCAAqC,YAE9C,cAAK,KAAK,EAAC,YAAY,YACrB,KAAC,iBAAiB,IAChB,EAAE,EAAC,UAAU,EACb,SAAS,EAAC,yBAAyB,GACnC,GACE,GACF,IACF,EAGN,KAAC,iBAAiB,IAAC,EAAE,EAAC,cAAc,EAAC,WAAW,EAAE,WAAW,GAAI,IAC7D,GACC,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Welcome(): import("hono/jsx/jsx-dev-runtime").JSX.Element;
2
+ //# sourceMappingURL=Welcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Welcome.d.ts","sourceRoot":"","sources":["../../src/pages/Welcome.tsx"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,mDA4BtB"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
+ import Layout from "../layouts/Layout.js";
3
+ export function Welcome() {
4
+ return (_jsx(Layout, { title: "Welcome to Treesap", children: _jsx("div", { class: "h-screen flex flex-col items-center justify-center bg-gray-50 p-8", children: _jsxs("div", { class: "text-center max-w-2xl", children: [_jsx("h1", { class: "text-6xl font-bold text-gray-800 mb-4", children: "\uD83C\uDF33" }), _jsx("h2", { class: "text-4xl font-bold text-gray-800 mb-6", children: "Welcome to Treesap" }), _jsx("p", { class: "text-xl text-gray-600 mb-8", children: "Your integrated development environment with terminal and live preview." }), _jsxs("div", { class: "space-y-4", children: [_jsx("a", { href: "/code", class: "inline-block bg-green-600 hover:bg-green-700 text-white font-semibold py-3 px-6 rounded-lg transition-colors shadow-lg border-2 border-green-600", style: "background-color: #16a34a !important; color: white !important; text-decoration: none !important;", children: "Start Coding \u2192" }), _jsxs("div", { class: "text-gray-500 text-sm", children: ["or navigate to ", _jsx("code", { class: "bg-gray-200 px-2 py-1 rounded", children: "/code" }), " to begin"] })] })] }) }) }));
5
+ }
6
+ //# sourceMappingURL=Welcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Welcome.js","sourceRoot":"","sources":["../../src/pages/Welcome.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAE1C,MAAM,UAAU,OAAO;IACrB,OAAO,CACL,KAAC,MAAM,IAAC,KAAK,EAAC,oBAAoB,YAChC,cAAK,KAAK,EAAC,mEAAmE,YAC5E,eAAK,KAAK,EAAC,uBAAuB,aAChC,aAAI,KAAK,EAAC,uCAAuC,6BAAQ,EACzD,aAAI,KAAK,EAAC,uCAAuC,mCAAwB,EACzE,YAAG,KAAK,EAAC,4BAA4B,wFAEjC,EAEJ,eAAK,KAAK,EAAC,WAAW,aACpB,YACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,kJAAkJ,EACxJ,KAAK,EAAC,kGAAkG,oCAGtG,EAEJ,eAAK,KAAK,EAAC,uBAAuB,gCACjB,eAAM,KAAK,EAAC,+BAA+B,sBAAa,iBACnE,IACF,IACF,GACF,GACC,CACV,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,MAAM,GAAE,aAAa,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,iBA2XxF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,MAAM,GAAE,aAAa,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,iBAoYxF"}
package/dist/server.js CHANGED
@@ -2,7 +2,8 @@ import { jsx as _jsx } from "hono/jsx/jsx-runtime";
2
2
  import { Hono } from "hono";
3
3
  import { serveStatic } from "@hono/node-server/serve-static";
4
4
  import NotFoundLayout from "./layouts/NotFoundLayout.js";
5
- import { Home } from "./pages/Home.js";
5
+ import { Welcome } from "./pages/Welcome.js";
6
+ import { Code } from "./pages/Code.js";
6
7
  import { DevServerManager } from "./services/dev-server.js";
7
8
  import { TerminalService } from "./services/terminal.js";
8
9
  import * as path from 'node:path';
@@ -28,13 +29,21 @@ export async function startServer(config = {}) {
28
29
  // Resolve module static directory (so consumers can see bundled assets)
29
30
  const moduleDir = path.dirname(fileURLToPath(import.meta.url));
30
31
  const moduleStaticRoot = path.join(moduleDir, 'static');
31
- // Home page
32
+ // Welcome page (default)
32
33
  app.get("/", (c) => {
33
34
  // Additional cache prevention headers
34
35
  c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
35
36
  c.header('Pragma', 'no-cache');
36
37
  c.header('Expires', '0');
37
- return c.html(_jsx(Home, { previewPort: previewPort }));
38
+ return c.html(_jsx(Welcome, {}));
39
+ });
40
+ // Code page
41
+ app.get("/code", (c) => {
42
+ // Additional cache prevention headers
43
+ c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
44
+ c.header('Pragma', 'no-cache');
45
+ c.header('Expires', '0');
46
+ return c.html(_jsx(Code, { previewPort: previewPort }));
38
47
  });
39
48
  // Claude page
40
49
  app.get("/claude", (c) => {
@@ -42,7 +51,7 @@ export async function startServer(config = {}) {
42
51
  c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
43
52
  c.header('Pragma', 'no-cache');
44
53
  c.header('Expires', '0');
45
- return c.html(_jsx(Home, { previewPort: previewPort, workingDirectory: projectRoot }));
54
+ return c.html(_jsx(Code, { previewPort: previewPort, workingDirectory: projectRoot }));
46
55
  });
47
56
  // Dev server management endpoints
48
57
  app.get("/api/dev-status", (c) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAUzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAqD,EAAE;IACvF,MAAM,EACJ,IAAI,GAAG,IAAI,EACX,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAC3B,WAAW,GAAG,IAAI,EAClB,UAAU,EACV,OAAO,EACP,YAAY,GAAG,KAAK,EACrB,GAAG,MAAM,CAAC;IAEX,2DAA2D;IAC3D,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE3B,2DAA2D;IAC3D,IAAI,gBAAgB,GAA4B,IAAI,CAAC;IACrD,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAEzC,mCAAmC;QACnC,IAAI,YAAY,EAAE,CAAC;YACjB,gBAAgB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACrC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,wEAAwE;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAExD,yBAAyB;IACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAU,EAAE,EAAE;QAC1B,sCAAsC;QACtC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,YAAY;IACZ,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAU,EAAE,EAAE;QAC9B,sCAAsC;QACtC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,IAAI,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,cAAc;IACd,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAU,EAAE,EAAE;QAChC,sCAAsC;QACtC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAC,IAAI,IAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,GAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAGH,kCAAkC;IAClC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAU,EAAE,EAAE;QACxC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,8BAA8B;gBACrC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,4BAA4B;gBACnC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAC7C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,2BAA2B;gBAClC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAU,EAAE,EAAE;QACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAU,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,OAAO,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE3C,iCAAiC;QACjC,IAAI,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,kBAAkB;QAClB,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,KAAK,CAAC,UAAU;gBACd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAElC,gCAAgC;gBAChC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEzF,yBAAyB;gBACzB,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,EAAE;oBACjC,IAAI,CAAC;wBACH,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC,CAAC;gBAEF,OAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAEjD,2BAA2B;gBAC3B,MAAM,gBAAgB,GAAG,GAAG,EAAE;oBAC5B,OAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/D,CAAC,CAAC;gBAEF,2BAA2B;gBAC3B,OAAO,GAAG,EAAE;oBACV,gBAAgB,EAAE,CAAC;gBACrB,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,6BAA6B,EAAE,GAAG;aACnC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,IAAI,iBAAiB,GAA4B,IAAI,CAAC;IAEtD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC/D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;YAED,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACnD,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;YAC1C,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAEhC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAU,EAAE,EAAE;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC/B,iBAAiB,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,4BAA4B;gBACnC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YAED,oCAAoC;YACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qDAAqD,EAAE,EAAE,GAAG,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,uCAAuC;gBAC9C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAGtD,cAAc;IACd,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAC,cAAc,KAAG,CAAC,CAAC,CAAC;IAEzD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEpD,6DAA6D;IAC7D,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YAEjE,sCAAsC;YACtC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;oBAC/B,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,yBAAyB;QACzB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,mBAAmB,EAAE,CAAC;IAEtB,sCAAsC;IACtC,eAAe,CAAC,kBAAkB,EAAE,CAAC;IAErC,KAAK,CAAC;QACJ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,IAAI,CAAC,CAAC;AAC3E,CAAC"}
@@ -129,7 +129,7 @@ class SimpleLivePreviewManager {
129
129
  toggleClaudeVisibility() {
130
130
  this.isClaudeHidden = !this.isClaudeHidden;
131
131
 
132
- const terminalPane = document.getElementById('terminal-pane');
132
+ const terminalPane = document.getElementById('sidebar-pane');
133
133
  const previewPane = document.getElementById(this.id);
134
134
 
135
135
  if (terminalPane && previewPane) {
@@ -1109,26 +1109,38 @@ video {
1109
1109
  position: relative;
1110
1110
  }
1111
1111
 
1112
+ .mb-4 {
1113
+ margin-bottom: 1rem;
1114
+ }
1115
+
1116
+ .mb-6 {
1117
+ margin-bottom: 1.5rem;
1118
+ }
1119
+
1112
1120
  .mb-8 {
1113
1121
  margin-bottom: 2rem;
1114
1122
  }
1115
1123
 
1116
- .ml-0 {
1117
- margin-left: 0px;
1124
+ .ml-1 {
1125
+ margin-left: 0.25rem;
1118
1126
  }
1119
1127
 
1120
1128
  .ml-2 {
1121
1129
  margin-left: 0.5rem;
1122
1130
  }
1123
1131
 
1124
- .mr-3 {
1125
- margin-right: 0.75rem;
1132
+ .mr-2 {
1133
+ margin-right: 0.5rem;
1126
1134
  }
1127
1135
 
1128
1136
  .block {
1129
1137
  display: block;
1130
1138
  }
1131
1139
 
1140
+ .inline-block {
1141
+ display: inline-block;
1142
+ }
1143
+
1132
1144
  .flex {
1133
1145
  display: flex;
1134
1146
  }
@@ -1165,6 +1177,10 @@ video {
1165
1177
  width: 100%;
1166
1178
  }
1167
1179
 
1180
+ .max-w-2xl {
1181
+ max-width: 42rem;
1182
+ }
1183
+
1168
1184
  .flex-1 {
1169
1185
  flex: 1 1 0%;
1170
1186
  }
@@ -1183,6 +1199,10 @@ video {
1183
1199
  animation: spin 1s linear infinite;
1184
1200
  }
1185
1201
 
1202
+ .cursor-not-allowed {
1203
+ cursor: not-allowed;
1204
+ }
1205
+
1186
1206
  .resize {
1187
1207
  resize: both;
1188
1208
  }
@@ -1203,14 +1223,28 @@ video {
1203
1223
  gap: 0.5rem;
1204
1224
  }
1205
1225
 
1226
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
1227
+ --tw-space-y-reverse: 0;
1228
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
1229
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
1230
+ }
1231
+
1206
1232
  .overflow-hidden {
1207
1233
  overflow: hidden;
1208
1234
  }
1209
1235
 
1236
+ .rounded {
1237
+ border-radius: 0.25rem;
1238
+ }
1239
+
1210
1240
  .rounded-full {
1211
1241
  border-radius: 9999px;
1212
1242
  }
1213
1243
 
1244
+ .rounded-lg {
1245
+ border-radius: 0.5rem;
1246
+ }
1247
+
1214
1248
  .rounded-md {
1215
1249
  border-radius: 0.375rem;
1216
1250
  }
@@ -1223,6 +1257,10 @@ video {
1223
1257
  border-width: 0px;
1224
1258
  }
1225
1259
 
1260
+ .border-2 {
1261
+ border-width: 2px;
1262
+ }
1263
+
1226
1264
  .border-b {
1227
1265
  border-bottom-width: 1px;
1228
1266
  }
@@ -1231,14 +1269,29 @@ video {
1231
1269
  border-right-width: 1px;
1232
1270
  }
1233
1271
 
1234
- .border-gray-200 {
1272
+ .border-\[\#3c3c3c\] {
1235
1273
  --tw-border-opacity: 1;
1236
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
1274
+ border-color: rgb(60 60 60 / var(--tw-border-opacity, 1));
1237
1275
  }
1238
1276
 
1239
- .border-gray-300 {
1277
+ .border-green-600 {
1240
1278
  --tw-border-opacity: 1;
1241
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1279
+ border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));
1280
+ }
1281
+
1282
+ .bg-\[\#1e1e1e\] {
1283
+ --tw-bg-opacity: 1;
1284
+ background-color: rgb(30 30 30 / var(--tw-bg-opacity, 1));
1285
+ }
1286
+
1287
+ .bg-\[\#252526\] {
1288
+ --tw-bg-opacity: 1;
1289
+ background-color: rgb(37 37 38 / var(--tw-bg-opacity, 1));
1290
+ }
1291
+
1292
+ .bg-\[\#2d2d30\] {
1293
+ --tw-bg-opacity: 1;
1294
+ background-color: rgb(45 45 48 / var(--tw-bg-opacity, 1));
1242
1295
  }
1243
1296
 
1244
1297
  .bg-black {
@@ -1246,6 +1299,11 @@ video {
1246
1299
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
1247
1300
  }
1248
1301
 
1302
+ .bg-gray-200 {
1303
+ --tw-bg-opacity: 1;
1304
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
1305
+ }
1306
+
1249
1307
  .bg-gray-50 {
1250
1308
  --tw-bg-opacity: 1;
1251
1309
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
@@ -1256,6 +1314,11 @@ video {
1256
1314
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
1257
1315
  }
1258
1316
 
1317
+ .bg-green-600 {
1318
+ --tw-bg-opacity: 1;
1319
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
1320
+ }
1321
+
1259
1322
  .bg-transparent {
1260
1323
  background-color: transparent;
1261
1324
  }
@@ -1277,9 +1340,32 @@ video {
1277
1340
  padding: 0.75rem;
1278
1341
  }
1279
1342
 
1280
- .px-4 {
1281
- padding-left: 1rem;
1282
- padding-right: 1rem;
1343
+ .p-4 {
1344
+ padding: 1rem;
1345
+ }
1346
+
1347
+ .p-8 {
1348
+ padding: 2rem;
1349
+ }
1350
+
1351
+ .px-2 {
1352
+ padding-left: 0.5rem;
1353
+ padding-right: 0.5rem;
1354
+ }
1355
+
1356
+ .px-3 {
1357
+ padding-left: 0.75rem;
1358
+ padding-right: 0.75rem;
1359
+ }
1360
+
1361
+ .px-6 {
1362
+ padding-left: 1.5rem;
1363
+ padding-right: 1.5rem;
1364
+ }
1365
+
1366
+ .py-1 {
1367
+ padding-top: 0.25rem;
1368
+ padding-bottom: 0.25rem;
1283
1369
  }
1284
1370
 
1285
1371
  .py-2 {
@@ -1287,6 +1373,15 @@ video {
1287
1373
  padding-bottom: 0.5rem;
1288
1374
  }
1289
1375
 
1376
+ .py-3 {
1377
+ padding-top: 0.75rem;
1378
+ padding-bottom: 0.75rem;
1379
+ }
1380
+
1381
+ .text-center {
1382
+ text-align: center;
1383
+ }
1384
+
1290
1385
  .font-sans {
1291
1386
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
1292
1387
  }
@@ -1296,15 +1391,29 @@ video {
1296
1391
  line-height: 2.5rem;
1297
1392
  }
1298
1393
 
1394
+ .text-6xl {
1395
+ font-size: 3.75rem;
1396
+ line-height: 1;
1397
+ }
1398
+
1299
1399
  .text-sm {
1300
1400
  font-size: 0.875rem;
1301
1401
  line-height: 1.25rem;
1302
1402
  }
1303
1403
 
1404
+ .text-xl {
1405
+ font-size: 1.25rem;
1406
+ line-height: 1.75rem;
1407
+ }
1408
+
1304
1409
  .font-bold {
1305
1410
  font-weight: 700;
1306
1411
  }
1307
1412
 
1413
+ .font-semibold {
1414
+ font-weight: 600;
1415
+ }
1416
+
1308
1417
  .italic {
1309
1418
  font-style: italic;
1310
1419
  }
@@ -1313,14 +1422,19 @@ video {
1313
1422
  line-height: 1.25;
1314
1423
  }
1315
1424
 
1425
+ .text-\[\#cccccc\] {
1426
+ --tw-text-opacity: 1;
1427
+ color: rgb(204 204 204 / var(--tw-text-opacity, 1));
1428
+ }
1429
+
1316
1430
  .text-black {
1317
1431
  --tw-text-opacity: 1;
1318
1432
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1319
1433
  }
1320
1434
 
1321
- .text-gray-400 {
1435
+ .text-gray-500 {
1322
1436
  --tw-text-opacity: 1;
1323
- color: rgb(156 163 175 / var(--tw-text-opacity, 1));
1437
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
1324
1438
  }
1325
1439
 
1326
1440
  .text-gray-600 {
@@ -1328,9 +1442,9 @@ video {
1328
1442
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
1329
1443
  }
1330
1444
 
1331
- .text-gray-700 {
1445
+ .text-gray-800 {
1332
1446
  --tw-text-opacity: 1;
1333
- color: rgb(55 65 81 / var(--tw-text-opacity, 1));
1447
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
1334
1448
  }
1335
1449
 
1336
1450
  .text-white {
@@ -1338,6 +1452,12 @@ video {
1338
1452
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1339
1453
  }
1340
1454
 
1455
+ .shadow-lg {
1456
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1457
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
1458
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1459
+ }
1460
+
1341
1461
  .filter {
1342
1462
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1343
1463
  }
@@ -1358,35 +1478,19 @@ video {
1358
1478
  transition-duration: 300ms;
1359
1479
  }
1360
1480
 
1361
- .focus-within\:border-blue-500:focus-within {
1481
+ .focus-within\:border-\[\#0e639c\]:focus-within {
1362
1482
  --tw-border-opacity: 1;
1363
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
1364
- }
1365
-
1366
- .focus-within\:bg-white:focus-within {
1367
- --tw-bg-opacity: 1;
1368
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1369
- }
1370
-
1371
- .focus-within\:ring-1:focus-within {
1372
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1373
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1374
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1483
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1375
1484
  }
1376
1485
 
1377
- .focus-within\:ring-blue-500:focus-within {
1378
- --tw-ring-opacity: 1;
1379
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
1380
- }
1381
-
1382
- .hover\:border-gray-400:hover {
1486
+ .hover\:border-\[\#0e639c\]:hover {
1383
1487
  --tw-border-opacity: 1;
1384
- border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
1488
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1385
1489
  }
1386
1490
 
1387
- .hover\:bg-gray-100:hover {
1491
+ .hover\:bg-\[\#3c3c3c\]:hover {
1388
1492
  --tw-bg-opacity: 1;
1389
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1493
+ background-color: rgb(60 60 60 / var(--tw-bg-opacity, 1));
1390
1494
  }
1391
1495
 
1392
1496
  .hover\:bg-gray-800:hover {
@@ -1394,12 +1498,21 @@ video {
1394
1498
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
1395
1499
  }
1396
1500
 
1397
- .hover\:bg-white:hover {
1501
+ .hover\:bg-green-700:hover {
1398
1502
  --tw-bg-opacity: 1;
1399
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1503
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
1504
+ }
1505
+
1506
+ .hover\:text-white:hover {
1507
+ --tw-text-opacity: 1;
1508
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1400
1509
  }
1401
1510
 
1402
1511
  .focus\:outline-none:focus {
1403
1512
  outline: 2px solid transparent;
1404
1513
  outline-offset: 2px;
1405
1514
  }
1515
+
1516
+ .disabled\:opacity-50:disabled {
1517
+ opacity: 0.5;
1518
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "treesap",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "AI Agent Framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,7 +37,7 @@
37
37
  "commander": "^12.1.0",
38
38
  "dotenv": "^16.4.7",
39
39
  "hono": "^4.9.1",
40
- "node-pty": "^1.0.0"
40
+ "node-pty": "^1.1.0-beta34"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.15.15",
@@ -14,67 +14,16 @@ export function SimpleLivePreview({ id = "simple-preview", previewPort = 5173 }:
14
14
  <script type="module" src="/components/SimpleLivePreview.js"></script>
15
15
  </template>
16
16
 
17
- <div id={id} class="flex-1 h-full flex flex-col bg-white transition-all duration-300">
18
- {/* URL Bar */}
19
- <div class="p-3 border-b border-gray-200 bg-white">
20
- <div class="flex items-center gap-2">
21
- <button
22
- id={`${id}-hide-claude-btn`}
23
- class="p-2 hover:bg-gray-100 rounded-md transition-colors flex items-center"
24
- title="Hide Terminal"
25
- >
26
- <iconify-icon id={`${id}-hide-claude-icon`} icon="ph:sidebar-simple" width="16" height="16"></iconify-icon>
27
- </button>
28
- <button
29
- type="button"
30
- id={`${id}-refresh-btn`}
31
- class="p-2 hover:bg-gray-100 rounded-md transition-colors flex-shrink-0"
32
- title="Reload"
33
- >
34
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
35
- <polyline points="23 4 23 10 17 10"></polyline>
36
- <polyline points="1 20 1 14 7 14"></polyline>
37
- <path d="m3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path>
38
- </svg>
39
- </button>
40
- <div class="flex-1 flex items-center bg-gray-50 border border-gray-300 rounded-full px-4 py-2 hover:bg-white hover:border-gray-400 focus-within:bg-white focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 transition-all">
41
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-400 mr-3">
42
- <circle cx="12" cy="12" r="3"></circle>
43
- <path d="M12 1v6M12 17v6M4.22 4.22l4.24 4.24M15.54 15.54l4.24 4.24M1 12h6M17 12h6M4.22 19.78l4.24-4.24M15.54 8.46l4.24-4.24"></path>
44
- </svg>
45
- <span class="text-gray-600 text-sm">{baseUrl}</span>
46
- <input
47
- id={`${id}-url-input`}
48
- type="text"
49
- placeholder="path"
50
- defaultValue=""
51
- class="flex-1 bg-transparent text-sm focus:outline-none text-gray-700 ml-0"
52
- />
53
- <button
54
- type="button"
55
- id={`${id}-load-btn`}
56
- class="ml-2 p-1 hover:bg-gray-100 rounded-full transition-colors flex-shrink-0"
57
- title="Go"
58
- >
59
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
60
- <polyline points="9 18 15 12 9 6"></polyline>
61
- </svg>
62
- </button>
63
- </div>
64
- </div>
65
- </div>
66
-
67
- {/* Iframe */}
68
- <div class="flex-1 overflow-hidden">
69
- <iframe
70
- id={`${id}-iframe`}
71
- src={defaultSrc}
72
- class="w-full h-full border-0 bg-white block"
73
- title="Live Preview"
74
- sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-top-navigation allow-downloads allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-storage-access-by-user-activation"
75
- data-preview-port={previewPort}
76
- ></iframe>
77
- </div>
17
+ <div id={id} class="flex-1 h-full bg-white transition-all duration-300">
18
+ {/* Iframe - Full Height */}
19
+ <iframe
20
+ id={`${id}-iframe`}
21
+ src={defaultSrc}
22
+ class="w-full h-full border-0 bg-white block"
23
+ title="Live Preview"
24
+ sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-top-navigation allow-downloads allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-storage-access-by-user-activation"
25
+ data-preview-port={previewPort}
26
+ ></iframe>
78
27
  </div>
79
28
  </sapling-island>
80
29
  );
package/src/index.tsx CHANGED
@@ -6,6 +6,7 @@ export { startServer, type TreesapConfig };
6
6
  // Export components and layouts for library usage
7
7
  export { default as Layout } from './layouts/Layout.js';
8
8
  export { default as NotFoundLayout } from './layouts/NotFoundLayout.js';
9
- export { Home } from './pages/Home.js';
9
+ export { Welcome } from './pages/Welcome.js';
10
+ export { Code } from './pages/Code.js';
10
11
 
11
12
  export { DevServerManager } from './services/dev-server.js';
@@ -0,0 +1,94 @@
1
+ import Layout from "../layouts/Layout.js";
2
+ import { Terminal as TerminalComponent } from "../components/Terminal.js";
3
+ import { SimpleLivePreview } from "../components/SimpleLivePreview.js";
4
+
5
+ interface TerminalProps {
6
+ previewPort?: number;
7
+ workingDirectory?: string;
8
+ }
9
+
10
+ export function Code({ previewPort = 1234, workingDirectory }: TerminalProps) {
11
+ return (
12
+ <Layout title="Code Editor">
13
+ <div id="code-container" class="h-screen flex bg-[#1e1e1e]">
14
+ {/* Left Pane - Tabbed Sidebar */}
15
+ <div id="sidebar-pane" class="w-2/5 border-r border-[#3c3c3c] transition-all duration-300 flex flex-col bg-[#252526]">
16
+ {/* Back to Home */}
17
+ <div class="p-3 border-b border-[#3c3c3c]">
18
+ <a href="/" class="text-[#cccccc] hover:text-white text-sm">← Back to Home</a>
19
+ </div>
20
+
21
+ {/* Preview Controls */}
22
+ <div class="p-3 border-b border-[#3c3c3c] bg-[#2d2d30]">
23
+ <div class="flex items-center gap-2">
24
+ <button
25
+ id="live-preview-hide-claude-btn"
26
+ class="p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex items-center text-[#cccccc] hover:text-white"
27
+ title="Hide Sidebar"
28
+ >
29
+ <iconify-icon id="live-preview-hide-claude-icon" icon="ph:sidebar-simple" width="16" height="16"></iconify-icon>
30
+ </button>
31
+ <button
32
+ type="button"
33
+ id="live-preview-refresh-btn"
34
+ class="p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex-shrink-0 text-[#cccccc] hover:text-white"
35
+ title="Reload"
36
+ >
37
+ <iconify-icon icon="tabler:refresh" width="16" height="16"></iconify-icon>
38
+ </button>
39
+ <div class="flex-1 flex items-center bg-[#1e1e1e] border border-[#3c3c3c] rounded px-3 py-2 hover:border-[#0e639c] focus-within:border-[#0e639c] transition-all">
40
+ <iconify-icon icon="tabler:world" width="16" height="16" class="text-[#cccccc] mr-2"></iconify-icon>
41
+ <span class="text-[#cccccc] text-sm">localhost:{previewPort}/</span>
42
+ <input
43
+ id="live-preview-url-input"
44
+ type="text"
45
+ placeholder="path"
46
+ defaultValue=""
47
+ class="flex-1 bg-transparent text-sm focus:outline-none text-[#cccccc] ml-1"
48
+ />
49
+ <button
50
+ type="button"
51
+ id="live-preview-load-btn"
52
+ class="ml-2 p-1 hover:bg-[#3c3c3c] rounded transition-colors flex-shrink-0 text-[#cccccc] hover:text-white"
53
+ title="Go"
54
+ >
55
+ <iconify-icon icon="tabler:chevron-right" width="16" height="16"></iconify-icon>
56
+ </button>
57
+ </div>
58
+ </div>
59
+ </div>
60
+
61
+ {/* Tab Headers */}
62
+ <div class="flex py-2">
63
+ <button class="px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center">
64
+ <iconify-icon icon="tabler:folder" width="20" height="20"></iconify-icon>
65
+ </button>
66
+ <button class="px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center">
67
+ <iconify-icon icon="tabler:search" width="20" height="20"></iconify-icon>
68
+ </button>
69
+ <button class="px-3 py-2 text-white flex items-center justify-center">
70
+ <iconify-icon icon="tabler:terminal" width="20" height="20"></iconify-icon>
71
+ </button>
72
+ <button class="px-3 py-2 text-[#cccccc] disabled:opacity-50 cursor-not-allowed flex items-center justify-center">
73
+ <iconify-icon icon="tabler:git-merge" width="20" height="20"></iconify-icon>
74
+ </button>
75
+ </div>
76
+
77
+ {/* Tab Content */}
78
+ <div class="flex-1 overflow-hidden bg-[#1e1e1e]">
79
+ {/* Terminal Tab Content (Active) */}
80
+ <div class="h-full p-4">
81
+ <TerminalComponent
82
+ id="terminal"
83
+ sessionId="shared-terminal-session"
84
+ />
85
+ </div>
86
+ </div>
87
+ </div>
88
+
89
+ {/* Right Pane - Live Preview */}
90
+ <SimpleLivePreview id="live-preview" previewPort={previewPort} />
91
+ </div>
92
+ </Layout>
93
+ );
94
+ }
@@ -0,0 +1,31 @@
1
+ import Layout from "../layouts/Layout.js";
2
+
3
+ export function Welcome() {
4
+ return (
5
+ <Layout title="Welcome to Treesap">
6
+ <div class="h-screen flex flex-col items-center justify-center bg-gray-50 p-8">
7
+ <div class="text-center max-w-2xl">
8
+ <h1 class="text-6xl font-bold text-gray-800 mb-4">🌳</h1>
9
+ <h2 class="text-4xl font-bold text-gray-800 mb-6">Welcome to Treesap</h2>
10
+ <p class="text-xl text-gray-600 mb-8">
11
+ Your integrated development environment with terminal and live preview.
12
+ </p>
13
+
14
+ <div class="space-y-4">
15
+ <a
16
+ href="/code"
17
+ class="inline-block bg-green-600 hover:bg-green-700 text-white font-semibold py-3 px-6 rounded-lg transition-colors shadow-lg border-2 border-green-600"
18
+ style="background-color: #16a34a !important; color: white !important; text-decoration: none !important;"
19
+ >
20
+ Start Coding →
21
+ </a>
22
+
23
+ <div class="text-gray-500 text-sm">
24
+ or navigate to <code class="bg-gray-200 px-2 py-1 rounded">/code</code> to begin
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </Layout>
30
+ );
31
+ }
package/src/server.tsx CHANGED
@@ -2,7 +2,8 @@
2
2
  import { Hono, type Context } from "hono";
3
3
  import { serveStatic } from "@hono/node-server/serve-static";
4
4
  import NotFoundLayout from "./layouts/NotFoundLayout.js";
5
- import { Home } from "./pages/Home.js";
5
+ import { Welcome } from "./pages/Welcome.js";
6
+ import { Code } from "./pages/Code.js";
6
7
  import { DevServerManager } from "./services/dev-server.js";
7
8
  import { TerminalService } from "./services/terminal.js";
8
9
  import * as path from 'node:path';
@@ -50,13 +51,22 @@ export async function startServer(config: TreesapConfig & { autoStartDev?: boole
50
51
  const moduleDir = path.dirname(fileURLToPath(import.meta.url));
51
52
  const moduleStaticRoot = path.join(moduleDir, 'static');
52
53
 
53
- // Home page
54
+ // Welcome page (default)
54
55
  app.get("/", (c: Context) => {
55
56
  // Additional cache prevention headers
56
57
  c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
57
58
  c.header('Pragma', 'no-cache');
58
59
  c.header('Expires', '0');
59
- return c.html(<Home previewPort={previewPort} />);
60
+ return c.html(<Welcome />);
61
+ });
62
+
63
+ // Code page
64
+ app.get("/code", (c: Context) => {
65
+ // Additional cache prevention headers
66
+ c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
67
+ c.header('Pragma', 'no-cache');
68
+ c.header('Expires', '0');
69
+ return c.html(<Code previewPort={previewPort} />);
60
70
  });
61
71
 
62
72
  // Claude page
@@ -65,7 +75,7 @@ export async function startServer(config: TreesapConfig & { autoStartDev?: boole
65
75
  c.header('Cache-Control', 'no-cache, no-store, must-revalidate, private');
66
76
  c.header('Pragma', 'no-cache');
67
77
  c.header('Expires', '0');
68
- return c.html(<Home previewPort={previewPort} workingDirectory={projectRoot} />);
78
+ return c.html(<Code previewPort={previewPort} workingDirectory={projectRoot} />);
69
79
  });
70
80
 
71
81
 
@@ -129,7 +129,7 @@ class SimpleLivePreviewManager {
129
129
  toggleClaudeVisibility() {
130
130
  this.isClaudeHidden = !this.isClaudeHidden;
131
131
 
132
- const terminalPane = document.getElementById('terminal-pane');
132
+ const terminalPane = document.getElementById('sidebar-pane');
133
133
  const previewPane = document.getElementById(this.id);
134
134
 
135
135
  if (terminalPane && previewPane) {
@@ -1109,26 +1109,38 @@ video {
1109
1109
  position: relative;
1110
1110
  }
1111
1111
 
1112
+ .mb-4 {
1113
+ margin-bottom: 1rem;
1114
+ }
1115
+
1116
+ .mb-6 {
1117
+ margin-bottom: 1.5rem;
1118
+ }
1119
+
1112
1120
  .mb-8 {
1113
1121
  margin-bottom: 2rem;
1114
1122
  }
1115
1123
 
1116
- .ml-0 {
1117
- margin-left: 0px;
1124
+ .ml-1 {
1125
+ margin-left: 0.25rem;
1118
1126
  }
1119
1127
 
1120
1128
  .ml-2 {
1121
1129
  margin-left: 0.5rem;
1122
1130
  }
1123
1131
 
1124
- .mr-3 {
1125
- margin-right: 0.75rem;
1132
+ .mr-2 {
1133
+ margin-right: 0.5rem;
1126
1134
  }
1127
1135
 
1128
1136
  .block {
1129
1137
  display: block;
1130
1138
  }
1131
1139
 
1140
+ .inline-block {
1141
+ display: inline-block;
1142
+ }
1143
+
1132
1144
  .flex {
1133
1145
  display: flex;
1134
1146
  }
@@ -1165,6 +1177,10 @@ video {
1165
1177
  width: 100%;
1166
1178
  }
1167
1179
 
1180
+ .max-w-2xl {
1181
+ max-width: 42rem;
1182
+ }
1183
+
1168
1184
  .flex-1 {
1169
1185
  flex: 1 1 0%;
1170
1186
  }
@@ -1183,6 +1199,10 @@ video {
1183
1199
  animation: spin 1s linear infinite;
1184
1200
  }
1185
1201
 
1202
+ .cursor-not-allowed {
1203
+ cursor: not-allowed;
1204
+ }
1205
+
1186
1206
  .resize {
1187
1207
  resize: both;
1188
1208
  }
@@ -1203,14 +1223,28 @@ video {
1203
1223
  gap: 0.5rem;
1204
1224
  }
1205
1225
 
1226
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
1227
+ --tw-space-y-reverse: 0;
1228
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
1229
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
1230
+ }
1231
+
1206
1232
  .overflow-hidden {
1207
1233
  overflow: hidden;
1208
1234
  }
1209
1235
 
1236
+ .rounded {
1237
+ border-radius: 0.25rem;
1238
+ }
1239
+
1210
1240
  .rounded-full {
1211
1241
  border-radius: 9999px;
1212
1242
  }
1213
1243
 
1244
+ .rounded-lg {
1245
+ border-radius: 0.5rem;
1246
+ }
1247
+
1214
1248
  .rounded-md {
1215
1249
  border-radius: 0.375rem;
1216
1250
  }
@@ -1223,6 +1257,10 @@ video {
1223
1257
  border-width: 0px;
1224
1258
  }
1225
1259
 
1260
+ .border-2 {
1261
+ border-width: 2px;
1262
+ }
1263
+
1226
1264
  .border-b {
1227
1265
  border-bottom-width: 1px;
1228
1266
  }
@@ -1231,14 +1269,29 @@ video {
1231
1269
  border-right-width: 1px;
1232
1270
  }
1233
1271
 
1234
- .border-gray-200 {
1272
+ .border-\[\#3c3c3c\] {
1235
1273
  --tw-border-opacity: 1;
1236
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
1274
+ border-color: rgb(60 60 60 / var(--tw-border-opacity, 1));
1237
1275
  }
1238
1276
 
1239
- .border-gray-300 {
1277
+ .border-green-600 {
1240
1278
  --tw-border-opacity: 1;
1241
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1279
+ border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));
1280
+ }
1281
+
1282
+ .bg-\[\#1e1e1e\] {
1283
+ --tw-bg-opacity: 1;
1284
+ background-color: rgb(30 30 30 / var(--tw-bg-opacity, 1));
1285
+ }
1286
+
1287
+ .bg-\[\#252526\] {
1288
+ --tw-bg-opacity: 1;
1289
+ background-color: rgb(37 37 38 / var(--tw-bg-opacity, 1));
1290
+ }
1291
+
1292
+ .bg-\[\#2d2d30\] {
1293
+ --tw-bg-opacity: 1;
1294
+ background-color: rgb(45 45 48 / var(--tw-bg-opacity, 1));
1242
1295
  }
1243
1296
 
1244
1297
  .bg-black {
@@ -1246,6 +1299,11 @@ video {
1246
1299
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
1247
1300
  }
1248
1301
 
1302
+ .bg-gray-200 {
1303
+ --tw-bg-opacity: 1;
1304
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
1305
+ }
1306
+
1249
1307
  .bg-gray-50 {
1250
1308
  --tw-bg-opacity: 1;
1251
1309
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
@@ -1256,6 +1314,11 @@ video {
1256
1314
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
1257
1315
  }
1258
1316
 
1317
+ .bg-green-600 {
1318
+ --tw-bg-opacity: 1;
1319
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
1320
+ }
1321
+
1259
1322
  .bg-transparent {
1260
1323
  background-color: transparent;
1261
1324
  }
@@ -1277,9 +1340,32 @@ video {
1277
1340
  padding: 0.75rem;
1278
1341
  }
1279
1342
 
1280
- .px-4 {
1281
- padding-left: 1rem;
1282
- padding-right: 1rem;
1343
+ .p-4 {
1344
+ padding: 1rem;
1345
+ }
1346
+
1347
+ .p-8 {
1348
+ padding: 2rem;
1349
+ }
1350
+
1351
+ .px-2 {
1352
+ padding-left: 0.5rem;
1353
+ padding-right: 0.5rem;
1354
+ }
1355
+
1356
+ .px-3 {
1357
+ padding-left: 0.75rem;
1358
+ padding-right: 0.75rem;
1359
+ }
1360
+
1361
+ .px-6 {
1362
+ padding-left: 1.5rem;
1363
+ padding-right: 1.5rem;
1364
+ }
1365
+
1366
+ .py-1 {
1367
+ padding-top: 0.25rem;
1368
+ padding-bottom: 0.25rem;
1283
1369
  }
1284
1370
 
1285
1371
  .py-2 {
@@ -1287,6 +1373,15 @@ video {
1287
1373
  padding-bottom: 0.5rem;
1288
1374
  }
1289
1375
 
1376
+ .py-3 {
1377
+ padding-top: 0.75rem;
1378
+ padding-bottom: 0.75rem;
1379
+ }
1380
+
1381
+ .text-center {
1382
+ text-align: center;
1383
+ }
1384
+
1290
1385
  .font-sans {
1291
1386
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
1292
1387
  }
@@ -1296,15 +1391,29 @@ video {
1296
1391
  line-height: 2.5rem;
1297
1392
  }
1298
1393
 
1394
+ .text-6xl {
1395
+ font-size: 3.75rem;
1396
+ line-height: 1;
1397
+ }
1398
+
1299
1399
  .text-sm {
1300
1400
  font-size: 0.875rem;
1301
1401
  line-height: 1.25rem;
1302
1402
  }
1303
1403
 
1404
+ .text-xl {
1405
+ font-size: 1.25rem;
1406
+ line-height: 1.75rem;
1407
+ }
1408
+
1304
1409
  .font-bold {
1305
1410
  font-weight: 700;
1306
1411
  }
1307
1412
 
1413
+ .font-semibold {
1414
+ font-weight: 600;
1415
+ }
1416
+
1308
1417
  .italic {
1309
1418
  font-style: italic;
1310
1419
  }
@@ -1313,14 +1422,19 @@ video {
1313
1422
  line-height: 1.25;
1314
1423
  }
1315
1424
 
1425
+ .text-\[\#cccccc\] {
1426
+ --tw-text-opacity: 1;
1427
+ color: rgb(204 204 204 / var(--tw-text-opacity, 1));
1428
+ }
1429
+
1316
1430
  .text-black {
1317
1431
  --tw-text-opacity: 1;
1318
1432
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1319
1433
  }
1320
1434
 
1321
- .text-gray-400 {
1435
+ .text-gray-500 {
1322
1436
  --tw-text-opacity: 1;
1323
- color: rgb(156 163 175 / var(--tw-text-opacity, 1));
1437
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
1324
1438
  }
1325
1439
 
1326
1440
  .text-gray-600 {
@@ -1328,9 +1442,9 @@ video {
1328
1442
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
1329
1443
  }
1330
1444
 
1331
- .text-gray-700 {
1445
+ .text-gray-800 {
1332
1446
  --tw-text-opacity: 1;
1333
- color: rgb(55 65 81 / var(--tw-text-opacity, 1));
1447
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
1334
1448
  }
1335
1449
 
1336
1450
  .text-white {
@@ -1338,6 +1452,12 @@ video {
1338
1452
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1339
1453
  }
1340
1454
 
1455
+ .shadow-lg {
1456
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1457
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
1458
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1459
+ }
1460
+
1341
1461
  .filter {
1342
1462
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1343
1463
  }
@@ -1358,35 +1478,19 @@ video {
1358
1478
  transition-duration: 300ms;
1359
1479
  }
1360
1480
 
1361
- .focus-within\:border-blue-500:focus-within {
1481
+ .focus-within\:border-\[\#0e639c\]:focus-within {
1362
1482
  --tw-border-opacity: 1;
1363
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
1364
- }
1365
-
1366
- .focus-within\:bg-white:focus-within {
1367
- --tw-bg-opacity: 1;
1368
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1369
- }
1370
-
1371
- .focus-within\:ring-1:focus-within {
1372
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1373
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1374
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1483
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1375
1484
  }
1376
1485
 
1377
- .focus-within\:ring-blue-500:focus-within {
1378
- --tw-ring-opacity: 1;
1379
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
1380
- }
1381
-
1382
- .hover\:border-gray-400:hover {
1486
+ .hover\:border-\[\#0e639c\]:hover {
1383
1487
  --tw-border-opacity: 1;
1384
- border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
1488
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1385
1489
  }
1386
1490
 
1387
- .hover\:bg-gray-100:hover {
1491
+ .hover\:bg-\[\#3c3c3c\]:hover {
1388
1492
  --tw-bg-opacity: 1;
1389
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1493
+ background-color: rgb(60 60 60 / var(--tw-bg-opacity, 1));
1390
1494
  }
1391
1495
 
1392
1496
  .hover\:bg-gray-800:hover {
@@ -1394,12 +1498,21 @@ video {
1394
1498
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
1395
1499
  }
1396
1500
 
1397
- .hover\:bg-white:hover {
1501
+ .hover\:bg-green-700:hover {
1398
1502
  --tw-bg-opacity: 1;
1399
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1503
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
1504
+ }
1505
+
1506
+ .hover\:text-white:hover {
1507
+ --tw-text-opacity: 1;
1508
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1400
1509
  }
1401
1510
 
1402
1511
  .focus\:outline-none:focus {
1403
1512
  outline: 2px solid transparent;
1404
1513
  outline-offset: 2px;
1405
1514
  }
1515
+
1516
+ .disabled\:opacity-50:disabled {
1517
+ opacity: 0.5;
1518
+ }
@@ -1,27 +0,0 @@
1
- import Layout from "../layouts/Layout.js";
2
- import { Terminal as TerminalComponent } from "../components/Terminal.js";
3
- import { SimpleLivePreview } from "../components/SimpleLivePreview.js";
4
-
5
- interface TerminalProps {
6
- previewPort?: number;
7
- workingDirectory?: string;
8
- }
9
-
10
- export function Home({ previewPort = 1234, workingDirectory }: TerminalProps) {
11
- return (
12
- <Layout title="Terminal">
13
- <div id="terminal-container" class="h-screen flex">
14
- {/* Left Pane - Terminal */}
15
- <div id="terminal-pane" class="w-2/5 border-r border-gray-200 transition-all duration-300">
16
- <TerminalComponent
17
- id="terminal"
18
- sessionId="shared-terminal-session"
19
- />
20
- </div>
21
-
22
- {/* Right Pane - Live Preview */}
23
- <SimpleLivePreview id="live-preview" previewPort={previewPort} />
24
- </div>
25
- </Layout>
26
- );
27
- }