treesap 0.1.13 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +31 -192
  2. package/dist/app.d.ts +28 -0
  3. package/dist/app.d.ts.map +1 -0
  4. package/dist/app.js +184 -0
  5. package/dist/app.js.map +1 -0
  6. package/dist/context.d.ts +36 -0
  7. package/dist/context.d.ts.map +1 -0
  8. package/dist/context.js +95 -0
  9. package/dist/context.js.map +1 -0
  10. package/dist/index.d.ts +5 -7
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +5 -9
  13. package/dist/index.js.map +1 -1
  14. package/dist/middleware/cors.d.ts +11 -0
  15. package/dist/middleware/cors.d.ts.map +1 -0
  16. package/dist/middleware/cors.js +34 -0
  17. package/dist/middleware/cors.js.map +1 -0
  18. package/dist/middleware/serve-static.d.ts +6 -0
  19. package/dist/middleware/serve-static.d.ts.map +1 -0
  20. package/dist/middleware/serve-static.js +68 -0
  21. package/dist/middleware/serve-static.js.map +1 -0
  22. package/dist/node.d.ts +8 -0
  23. package/dist/node.d.ts.map +1 -0
  24. package/dist/node.js +52 -0
  25. package/dist/node.js.map +1 -0
  26. package/dist/path.d.ts +10 -0
  27. package/dist/path.d.ts.map +1 -0
  28. package/dist/path.js +45 -0
  29. package/dist/path.js.map +1 -0
  30. package/dist/vite.d.ts +31 -0
  31. package/dist/vite.d.ts.map +1 -0
  32. package/dist/vite.js +278 -0
  33. package/dist/vite.js.map +1 -0
  34. package/package.json +33 -40
  35. package/dist/cli.d.ts +0 -3
  36. package/dist/cli.d.ts.map +0 -1
  37. package/dist/cli.js +0 -137
  38. package/dist/cli.js.map +0 -1
  39. package/dist/components/BaseHead.d.ts +0 -5
  40. package/dist/components/BaseHead.d.ts.map +0 -1
  41. package/dist/components/BaseHead.js +0 -161
  42. package/dist/components/BaseHead.js.map +0 -1
  43. package/dist/components/ChatInput.d.ts +0 -7
  44. package/dist/components/ChatInput.d.ts.map +0 -1
  45. package/dist/components/ChatInput.js +0 -11
  46. package/dist/components/ChatInput.js.map +0 -1
  47. package/dist/components/Sidebar.d.ts +0 -8
  48. package/dist/components/Sidebar.d.ts.map +0 -1
  49. package/dist/components/Sidebar.js +0 -7
  50. package/dist/components/Sidebar.js.map +0 -1
  51. package/dist/components/SimpleLivePreview.d.ts +0 -7
  52. package/dist/components/SimpleLivePreview.d.ts.map +0 -1
  53. package/dist/components/SimpleLivePreview.js +0 -7
  54. package/dist/components/SimpleLivePreview.js.map +0 -1
  55. package/dist/components/Terminal.d.ts +0 -7
  56. package/dist/components/Terminal.d.ts.map +0 -1
  57. package/dist/components/Terminal.js +0 -14
  58. package/dist/components/Terminal.js.map +0 -1
  59. package/dist/components/VoiceRecorder.d.ts +0 -4
  60. package/dist/components/VoiceRecorder.d.ts.map +0 -1
  61. package/dist/components/VoiceRecorder.js +0 -5
  62. package/dist/components/VoiceRecorder.js.map +0 -1
  63. package/dist/components/icons/GeminiLogo.d.ts +0 -7
  64. package/dist/components/icons/GeminiLogo.d.ts.map +0 -1
  65. package/dist/components/icons/GeminiLogo.js +0 -5
  66. package/dist/components/icons/GeminiLogo.js.map +0 -1
  67. package/dist/components/icons/OllamaLogo.d.ts +0 -2
  68. package/dist/components/icons/OllamaLogo.d.ts.map +0 -1
  69. package/dist/components/icons/OllamaLogo.js +0 -5
  70. package/dist/components/icons/OllamaLogo.js.map +0 -1
  71. package/dist/layouts/Layout.d.ts +0 -9
  72. package/dist/layouts/Layout.d.ts.map +0 -1
  73. package/dist/layouts/Layout.js +0 -9
  74. package/dist/layouts/Layout.js.map +0 -1
  75. package/dist/layouts/NotFoundLayout.d.ts +0 -2
  76. package/dist/layouts/NotFoundLayout.d.ts.map +0 -1
  77. package/dist/layouts/NotFoundLayout.js +0 -6
  78. package/dist/layouts/NotFoundLayout.js.map +0 -1
  79. package/dist/pages/Code.d.ts +0 -7
  80. package/dist/pages/Code.d.ts.map +0 -1
  81. package/dist/pages/Code.js +0 -8
  82. package/dist/pages/Code.js.map +0 -1
  83. package/dist/pages/Home.d.ts +0 -7
  84. package/dist/pages/Home.d.ts.map +0 -1
  85. package/dist/pages/Home.js +0 -8
  86. package/dist/pages/Home.js.map +0 -1
  87. package/dist/pages/Welcome.d.ts +0 -2
  88. package/dist/pages/Welcome.d.ts.map +0 -1
  89. package/dist/pages/Welcome.js +0 -6
  90. package/dist/pages/Welcome.js.map +0 -1
  91. package/dist/server.d.ts +0 -11
  92. package/dist/server.d.ts.map +0 -1
  93. package/dist/server.js +0 -434
  94. package/dist/server.js.map +0 -1
  95. package/dist/services/dev-server.d.ts +0 -29
  96. package/dist/services/dev-server.d.ts.map +0 -1
  97. package/dist/services/dev-server.js +0 -201
  98. package/dist/services/dev-server.js.map +0 -1
  99. package/dist/services/terminal.d.ts +0 -46
  100. package/dist/services/terminal.d.ts.map +0 -1
  101. package/dist/services/terminal.js +0 -264
  102. package/dist/services/terminal.js.map +0 -1
  103. package/dist/services/websocket.d.ts +0 -48
  104. package/dist/services/websocket.d.ts.map +0 -1
  105. package/dist/services/websocket.js +0 -332
  106. package/dist/services/websocket.js.map +0 -1
  107. package/dist/static/components/ChatInput.js +0 -237
  108. package/dist/static/components/Sidebar.js +0 -225
  109. package/dist/static/components/SimpleLivePreview.js +0 -305
  110. package/dist/static/components/Terminal.js +0 -461
  111. package/dist/static/components/TerminalTabs.js +0 -383
  112. package/dist/static/favicon.svg +0 -14
  113. package/dist/static/signals/LivePreviewSignal.js +0 -71
  114. package/dist/static/signals/SidebarSignal.js +0 -123
  115. package/dist/static/signals/TerminalSignal.js +0 -273
  116. package/dist/static/styles/main.css +0 -1761
  117. package/src/cli.ts +0 -155
  118. package/src/components/BaseHead.ts +0 -164
  119. package/src/components/ChatInput.tsx +0 -56
  120. package/src/components/Sidebar.tsx +0 -99
  121. package/src/components/SimpleLivePreview.tsx +0 -40
  122. package/src/components/Terminal.tsx +0 -40
  123. package/src/components/VoiceRecorder.tsx +0 -33
  124. package/src/components/icons/GeminiLogo.tsx +0 -10
  125. package/src/components/icons/OllamaLogo.tsx +0 -5
  126. package/src/index.tsx +0 -12
  127. package/src/layouts/Layout.tsx +0 -41
  128. package/src/layouts/NotFoundLayout.tsx +0 -15
  129. package/src/pages/Code.tsx +0 -34
  130. package/src/pages/Welcome.tsx +0 -56
  131. package/src/server.tsx +0 -519
  132. package/src/services/dev-server.ts +0 -234
  133. package/src/services/terminal.ts +0 -325
  134. package/src/services/websocket.ts +0 -405
  135. package/src/static/components/ChatInput.js +0 -237
  136. package/src/static/components/Sidebar.js +0 -225
  137. package/src/static/components/SimpleLivePreview.js +0 -305
  138. package/src/static/components/Terminal.js +0 -461
  139. package/src/static/components/TerminalTabs.js +0 -383
  140. package/src/static/favicon.svg +0 -14
  141. package/src/static/signals/LivePreviewSignal.js +0 -71
  142. package/src/static/signals/SidebarSignal.js +0 -123
  143. package/src/static/signals/TerminalSignal.js +0 -273
  144. package/src/static/styles/main.css +0 -1761
  145. package/src/styles/input.css +0 -3
  146. package/tailwind.config.ts +0 -22
  147. package/tsconfig.json +0 -37
package/package.json CHANGED
@@ -1,60 +1,53 @@
1
1
  {
2
2
  "name": "treesap",
3
- "version": "0.1.13",
4
- "description": "AI Agent Framework",
3
+ "version": "0.2.0",
4
+ "description": "Opinionated Vite-first Node SSR framework.",
5
5
  "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "treesap": "dist/cli.js"
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./vite": {
14
+ "types": "./dist/vite.d.ts",
15
+ "import": "./dist/vite.js"
16
+ }
9
17
  },
18
+ "files": [
19
+ "dist",
20
+ "README.md"
21
+ ],
10
22
  "scripts": {
11
- "dev": "tsx --watch src/index.tsx",
12
- "dev:css": "tailwindcss -i ./src/styles/input.css -o ./src/static/styles/main.css --watch",
13
- "dev:example": "cd examples/basic-hono && npm run dev:src",
14
- "dev:vite": "cd examples/basics-sapling && npm run dev:src",
15
- "build": "npm run build:css && npm run build:ts && npm run copy:static",
16
- "build:css": "tailwindcss -i ./src/styles/input.css -o ./src/static/styles/main.css",
17
- "build:ts": "tsc",
18
- "copy:static": "cp -r src/static dist/",
19
- "start": "node dist/server.js",
20
23
  "clean": "rm -rf dist",
21
- "prepublishOnly": "npm run build"
24
+ "build": "tsc -p tsconfig.build.json",
25
+ "test": "vitest run -c vitest.config.ts",
26
+ "prepublishOnly": "npm run build && npm test"
22
27
  },
23
28
  "keywords": [
24
- "chat",
25
- "realtime",
26
- "islands",
29
+ "vite",
27
30
  "ssr",
28
- "hono",
29
- "sapling",
30
- "cli"
31
+ "node",
32
+ "framework",
33
+ "hono"
31
34
  ],
32
- "author": "Your Name",
33
35
  "license": "MIT",
34
36
  "dependencies": {
35
- "@hono/node-server": "^1.13.1",
36
- "@tailwindcss/typography": "^0.5.16",
37
- "commander": "^12.1.0",
38
- "dotenv": "^16.4.7",
39
- "hono": "^4.9.1",
40
- "node-pty": "^1.1.0-beta34",
41
- "uuid": "^11.1.0",
42
- "ws": "^8.18.3"
37
+ "hono": "^4.10.3"
38
+ },
39
+ "peerDependencies": {
40
+ "vite": "^8.0.0"
43
41
  },
44
42
  "devDependencies": {
45
- "@types/node": "^22.15.15",
46
- "@types/uuid": "^10.0.0",
47
- "@types/ws": "^8.18.1",
48
- "tailwindcss": "^3.4.17",
49
- "tsx": "^4.19.2",
50
- "typescript": "^5.7.3"
43
+ "@types/node": "^25.0.3",
44
+ "typescript": "^5.9.2",
45
+ "vite": "^8.0.3",
46
+ "vitest": "^4.1.2"
51
47
  },
52
48
  "engines": {
53
- "node": ">=18.0.0"
49
+ "node": ">=22.0.0"
54
50
  },
55
- "workspaces": [
56
- "examples/*"
57
- ],
58
51
  "repository": {
59
52
  "type": "git",
60
53
  "url": "git+https://github.com/withtreesap/treesap.git"
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js DELETED
@@ -1,137 +0,0 @@
1
- #!/usr/bin/env node
2
- import { program } from 'commander';
3
- import { startServer } from './server.js';
4
- import * as path from 'node:path';
5
- import * as fs from 'node:fs';
6
- import process from 'node:process';
7
- async function loadConfig() {
8
- const configFileName = 'treesap.config.ts';
9
- const configFileNameJs = 'treesap.config.js';
10
- // Check if we have a specific project directory set via environment variable
11
- const projectDir = process.env.TREESAP_PROJECT_DIR || process.cwd();
12
- const configFilePath = path.join(projectDir, configFileName);
13
- const configFilePathJs = path.join(projectDir, configFileNameJs);
14
- let configToLoad = configFilePath;
15
- if (!fs.existsSync(configFilePath) && fs.existsSync(configFilePathJs)) {
16
- configToLoad = configFilePathJs;
17
- }
18
- if (fs.existsSync(configToLoad)) {
19
- try {
20
- console.log(`Loading configuration from ${configToLoad}`);
21
- const absoluteConfigPath = path.resolve(configToLoad);
22
- const configModule = await import(`file://${absoluteConfigPath}`);
23
- const config = configModule.default || {};
24
- return config;
25
- }
26
- catch (error) {
27
- console.error(`Error loading ${path.basename(configToLoad)}:`, error);
28
- return {};
29
- }
30
- }
31
- else {
32
- console.log(`No treesap.config.ts or treesap.config.js found. Using default configuration.`);
33
- return {};
34
- }
35
- }
36
- async function startCommand(options) {
37
- // Load config from project directory (set via env var or current directory)
38
- const config = await loadConfig();
39
- // Set projectRoot to the project directory where config was found
40
- const projectDir = process.env.TREESAP_PROJECT_DIR || process.cwd();
41
- config.projectRoot = projectDir;
42
- // Override config with CLI options
43
- if (options.port)
44
- config.port = parseInt(options.port);
45
- if (options.previewPort)
46
- config.previewPort = parseInt(options.previewPort);
47
- if (options.devPort)
48
- config.devPort = parseInt(options.devPort);
49
- if (options.devCommand)
50
- config.devCommand = options.devCommand;
51
- startServer(config);
52
- }
53
- async function devCommand(options) {
54
- // Load config from project directory (set via env var or current directory)
55
- const config = await loadConfig();
56
- // Set projectRoot to the project directory where config was found
57
- const projectDir = process.env.TREESAP_PROJECT_DIR || process.cwd();
58
- config.projectRoot = projectDir;
59
- // Override config with CLI options
60
- if (options.port)
61
- config.port = parseInt(options.port);
62
- if (options.previewPort)
63
- config.previewPort = parseInt(options.previewPort);
64
- if (options.devPort)
65
- config.devPort = parseInt(options.devPort);
66
- if (options.devCommand)
67
- config.devCommand = options.devCommand;
68
- startServer(config);
69
- }
70
- async function initCommand(projectName) {
71
- const projectPath = path.join(process.cwd(), projectName);
72
- if (fs.existsSync(projectPath)) {
73
- console.error(`Directory ${projectName} already exists!`);
74
- process.exit(1);
75
- }
76
- // Create project directory
77
- fs.mkdirSync(projectPath, { recursive: true });
78
- // Create basic treesap.config.ts
79
- const configContent = `import type { TreeSapConfig } from 'treesap';
80
-
81
- const config: TreeSapConfig = {
82
- port: 1234,
83
- previewPort: 8080,
84
- projectRoot: process.cwd(),
85
- devCommand: "npm run dev",
86
- devPort: 8080,
87
- };
88
-
89
- export default config;
90
- `;
91
- fs.writeFileSync(path.join(projectPath, 'treesap.config.ts'), configContent);
92
- // Create basic package.json
93
- const packageJsonContent = {
94
- "name": projectName,
95
- "version": "1.0.0",
96
- "type": "module",
97
- "scripts": {
98
- "dev": "echo 'Add your dev command here'",
99
- "build": "echo 'Add your build command here'"
100
- },
101
- "dependencies": {
102
- "treesap": "^1.0.0"
103
- }
104
- };
105
- fs.writeFileSync(path.join(projectPath, 'package.json'), JSON.stringify(packageJsonContent, null, 2));
106
- console.log(`✅ TreeSap project '${projectName}' created successfully!`);
107
- console.log(`\nNext steps:`);
108
- console.log(` cd ${projectName}`);
109
- console.log(` npm install`);
110
- console.log(` treesap start`);
111
- }
112
- program
113
- .name('treesap')
114
- .description('TreeSap - Real-time chat application framework')
115
- .version('1.0.0');
116
- program
117
- .command('start')
118
- .description('Start the TreeSap server')
119
- .option('-p, --port <port>', 'Port to run the server on')
120
- .option('--preview-port <port>', 'Port for the preview server')
121
- .option('--dev-port <port>', 'Port for the dev server')
122
- .option('--dev-command <command>', 'Command to run the dev server')
123
- .action(startCommand);
124
- program
125
- .command('dev')
126
- .description('Start the TreeSap server with dev server auto-start')
127
- .option('-p, --port <port>', 'Port to run the server on')
128
- .option('--preview-port <port>', 'Port for the preview server')
129
- .option('--dev-port <port>', 'Port for the dev server')
130
- .option('--dev-command <command>', 'Command to run the dev server')
131
- .action(devCommand);
132
- program
133
- .command('init <project-name>')
134
- .description('Initialize a new TreeSap project')
135
- .action(initCommand);
136
- program.parse();
137
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare function BaseHead({ title, description, }: {
2
- title?: string | undefined;
3
- description?: string | undefined;
4
- }): import("hono/utils/html").HtmlEscapedString | Promise<import("hono/utils/html").HtmlEscapedString>;
5
- //# sourceMappingURL=BaseHead.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseHead.d.ts","sourceRoot":"","sources":["../../src/components/BaseHead.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,EACvB,KAAiB,EACjB,WAAmF,GACpF;;;CAAA,sGA8JA"}
@@ -1,161 +0,0 @@
1
- import { html } from "hono/html";
2
- export function BaseHead({ title = "Treesap", description = "Treesap - A modern AI chat application built with Sapling framework", }) {
3
- return html `
4
- <title>${title}</title>
5
- <meta name="description" content="${description}" />
6
- <link rel="icon" type="image/png" href="/favicon.png" />
7
- <link rel="stylesheet" href="/styles/main.css" />
8
-
9
- <script src="https://code.iconify.design/iconify-icon/3.0.0/iconify-icon.min.js"></script>
10
- <style>
11
- :root {
12
- --color-primary: #000;
13
- --color-on-primary: #fff;
14
- --color-secondary: #fff;
15
- }
16
- ::selection {
17
- background-color: var(--color-primary);
18
- color: var(--color-on-primary);
19
- }
20
-
21
- /* Markdown prose styles */
22
- .prose {
23
- max-width: none;
24
- }
25
- .prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
26
- margin-top: 0.5em;
27
- margin-bottom: 0.25em;
28
- font-weight: 600;
29
- }
30
- .prose p {
31
- margin-top: 0.25em;
32
- margin-bottom: 0.25em;
33
- }
34
- .prose ul, .prose ol {
35
- margin-top: 0.25em;
36
- margin-bottom: 0.25em;
37
- padding-left: 1.25em;
38
- }
39
- .prose li {
40
- margin-top: 0.125em;
41
- margin-bottom: 0.125em;
42
- }
43
- .prose code {
44
- background-color: rgba(0, 0, 0, 0.1);
45
- padding: 0.125em 0.25em;
46
- border-radius: 0.25em;
47
- font-size: 0.875em;
48
- }
49
- /* Inline (single backtick) code – simple styling, no fake backticks */
50
- .prose :where(code):not(:where(pre code)) {
51
- background-color: rgba(0, 0, 0, 0.06);
52
- padding: 0.1em 0.3em;
53
- border-radius: 0.25em;
54
- font-size: 0.9em;
55
- }
56
- .prose :where(code):not(:where(pre code))::before,
57
- .prose :where(code):not(:where(pre code))::after {
58
- content: none !important;
59
- }
60
- .prose pre {
61
- background-color: rgba(0, 0, 0, 0.05);
62
- padding: 0.5em;
63
- border-radius: 0.375em;
64
- overflow-x: auto;
65
- margin: 0.5em 0;
66
- }
67
- .prose pre code {
68
- background-color: transparent;
69
- padding: 0;
70
- }
71
- .prose blockquote {
72
- border-left: 4px solid #e5e7eb;
73
- padding-left: 1em;
74
- margin: 0.5em 0;
75
- font-style: italic;
76
- }
77
- .prose strong {
78
- font-weight: 600;
79
- }
80
- .prose em {
81
- font-style: italic;
82
- }
83
-
84
- /* Code block styles */
85
- .code-block {
86
- position: relative;
87
- margin: 1em 0;
88
- border-radius: 8px;
89
- overflow: hidden;
90
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
91
- background: #1e1e1e;
92
- max-width: 100%;
93
- width: 100%;
94
- }
95
-
96
- .code-block pre {
97
- margin: 0;
98
- padding: 1rem;
99
- overflow-x: auto;
100
- background: #1e1e1e !important;
101
- border-radius: 8px;
102
- font-family: 'Fira Code', 'Monaco', 'Cascadia Code', 'Roboto Mono', monospace;
103
- font-size: 0.875rem;
104
- line-height: 1.5;
105
- max-width: 100%;
106
- box-sizing: border-box;
107
- }
108
-
109
- .code-block code {
110
- background: transparent !important;
111
- padding: 0 !important;
112
- border-radius: 0 !important;
113
- color: #d4d4d4;
114
- display: block;
115
- white-space: pre;
116
- overflow-wrap: break-word;
117
- word-break: break-all;
118
- max-width: 100%;
119
- }
120
-
121
- /* Dark theme adjustments for chat messages */
122
- .dark .code-block {
123
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
124
- }
125
-
126
- @media (prefers-color-scheme: dark) {
127
- .code-block {
128
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
129
- }
130
- }
131
-
132
- /* Copy button positioning */
133
- .code-block copy-code-button {
134
- position: absolute;
135
- top: 8px;
136
- right: 8px;
137
- z-index: 10;
138
- }
139
-
140
- /* Ensure code blocks in chat messages are properly styled */
141
- .chat-message .code-block {
142
- max-width: 100%;
143
- }
144
-
145
- .chat-message .code-block pre {
146
- max-width: 100%;
147
- white-space: pre-wrap;
148
- word-break: break-word;
149
- }
150
-
151
- /* Ensure inner code respects wrapping inside chat messages */
152
- .chat-message .code-block code {
153
- white-space: pre-wrap !important;
154
- word-break: break-word;
155
- overflow-wrap: anywhere;
156
- max-width: 100%;
157
- }
158
- </style>
159
- `;
160
- }
161
- //# sourceMappingURL=BaseHead.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseHead.js","sourceRoot":"","sources":["../../src/components/BaseHead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,GAAG,SAAS,EACjB,WAAW,GAAG,qEAAqE,GACpF;IACC,OAAO,IAAI,CAAA;aACA,KAAK;wCACsB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0JhD,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- interface ChatInputProps {
2
- id?: string;
3
- terminalId?: string;
4
- }
5
- export declare function ChatInput({ id, terminalId }: ChatInputProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=ChatInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAiB,EAAE,UAAyB,EAAE,EAAE,cAAc,kDAkDzF"}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- export function ChatInput({ id = "chat-input", terminalId = "terminal-1" }) {
3
- return (_jsxs("sapling-island", { loading: "visible", children: [_jsx("template", { children: _jsx("script", { type: "module", src: "/components/ChatInput.js" }) }), _jsx("div", { id: id, class: "border-t border-[#3c3c3c] bg-[#2d2d30] p-3", children: _jsxs("div", { class: "flex items-end gap-2", children: [_jsx("div", { class: "flex-1 relative", children: _jsx("textarea", { id: `${id}-textarea`, placeholder: "Type your command or message...", class: "w-full min-h-[40px] max-h-[120px] px-3 py-2 bg-[#1e1e1e] border border-[#3c3c3c] rounded-lg text-[#cccccc] placeholder-[#888] resize-none focus:outline-none focus:border-[#0e639c] transition-colors text-sm font-mono", rows: 1 }) }), _jsx("button", { type: "button", id: `${id}-send-btn`, class: "px-3 py-2 bg-[#0e639c] hover:bg-[#1177bb] disabled:bg-[#3c3c3c] disabled:text-[#888] text-white rounded-lg transition-colors flex-shrink-0 flex items-center justify-center min-h-[40px]", title: "Send to Input Field", children: _jsx("iconify-icon", { icon: "tabler:arrow-up", width: "16", height: "16" }) }), _jsx("button", { type: "button", id: `${id}-execute-btn`, class: "px-3 py-2 bg-[#28a745] hover:bg-[#218838] disabled:bg-[#3c3c3c] disabled:text-[#888] text-white rounded-lg transition-colors flex-shrink-0 flex items-center justify-center min-h-[40px]", title: "Execute Command", children: _jsx("iconify-icon", { icon: "tabler:player-play", width: "16", height: "16" }) })] }) }), _jsx("script", { dangerouslySetInnerHTML: { __html: `
4
- // Pass chat input data to JavaScript
5
- window.chatInputData_${id.replace(/-/g, '_')} = {
6
- chatInputId: '${id}',
7
- terminalId: '${terminalId}'
8
- };
9
- ` } })] }));
10
- }
11
- //# sourceMappingURL=ChatInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,SAAS,CAAC,EAAE,EAAE,GAAG,YAAY,EAAE,UAAU,GAAG,YAAY,EAAkB;IACxF,OAAO,CACL,0BAAgB,OAAO,EAAC,SAAS,aAC/B,6BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,0BAA0B,GAAU,GACrD,EAEX,cAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAC,4CAA4C,YAC7D,eAAK,KAAK,EAAC,sBAAsB,aAE/B,cAAK,KAAK,EAAC,iBAAiB,YAC1B,mBACE,EAAE,EAAE,GAAG,EAAE,WAAW,EACpB,WAAW,EAAC,iCAAiC,EAC7C,KAAK,EAAC,yNAAyN,EAC/N,IAAI,EAAE,CAAC,GACG,GACR,EAGN,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,GAAG,EAAE,WAAW,EACpB,KAAK,EAAC,0LAA0L,EAChM,KAAK,EAAC,qBAAqB,YAE3B,uBAAc,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACpE,EAGT,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,GAAG,EAAE,cAAc,EACvB,KAAK,EAAC,0LAA0L,EAChM,KAAK,EAAC,iBAAiB,YAEvB,uBAAc,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GACvE,IACL,GACF,EAEN,iBAAQ,uBAAuB,EAAE,EAAC,MAAM,EAAE;;+BAEjB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;0BAC1B,EAAE;yBACH,UAAU;;OAE5B,EAAC,GAAW,IACE,CAClB,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- interface SidebarProps {
2
- id?: string;
3
- previewPort?: number;
4
- workingDirectory?: string;
5
- }
6
- export declare function Sidebar({ id, previewPort, workingDirectory }: SidebarProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
7
- export {};
8
- //# sourceMappingURL=Sidebar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAc,EAAE,WAAkB,EAAE,gBAAgB,EAAE,EAAE,YAAY,kDAyF7F"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- import { Terminal as TerminalComponent } from "./Terminal.js";
3
- import { ChatInput } from "./ChatInput.js";
4
- export function Sidebar({ id = "sidebar", previewPort = 1234, workingDirectory }) {
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/Sidebar.js" })] }), _jsx("div", { id: `${id}-backdrop`, class: "fixed inset-0 bg-black bg-opacity-50 backdrop-blur-sm z-40 transition-opacity duration-300 opacity-0 pointer-events-none md:hidden" }), _jsxs("div", { id: `${id}-pane`, class: "fixed left-0 top-0 h-full w-full z-50 transform -translate-x-full transition-transform duration-300 ease-in-out md:relative md:translate-x-0 md:w-2/5 md:z-auto border-r border-[#3c3c3c] flex flex-col bg-[#252526]", children: [_jsx("div", { class: "p-3 border-b border-[#3c3c3c] bg-[#2d2d30] flex-shrink-0", children: _jsxs("div", { class: "flex items-center gap-2", children: [_jsx("button", { type: "button", id: `${id}-close-btn`, class: "p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex-shrink-0 text-[#cccccc] hover:text-white md:hidden", title: "Close Sidebar", children: _jsx("iconify-icon", { icon: "tabler:x", width: "16", height: "16" }) }), _jsx("a", { href: "/", class: "p-2 hover:bg-[#3c3c3c] rounded-md transition-colors flex-shrink-0 text-[#cccccc] hover:text-white", title: "Back to Home", children: _jsx("iconify-icon", { icon: "tabler:arrow-left", 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-1 overflow-hidden bg-[#1e1e1e] flex flex-col", children: [_jsx("div", { class: "flex-1 overflow-hidden", children: _jsx(TerminalComponent, { index: 1 }) }), _jsx("div", { class: "flex-shrink-0", children: _jsx(ChatInput, { id: "chat-input", terminalId: "terminal-1" }) })] })] })] }));
6
- }
7
- //# sourceMappingURL=Sidebar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,MAAM,UAAU,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,gBAAgB,EAAgB;IAC5F,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,wBAAwB,GAAU,IACnD,EAGX,cACE,EAAE,EAAE,GAAG,EAAE,WAAW,EACpB,KAAK,EAAC,oIAAoI,GACrI,EAGP,eACE,EAAE,EAAE,GAAG,EAAE,OAAO,EAChB,KAAK,EAAC,sNAAsN,aAG5N,cAAK,KAAK,EAAC,0DAA0D,YACnE,eAAK,KAAK,EAAC,yBAAyB,aAElC,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,GAAG,EAAE,YAAY,EACrB,KAAK,EAAC,6GAA6G,EACnH,KAAK,EAAC,eAAe,YAErB,uBAAc,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GAC7D,EAGT,YACE,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,mGAAmG,EACzG,KAAK,EAAC,cAAc,YAEpB,uBAAc,IAAI,EAAC,mBAAmB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAgB,GAC3E,EAGJ,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,EAGT,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,mDAAmD,aAE5D,cAAK,KAAK,EAAC,wBAAwB,YACjC,KAAC,iBAAiB,IAAC,KAAK,EAAE,CAAC,GAAI,GAC3B,EAGN,cAAK,KAAK,EAAC,eAAe,YACxB,KAAC,SAAS,IAAC,EAAE,EAAC,YAAY,EAAC,UAAU,EAAC,YAAY,GAAG,GACjD,IACF,IACF,IACS,CAClB,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- interface SimpleLivePreviewProps {
2
- id?: string;
3
- previewPort?: number;
4
- }
5
- export declare function SimpleLivePreview({ id, previewPort }: SimpleLivePreviewProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=SimpleLivePreview.d.ts.map
@@ -1 +0,0 @@
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,kDAkCtG"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- export function SimpleLivePreview({ id = "simple-preview", previewPort = 5173 }) {
3
- const defaultSrc = `http://localhost:${previewPort}`;
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 bg-white transition-all duration-300 p-2 relative overflow-hidden", children: [_jsx("iframe", { id: `${id}-iframe`, src: defaultSrc, class: "w-full h-full border border-gray-300 bg-white block rounded-md", 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 }), _jsx("button", { id: `${id}-floating-hide-sidebar-btn`, class: "absolute p-3 bg-white border-2 border-gray-400 rounded-lg shadow-xl hover:bg-gray-50 hover:shadow-2xl transition-all items-center justify-center z-50 hidden", title: "Show Sidebar", style: "position: absolute !important; z-index: 9999 !important; bottom: 16px; left: 16px;", children: _jsx("iconify-icon", { id: `${id}-floating-hide-sidebar-icon`, icon: "ph:sidebar-simple-fill", width: "20", height: "20", class: "text-gray-800" }) })] })] }));
6
- }
7
- //# sourceMappingURL=SimpleLivePreview.js.map
@@ -1 +0,0 @@
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,iFAAiF,aAElG,iBACE,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAC,gEAAgE,EACtE,KAAK,EAAC,cAAc,EACpB,OAAO,EAAC,iNAAiN,uBACtM,WAAW,GACtB,EAGV,iBACE,EAAE,EAAE,GAAG,EAAE,4BAA4B,EACrC,KAAK,EAAC,8JAA8J,EACpK,KAAK,EAAC,cAAc,EACpB,KAAK,EAAC,oFAAoF,YAE1F,uBAAc,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE,IAAI,EAAC,wBAAwB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,eAAe,GAAgB,GACzI,IACL,IACS,CAClB,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- interface TerminalProps {
2
- id?: string;
3
- index?: number;
4
- }
5
- export declare function Terminal({ id, index }: TerminalProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=Terminal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../src/components/Terminal.tsx"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAS,EAAE,EAAE,aAAa,kDAkCxD"}
@@ -1,14 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- export function Terminal({ id, index = 1 }) {
3
- const terminalId = id || `terminal-${index}`;
4
- const sessionId = `terminal-${index}`;
5
- return (_jsxs("sapling-island", { loading: "visible", children: [_jsxs("template", { children: [_jsx("link", { href: "https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.min.css", rel: "stylesheet" }), _jsx("script", { type: "module", src: "/components/Terminal.js" })] }), _jsx("div", { id: terminalId, class: "h-full bg-[#1e1e1e] flex font-sans overflow-hidden", children: _jsx("div", { class: "w-full flex flex-col bg-[#1e1e1e] relative min-w-0", children: _jsx("div", { id: `${terminalId}-container`, class: "h-full flex flex-col min-w-0", children: _jsx("div", { class: "flex-1 overflow-hidden min-w-0", children: _jsx("div", { id: `${terminalId}-xterm`, class: "h-full w-full min-w-0 max-w-full" }) }) }) }) }), _jsx("script", { dangerouslySetInnerHTML: { __html: `
6
- // Pass terminal data to JavaScript
7
- window.terminalData_${terminalId.replace(/-/g, '_')} = {
8
- terminalId: '${terminalId}',
9
- sessionId: '${sessionId}',
10
- index: ${index}
11
- };
12
- ` } })] }));
13
- }
14
- //# sourceMappingURL=Terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../src/components/Terminal.tsx"],"names":[],"mappings":";AAKA,MAAM,UAAU,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAAiB;IACvD,MAAM,UAAU,GAAG,EAAE,IAAI,YAAY,KAAK,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,YAAY,KAAK,EAAE,CAAC;IACtC,OAAO,CACL,0BAAgB,OAAO,EAAC,SAAS,aAC/B,+BACE,eAAM,IAAI,EAAC,mEAAmE,EAAC,GAAG,EAAC,YAAY,GAAG,EAClG,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,yBAAyB,GAAU,IACpD,EAEX,cAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAC,oDAAoD,YAE7E,cAAK,KAAK,EAAC,oDAAoD,YAE7D,cAAK,EAAE,EAAE,GAAG,UAAU,YAAY,EAAE,KAAK,EAAC,8BAA8B,YAGtE,cAAK,KAAK,EAAC,gCAAgC,YACzC,cAAK,EAAE,EAAE,GAAG,UAAU,QAAQ,EAAE,KAAK,EAAC,kCAAkC,GAAO,GAC3E,GACF,GACF,GACF,EAEN,iBAAQ,uBAAuB,EAAE,EAAC,MAAM,EAAE;;8BAElB,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;yBAClC,UAAU;wBACX,SAAS;mBACd,KAAK;;OAEjB,EAAC,GAAW,IACE,CAClB,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function VoiceRecorder({ id }: {
2
- id?: string;
3
- }): import("hono/jsx/jsx-dev-runtime").JSX.Element;
4
- //# sourceMappingURL=VoiceRecorder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoiceRecorder.d.ts","sourceRoot":"","sources":["../../src/components/VoiceRecorder.tsx"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,EAAE,EAAc,EAAE,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,kDAgChE"}
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- export function VoiceRecorder({ id = "default" }) {
3
- return (_jsxs("sapling-island", { loading: "visible", children: [_jsx("template", { children: _jsx("script", { type: "module", src: "/components/VoiceRecorder.js" }) }), _jsxs("button", { id: `voice-recorder-${id}`, type: "button", class: "w-10 h-10 bg-black text-white rounded-full hover:bg-gray-800 transition-colors flex items-center justify-center", "aria-label": "Voice recording", children: [_jsxs("svg", { id: `mic-icon-${id}`, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", children: [_jsx("path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" }), _jsx("path", { d: "M19 10v2a7 7 0 0 1-14 0v-2" }), _jsx("line", { x1: "12", x2: "12", y1: "19", y2: "22" }), _jsx("line", { x1: "8", x2: "16", y1: "22", y2: "22" })] }), _jsx("svg", { id: `stop-icon-${id}`, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", style: "display: none;", children: _jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2" }) }), _jsx("svg", { id: `loading-icon-${id}`, width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", style: "display: none;", class: "animate-spin", children: _jsx("path", { d: "M21 12a9 9 0 11-6.219-8.56" }) })] })] }));
4
- }
5
- //# sourceMappingURL=VoiceRecorder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoiceRecorder.js","sourceRoot":"","sources":["../../src/components/VoiceRecorder.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,aAAa,CAAC,EAAE,EAAE,GAAG,SAAS,EAAmB;IAC/D,OAAO,CACL,0BAAgB,OAAO,EAAC,SAAS,aAC/B,6BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,8BAA8B,GAAU,GACzD,EACX,kBACE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAC1B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,iHAAiH,gBAC5G,iBAAiB,aAG5B,eAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,aACtH,eAAM,CAAC,EAAC,sDAAsD,GAAE,EAChE,eAAM,CAAC,EAAC,4BAA4B,GAAE,EACtC,eAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAE,EACvC,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAE,IAClC,EAGN,cAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,EAAC,KAAK,EAAC,gBAAgB,YAC9I,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAE,GACpD,EAGN,cAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,EAAC,KAAK,EAAC,gBAAgB,EAAC,KAAK,EAAC,cAAc,YACtK,eAAM,CAAC,EAAC,4BAA4B,GAAE,GAClC,IACC,IACM,CAClB,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- interface GeminiLogoProps {
2
- width?: number | string;
3
- height?: number | string;
4
- }
5
- export declare function GeminiLogo({ width, height }: GeminiLogoProps): import("hono/jsx/jsx-dev-runtime").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=GeminiLogo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeminiLogo.d.ts","sourceRoot":"","sources":["../../../src/components/icons/GeminiLogo.tsx"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE,eAAe,kDAItE"}
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "hono/jsx/jsx-runtime";
2
- export function GeminiLogo({ width = 24, height = 24 }) {
3
- return (_jsxs("svg", { viewBox: "0 0 296 298", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, fill: "none", children: [_jsx("mask", { id: "gemini__a", width: "296", height: "298", x: "0", y: "0", maskUnits: "userSpaceOnUse", style: "mask-type:alpha", children: _jsx("path", { fill: "#3186FF", d: "M141.201 4.886c2.282-6.17 11.042-6.071 13.184.148l5.985 17.37a184.004 184.004 0 0 0 111.257 113.049l19.304 6.997c6.143 2.227 6.156 10.91.02 13.155l-19.35 7.082a184.001 184.001 0 0 0-109.495 109.385l-7.573 20.629c-2.241 6.105-10.869 6.121-13.133.025l-7.908-21.296a184 184 0 0 0-109.02-108.658l-19.698-7.239c-6.102-2.243-6.118-10.867-.025-13.132l20.083-7.467A183.998 183.998 0 0 0 133.291 26.28l7.91-21.394Z" }) }), _jsxs("g", { mask: "url(#gemini__a)", children: [_jsx("g", { filter: "url(#gemini__b)", children: _jsx("ellipse", { cx: "163", cy: "149", fill: "#3689FF", rx: "196", ry: "159" }) }), _jsx("g", { filter: "url(#gemini__c)", children: _jsx("ellipse", { cx: "33.5", cy: "142.5", fill: "#F6C013", rx: "68.5", ry: "72.5" }) }), _jsx("g", { filter: "url(#gemini__d)", children: _jsx("ellipse", { cx: "19.5", cy: "148.5", fill: "#F6C013", rx: "68.5", ry: "72.5" }) }), _jsx("g", { filter: "url(#gemini__e)", children: _jsx("path", { fill: "#FA4340", d: "M194 10.5C172 82.5 65.5 134.333 22.5 135L144-66l50 76.5Z" }) }), _jsx("g", { filter: "url(#gemini__f)", children: _jsx("path", { fill: "#FA4340", d: "M190.5-12.5C168.5 59.5 62 111.333 19 112L140.5-89l50 76.5Z" }) }), _jsx("g", { filter: "url(#gemini__g)", children: _jsx("path", { fill: "#14BB69", d: "M194.5 279.5C172.5 207.5 66 155.667 23 155l121.5 201 50-76.5Z" }) }), _jsx("g", { filter: "url(#gemini__h)", children: _jsx("path", { fill: "#14BB69", d: "M196.5 320.5C174.5 248.5 68 196.667 25 196l121.5 201 50-76.5Z" }) })] }), _jsxs("defs", { children: [_jsxs("filter", { id: "gemini__b", width: "464", height: "390", x: "-69", y: "-46", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "18" })] }), _jsxs("filter", { id: "gemini__c", width: "265", height: "273", x: "-99", y: "6", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] }), _jsxs("filter", { id: "gemini__d", width: "265", height: "273", x: "-113", y: "12", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] }), _jsxs("filter", { id: "gemini__e", width: "299.5", height: "329", x: "-41.5", y: "-130", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] }), _jsxs("filter", { id: "gemini__f", width: "299.5", height: "329", x: "-45", y: "-153", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] }), _jsxs("filter", { id: "gemini__g", width: "299.5", height: "329", x: "-41", y: "91", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] }), _jsxs("filter", { id: "gemini__h", width: "299.5", height: "329", x: "-39", y: "132", "color-interpolation-filters": "sRGB", filterUnits: "userSpaceOnUse", children: [_jsx("feFlood", { "flood-opacity": "0", result: "BackgroundImageFix" }), _jsx("feBlend", { in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }), _jsx("feGaussianBlur", { result: "effect1_foregroundBlur_69_17998", stdDeviation: "32" })] })] })] }));
4
- }
5
- //# sourceMappingURL=GeminiLogo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeminiLogo.js","sourceRoot":"","sources":["../../../src/components/icons/GeminiLogo.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function OllamaLogo(): import("hono/jsx/jsx-dev-runtime").JSX.Element;
2
- //# sourceMappingURL=OllamaLogo.d.ts.map