@phenx-inc/ctlsurf 0.5.2 → 0.7.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.
- package/electron-vite.config.ts +5 -0
- package/out/headless/index.mjs +2 -1
- package/out/headless/index.mjs.map +2 -2
- package/out/main/index.js +3 -0
- package/out/renderer/assets/{cssMode-D9-xaWSI.js → cssMode-eTXVdAkZ.js} +3 -3
- package/out/renderer/assets/{freemarker2-CoRAVxnv.js → freemarker2-B5BKaiK4.js} +1 -1
- package/out/renderer/assets/{handlebars-B0p9Wgkw.js → handlebars-BIdLd2wU.js} +1 -1
- package/out/renderer/assets/{html-D_XFJJtO.js → html-BXL4cnLS.js} +1 -1
- package/out/renderer/assets/{htmlMode-naWw6PWr.js → htmlMode-46N3XG2c.js} +3 -3
- package/out/renderer/assets/{index-ezC-iarf.css → index-Cf-RsxoC.css} +163 -0
- package/out/renderer/assets/{index-DBt_rov1.js → index-dRvutfbl.js} +572 -107
- package/out/renderer/assets/{javascript-DDLsFUr-.js → javascript-n_iZZzDX.js} +2 -2
- package/out/renderer/assets/{jsonMode-Ixhcm5I6.js → jsonMode-DXDczSNu.js} +3 -3
- package/out/renderer/assets/{liquid-BHgSYEHk.js → liquid-B1QweUh7.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-ClbEdD0U.js → lspLanguageFeatures-DqzMqkRk.js} +1 -1
- package/out/renderer/assets/{mdx-DMngMjHR.js → mdx-BCv8lm5e.js} +1 -1
- package/out/renderer/assets/ort-wasm-simd-threaded.asyncify-DMmc6YqF.wasm +0 -0
- package/out/renderer/assets/{python-D_czoeY2.js → python-BLNzYwDv.js} +1 -1
- package/out/renderer/assets/{razor-CLMDGvL7.js → razor-CvAww8bG.js} +1 -1
- package/out/renderer/assets/transformers.web-DtSCnG36.js +33668 -0
- package/out/renderer/assets/{tsMode-EIuSGG42.js → tsMode-C7m6Kr5E.js} +1 -1
- package/out/renderer/assets/{typescript-DQkV4kKA.js → typescript-DhPw4VVg.js} +1 -1
- package/out/renderer/assets/{xml-DJ0OOQTu.js → xml-B0WLFJ2U.js} +1 -1
- package/out/renderer/assets/{yaml-DxX26XLN.js → yaml-BWyn9Wd7.js} +1 -1
- package/out/renderer/index.html +2 -2
- package/package.json +2 -1
- package/src/main/index.ts +7 -0
- package/src/renderer/App.tsx +41 -1
- package/src/renderer/components/FloatingMic.tsx +128 -0
- package/src/renderer/components/TerminalPanel.tsx +6 -0
- package/src/renderer/components/VoiceInput.tsx +321 -0
- package/src/renderer/lib/localWhisper.ts +88 -0
- package/src/renderer/styles.css +163 -0
package/out/main/index.js
CHANGED
|
@@ -11558,6 +11558,9 @@ function createWindow() {
|
|
|
11558
11558
|
webviewTag: true
|
|
11559
11559
|
}
|
|
11560
11560
|
});
|
|
11561
|
+
mainWindow.webContents.session.setPermissionRequestHandler((_wc, _permission, callback) => {
|
|
11562
|
+
callback(true);
|
|
11563
|
+
});
|
|
11561
11564
|
if (process.env.ELECTRON_RENDERER_URL) {
|
|
11562
11565
|
mainWindow.loadURL(process.env.ELECTRON_RENDERER_URL);
|
|
11563
11566
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-
|
|
3
|
-
import { h, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-dRvutfbl.js";
|
|
2
|
+
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-DqzMqkRk.js";
|
|
3
|
+
import { h, i, j, t, k } from "./lspLanguageFeatures-DqzMqkRk.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-
|
|
3
|
-
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-dRvutfbl.js";
|
|
2
|
+
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-DqzMqkRk.js";
|
|
3
|
+
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-DqzMqkRk.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -7956,6 +7956,169 @@ html, body, #root {
|
|
|
7956
7956
|
line-height: 1;
|
|
7957
7957
|
}
|
|
7958
7958
|
|
|
7959
|
+
/* Voice typing (push-to-talk mic) */
|
|
7960
|
+
.voice-input-wrap {
|
|
7961
|
+
position: relative;
|
|
7962
|
+
display: inline-flex;
|
|
7963
|
+
}
|
|
7964
|
+
.voice-btn {
|
|
7965
|
+
user-select: none;
|
|
7966
|
+
-webkit-user-select: none;
|
|
7967
|
+
touch-action: none;
|
|
7968
|
+
}
|
|
7969
|
+
.voice-btn:disabled {
|
|
7970
|
+
opacity: 0.4;
|
|
7971
|
+
cursor: not-allowed;
|
|
7972
|
+
}
|
|
7973
|
+
.voice-btn.listening {
|
|
7974
|
+
color: #f7768e;
|
|
7975
|
+
border-color: #f7768e;
|
|
7976
|
+
background: #1f2335;
|
|
7977
|
+
}
|
|
7978
|
+
.voice-btn.busy {
|
|
7979
|
+
color: #e0af68;
|
|
7980
|
+
border-color: #e0af68;
|
|
7981
|
+
background: #1f2335;
|
|
7982
|
+
}
|
|
7983
|
+
.voice-icon {
|
|
7984
|
+
font-size: 13px;
|
|
7985
|
+
line-height: 1;
|
|
7986
|
+
}
|
|
7987
|
+
.voice-dot {
|
|
7988
|
+
width: 6px;
|
|
7989
|
+
height: 6px;
|
|
7990
|
+
border-radius: 50%;
|
|
7991
|
+
display: inline-block;
|
|
7992
|
+
vertical-align: middle;
|
|
7993
|
+
background: #565f89;
|
|
7994
|
+
}
|
|
7995
|
+
.voice-dot.on {
|
|
7996
|
+
background: #f7768e;
|
|
7997
|
+
box-shadow: 0 0 4px #f7768e;
|
|
7998
|
+
animation: voice-pulse 1s ease-in-out infinite;
|
|
7999
|
+
}
|
|
8000
|
+
.voice-dot.busy {
|
|
8001
|
+
background: #e0af68;
|
|
8002
|
+
box-shadow: 0 0 4px #e0af68;
|
|
8003
|
+
animation: voice-pulse 0.8s ease-in-out infinite;
|
|
8004
|
+
}
|
|
8005
|
+
@keyframes voice-pulse {
|
|
8006
|
+
0%, 100% { opacity: 1; }
|
|
8007
|
+
50% { opacity: 0.3; }
|
|
8008
|
+
}
|
|
8009
|
+
.voice-chip {
|
|
8010
|
+
position: absolute;
|
|
8011
|
+
top: 100%;
|
|
8012
|
+
right: 0;
|
|
8013
|
+
margin-top: 6px;
|
|
8014
|
+
max-width: 320px;
|
|
8015
|
+
padding: 4px 9px;
|
|
8016
|
+
border-radius: 5px;
|
|
8017
|
+
font-size: 11px;
|
|
8018
|
+
line-height: 1.3;
|
|
8019
|
+
white-space: nowrap;
|
|
8020
|
+
overflow: hidden;
|
|
8021
|
+
text-overflow: ellipsis;
|
|
8022
|
+
z-index: 50;
|
|
8023
|
+
pointer-events: none;
|
|
8024
|
+
border: 1px solid #3b3d57;
|
|
8025
|
+
}
|
|
8026
|
+
.voice-chip.listening {
|
|
8027
|
+
background: #1f2335;
|
|
8028
|
+
color: #a9b1d6;
|
|
8029
|
+
}
|
|
8030
|
+
.voice-chip.busy {
|
|
8031
|
+
background: #1f2335;
|
|
8032
|
+
color: #e0af68;
|
|
8033
|
+
border-color: #e0af68;
|
|
8034
|
+
}
|
|
8035
|
+
.voice-chip.notice {
|
|
8036
|
+
background: #1f2335;
|
|
8037
|
+
color: #e0af68;
|
|
8038
|
+
border-color: #e0af68;
|
|
8039
|
+
white-space: normal;
|
|
8040
|
+
}
|
|
8041
|
+
.voice-chip.error {
|
|
8042
|
+
background: #2d2030;
|
|
8043
|
+
color: #f7768e;
|
|
8044
|
+
border-color: #f7768e;
|
|
8045
|
+
white-space: normal;
|
|
8046
|
+
}
|
|
8047
|
+
|
|
8048
|
+
/* Floating push-to-talk mic (draggable, dismissable FAB) */
|
|
8049
|
+
.floating-mic {
|
|
8050
|
+
position: fixed;
|
|
8051
|
+
z-index: 200;
|
|
8052
|
+
display: flex;
|
|
8053
|
+
flex-direction: column;
|
|
8054
|
+
align-items: center;
|
|
8055
|
+
gap: 4px;
|
|
8056
|
+
padding: 4px 4px 6px;
|
|
8057
|
+
background: #16161e;
|
|
8058
|
+
border: 1px solid #3b3d57;
|
|
8059
|
+
border-radius: 12px;
|
|
8060
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
|
|
8061
|
+
user-select: none;
|
|
8062
|
+
-webkit-user-select: none;
|
|
8063
|
+
}
|
|
8064
|
+
.floating-mic-handle {
|
|
8065
|
+
display: flex;
|
|
8066
|
+
align-items: center;
|
|
8067
|
+
justify-content: space-between;
|
|
8068
|
+
width: 100%;
|
|
8069
|
+
cursor: grab;
|
|
8070
|
+
touch-action: none;
|
|
8071
|
+
}
|
|
8072
|
+
.floating-mic-handle:active { cursor: grabbing; }
|
|
8073
|
+
.floating-mic-grip {
|
|
8074
|
+
color: #565f89;
|
|
8075
|
+
font-size: 12px;
|
|
8076
|
+
line-height: 1;
|
|
8077
|
+
padding: 0 2px;
|
|
8078
|
+
}
|
|
8079
|
+
.floating-mic-hide {
|
|
8080
|
+
background: transparent;
|
|
8081
|
+
border: none;
|
|
8082
|
+
color: #565f89;
|
|
8083
|
+
font-size: 15px;
|
|
8084
|
+
line-height: 1;
|
|
8085
|
+
cursor: pointer;
|
|
8086
|
+
padding: 0 2px;
|
|
8087
|
+
}
|
|
8088
|
+
.floating-mic-hide:hover { color: #f7768e; }
|
|
8089
|
+
|
|
8090
|
+
.voice-btn-floating {
|
|
8091
|
+
width: 48px;
|
|
8092
|
+
height: 48px;
|
|
8093
|
+
border-radius: 50%;
|
|
8094
|
+
display: inline-flex;
|
|
8095
|
+
align-items: center;
|
|
8096
|
+
justify-content: center;
|
|
8097
|
+
background: #2a2b3d;
|
|
8098
|
+
border: 1px solid #3b3d57;
|
|
8099
|
+
color: #a9b1d6;
|
|
8100
|
+
cursor: pointer;
|
|
8101
|
+
position: relative;
|
|
8102
|
+
transition: all 0.15s;
|
|
8103
|
+
}
|
|
8104
|
+
.voice-btn-floating:hover { border-color: #565f89; }
|
|
8105
|
+
.voice-btn-floating .voice-icon { font-size: 22px; }
|
|
8106
|
+
.voice-btn-floating .voice-dot {
|
|
8107
|
+
position: absolute;
|
|
8108
|
+
top: 5px;
|
|
8109
|
+
right: 5px;
|
|
8110
|
+
}
|
|
8111
|
+
/* Floating chip sits above the round button rather than below it. */
|
|
8112
|
+
.voice-chip-floating {
|
|
8113
|
+
top: auto;
|
|
8114
|
+
bottom: 100%;
|
|
8115
|
+
right: auto;
|
|
8116
|
+
left: 50%;
|
|
8117
|
+
transform: translateX(-50%);
|
|
8118
|
+
margin-top: 0;
|
|
8119
|
+
margin-bottom: 8px;
|
|
8120
|
+
}
|
|
8121
|
+
|
|
7959
8122
|
/* Editor panel */
|
|
7960
8123
|
.editor-panel {
|
|
7961
8124
|
display: flex;
|