treesap 0.1.3 → 0.1.5

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-plus 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,6FAA6F,aAExH,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":";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,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,YAAY;IACZ,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,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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.tsx"],"names":[],"mappings":"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"}
@@ -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
  }
@@ -1157,14 +1169,14 @@ video {
1157
1169
  width: 2.5rem;
1158
1170
  }
1159
1171
 
1160
- .w-2\/5 {
1161
- width: 40%;
1162
- }
1163
-
1164
1172
  .w-full {
1165
1173
  width: 100%;
1166
1174
  }
1167
1175
 
1176
+ .max-w-2xl {
1177
+ max-width: 42rem;
1178
+ }
1179
+
1168
1180
  .flex-1 {
1169
1181
  flex: 1 1 0%;
1170
1182
  }
@@ -1183,6 +1195,10 @@ video {
1183
1195
  animation: spin 1s linear infinite;
1184
1196
  }
1185
1197
 
1198
+ .cursor-not-allowed {
1199
+ cursor: not-allowed;
1200
+ }
1201
+
1186
1202
  .resize {
1187
1203
  resize: both;
1188
1204
  }
@@ -1203,14 +1219,28 @@ video {
1203
1219
  gap: 0.5rem;
1204
1220
  }
1205
1221
 
1222
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
1223
+ --tw-space-y-reverse: 0;
1224
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
1225
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
1226
+ }
1227
+
1206
1228
  .overflow-hidden {
1207
1229
  overflow: hidden;
1208
1230
  }
1209
1231
 
1232
+ .rounded {
1233
+ border-radius: 0.25rem;
1234
+ }
1235
+
1210
1236
  .rounded-full {
1211
1237
  border-radius: 9999px;
1212
1238
  }
1213
1239
 
1240
+ .rounded-lg {
1241
+ border-radius: 0.5rem;
1242
+ }
1243
+
1214
1244
  .rounded-md {
1215
1245
  border-radius: 0.375rem;
1216
1246
  }
@@ -1223,6 +1253,10 @@ video {
1223
1253
  border-width: 0px;
1224
1254
  }
1225
1255
 
1256
+ .border-2 {
1257
+ border-width: 2px;
1258
+ }
1259
+
1226
1260
  .border-b {
1227
1261
  border-bottom-width: 1px;
1228
1262
  }
@@ -1231,14 +1265,29 @@ video {
1231
1265
  border-right-width: 1px;
1232
1266
  }
1233
1267
 
1234
- .border-gray-200 {
1268
+ .border-\[\#3c3c3c\] {
1235
1269
  --tw-border-opacity: 1;
1236
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
1270
+ border-color: rgb(60 60 60 / var(--tw-border-opacity, 1));
1237
1271
  }
1238
1272
 
1239
- .border-gray-300 {
1273
+ .border-green-600 {
1240
1274
  --tw-border-opacity: 1;
1241
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1275
+ border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));
1276
+ }
1277
+
1278
+ .bg-\[\#1e1e1e\] {
1279
+ --tw-bg-opacity: 1;
1280
+ background-color: rgb(30 30 30 / var(--tw-bg-opacity, 1));
1281
+ }
1282
+
1283
+ .bg-\[\#252526\] {
1284
+ --tw-bg-opacity: 1;
1285
+ background-color: rgb(37 37 38 / var(--tw-bg-opacity, 1));
1286
+ }
1287
+
1288
+ .bg-\[\#2d2d30\] {
1289
+ --tw-bg-opacity: 1;
1290
+ background-color: rgb(45 45 48 / var(--tw-bg-opacity, 1));
1242
1291
  }
1243
1292
 
1244
1293
  .bg-black {
@@ -1246,6 +1295,11 @@ video {
1246
1295
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
1247
1296
  }
1248
1297
 
1298
+ .bg-gray-200 {
1299
+ --tw-bg-opacity: 1;
1300
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
1301
+ }
1302
+
1249
1303
  .bg-gray-50 {
1250
1304
  --tw-bg-opacity: 1;
1251
1305
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
@@ -1256,6 +1310,11 @@ video {
1256
1310
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
1257
1311
  }
1258
1312
 
1313
+ .bg-green-600 {
1314
+ --tw-bg-opacity: 1;
1315
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
1316
+ }
1317
+
1259
1318
  .bg-transparent {
1260
1319
  background-color: transparent;
1261
1320
  }
@@ -1277,9 +1336,32 @@ video {
1277
1336
  padding: 0.75rem;
1278
1337
  }
1279
1338
 
1280
- .px-4 {
1281
- padding-left: 1rem;
1282
- padding-right: 1rem;
1339
+ .p-4 {
1340
+ padding: 1rem;
1341
+ }
1342
+
1343
+ .p-8 {
1344
+ padding: 2rem;
1345
+ }
1346
+
1347
+ .px-2 {
1348
+ padding-left: 0.5rem;
1349
+ padding-right: 0.5rem;
1350
+ }
1351
+
1352
+ .px-3 {
1353
+ padding-left: 0.75rem;
1354
+ padding-right: 0.75rem;
1355
+ }
1356
+
1357
+ .px-6 {
1358
+ padding-left: 1.5rem;
1359
+ padding-right: 1.5rem;
1360
+ }
1361
+
1362
+ .py-1 {
1363
+ padding-top: 0.25rem;
1364
+ padding-bottom: 0.25rem;
1283
1365
  }
1284
1366
 
1285
1367
  .py-2 {
@@ -1287,6 +1369,15 @@ video {
1287
1369
  padding-bottom: 0.5rem;
1288
1370
  }
1289
1371
 
1372
+ .py-3 {
1373
+ padding-top: 0.75rem;
1374
+ padding-bottom: 0.75rem;
1375
+ }
1376
+
1377
+ .text-center {
1378
+ text-align: center;
1379
+ }
1380
+
1290
1381
  .font-sans {
1291
1382
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
1292
1383
  }
@@ -1296,15 +1387,29 @@ video {
1296
1387
  line-height: 2.5rem;
1297
1388
  }
1298
1389
 
1390
+ .text-6xl {
1391
+ font-size: 3.75rem;
1392
+ line-height: 1;
1393
+ }
1394
+
1299
1395
  .text-sm {
1300
1396
  font-size: 0.875rem;
1301
1397
  line-height: 1.25rem;
1302
1398
  }
1303
1399
 
1400
+ .text-xl {
1401
+ font-size: 1.25rem;
1402
+ line-height: 1.75rem;
1403
+ }
1404
+
1304
1405
  .font-bold {
1305
1406
  font-weight: 700;
1306
1407
  }
1307
1408
 
1409
+ .font-semibold {
1410
+ font-weight: 600;
1411
+ }
1412
+
1308
1413
  .italic {
1309
1414
  font-style: italic;
1310
1415
  }
@@ -1313,14 +1418,19 @@ video {
1313
1418
  line-height: 1.25;
1314
1419
  }
1315
1420
 
1421
+ .text-\[\#cccccc\] {
1422
+ --tw-text-opacity: 1;
1423
+ color: rgb(204 204 204 / var(--tw-text-opacity, 1));
1424
+ }
1425
+
1316
1426
  .text-black {
1317
1427
  --tw-text-opacity: 1;
1318
1428
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1319
1429
  }
1320
1430
 
1321
- .text-gray-400 {
1431
+ .text-gray-500 {
1322
1432
  --tw-text-opacity: 1;
1323
- color: rgb(156 163 175 / var(--tw-text-opacity, 1));
1433
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
1324
1434
  }
1325
1435
 
1326
1436
  .text-gray-600 {
@@ -1328,9 +1438,9 @@ video {
1328
1438
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
1329
1439
  }
1330
1440
 
1331
- .text-gray-700 {
1441
+ .text-gray-800 {
1332
1442
  --tw-text-opacity: 1;
1333
- color: rgb(55 65 81 / var(--tw-text-opacity, 1));
1443
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
1334
1444
  }
1335
1445
 
1336
1446
  .text-white {
@@ -1338,6 +1448,12 @@ video {
1338
1448
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1339
1449
  }
1340
1450
 
1451
+ .shadow-lg {
1452
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1453
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
1454
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1455
+ }
1456
+
1341
1457
  .filter {
1342
1458
  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
1459
  }
@@ -1358,35 +1474,19 @@ video {
1358
1474
  transition-duration: 300ms;
1359
1475
  }
1360
1476
 
1361
- .focus-within\:border-blue-500:focus-within {
1477
+ .focus-within\:border-\[\#0e639c\]:focus-within {
1362
1478
  --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);
1479
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1375
1480
  }
1376
1481
 
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 {
1482
+ .hover\:border-\[\#0e639c\]:hover {
1383
1483
  --tw-border-opacity: 1;
1384
- border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
1484
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1385
1485
  }
1386
1486
 
1387
- .hover\:bg-gray-100:hover {
1487
+ .hover\:bg-\[\#3c3c3c\]:hover {
1388
1488
  --tw-bg-opacity: 1;
1389
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1489
+ background-color: rgb(60 60 60 / var(--tw-bg-opacity, 1));
1390
1490
  }
1391
1491
 
1392
1492
  .hover\:bg-gray-800:hover {
@@ -1394,12 +1494,21 @@ video {
1394
1494
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
1395
1495
  }
1396
1496
 
1397
- .hover\:bg-white:hover {
1497
+ .hover\:bg-green-700:hover {
1398
1498
  --tw-bg-opacity: 1;
1399
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1499
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
1500
+ }
1501
+
1502
+ .hover\:text-white:hover {
1503
+ --tw-text-opacity: 1;
1504
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1400
1505
  }
1401
1506
 
1402
1507
  .focus\:outline-none:focus {
1403
1508
  outline: 2px solid transparent;
1404
1509
  outline-offset: 2px;
1405
1510
  }
1511
+
1512
+ .disabled\:opacity-50:disabled {
1513
+ opacity: 0.5;
1514
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "treesap",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "AI Agent Framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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-plus 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
  }
@@ -1157,14 +1169,14 @@ video {
1157
1169
  width: 2.5rem;
1158
1170
  }
1159
1171
 
1160
- .w-2\/5 {
1161
- width: 40%;
1162
- }
1163
-
1164
1172
  .w-full {
1165
1173
  width: 100%;
1166
1174
  }
1167
1175
 
1176
+ .max-w-2xl {
1177
+ max-width: 42rem;
1178
+ }
1179
+
1168
1180
  .flex-1 {
1169
1181
  flex: 1 1 0%;
1170
1182
  }
@@ -1183,6 +1195,10 @@ video {
1183
1195
  animation: spin 1s linear infinite;
1184
1196
  }
1185
1197
 
1198
+ .cursor-not-allowed {
1199
+ cursor: not-allowed;
1200
+ }
1201
+
1186
1202
  .resize {
1187
1203
  resize: both;
1188
1204
  }
@@ -1203,14 +1219,28 @@ video {
1203
1219
  gap: 0.5rem;
1204
1220
  }
1205
1221
 
1222
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
1223
+ --tw-space-y-reverse: 0;
1224
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
1225
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
1226
+ }
1227
+
1206
1228
  .overflow-hidden {
1207
1229
  overflow: hidden;
1208
1230
  }
1209
1231
 
1232
+ .rounded {
1233
+ border-radius: 0.25rem;
1234
+ }
1235
+
1210
1236
  .rounded-full {
1211
1237
  border-radius: 9999px;
1212
1238
  }
1213
1239
 
1240
+ .rounded-lg {
1241
+ border-radius: 0.5rem;
1242
+ }
1243
+
1214
1244
  .rounded-md {
1215
1245
  border-radius: 0.375rem;
1216
1246
  }
@@ -1223,6 +1253,10 @@ video {
1223
1253
  border-width: 0px;
1224
1254
  }
1225
1255
 
1256
+ .border-2 {
1257
+ border-width: 2px;
1258
+ }
1259
+
1226
1260
  .border-b {
1227
1261
  border-bottom-width: 1px;
1228
1262
  }
@@ -1231,14 +1265,29 @@ video {
1231
1265
  border-right-width: 1px;
1232
1266
  }
1233
1267
 
1234
- .border-gray-200 {
1268
+ .border-\[\#3c3c3c\] {
1235
1269
  --tw-border-opacity: 1;
1236
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
1270
+ border-color: rgb(60 60 60 / var(--tw-border-opacity, 1));
1237
1271
  }
1238
1272
 
1239
- .border-gray-300 {
1273
+ .border-green-600 {
1240
1274
  --tw-border-opacity: 1;
1241
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1275
+ border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));
1276
+ }
1277
+
1278
+ .bg-\[\#1e1e1e\] {
1279
+ --tw-bg-opacity: 1;
1280
+ background-color: rgb(30 30 30 / var(--tw-bg-opacity, 1));
1281
+ }
1282
+
1283
+ .bg-\[\#252526\] {
1284
+ --tw-bg-opacity: 1;
1285
+ background-color: rgb(37 37 38 / var(--tw-bg-opacity, 1));
1286
+ }
1287
+
1288
+ .bg-\[\#2d2d30\] {
1289
+ --tw-bg-opacity: 1;
1290
+ background-color: rgb(45 45 48 / var(--tw-bg-opacity, 1));
1242
1291
  }
1243
1292
 
1244
1293
  .bg-black {
@@ -1246,6 +1295,11 @@ video {
1246
1295
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
1247
1296
  }
1248
1297
 
1298
+ .bg-gray-200 {
1299
+ --tw-bg-opacity: 1;
1300
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
1301
+ }
1302
+
1249
1303
  .bg-gray-50 {
1250
1304
  --tw-bg-opacity: 1;
1251
1305
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
@@ -1256,6 +1310,11 @@ video {
1256
1310
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
1257
1311
  }
1258
1312
 
1313
+ .bg-green-600 {
1314
+ --tw-bg-opacity: 1;
1315
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
1316
+ }
1317
+
1259
1318
  .bg-transparent {
1260
1319
  background-color: transparent;
1261
1320
  }
@@ -1277,9 +1336,32 @@ video {
1277
1336
  padding: 0.75rem;
1278
1337
  }
1279
1338
 
1280
- .px-4 {
1281
- padding-left: 1rem;
1282
- padding-right: 1rem;
1339
+ .p-4 {
1340
+ padding: 1rem;
1341
+ }
1342
+
1343
+ .p-8 {
1344
+ padding: 2rem;
1345
+ }
1346
+
1347
+ .px-2 {
1348
+ padding-left: 0.5rem;
1349
+ padding-right: 0.5rem;
1350
+ }
1351
+
1352
+ .px-3 {
1353
+ padding-left: 0.75rem;
1354
+ padding-right: 0.75rem;
1355
+ }
1356
+
1357
+ .px-6 {
1358
+ padding-left: 1.5rem;
1359
+ padding-right: 1.5rem;
1360
+ }
1361
+
1362
+ .py-1 {
1363
+ padding-top: 0.25rem;
1364
+ padding-bottom: 0.25rem;
1283
1365
  }
1284
1366
 
1285
1367
  .py-2 {
@@ -1287,6 +1369,15 @@ video {
1287
1369
  padding-bottom: 0.5rem;
1288
1370
  }
1289
1371
 
1372
+ .py-3 {
1373
+ padding-top: 0.75rem;
1374
+ padding-bottom: 0.75rem;
1375
+ }
1376
+
1377
+ .text-center {
1378
+ text-align: center;
1379
+ }
1380
+
1290
1381
  .font-sans {
1291
1382
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
1292
1383
  }
@@ -1296,15 +1387,29 @@ video {
1296
1387
  line-height: 2.5rem;
1297
1388
  }
1298
1389
 
1390
+ .text-6xl {
1391
+ font-size: 3.75rem;
1392
+ line-height: 1;
1393
+ }
1394
+
1299
1395
  .text-sm {
1300
1396
  font-size: 0.875rem;
1301
1397
  line-height: 1.25rem;
1302
1398
  }
1303
1399
 
1400
+ .text-xl {
1401
+ font-size: 1.25rem;
1402
+ line-height: 1.75rem;
1403
+ }
1404
+
1304
1405
  .font-bold {
1305
1406
  font-weight: 700;
1306
1407
  }
1307
1408
 
1409
+ .font-semibold {
1410
+ font-weight: 600;
1411
+ }
1412
+
1308
1413
  .italic {
1309
1414
  font-style: italic;
1310
1415
  }
@@ -1313,14 +1418,19 @@ video {
1313
1418
  line-height: 1.25;
1314
1419
  }
1315
1420
 
1421
+ .text-\[\#cccccc\] {
1422
+ --tw-text-opacity: 1;
1423
+ color: rgb(204 204 204 / var(--tw-text-opacity, 1));
1424
+ }
1425
+
1316
1426
  .text-black {
1317
1427
  --tw-text-opacity: 1;
1318
1428
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
1319
1429
  }
1320
1430
 
1321
- .text-gray-400 {
1431
+ .text-gray-500 {
1322
1432
  --tw-text-opacity: 1;
1323
- color: rgb(156 163 175 / var(--tw-text-opacity, 1));
1433
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
1324
1434
  }
1325
1435
 
1326
1436
  .text-gray-600 {
@@ -1328,9 +1438,9 @@ video {
1328
1438
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
1329
1439
  }
1330
1440
 
1331
- .text-gray-700 {
1441
+ .text-gray-800 {
1332
1442
  --tw-text-opacity: 1;
1333
- color: rgb(55 65 81 / var(--tw-text-opacity, 1));
1443
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
1334
1444
  }
1335
1445
 
1336
1446
  .text-white {
@@ -1338,6 +1448,12 @@ video {
1338
1448
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1339
1449
  }
1340
1450
 
1451
+ .shadow-lg {
1452
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1453
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
1454
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1455
+ }
1456
+
1341
1457
  .filter {
1342
1458
  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
1459
  }
@@ -1358,35 +1474,19 @@ video {
1358
1474
  transition-duration: 300ms;
1359
1475
  }
1360
1476
 
1361
- .focus-within\:border-blue-500:focus-within {
1477
+ .focus-within\:border-\[\#0e639c\]:focus-within {
1362
1478
  --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);
1479
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1375
1480
  }
1376
1481
 
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 {
1482
+ .hover\:border-\[\#0e639c\]:hover {
1383
1483
  --tw-border-opacity: 1;
1384
- border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
1484
+ border-color: rgb(14 99 156 / var(--tw-border-opacity, 1));
1385
1485
  }
1386
1486
 
1387
- .hover\:bg-gray-100:hover {
1487
+ .hover\:bg-\[\#3c3c3c\]:hover {
1388
1488
  --tw-bg-opacity: 1;
1389
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1489
+ background-color: rgb(60 60 60 / var(--tw-bg-opacity, 1));
1390
1490
  }
1391
1491
 
1392
1492
  .hover\:bg-gray-800:hover {
@@ -1394,12 +1494,21 @@ video {
1394
1494
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
1395
1495
  }
1396
1496
 
1397
- .hover\:bg-white:hover {
1497
+ .hover\:bg-green-700:hover {
1398
1498
  --tw-bg-opacity: 1;
1399
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1499
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
1500
+ }
1501
+
1502
+ .hover\:text-white:hover {
1503
+ --tw-text-opacity: 1;
1504
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1400
1505
  }
1401
1506
 
1402
1507
  .focus\:outline-none:focus {
1403
1508
  outline: 2px solid transparent;
1404
1509
  outline-offset: 2px;
1405
1510
  }
1511
+
1512
+ .disabled\:opacity-50:disabled {
1513
+ opacity: 0.5;
1514
+ }
@@ -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
- }