@speechos/client 0.2.9 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/form-detector.d.ts.map +1 -1
- package/dist/index.cjs +354 -223
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.iife.js +355 -233
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +399 -306
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.js +355 -225
- package/dist/index.js.map +1 -1
- package/dist/settings-sync.d.ts +1 -3
- package/dist/settings-sync.d.ts.map +1 -1
- package/dist/stores/language-settings.d.ts.map +1 -1
- package/dist/ui/audio-level-meter.d.ts.map +1 -1
- package/dist/ui/dictation-output-modal.d.ts.map +1 -1
- package/dist/ui/mic-button.d.ts.map +1 -1
- package/dist/ui/styles/modal-styles.d.ts.map +1 -1
- package/dist/ui/styles/popup-modal-styles.d.ts.map +1 -1
- package/dist/ui/tabs/about-tab.d.ts.map +1 -1
- package/dist/ui/tabs/history-tab.d.ts.map +1 -1
- package/dist/ui/tabs/settings-tab.d.ts.map +1 -1
- package/dist/ui/tabs/snippets-tab.d.ts.map +1 -1
- package/dist/ui/tabs/vocabulary-tab.d.ts.map +1 -1
- package/dist/ui/widget.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -15,6 +15,7 @@ const defaultClientConfig = {
|
|
|
15
15
|
commands: [],
|
|
16
16
|
zIndex: 999999,
|
|
17
17
|
alwaysVisible: false,
|
|
18
|
+
useExternalSettings: false,
|
|
18
19
|
};
|
|
19
20
|
/**
|
|
20
21
|
* Current client configuration singleton
|
|
@@ -30,6 +31,7 @@ function validateClientConfig(config) {
|
|
|
30
31
|
commands: config.commands ?? defaultClientConfig.commands,
|
|
31
32
|
zIndex: config.zIndex ?? defaultClientConfig.zIndex,
|
|
32
33
|
alwaysVisible: config.alwaysVisible ?? defaultClientConfig.alwaysVisible,
|
|
34
|
+
useExternalSettings: config.useExternalSettings ?? defaultClientConfig.useExternalSettings,
|
|
33
35
|
};
|
|
34
36
|
// Validate zIndex
|
|
35
37
|
if (typeof resolved.zIndex !== "number" || resolved.zIndex < 0) {
|
|
@@ -81,6 +83,12 @@ function getZIndex() {
|
|
|
81
83
|
function isAlwaysVisible() {
|
|
82
84
|
return currentClientConfig.alwaysVisible;
|
|
83
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Check if external settings page should be used
|
|
88
|
+
*/
|
|
89
|
+
function useExternalSettings() {
|
|
90
|
+
return currentClientConfig.useExternalSettings;
|
|
91
|
+
}
|
|
84
92
|
|
|
85
93
|
/**
|
|
86
94
|
* Form field focus detection for SpeechOS Client SDK
|
|
@@ -251,6 +259,17 @@ class FormDetector {
|
|
|
251
259
|
document.addEventListener("touchstart", this.touchHandler, true);
|
|
252
260
|
document.addEventListener("mousedown", this.mouseDownHandler, true);
|
|
253
261
|
this.isActive = true;
|
|
262
|
+
// Check for already-focused form field (e.g., page loaded with autofocus)
|
|
263
|
+
const activeElement = document.activeElement;
|
|
264
|
+
if (isFormField(activeElement)) {
|
|
265
|
+
console.log("[SpeechOS] FormDetector: found initially focused form field", {
|
|
266
|
+
element: activeElement,
|
|
267
|
+
tagName: activeElement?.tagName,
|
|
268
|
+
});
|
|
269
|
+
core.state.setFocusedElement(activeElement);
|
|
270
|
+
core.state.show();
|
|
271
|
+
core.events.emit("form:focus", { element: activeElement });
|
|
272
|
+
}
|
|
254
273
|
}
|
|
255
274
|
/**
|
|
256
275
|
* Stop detecting form field focus events
|
|
@@ -495,9 +514,12 @@ let memoryCache$3 = null;
|
|
|
495
514
|
* Sorted alphabetically by name for dropdown display
|
|
496
515
|
*/
|
|
497
516
|
const SUPPORTED_LANGUAGES = [
|
|
517
|
+
{ name: "Belarusian", code: "be", variants: ["be"] },
|
|
518
|
+
{ name: "Bengali", code: "bn", variants: ["bn"] },
|
|
519
|
+
{ name: "Bosnian", code: "bs", variants: ["bs"] },
|
|
498
520
|
{ name: "Bulgarian", code: "bg", variants: ["bg"] },
|
|
499
521
|
{ name: "Catalan", code: "ca", variants: ["ca"] },
|
|
500
|
-
{ name: "
|
|
522
|
+
{ name: "Croatian", code: "hr", variants: ["hr"] },
|
|
501
523
|
{ name: "Czech", code: "cs", variants: ["cs"] },
|
|
502
524
|
{ name: "Danish", code: "da", variants: ["da", "da-DK"] },
|
|
503
525
|
{ name: "Dutch", code: "nl", variants: ["nl"] },
|
|
@@ -518,18 +540,26 @@ const SUPPORTED_LANGUAGES = [
|
|
|
518
540
|
{ name: "Indonesian", code: "id", variants: ["id"] },
|
|
519
541
|
{ name: "Italian", code: "it", variants: ["it"] },
|
|
520
542
|
{ name: "Japanese", code: "ja", variants: ["ja"] },
|
|
543
|
+
{ name: "Kannada", code: "kn", variants: ["kn"] },
|
|
521
544
|
{ name: "Korean", code: "ko", variants: ["ko", "ko-KR"] },
|
|
522
545
|
{ name: "Latvian", code: "lv", variants: ["lv"] },
|
|
523
546
|
{ name: "Lithuanian", code: "lt", variants: ["lt"] },
|
|
547
|
+
{ name: "Macedonian", code: "mk", variants: ["mk"] },
|
|
524
548
|
{ name: "Malay", code: "ms", variants: ["ms"] },
|
|
549
|
+
{ name: "Marathi", code: "mr", variants: ["mr"] },
|
|
525
550
|
{ name: "Norwegian", code: "no", variants: ["no"] },
|
|
526
551
|
{ name: "Polish", code: "pl", variants: ["pl"] },
|
|
527
552
|
{ name: "Portuguese", code: "pt", variants: ["pt", "pt-BR", "pt-PT"] },
|
|
528
553
|
{ name: "Romanian", code: "ro", variants: ["ro"] },
|
|
529
554
|
{ name: "Russian", code: "ru", variants: ["ru"] },
|
|
555
|
+
{ name: "Serbian", code: "sr", variants: ["sr"] },
|
|
530
556
|
{ name: "Slovak", code: "sk", variants: ["sk"] },
|
|
557
|
+
{ name: "Slovenian", code: "sl", variants: ["sl"] },
|
|
531
558
|
{ name: "Spanish", code: "es", variants: ["es", "es-419"] },
|
|
532
559
|
{ name: "Swedish", code: "sv", variants: ["sv", "sv-SE"] },
|
|
560
|
+
{ name: "Tagalog", code: "tl", variants: ["tl"] },
|
|
561
|
+
{ name: "Tamil", code: "ta", variants: ["ta"] },
|
|
562
|
+
{ name: "Telugu", code: "te", variants: ["te"] },
|
|
533
563
|
{ name: "Turkish", code: "tr", variants: ["tr"] },
|
|
534
564
|
{ name: "Ukrainian", code: "uk", variants: ["uk"] },
|
|
535
565
|
{ name: "Vietnamese", code: "vi", variants: ["vi"] },
|
|
@@ -1322,25 +1352,14 @@ class SettingsSync {
|
|
|
1322
1352
|
this.syncDisabled = false;
|
|
1323
1353
|
}
|
|
1324
1354
|
/**
|
|
1325
|
-
* Make a fetch request using
|
|
1326
|
-
* This allows the Chrome extension to route fetch traffic through the service worker
|
|
1327
|
-
* to bypass page CSP restrictions.
|
|
1355
|
+
* Make a fetch request using native fetch.
|
|
1328
1356
|
*/
|
|
1329
1357
|
async doFetch(url, options) {
|
|
1330
1358
|
const config = core.getConfig();
|
|
1331
|
-
const customHandler = core.getFetchHandler();
|
|
1332
|
-
if (customHandler) {
|
|
1333
|
-
if (config.debug) {
|
|
1334
|
-
console.log("[SpeechOS] Using custom fetch handler (extension proxy)", options.method, url);
|
|
1335
|
-
}
|
|
1336
|
-
return customHandler(url, options);
|
|
1337
|
-
}
|
|
1338
1359
|
if (config.debug) {
|
|
1339
1360
|
console.log("[SpeechOS] Using native fetch", options.method, url);
|
|
1340
1361
|
}
|
|
1341
|
-
|
|
1342
|
-
const response = await fetch(url, options);
|
|
1343
|
-
return response;
|
|
1362
|
+
return fetch(url, options);
|
|
1344
1363
|
}
|
|
1345
1364
|
/**
|
|
1346
1365
|
* Initialize the settings sync manager
|
|
@@ -1720,9 +1739,9 @@ const themeStyles = i$4 `
|
|
|
1720
1739
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
1721
1740
|
|
|
1722
1741
|
/* Color tokens */
|
|
1723
|
-
--speechos-primary: #
|
|
1724
|
-
--speechos-primary-hover: #
|
|
1725
|
-
--speechos-primary-active: #
|
|
1742
|
+
--speechos-primary: #0d9488;
|
|
1743
|
+
--speechos-primary-hover: #0f766e;
|
|
1744
|
+
--speechos-primary-active: #115e59;
|
|
1726
1745
|
|
|
1727
1746
|
--speechos-bg: #ffffff;
|
|
1728
1747
|
--speechos-bg-hover: #f9fafb;
|
|
@@ -2287,45 +2306,51 @@ let SpeechOSMicButton = class SpeechOSMicButton extends i$1 {
|
|
|
2287
2306
|
width: 56px;
|
|
2288
2307
|
height: 56px;
|
|
2289
2308
|
border-radius: var(--speechos-radius-full);
|
|
2290
|
-
background:
|
|
2309
|
+
background: #10b981;
|
|
2291
2310
|
border: none;
|
|
2292
2311
|
cursor: pointer;
|
|
2293
2312
|
display: flex;
|
|
2294
2313
|
align-items: center;
|
|
2295
2314
|
justify-content: center;
|
|
2296
2315
|
color: white;
|
|
2297
|
-
box-shadow: 0 4px
|
|
2298
|
-
transition: all 0.
|
|
2316
|
+
box-shadow: 0 4px 16px rgba(16, 185, 129, 0.35);
|
|
2317
|
+
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2299
2318
|
position: relative;
|
|
2300
2319
|
overflow: hidden;
|
|
2301
2320
|
}
|
|
2302
2321
|
|
|
2303
2322
|
.mic-button:hover {
|
|
2323
|
+
background: #059669;
|
|
2304
2324
|
transform: scale(1.05);
|
|
2305
|
-
box-shadow: 0 6px
|
|
2325
|
+
box-shadow: 0 6px 24px rgba(16, 185, 129, 0.45);
|
|
2306
2326
|
}
|
|
2307
2327
|
|
|
2308
2328
|
.mic-button:active {
|
|
2309
2329
|
transform: scale(0.98);
|
|
2310
2330
|
}
|
|
2311
2331
|
|
|
2332
|
+
.mic-button:focus {
|
|
2333
|
+
outline: none;
|
|
2334
|
+
box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.4), 0 4px 16px rgba(16, 185, 129, 0.35);
|
|
2335
|
+
}
|
|
2336
|
+
|
|
2312
2337
|
/* Expanded state - bubbles visible */
|
|
2313
2338
|
.mic-button.expanded {
|
|
2314
|
-
background:
|
|
2339
|
+
background: #059669;
|
|
2315
2340
|
}
|
|
2316
2341
|
|
|
2317
2342
|
/* Connecting state - Siri-style metallic spinner */
|
|
2318
2343
|
.mic-button.connecting {
|
|
2319
2344
|
background: radial-gradient(
|
|
2320
2345
|
circle at 30% 30%,
|
|
2321
|
-
#
|
|
2322
|
-
#
|
|
2323
|
-
#
|
|
2324
|
-
#
|
|
2346
|
+
#2dd4bf 0%,
|
|
2347
|
+
#14b8a6 40%,
|
|
2348
|
+
#0d9488 70%,
|
|
2349
|
+
#0f766e 100%
|
|
2325
2350
|
);
|
|
2326
2351
|
cursor: wait;
|
|
2327
|
-
box-shadow: 0 0 20px rgba(
|
|
2328
|
-
0 0 40px rgba(
|
|
2352
|
+
box-shadow: 0 0 20px rgba(13, 148, 136, 0.4),
|
|
2353
|
+
0 0 40px rgba(13, 148, 136, 0.2),
|
|
2329
2354
|
inset 0 0 20px rgba(255, 255, 255, 0.1);
|
|
2330
2355
|
}
|
|
2331
2356
|
|
|
@@ -2368,15 +2393,15 @@ let SpeechOSMicButton = class SpeechOSMicButton extends i$1 {
|
|
|
2368
2393
|
background: conic-gradient(
|
|
2369
2394
|
from 0deg,
|
|
2370
2395
|
transparent 0deg,
|
|
2371
|
-
rgba(
|
|
2372
|
-
rgba(
|
|
2396
|
+
rgba(45, 212, 191, 0.1) 30deg,
|
|
2397
|
+
rgba(13, 148, 136, 0.8) 90deg,
|
|
2373
2398
|
rgba(255, 255, 255, 0.95) 120deg,
|
|
2374
|
-
rgba(
|
|
2375
|
-
rgba(
|
|
2376
|
-
rgba(
|
|
2399
|
+
rgba(45, 212, 191, 0.9) 150deg,
|
|
2400
|
+
rgba(13, 148, 136, 0.6) 180deg,
|
|
2401
|
+
rgba(15, 118, 110, 0.3) 210deg,
|
|
2377
2402
|
transparent 270deg,
|
|
2378
|
-
rgba(
|
|
2379
|
-
rgba(
|
|
2403
|
+
rgba(94, 234, 212, 0.2) 300deg,
|
|
2404
|
+
rgba(13, 148, 136, 0.5) 330deg,
|
|
2380
2405
|
transparent 360deg
|
|
2381
2406
|
);
|
|
2382
2407
|
-webkit-mask: linear-gradient(#fff 0 0) content-box,
|
|
@@ -2397,13 +2422,13 @@ let SpeechOSMicButton = class SpeechOSMicButton extends i$1 {
|
|
|
2397
2422
|
background: conic-gradient(
|
|
2398
2423
|
from 180deg,
|
|
2399
2424
|
transparent 0deg,
|
|
2400
|
-
rgba(
|
|
2425
|
+
rgba(153, 246, 228, 0.3) 60deg,
|
|
2401
2426
|
rgba(255, 255, 255, 0.7) 90deg,
|
|
2402
|
-
rgba(
|
|
2427
|
+
rgba(94, 234, 212, 0.5) 120deg,
|
|
2403
2428
|
transparent 180deg,
|
|
2404
|
-
rgba(
|
|
2429
|
+
rgba(45, 212, 191, 0.2) 240deg,
|
|
2405
2430
|
rgba(255, 255, 255, 0.5) 270deg,
|
|
2406
|
-
rgba(
|
|
2431
|
+
rgba(13, 148, 136, 0.4) 300deg,
|
|
2407
2432
|
transparent 360deg
|
|
2408
2433
|
);
|
|
2409
2434
|
-webkit-mask: linear-gradient(#fff 0 0) content-box,
|
|
@@ -2444,8 +2469,8 @@ let SpeechOSMicButton = class SpeechOSMicButton extends i$1 {
|
|
|
2444
2469
|
border-radius: 50%;
|
|
2445
2470
|
background: radial-gradient(
|
|
2446
2471
|
circle,
|
|
2447
|
-
rgba(
|
|
2448
|
-
rgba(
|
|
2472
|
+
rgba(13, 148, 136, 0.4) 0%,
|
|
2473
|
+
rgba(13, 148, 136, 0.15) 40%,
|
|
2449
2474
|
transparent 70%
|
|
2450
2475
|
);
|
|
2451
2476
|
animation: siri-glow-pulse 2s ease-in-out infinite;
|
|
@@ -3865,15 +3890,15 @@ const modalLayoutStyles = i$4 `
|
|
|
3865
3890
|
}
|
|
3866
3891
|
|
|
3867
3892
|
.modal {
|
|
3868
|
-
background: #
|
|
3893
|
+
background: #f5f5f4;
|
|
3869
3894
|
border-radius: 16px;
|
|
3870
3895
|
width: 90%;
|
|
3871
3896
|
max-width: 580px;
|
|
3872
3897
|
height: min(560px, 85vh);
|
|
3873
3898
|
display: flex;
|
|
3874
3899
|
flex-direction: column;
|
|
3875
|
-
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.
|
|
3876
|
-
0 0 0 1px rgba(
|
|
3900
|
+
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.15),
|
|
3901
|
+
0 0 0 1px rgba(0, 0, 0, 0.05);
|
|
3877
3902
|
transform: scale(0.95) translateY(10px);
|
|
3878
3903
|
transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
|
|
3879
3904
|
pointer-events: auto;
|
|
@@ -3898,16 +3923,16 @@ const modalLayoutStyles = i$4 `
|
|
|
3898
3923
|
align-items: center;
|
|
3899
3924
|
justify-content: space-between;
|
|
3900
3925
|
padding: 16px 20px;
|
|
3901
|
-
border-bottom: 1px solid
|
|
3902
|
-
background:
|
|
3926
|
+
border-bottom: 1px solid #e5e5e5;
|
|
3927
|
+
background: #ffffff;
|
|
3903
3928
|
}
|
|
3904
3929
|
|
|
3905
3930
|
.modal-title {
|
|
3906
3931
|
font-size: 17px;
|
|
3907
3932
|
font-weight: 600;
|
|
3908
|
-
color:
|
|
3933
|
+
color: #171717;
|
|
3909
3934
|
margin: 0;
|
|
3910
|
-
letter-spacing: -0.
|
|
3935
|
+
letter-spacing: -0.02em;
|
|
3911
3936
|
}
|
|
3912
3937
|
|
|
3913
3938
|
.modal-logo {
|
|
@@ -3920,7 +3945,7 @@ const modalLayoutStyles = i$4 `
|
|
|
3920
3945
|
width: 28px;
|
|
3921
3946
|
height: 28px;
|
|
3922
3947
|
border-radius: 8px;
|
|
3923
|
-
background: linear-gradient(135deg, #
|
|
3948
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
3924
3949
|
display: flex;
|
|
3925
3950
|
align-items: center;
|
|
3926
3951
|
justify-content: center;
|
|
@@ -3935,13 +3960,13 @@ const modalLayoutStyles = i$4 `
|
|
|
3935
3960
|
.logo-text {
|
|
3936
3961
|
font-size: 17px;
|
|
3937
3962
|
font-weight: 500;
|
|
3938
|
-
color:
|
|
3963
|
+
color: #171717;
|
|
3939
3964
|
letter-spacing: -0.02em;
|
|
3940
3965
|
}
|
|
3941
3966
|
|
|
3942
3967
|
.logo-os {
|
|
3943
3968
|
font-weight: 700;
|
|
3944
|
-
background: linear-gradient(135deg, #
|
|
3969
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
3945
3970
|
-webkit-background-clip: text;
|
|
3946
3971
|
-webkit-text-fill-color: transparent;
|
|
3947
3972
|
background-clip: text;
|
|
@@ -3957,13 +3982,22 @@ const modalLayoutStyles = i$4 `
|
|
|
3957
3982
|
display: flex;
|
|
3958
3983
|
align-items: center;
|
|
3959
3984
|
justify-content: center;
|
|
3960
|
-
color:
|
|
3985
|
+
color: #737373;
|
|
3961
3986
|
transition: all 0.15s ease;
|
|
3962
3987
|
}
|
|
3963
3988
|
|
|
3964
3989
|
.close-button:hover {
|
|
3965
|
-
background:
|
|
3966
|
-
color:
|
|
3990
|
+
background: #f5f5f4;
|
|
3991
|
+
color: #171717;
|
|
3992
|
+
}
|
|
3993
|
+
|
|
3994
|
+
.close-button:focus {
|
|
3995
|
+
outline: none;
|
|
3996
|
+
box-shadow: 0 0 0 2px #0d9488, 0 0 0 4px rgba(13, 148, 136, 0.2);
|
|
3997
|
+
}
|
|
3998
|
+
|
|
3999
|
+
.close-button:active {
|
|
4000
|
+
transform: scale(0.95);
|
|
3967
4001
|
}
|
|
3968
4002
|
|
|
3969
4003
|
.modal-body {
|
|
@@ -3975,8 +4009,8 @@ const modalLayoutStyles = i$4 `
|
|
|
3975
4009
|
.sidebar {
|
|
3976
4010
|
width: 110px;
|
|
3977
4011
|
flex-shrink: 0;
|
|
3978
|
-
background:
|
|
3979
|
-
border-right: 1px solid
|
|
4012
|
+
background: #fafaf9;
|
|
4013
|
+
border-right: 1px solid #e5e5e5;
|
|
3980
4014
|
padding: 12px 8px;
|
|
3981
4015
|
display: flex;
|
|
3982
4016
|
flex-direction: column;
|
|
@@ -4005,19 +4039,25 @@ const modalLayoutStyles = i$4 `
|
|
|
4005
4039
|
border-radius: 10px;
|
|
4006
4040
|
background: transparent;
|
|
4007
4041
|
cursor: pointer;
|
|
4008
|
-
color:
|
|
4042
|
+
color: #525252;
|
|
4009
4043
|
transition: all 0.15s ease;
|
|
4010
4044
|
position: relative;
|
|
4011
4045
|
}
|
|
4012
4046
|
|
|
4013
4047
|
.sidebar-item:hover {
|
|
4014
|
-
background:
|
|
4015
|
-
color:
|
|
4048
|
+
background: #ffffff;
|
|
4049
|
+
color: #171717;
|
|
4050
|
+
}
|
|
4051
|
+
|
|
4052
|
+
.sidebar-item:focus {
|
|
4053
|
+
outline: none;
|
|
4054
|
+
box-shadow: inset 0 0 0 2px rgba(13, 148, 136, 0.4);
|
|
4016
4055
|
}
|
|
4017
4056
|
|
|
4018
4057
|
.sidebar-item.active {
|
|
4019
|
-
background: rgba(
|
|
4020
|
-
color: #
|
|
4058
|
+
background: rgba(15, 118, 110, 0.12);
|
|
4059
|
+
color: #0f766e;
|
|
4060
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
|
|
4021
4061
|
}
|
|
4022
4062
|
|
|
4023
4063
|
.sidebar-item.active::before {
|
|
@@ -4028,7 +4068,7 @@ const modalLayoutStyles = i$4 `
|
|
|
4028
4068
|
transform: translateY(-50%);
|
|
4029
4069
|
width: 3px;
|
|
4030
4070
|
height: 24px;
|
|
4031
|
-
background: #
|
|
4071
|
+
background: #0f766e;
|
|
4032
4072
|
border-radius: 0 3px 3px 0;
|
|
4033
4073
|
}
|
|
4034
4074
|
|
|
@@ -4071,14 +4111,14 @@ const tabContentStyles = i$4 `
|
|
|
4071
4111
|
.section-title {
|
|
4072
4112
|
font-size: 15px;
|
|
4073
4113
|
font-weight: 600;
|
|
4074
|
-
color:
|
|
4114
|
+
color: #171717;
|
|
4075
4115
|
margin: 0 0 6px 0;
|
|
4076
|
-
letter-spacing: -0.
|
|
4116
|
+
letter-spacing: -0.02em;
|
|
4077
4117
|
}
|
|
4078
4118
|
|
|
4079
4119
|
.section-description {
|
|
4080
4120
|
font-size: 13px;
|
|
4081
|
-
color:
|
|
4121
|
+
color: #525252;
|
|
4082
4122
|
line-height: 1.5;
|
|
4083
4123
|
margin: 0;
|
|
4084
4124
|
}
|
|
@@ -4086,7 +4126,7 @@ const tabContentStyles = i$4 `
|
|
|
4086
4126
|
.empty-state {
|
|
4087
4127
|
text-align: center;
|
|
4088
4128
|
padding: 40px 20px;
|
|
4089
|
-
color:
|
|
4129
|
+
color: #737373;
|
|
4090
4130
|
}
|
|
4091
4131
|
|
|
4092
4132
|
.empty-state-icon {
|
|
@@ -4098,7 +4138,7 @@ const tabContentStyles = i$4 `
|
|
|
4098
4138
|
font-size: 15px;
|
|
4099
4139
|
font-weight: 500;
|
|
4100
4140
|
margin-bottom: 8px;
|
|
4101
|
-
color:
|
|
4141
|
+
color: #525252;
|
|
4102
4142
|
}
|
|
4103
4143
|
|
|
4104
4144
|
.empty-state-text {
|
|
@@ -4116,7 +4156,7 @@ const tabContentStyles = i$4 `
|
|
|
4116
4156
|
display: flex;
|
|
4117
4157
|
align-items: center;
|
|
4118
4158
|
justify-content: center;
|
|
4119
|
-
color:
|
|
4159
|
+
color: #737373;
|
|
4120
4160
|
transition: all 0.15s ease;
|
|
4121
4161
|
}
|
|
4122
4162
|
|
|
@@ -4154,20 +4194,30 @@ const formStyles = i$4 `
|
|
|
4154
4194
|
align-items: center;
|
|
4155
4195
|
gap: 6px;
|
|
4156
4196
|
padding: 10px 16px;
|
|
4157
|
-
background:
|
|
4197
|
+
background: #0d9488;
|
|
4158
4198
|
border: none;
|
|
4159
4199
|
border-radius: 8px;
|
|
4160
4200
|
color: white;
|
|
4161
4201
|
font-size: 13px;
|
|
4162
4202
|
font-weight: 600;
|
|
4203
|
+
letter-spacing: 0.01em;
|
|
4163
4204
|
cursor: pointer;
|
|
4164
|
-
transition: all 0.
|
|
4165
|
-
box-shadow: 0
|
|
4205
|
+
transition: all 0.15s ease;
|
|
4206
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
4166
4207
|
}
|
|
4167
4208
|
|
|
4168
4209
|
.add-button:hover:not(:disabled) {
|
|
4169
|
-
|
|
4170
|
-
box-shadow: 0 4px 12px rgba(
|
|
4210
|
+
background: #0f766e;
|
|
4211
|
+
box-shadow: 0 4px 12px rgba(13, 148, 136, 0.25);
|
|
4212
|
+
}
|
|
4213
|
+
|
|
4214
|
+
.add-button:focus:not(:disabled) {
|
|
4215
|
+
outline: none;
|
|
4216
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
4217
|
+
}
|
|
4218
|
+
|
|
4219
|
+
.add-button:active:not(:disabled) {
|
|
4220
|
+
transform: scale(0.98);
|
|
4171
4221
|
}
|
|
4172
4222
|
|
|
4173
4223
|
.add-button:disabled {
|
|
@@ -4178,7 +4228,7 @@ const formStyles = i$4 `
|
|
|
4178
4228
|
|
|
4179
4229
|
.count-badge {
|
|
4180
4230
|
font-size: 12px;
|
|
4181
|
-
color:
|
|
4231
|
+
color: #737373;
|
|
4182
4232
|
font-weight: 500;
|
|
4183
4233
|
}
|
|
4184
4234
|
|
|
@@ -4190,11 +4240,12 @@ const formStyles = i$4 `
|
|
|
4190
4240
|
}
|
|
4191
4241
|
|
|
4192
4242
|
.add-form {
|
|
4193
|
-
background:
|
|
4194
|
-
border: 1px solid
|
|
4243
|
+
background: #ffffff;
|
|
4244
|
+
border: 1px solid #e5e5e5;
|
|
4195
4245
|
border-radius: 12px;
|
|
4196
4246
|
padding: 16px;
|
|
4197
4247
|
margin-bottom: 16px;
|
|
4248
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
4198
4249
|
}
|
|
4199
4250
|
|
|
4200
4251
|
.form-group {
|
|
@@ -4209,7 +4260,7 @@ const formStyles = i$4 `
|
|
|
4209
4260
|
display: block;
|
|
4210
4261
|
font-size: 12px;
|
|
4211
4262
|
font-weight: 600;
|
|
4212
|
-
color:
|
|
4263
|
+
color: #525252;
|
|
4213
4264
|
margin-bottom: 8px;
|
|
4214
4265
|
text-transform: uppercase;
|
|
4215
4266
|
letter-spacing: 0.04em;
|
|
@@ -4218,10 +4269,10 @@ const formStyles = i$4 `
|
|
|
4218
4269
|
.form-input {
|
|
4219
4270
|
width: 100%;
|
|
4220
4271
|
padding: 12px 14px;
|
|
4221
|
-
background:
|
|
4222
|
-
border: 1px solid
|
|
4272
|
+
background: #ffffff;
|
|
4273
|
+
border: 1px solid #d4d4d4;
|
|
4223
4274
|
border-radius: 8px;
|
|
4224
|
-
color:
|
|
4275
|
+
color: #171717;
|
|
4225
4276
|
font-size: 14px;
|
|
4226
4277
|
font-family: inherit;
|
|
4227
4278
|
transition: all 0.15s ease;
|
|
@@ -4230,12 +4281,12 @@ const formStyles = i$4 `
|
|
|
4230
4281
|
|
|
4231
4282
|
.form-input:focus {
|
|
4232
4283
|
outline: none;
|
|
4233
|
-
border-color: #
|
|
4234
|
-
box-shadow: 0 0 0 3px rgba(
|
|
4284
|
+
border-color: #0d9488;
|
|
4285
|
+
box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
|
|
4235
4286
|
}
|
|
4236
4287
|
|
|
4237
4288
|
.form-input::placeholder {
|
|
4238
|
-
color:
|
|
4289
|
+
color: #a3a3a3;
|
|
4239
4290
|
}
|
|
4240
4291
|
|
|
4241
4292
|
.form-input.error {
|
|
@@ -4259,7 +4310,7 @@ const formStyles = i$4 `
|
|
|
4259
4310
|
|
|
4260
4311
|
.char-count {
|
|
4261
4312
|
font-size: 11px;
|
|
4262
|
-
color:
|
|
4313
|
+
color: #737373;
|
|
4263
4314
|
font-variant-numeric: tabular-nums;
|
|
4264
4315
|
}
|
|
4265
4316
|
|
|
@@ -4293,26 +4344,35 @@ const formStyles = i$4 `
|
|
|
4293
4344
|
}
|
|
4294
4345
|
|
|
4295
4346
|
.form-btn.cancel {
|
|
4296
|
-
background:
|
|
4297
|
-
border: 1px solid
|
|
4298
|
-
color:
|
|
4347
|
+
background: #ffffff;
|
|
4348
|
+
border: 1px solid #d4d4d4;
|
|
4349
|
+
color: #525252;
|
|
4299
4350
|
}
|
|
4300
4351
|
|
|
4301
4352
|
.form-btn.cancel:hover {
|
|
4302
|
-
background:
|
|
4303
|
-
border-color:
|
|
4353
|
+
background: #fafaf9;
|
|
4354
|
+
border-color: #a3a3a3;
|
|
4304
4355
|
}
|
|
4305
4356
|
|
|
4306
4357
|
.form-btn.save {
|
|
4307
|
-
background:
|
|
4358
|
+
background: #0d9488;
|
|
4308
4359
|
border: none;
|
|
4309
4360
|
color: white;
|
|
4310
|
-
box-shadow: 0
|
|
4361
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
4311
4362
|
}
|
|
4312
4363
|
|
|
4313
4364
|
.form-btn.save:hover:not(:disabled) {
|
|
4314
|
-
|
|
4315
|
-
box-shadow: 0 4px 12px rgba(
|
|
4365
|
+
background: #0f766e;
|
|
4366
|
+
box-shadow: 0 4px 12px rgba(13, 148, 136, 0.25);
|
|
4367
|
+
}
|
|
4368
|
+
|
|
4369
|
+
.form-btn.save:focus:not(:disabled) {
|
|
4370
|
+
outline: none;
|
|
4371
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
4372
|
+
}
|
|
4373
|
+
|
|
4374
|
+
.form-btn.save:active:not(:disabled) {
|
|
4375
|
+
transform: scale(0.98);
|
|
4316
4376
|
}
|
|
4317
4377
|
|
|
4318
4378
|
.form-btn.save:disabled {
|
|
@@ -4346,16 +4406,17 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4346
4406
|
}
|
|
4347
4407
|
|
|
4348
4408
|
.transcript-item {
|
|
4349
|
-
background:
|
|
4350
|
-
border: 1px solid
|
|
4409
|
+
background: #ffffff;
|
|
4410
|
+
border: 1px solid #e5e5e5;
|
|
4351
4411
|
border-radius: 10px;
|
|
4352
4412
|
padding: 12px 14px;
|
|
4353
4413
|
transition: all 0.15s ease;
|
|
4414
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
4354
4415
|
}
|
|
4355
4416
|
|
|
4356
4417
|
.transcript-item:hover {
|
|
4357
|
-
|
|
4358
|
-
|
|
4418
|
+
border-color: #d4d4d4;
|
|
4419
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
4359
4420
|
}
|
|
4360
4421
|
|
|
4361
4422
|
.transcript-header {
|
|
@@ -4378,28 +4439,28 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4378
4439
|
}
|
|
4379
4440
|
|
|
4380
4441
|
.transcript-badge.dictate {
|
|
4381
|
-
background: rgba(
|
|
4382
|
-
color: #
|
|
4442
|
+
background: rgba(13, 148, 136, 0.18);
|
|
4443
|
+
color: #0f766e;
|
|
4383
4444
|
}
|
|
4384
4445
|
|
|
4385
4446
|
.transcript-badge.edit {
|
|
4386
|
-
background: rgba(139, 92, 246, 0.
|
|
4387
|
-
color: #
|
|
4447
|
+
background: rgba(139, 92, 246, 0.18);
|
|
4448
|
+
color: #7c3aed;
|
|
4388
4449
|
}
|
|
4389
4450
|
|
|
4390
4451
|
.transcript-badge.command {
|
|
4391
|
-
background: rgba(245, 158, 11, 0.
|
|
4392
|
-
color: #
|
|
4452
|
+
background: rgba(245, 158, 11, 0.18);
|
|
4453
|
+
color: #b45309;
|
|
4393
4454
|
}
|
|
4394
4455
|
|
|
4395
4456
|
.transcript-time {
|
|
4396
4457
|
font-size: 12px;
|
|
4397
|
-
color:
|
|
4458
|
+
color: #737373;
|
|
4398
4459
|
}
|
|
4399
4460
|
|
|
4400
4461
|
.transcript-text {
|
|
4401
4462
|
font-size: 14px;
|
|
4402
|
-
color:
|
|
4463
|
+
color: #171717;
|
|
4403
4464
|
line-height: 1.5;
|
|
4404
4465
|
word-break: break-word;
|
|
4405
4466
|
display: -webkit-box;
|
|
@@ -4414,7 +4475,7 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4414
4475
|
gap: 8px;
|
|
4415
4476
|
margin-top: 10px;
|
|
4416
4477
|
padding-top: 10px;
|
|
4417
|
-
border-top: 1px solid
|
|
4478
|
+
border-top: 1px solid #e5e5e5;
|
|
4418
4479
|
}
|
|
4419
4480
|
|
|
4420
4481
|
.transcript-action-btn {
|
|
@@ -4423,23 +4484,23 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4423
4484
|
gap: 6px;
|
|
4424
4485
|
padding: 6px 10px;
|
|
4425
4486
|
border-radius: 6px;
|
|
4426
|
-
background: rgba(
|
|
4487
|
+
background: rgba(0, 0, 0, 0.08);
|
|
4427
4488
|
border: none;
|
|
4428
4489
|
cursor: pointer;
|
|
4429
4490
|
font-size: 12px;
|
|
4430
4491
|
font-weight: 500;
|
|
4431
|
-
color:
|
|
4492
|
+
color: #404040;
|
|
4432
4493
|
transition: all 0.15s ease;
|
|
4433
4494
|
}
|
|
4434
4495
|
|
|
4435
4496
|
.transcript-action-btn:hover {
|
|
4436
|
-
background: rgba(
|
|
4437
|
-
color:
|
|
4497
|
+
background: rgba(0, 0, 0, 0.12);
|
|
4498
|
+
color: #171717;
|
|
4438
4499
|
}
|
|
4439
4500
|
|
|
4440
4501
|
.transcript-action-btn.copied {
|
|
4441
|
-
background: rgba(
|
|
4442
|
-
color: #
|
|
4502
|
+
background: rgba(13, 148, 136, 0.2);
|
|
4503
|
+
color: #0d9488;
|
|
4443
4504
|
}
|
|
4444
4505
|
|
|
4445
4506
|
.transcript-action-btn.delete:hover {
|
|
@@ -4453,9 +4514,9 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4453
4514
|
margin-top: 16px;
|
|
4454
4515
|
padding: 10px;
|
|
4455
4516
|
background: rgba(239, 68, 68, 0.1);
|
|
4456
|
-
border: 1px solid rgba(239, 68, 68, 0.
|
|
4517
|
+
border: 1px solid rgba(239, 68, 68, 0.2);
|
|
4457
4518
|
border-radius: 8px;
|
|
4458
|
-
color: #
|
|
4519
|
+
color: #dc2626;
|
|
4459
4520
|
font-size: 13px;
|
|
4460
4521
|
font-weight: 500;
|
|
4461
4522
|
cursor: pointer;
|
|
@@ -4464,18 +4525,18 @@ let SpeechOSHistoryTab = class SpeechOSHistoryTab extends i$1 {
|
|
|
4464
4525
|
|
|
4465
4526
|
.clear-all-button:hover {
|
|
4466
4527
|
background: rgba(239, 68, 68, 0.18);
|
|
4467
|
-
border-color: rgba(239, 68, 68, 0.
|
|
4528
|
+
border-color: rgba(239, 68, 68, 0.3);
|
|
4468
4529
|
}
|
|
4469
4530
|
|
|
4470
4531
|
.command-matched {
|
|
4471
4532
|
font-size: 12px;
|
|
4472
|
-
color:
|
|
4533
|
+
color: #525252;
|
|
4473
4534
|
margin-top: 6px;
|
|
4474
4535
|
}
|
|
4475
4536
|
|
|
4476
4537
|
.command-matched code {
|
|
4477
4538
|
background: rgba(245, 158, 11, 0.15);
|
|
4478
|
-
color: #
|
|
4539
|
+
color: #d97706;
|
|
4479
4540
|
padding: 2px 6px;
|
|
4480
4541
|
border-radius: 4px;
|
|
4481
4542
|
font-family: monospace;
|
|
@@ -4663,21 +4724,21 @@ let SpeechOSHelpTab = class SpeechOSHelpTab extends i$1 {
|
|
|
4663
4724
|
gap: 8px;
|
|
4664
4725
|
font-size: 15px;
|
|
4665
4726
|
font-weight: 600;
|
|
4666
|
-
color:
|
|
4727
|
+
color: #171717;
|
|
4667
4728
|
margin-bottom: 10px;
|
|
4668
4729
|
}
|
|
4669
4730
|
|
|
4670
4731
|
.help-title.dictate {
|
|
4671
|
-
color: #
|
|
4732
|
+
color: #0f766e;
|
|
4672
4733
|
}
|
|
4673
4734
|
|
|
4674
4735
|
.help-title.edit {
|
|
4675
|
-
color: #
|
|
4736
|
+
color: #7c3aed;
|
|
4676
4737
|
}
|
|
4677
4738
|
|
|
4678
4739
|
.help-text {
|
|
4679
4740
|
font-size: 13px;
|
|
4680
|
-
color:
|
|
4741
|
+
color: #525252;
|
|
4681
4742
|
line-height: 1.6;
|
|
4682
4743
|
margin-bottom: 10px;
|
|
4683
4744
|
}
|
|
@@ -4694,17 +4755,17 @@ let SpeechOSHelpTab = class SpeechOSHelpTab extends i$1 {
|
|
|
4694
4755
|
}
|
|
4695
4756
|
|
|
4696
4757
|
.help-example {
|
|
4697
|
-
background:
|
|
4698
|
-
border: 1px solid
|
|
4758
|
+
background: #ffffff;
|
|
4759
|
+
border: 1px solid #e5e5e5;
|
|
4699
4760
|
border-radius: 6px;
|
|
4700
4761
|
padding: 8px 12px;
|
|
4701
4762
|
font-size: 12px;
|
|
4702
|
-
color:
|
|
4763
|
+
color: #525252;
|
|
4703
4764
|
font-style: italic;
|
|
4704
4765
|
}
|
|
4705
4766
|
|
|
4706
4767
|
.help-title.languages {
|
|
4707
|
-
background: linear-gradient(135deg, #
|
|
4768
|
+
background: linear-gradient(135deg, #0f766e 0%, #1d4ed8 100%);
|
|
4708
4769
|
-webkit-background-clip: text;
|
|
4709
4770
|
-webkit-text-fill-color: transparent;
|
|
4710
4771
|
background-clip: text;
|
|
@@ -4782,7 +4843,7 @@ let SpeechOSAboutTab = class SpeechOSAboutTab extends i$1 {
|
|
|
4782
4843
|
width: 36px;
|
|
4783
4844
|
height: 36px;
|
|
4784
4845
|
border-radius: 10px;
|
|
4785
|
-
background: linear-gradient(135deg, #
|
|
4846
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
4786
4847
|
display: flex;
|
|
4787
4848
|
align-items: center;
|
|
4788
4849
|
justify-content: center;
|
|
@@ -4797,13 +4858,13 @@ let SpeechOSAboutTab = class SpeechOSAboutTab extends i$1 {
|
|
|
4797
4858
|
.about-logo-text {
|
|
4798
4859
|
font-size: 22px;
|
|
4799
4860
|
font-weight: 500;
|
|
4800
|
-
color:
|
|
4861
|
+
color: #171717;
|
|
4801
4862
|
letter-spacing: -0.02em;
|
|
4802
4863
|
}
|
|
4803
4864
|
|
|
4804
4865
|
.logo-os {
|
|
4805
4866
|
font-weight: 700;
|
|
4806
|
-
background: linear-gradient(135deg, #
|
|
4867
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
4807
4868
|
-webkit-background-clip: text;
|
|
4808
4869
|
-webkit-text-fill-color: transparent;
|
|
4809
4870
|
background-clip: text;
|
|
@@ -4811,7 +4872,7 @@ let SpeechOSAboutTab = class SpeechOSAboutTab extends i$1 {
|
|
|
4811
4872
|
|
|
4812
4873
|
.about-description {
|
|
4813
4874
|
font-size: 14px;
|
|
4814
|
-
color:
|
|
4875
|
+
color: #525252;
|
|
4815
4876
|
line-height: 1.7;
|
|
4816
4877
|
margin-bottom: 24px;
|
|
4817
4878
|
}
|
|
@@ -4829,19 +4890,29 @@ let SpeechOSAboutTab = class SpeechOSAboutTab extends i$1 {
|
|
|
4829
4890
|
align-items: center;
|
|
4830
4891
|
gap: 8px;
|
|
4831
4892
|
padding: 12px 18px;
|
|
4832
|
-
background:
|
|
4893
|
+
background: #0d9488;
|
|
4833
4894
|
border-radius: 10px;
|
|
4834
4895
|
color: white;
|
|
4835
4896
|
font-size: 14px;
|
|
4836
4897
|
font-weight: 600;
|
|
4898
|
+
letter-spacing: 0.01em;
|
|
4837
4899
|
text-decoration: none;
|
|
4838
|
-
transition: all 0.
|
|
4839
|
-
box-shadow: 0
|
|
4900
|
+
transition: all 0.15s ease;
|
|
4901
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
4840
4902
|
}
|
|
4841
4903
|
|
|
4842
4904
|
.about-link:hover {
|
|
4843
|
-
|
|
4844
|
-
box-shadow: 0
|
|
4905
|
+
background: #0f766e;
|
|
4906
|
+
box-shadow: 0 4px 12px rgba(13, 148, 136, 0.25);
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4909
|
+
.about-link:focus {
|
|
4910
|
+
outline: none;
|
|
4911
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
4912
|
+
}
|
|
4913
|
+
|
|
4914
|
+
.about-link:active {
|
|
4915
|
+
transform: scale(0.98);
|
|
4845
4916
|
}
|
|
4846
4917
|
`,
|
|
4847
4918
|
]; }
|
|
@@ -4921,20 +4992,21 @@ let SpeechOSAudioLevelMeter = class SpeechOSAudioLevelMeter extends i$1 {
|
|
|
4921
4992
|
gap: 3px;
|
|
4922
4993
|
height: 32px;
|
|
4923
4994
|
padding: 8px 12px;
|
|
4924
|
-
background:
|
|
4995
|
+
background: #ffffff;
|
|
4996
|
+
border: 2px solid #e5e5e5;
|
|
4925
4997
|
border-radius: 8px;
|
|
4926
4998
|
}
|
|
4927
4999
|
|
|
4928
5000
|
.meter-bar {
|
|
4929
5001
|
width: 6px;
|
|
4930
5002
|
min-height: 4px;
|
|
4931
|
-
background:
|
|
5003
|
+
background: #d4d4d4;
|
|
4932
5004
|
border-radius: 2px;
|
|
4933
5005
|
transition: height 50ms ease-out, background 100ms ease;
|
|
4934
5006
|
}
|
|
4935
5007
|
|
|
4936
5008
|
.meter-bar.active {
|
|
4937
|
-
background:
|
|
5009
|
+
background: #10b981;
|
|
4938
5010
|
}
|
|
4939
5011
|
|
|
4940
5012
|
.meter-inactive {
|
|
@@ -4943,14 +5015,15 @@ let SpeechOSAudioLevelMeter = class SpeechOSAudioLevelMeter extends i$1 {
|
|
|
4943
5015
|
justify-content: center;
|
|
4944
5016
|
height: 32px;
|
|
4945
5017
|
padding: 8px 12px;
|
|
4946
|
-
background:
|
|
5018
|
+
background: #ffffff;
|
|
5019
|
+
border: 2px solid #e5e5e5;
|
|
4947
5020
|
border-radius: 8px;
|
|
4948
|
-
color:
|
|
5021
|
+
color: #737373;
|
|
4949
5022
|
font-size: 13px;
|
|
4950
5023
|
}
|
|
4951
5024
|
|
|
4952
5025
|
.meter-error {
|
|
4953
|
-
color: #
|
|
5026
|
+
color: #dc2626;
|
|
4954
5027
|
}
|
|
4955
5028
|
`,
|
|
4956
5029
|
]; }
|
|
@@ -5147,18 +5220,18 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5147
5220
|
}
|
|
5148
5221
|
|
|
5149
5222
|
.settings-section-icon {
|
|
5150
|
-
color: #
|
|
5223
|
+
color: #0d9488;
|
|
5151
5224
|
}
|
|
5152
5225
|
|
|
5153
5226
|
.settings-section-title {
|
|
5154
5227
|
font-size: 14px;
|
|
5155
5228
|
font-weight: 600;
|
|
5156
|
-
color:
|
|
5229
|
+
color: #171717;
|
|
5157
5230
|
}
|
|
5158
5231
|
|
|
5159
5232
|
.settings-section-description {
|
|
5160
5233
|
font-size: 13px;
|
|
5161
|
-
color:
|
|
5234
|
+
color: #525252;
|
|
5162
5235
|
line-height: 1.5;
|
|
5163
5236
|
margin-bottom: 14px;
|
|
5164
5237
|
}
|
|
@@ -5187,10 +5260,10 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5187
5260
|
.settings-select {
|
|
5188
5261
|
width: 100%;
|
|
5189
5262
|
padding: 12px 40px 12px 14px;
|
|
5190
|
-
background:
|
|
5191
|
-
border: 1px solid
|
|
5263
|
+
background: #ffffff;
|
|
5264
|
+
border: 1px solid #d4d4d4;
|
|
5192
5265
|
border-radius: 10px;
|
|
5193
|
-
color:
|
|
5266
|
+
color: #171717;
|
|
5194
5267
|
font-size: 14px;
|
|
5195
5268
|
font-family: inherit;
|
|
5196
5269
|
cursor: pointer;
|
|
@@ -5200,34 +5273,44 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5200
5273
|
}
|
|
5201
5274
|
|
|
5202
5275
|
.settings-select:hover {
|
|
5203
|
-
border-color:
|
|
5204
|
-
background:
|
|
5276
|
+
border-color: #a3a3a3;
|
|
5277
|
+
background: #ffffff;
|
|
5205
5278
|
}
|
|
5206
5279
|
|
|
5207
5280
|
.settings-select:focus {
|
|
5208
5281
|
outline: none;
|
|
5209
|
-
border-color: #
|
|
5210
|
-
box-shadow: 0 0 0 3px rgba(
|
|
5282
|
+
border-color: #0d9488;
|
|
5283
|
+
box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
|
|
5211
5284
|
}
|
|
5212
5285
|
|
|
5213
5286
|
.settings-select option {
|
|
5214
|
-
background: #
|
|
5215
|
-
color:
|
|
5287
|
+
background: #ffffff;
|
|
5288
|
+
color: #171717;
|
|
5216
5289
|
padding: 8px;
|
|
5217
5290
|
}
|
|
5218
5291
|
|
|
5292
|
+
.settings-select:disabled {
|
|
5293
|
+
opacity: 0.4;
|
|
5294
|
+
cursor: not-allowed;
|
|
5295
|
+
}
|
|
5296
|
+
|
|
5297
|
+
.settings-select:disabled:hover {
|
|
5298
|
+
border-color: #d4d4d4;
|
|
5299
|
+
background: #ffffff;
|
|
5300
|
+
}
|
|
5301
|
+
|
|
5219
5302
|
.settings-select-arrow {
|
|
5220
5303
|
position: absolute;
|
|
5221
5304
|
right: 14px;
|
|
5222
5305
|
top: 50%;
|
|
5223
5306
|
transform: translateY(-50%);
|
|
5224
5307
|
pointer-events: none;
|
|
5225
|
-
color:
|
|
5308
|
+
color: #737373;
|
|
5226
5309
|
}
|
|
5227
5310
|
|
|
5228
5311
|
.settings-permission-note {
|
|
5229
5312
|
font-size: 12px;
|
|
5230
|
-
color:
|
|
5313
|
+
color: #737373;
|
|
5231
5314
|
margin-top: 10px;
|
|
5232
5315
|
font-style: italic;
|
|
5233
5316
|
}
|
|
@@ -5237,7 +5320,7 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5237
5320
|
align-items: center;
|
|
5238
5321
|
gap: 4px;
|
|
5239
5322
|
font-size: 11px;
|
|
5240
|
-
color: #
|
|
5323
|
+
color: #059669;
|
|
5241
5324
|
font-weight: 500;
|
|
5242
5325
|
opacity: 0;
|
|
5243
5326
|
transition: opacity 0.2s ease;
|
|
@@ -5253,28 +5336,34 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5253
5336
|
align-items: center;
|
|
5254
5337
|
justify-content: space-between;
|
|
5255
5338
|
padding: 12px 14px;
|
|
5256
|
-
background:
|
|
5257
|
-
border: 1px solid
|
|
5339
|
+
background: #ffffff;
|
|
5340
|
+
border: 1px solid #e5e5e5;
|
|
5258
5341
|
border-radius: 10px;
|
|
5342
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
5259
5343
|
}
|
|
5260
5344
|
|
|
5261
5345
|
.settings-toggle-label {
|
|
5262
5346
|
font-size: 14px;
|
|
5263
|
-
color:
|
|
5347
|
+
color: #171717;
|
|
5264
5348
|
}
|
|
5265
5349
|
|
|
5266
5350
|
.settings-toggle {
|
|
5267
5351
|
position: relative;
|
|
5268
5352
|
width: 44px;
|
|
5269
5353
|
height: 24px;
|
|
5270
|
-
background:
|
|
5354
|
+
background: #d4d4d4;
|
|
5271
5355
|
border-radius: 12px;
|
|
5272
5356
|
cursor: pointer;
|
|
5273
5357
|
transition: background 0.2s ease;
|
|
5274
5358
|
}
|
|
5275
5359
|
|
|
5276
5360
|
.settings-toggle.active {
|
|
5277
|
-
background: #
|
|
5361
|
+
background: #0d9488;
|
|
5362
|
+
}
|
|
5363
|
+
|
|
5364
|
+
.settings-toggle:focus {
|
|
5365
|
+
outline: none;
|
|
5366
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
5278
5367
|
}
|
|
5279
5368
|
|
|
5280
5369
|
.settings-toggle-knob {
|
|
@@ -5397,13 +5486,14 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5397
5486
|
setSmartFormatEnabled(this.smartFormatEnabled);
|
|
5398
5487
|
this.showSaved();
|
|
5399
5488
|
}
|
|
5400
|
-
renderLanguageSelector(selectedCode, onChange) {
|
|
5489
|
+
renderLanguageSelector(selectedCode, onChange, disabled = false) {
|
|
5401
5490
|
return b `
|
|
5402
5491
|
<div class="settings-select-wrapper">
|
|
5403
5492
|
<select
|
|
5404
5493
|
class="settings-select"
|
|
5405
5494
|
.value="${selectedCode}"
|
|
5406
5495
|
@change="${onChange}"
|
|
5496
|
+
?disabled="${disabled}"
|
|
5407
5497
|
>
|
|
5408
5498
|
${SUPPORTED_LANGUAGES.map((lang) => b `
|
|
5409
5499
|
<option
|
|
@@ -5521,7 +5611,7 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5521
5611
|
<div class="settings-section-description">
|
|
5522
5612
|
AI automatically removes filler words, adds punctuation, and polishes
|
|
5523
5613
|
your text. Disable for raw transcription output. Note: disabling also
|
|
5524
|
-
turns off text snippets.
|
|
5614
|
+
turns off text snippets and output language translation.
|
|
5525
5615
|
</div>
|
|
5526
5616
|
<div class="settings-toggle-row">
|
|
5527
5617
|
<span class="settings-toggle-label">Enable AI formatting</span>
|
|
@@ -5562,9 +5652,13 @@ let SpeechOSSettingsTab = class SpeechOSSettingsTab extends i$1 {
|
|
|
5562
5652
|
</div>
|
|
5563
5653
|
<div class="settings-section-description">
|
|
5564
5654
|
The language for your transcribed text. Usually the same as input, but
|
|
5565
|
-
can differ for translation.
|
|
5655
|
+
can differ for translation.${!this.smartFormatEnabled
|
|
5656
|
+
? " Requires Smart Format to be enabled."
|
|
5657
|
+
: ""}
|
|
5566
5658
|
</div>
|
|
5567
|
-
${this.renderLanguageSelector(this.
|
|
5659
|
+
${this.renderLanguageSelector(this.smartFormatEnabled
|
|
5660
|
+
? this.selectedOutputLanguageCode
|
|
5661
|
+
: this.selectedInputLanguageCode, this.handleOutputLanguageChange.bind(this), !this.smartFormatEnabled)}
|
|
5568
5662
|
</div>
|
|
5569
5663
|
`;
|
|
5570
5664
|
}
|
|
@@ -5627,17 +5721,18 @@ let SpeechOSSnippetsTab = class SpeechOSSnippetsTab extends i$1 {
|
|
|
5627
5721
|
}
|
|
5628
5722
|
|
|
5629
5723
|
.snippet-item {
|
|
5630
|
-
background:
|
|
5631
|
-
border: 1px solid
|
|
5724
|
+
background: #ffffff;
|
|
5725
|
+
border: 1px solid #e5e5e5;
|
|
5632
5726
|
border-radius: 10px;
|
|
5633
5727
|
padding: 14px;
|
|
5634
5728
|
transition: all 0.15s ease;
|
|
5635
5729
|
position: relative;
|
|
5730
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
5636
5731
|
}
|
|
5637
5732
|
|
|
5638
5733
|
.snippet-item:hover {
|
|
5639
|
-
|
|
5640
|
-
|
|
5734
|
+
border-color: #d4d4d4;
|
|
5735
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
5641
5736
|
}
|
|
5642
5737
|
|
|
5643
5738
|
.snippet-trigger {
|
|
@@ -5650,7 +5745,7 @@ let SpeechOSSnippetsTab = class SpeechOSSnippetsTab extends i$1 {
|
|
|
5650
5745
|
.snippet-trigger-text {
|
|
5651
5746
|
font-size: 14px;
|
|
5652
5747
|
font-weight: 600;
|
|
5653
|
-
color: #
|
|
5748
|
+
color: #0d9488;
|
|
5654
5749
|
}
|
|
5655
5750
|
|
|
5656
5751
|
.snippet-trigger-text::before {
|
|
@@ -5668,12 +5763,12 @@ let SpeechOSSnippetsTab = class SpeechOSSnippetsTab extends i$1 {
|
|
|
5668
5763
|
align-items: flex-start;
|
|
5669
5764
|
gap: 8px;
|
|
5670
5765
|
font-size: 13px;
|
|
5671
|
-
color:
|
|
5766
|
+
color: #525252;
|
|
5672
5767
|
line-height: 1.5;
|
|
5673
5768
|
}
|
|
5674
5769
|
|
|
5675
5770
|
.snippet-expansion-arrow {
|
|
5676
|
-
color:
|
|
5771
|
+
color: #a3a3a3;
|
|
5677
5772
|
flex-shrink: 0;
|
|
5678
5773
|
margin-top: 2px;
|
|
5679
5774
|
}
|
|
@@ -5702,13 +5797,13 @@ let SpeechOSSnippetsTab = class SpeechOSSnippetsTab extends i$1 {
|
|
|
5702
5797
|
display: flex;
|
|
5703
5798
|
align-items: center;
|
|
5704
5799
|
justify-content: center;
|
|
5705
|
-
color:
|
|
5800
|
+
color: #737373;
|
|
5706
5801
|
transition: all 0.15s ease;
|
|
5707
5802
|
}
|
|
5708
5803
|
|
|
5709
5804
|
.edit-btn:hover {
|
|
5710
|
-
background: rgba(
|
|
5711
|
-
color: #
|
|
5805
|
+
background: rgba(13, 148, 136, 0.1);
|
|
5806
|
+
color: #0d9488;
|
|
5712
5807
|
}
|
|
5713
5808
|
`,
|
|
5714
5809
|
]; }
|
|
@@ -5991,30 +6086,32 @@ let SpeechOSVocabularyTab = class SpeechOSVocabularyTab extends i$1 {
|
|
|
5991
6086
|
gap: 8px;
|
|
5992
6087
|
padding: 8px 12px;
|
|
5993
6088
|
background: rgba(139, 92, 246, 0.1);
|
|
5994
|
-
border: 1px solid rgba(139, 92, 246, 0.
|
|
6089
|
+
border: 1px solid rgba(139, 92, 246, 0.25);
|
|
5995
6090
|
border-radius: 8px;
|
|
5996
6091
|
transition: all 0.15s ease;
|
|
5997
6092
|
}
|
|
5998
6093
|
|
|
5999
6094
|
.vocabulary-chip:hover {
|
|
6000
6095
|
background: rgba(139, 92, 246, 0.15);
|
|
6001
|
-
border-color: rgba(139, 92, 246, 0.
|
|
6096
|
+
border-color: rgba(139, 92, 246, 0.35);
|
|
6002
6097
|
}
|
|
6003
6098
|
|
|
6004
6099
|
.vocabulary-chip-text {
|
|
6005
6100
|
font-size: 13px;
|
|
6006
6101
|
font-weight: 500;
|
|
6007
|
-
color: #
|
|
6102
|
+
color: #7c3aed;
|
|
6008
6103
|
}
|
|
6009
6104
|
|
|
6010
6105
|
.vocabulary-chip .delete-btn {
|
|
6011
6106
|
width: 20px;
|
|
6012
6107
|
height: 20px;
|
|
6013
6108
|
margin: -4px -4px -4px 0;
|
|
6109
|
+
color: #737373;
|
|
6014
6110
|
}
|
|
6015
6111
|
|
|
6016
6112
|
.vocabulary-chip .delete-btn:hover {
|
|
6017
6113
|
background: rgba(239, 68, 68, 0.2);
|
|
6114
|
+
color: #f87171;
|
|
6018
6115
|
}
|
|
6019
6116
|
`,
|
|
6020
6117
|
]; }
|
|
@@ -6415,14 +6512,14 @@ const popupModalStyles = i$4 `
|
|
|
6415
6512
|
}
|
|
6416
6513
|
|
|
6417
6514
|
.modal-card {
|
|
6418
|
-
background: #
|
|
6515
|
+
background: #f5f5f4;
|
|
6419
6516
|
border-radius: 16px;
|
|
6420
6517
|
width: 90%;
|
|
6421
6518
|
max-width: 400px;
|
|
6422
6519
|
display: flex;
|
|
6423
6520
|
flex-direction: column;
|
|
6424
|
-
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.
|
|
6425
|
-
0 0 0 1px rgba(
|
|
6521
|
+
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.15),
|
|
6522
|
+
0 0 0 1px rgba(0, 0, 0, 0.05);
|
|
6426
6523
|
transform: scale(0.95) translateY(10px);
|
|
6427
6524
|
transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
|
|
6428
6525
|
pointer-events: auto;
|
|
@@ -6438,14 +6535,14 @@ const popupModalStyles = i$4 `
|
|
|
6438
6535
|
align-items: center;
|
|
6439
6536
|
justify-content: space-between;
|
|
6440
6537
|
padding: 16px 20px;
|
|
6441
|
-
border-bottom: 1px solid
|
|
6442
|
-
background:
|
|
6538
|
+
border-bottom: 1px solid #e5e5e5;
|
|
6539
|
+
background: #ffffff;
|
|
6443
6540
|
}
|
|
6444
6541
|
|
|
6445
6542
|
.modal-title {
|
|
6446
6543
|
font-size: 16px;
|
|
6447
6544
|
font-weight: 600;
|
|
6448
|
-
color:
|
|
6545
|
+
color: #171717;
|
|
6449
6546
|
margin: 0;
|
|
6450
6547
|
letter-spacing: -0.01em;
|
|
6451
6548
|
}
|
|
@@ -6460,13 +6557,22 @@ const popupModalStyles = i$4 `
|
|
|
6460
6557
|
display: flex;
|
|
6461
6558
|
align-items: center;
|
|
6462
6559
|
justify-content: center;
|
|
6463
|
-
color:
|
|
6560
|
+
color: #737373;
|
|
6464
6561
|
transition: all 0.15s ease;
|
|
6465
6562
|
}
|
|
6466
6563
|
|
|
6467
6564
|
.close-button:hover {
|
|
6468
|
-
background:
|
|
6469
|
-
color:
|
|
6565
|
+
background: #f5f5f4;
|
|
6566
|
+
color: #171717;
|
|
6567
|
+
}
|
|
6568
|
+
|
|
6569
|
+
.close-button:focus {
|
|
6570
|
+
outline: none;
|
|
6571
|
+
box-shadow: 0 0 0 2px #0d9488, 0 0 0 4px rgba(13, 148, 136, 0.2);
|
|
6572
|
+
}
|
|
6573
|
+
|
|
6574
|
+
.close-button:active {
|
|
6575
|
+
transform: scale(0.95);
|
|
6470
6576
|
}
|
|
6471
6577
|
|
|
6472
6578
|
.modal-body {
|
|
@@ -6478,8 +6584,8 @@ const popupModalStyles = i$4 `
|
|
|
6478
6584
|
justify-content: flex-end;
|
|
6479
6585
|
gap: 10px;
|
|
6480
6586
|
padding: 16px 20px;
|
|
6481
|
-
border-top: 1px solid
|
|
6482
|
-
background:
|
|
6587
|
+
border-top: 1px solid #e5e5e5;
|
|
6588
|
+
background: #ffffff;
|
|
6483
6589
|
}
|
|
6484
6590
|
|
|
6485
6591
|
.btn {
|
|
@@ -6496,42 +6602,47 @@ const popupModalStyles = i$4 `
|
|
|
6496
6602
|
}
|
|
6497
6603
|
|
|
6498
6604
|
.btn-secondary {
|
|
6499
|
-
background: rgba(
|
|
6500
|
-
color:
|
|
6605
|
+
background: rgba(0, 0, 0, 0.08);
|
|
6606
|
+
color: #525252;
|
|
6501
6607
|
}
|
|
6502
6608
|
|
|
6503
6609
|
.btn-secondary:hover {
|
|
6504
|
-
background: rgba(
|
|
6505
|
-
color:
|
|
6610
|
+
background: rgba(0, 0, 0, 0.12);
|
|
6611
|
+
color: #171717;
|
|
6506
6612
|
}
|
|
6507
6613
|
|
|
6508
6614
|
.btn-primary {
|
|
6509
|
-
background:
|
|
6615
|
+
background: #0d9488;
|
|
6510
6616
|
color: white;
|
|
6511
|
-
box-shadow: 0
|
|
6617
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
6512
6618
|
}
|
|
6513
6619
|
|
|
6514
6620
|
.btn-primary:hover {
|
|
6515
|
-
|
|
6516
|
-
box-shadow: 0 4px 12px rgba(
|
|
6621
|
+
background: #0f766e;
|
|
6622
|
+
box-shadow: 0 4px 12px rgba(13, 148, 136, 0.25);
|
|
6623
|
+
}
|
|
6624
|
+
|
|
6625
|
+
.btn-primary:focus {
|
|
6626
|
+
outline: none;
|
|
6627
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
6517
6628
|
}
|
|
6518
6629
|
|
|
6519
6630
|
.btn-primary:active {
|
|
6520
|
-
transform:
|
|
6631
|
+
transform: scale(0.98);
|
|
6521
6632
|
}
|
|
6522
6633
|
|
|
6523
6634
|
/* Success state for copy button */
|
|
6524
6635
|
.btn-success {
|
|
6525
|
-
background:
|
|
6636
|
+
background: #059669;
|
|
6526
6637
|
}
|
|
6527
6638
|
|
|
6528
6639
|
/* Text display area */
|
|
6529
6640
|
.text-display {
|
|
6530
|
-
background:
|
|
6531
|
-
border: 1px solid
|
|
6641
|
+
background: #ffffff;
|
|
6642
|
+
border: 1px solid #e5e5e5;
|
|
6532
6643
|
border-radius: 10px;
|
|
6533
6644
|
padding: 14px 16px;
|
|
6534
|
-
color:
|
|
6645
|
+
color: #171717;
|
|
6535
6646
|
font-size: 14px;
|
|
6536
6647
|
line-height: 1.5;
|
|
6537
6648
|
max-height: 200px;
|
|
@@ -6550,12 +6661,12 @@ const popupModalStyles = i$4 `
|
|
|
6550
6661
|
}
|
|
6551
6662
|
|
|
6552
6663
|
.text-display::-webkit-scrollbar-thumb {
|
|
6553
|
-
background: rgba(
|
|
6664
|
+
background: rgba(0, 0, 0, 0.15);
|
|
6554
6665
|
border-radius: 3px;
|
|
6555
6666
|
}
|
|
6556
6667
|
|
|
6557
6668
|
.text-display::-webkit-scrollbar-thumb:hover {
|
|
6558
|
-
background: rgba(
|
|
6669
|
+
background: rgba(0, 0, 0, 0.25);
|
|
6559
6670
|
}
|
|
6560
6671
|
|
|
6561
6672
|
/* Instruction list styling */
|
|
@@ -6570,7 +6681,7 @@ const popupModalStyles = i$4 `
|
|
|
6570
6681
|
align-items: flex-start;
|
|
6571
6682
|
gap: 12px;
|
|
6572
6683
|
padding: 12px 0;
|
|
6573
|
-
border-bottom: 1px solid
|
|
6684
|
+
border-bottom: 1px solid #e5e5e5;
|
|
6574
6685
|
}
|
|
6575
6686
|
|
|
6576
6687
|
.instruction-item:last-child {
|
|
@@ -6581,7 +6692,7 @@ const popupModalStyles = i$4 `
|
|
|
6581
6692
|
width: 24px;
|
|
6582
6693
|
height: 24px;
|
|
6583
6694
|
border-radius: 50%;
|
|
6584
|
-
background:
|
|
6695
|
+
background: #0d9488;
|
|
6585
6696
|
color: white;
|
|
6586
6697
|
font-size: 12px;
|
|
6587
6698
|
font-weight: 700;
|
|
@@ -6593,7 +6704,7 @@ const popupModalStyles = i$4 `
|
|
|
6593
6704
|
|
|
6594
6705
|
.instruction-text {
|
|
6595
6706
|
font-size: 14px;
|
|
6596
|
-
color:
|
|
6707
|
+
color: #171717;
|
|
6597
6708
|
line-height: 1.5;
|
|
6598
6709
|
padding-top: 2px;
|
|
6599
6710
|
}
|
|
@@ -6651,7 +6762,7 @@ let SpeechOSDictationOutputModal = class SpeechOSDictationOutputModal extends i$
|
|
|
6651
6762
|
width: 32px;
|
|
6652
6763
|
height: 32px;
|
|
6653
6764
|
border-radius: 8px;
|
|
6654
|
-
background: linear-gradient(135deg, #
|
|
6765
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
6655
6766
|
display: flex;
|
|
6656
6767
|
align-items: center;
|
|
6657
6768
|
justify-content: center;
|
|
@@ -6665,31 +6776,35 @@ let SpeechOSDictationOutputModal = class SpeechOSDictationOutputModal extends i$
|
|
|
6665
6776
|
}
|
|
6666
6777
|
|
|
6667
6778
|
.modal-title {
|
|
6668
|
-
background: linear-gradient(135deg, #
|
|
6779
|
+
background: linear-gradient(135deg, #14b8a6 0%, #2563eb 100%);
|
|
6669
6780
|
-webkit-background-clip: text;
|
|
6670
6781
|
-webkit-text-fill-color: transparent;
|
|
6671
6782
|
background-clip: text;
|
|
6672
6783
|
}
|
|
6673
6784
|
|
|
6674
6785
|
.btn-primary {
|
|
6675
|
-
background:
|
|
6676
|
-
box-shadow: 0
|
|
6786
|
+
background: #0d9488;
|
|
6787
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
6677
6788
|
border-radius: 999px;
|
|
6678
6789
|
}
|
|
6679
6790
|
|
|
6680
6791
|
.btn-primary:hover {
|
|
6681
|
-
background:
|
|
6682
|
-
|
|
6683
|
-
|
|
6792
|
+
background: #0f766e;
|
|
6793
|
+
box-shadow: 0 4px 12px rgba(13, 148, 136, 0.25);
|
|
6794
|
+
}
|
|
6795
|
+
|
|
6796
|
+
.btn-primary:focus {
|
|
6797
|
+
outline: none;
|
|
6798
|
+
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #0d9488;
|
|
6684
6799
|
}
|
|
6685
6800
|
|
|
6686
6801
|
.btn-primary:active {
|
|
6687
|
-
transform:
|
|
6802
|
+
transform: scale(0.98);
|
|
6688
6803
|
}
|
|
6689
6804
|
|
|
6690
6805
|
.btn-success {
|
|
6691
|
-
background:
|
|
6692
|
-
box-shadow: 0
|
|
6806
|
+
background: #059669;
|
|
6807
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
6693
6808
|
border-radius: 999px;
|
|
6694
6809
|
}
|
|
6695
6810
|
|
|
@@ -6703,14 +6818,15 @@ let SpeechOSDictationOutputModal = class SpeechOSDictationOutputModal extends i$
|
|
|
6703
6818
|
gap: 6px;
|
|
6704
6819
|
margin-top: 12px;
|
|
6705
6820
|
padding: 8px 12px;
|
|
6706
|
-
background:
|
|
6821
|
+
background: #ffffff;
|
|
6822
|
+
border: 1px solid #e5e5e5;
|
|
6707
6823
|
border-radius: 8px;
|
|
6708
6824
|
font-size: 12px;
|
|
6709
|
-
color:
|
|
6825
|
+
color: #525252;
|
|
6710
6826
|
}
|
|
6711
6827
|
|
|
6712
6828
|
.hint-icon {
|
|
6713
|
-
color: #
|
|
6829
|
+
color: #0d9488;
|
|
6714
6830
|
flex-shrink: 0;
|
|
6715
6831
|
}
|
|
6716
6832
|
|
|
@@ -7556,7 +7672,14 @@ let SpeechOSWidget = class SpeechOSWidget extends i$1 {
|
|
|
7556
7672
|
core.state.hide();
|
|
7557
7673
|
}
|
|
7558
7674
|
handleSettingsClick() {
|
|
7559
|
-
|
|
7675
|
+
if (useExternalSettings()) {
|
|
7676
|
+
const host = core.getConfig().host;
|
|
7677
|
+
const fullUrl = `${host}/a/extension-settings`;
|
|
7678
|
+
window.open(fullUrl, '_blank', 'noopener,noreferrer');
|
|
7679
|
+
}
|
|
7680
|
+
else {
|
|
7681
|
+
this.settingsOpen = true;
|
|
7682
|
+
}
|
|
7560
7683
|
}
|
|
7561
7684
|
handleDragStart(e) {
|
|
7562
7685
|
if (e.button !== 0)
|
|
@@ -8097,10 +8220,17 @@ let SpeechOSWidget = class SpeechOSWidget extends i$1 {
|
|
|
8097
8220
|
this.editSelectionStart = null;
|
|
8098
8221
|
this.editSelectionEnd = null;
|
|
8099
8222
|
this.editSelectedText = "";
|
|
8100
|
-
// Open settings modal
|
|
8101
|
-
|
|
8223
|
+
// Open settings - either external URL or modal
|
|
8224
|
+
if (useExternalSettings()) {
|
|
8225
|
+
const host = core.getConfig().host;
|
|
8226
|
+
const fullUrl = `${host}/a/extension-settings`;
|
|
8227
|
+
window.open(fullUrl, '_blank', 'noopener,noreferrer');
|
|
8228
|
+
}
|
|
8229
|
+
else {
|
|
8230
|
+
this.settingsOpen = true;
|
|
8231
|
+
}
|
|
8102
8232
|
if (core.getConfig().debug) {
|
|
8103
|
-
console.log("[SpeechOS] Settings
|
|
8233
|
+
console.log("[SpeechOS] Settings opened from no-audio warning", { useExternalSettings: useExternalSettings() });
|
|
8104
8234
|
}
|
|
8105
8235
|
await disconnectPromise;
|
|
8106
8236
|
}
|
|
@@ -8702,5 +8832,6 @@ exports.settingsSync = settingsSync;
|
|
|
8702
8832
|
exports.snippetsStore = snippetsStore;
|
|
8703
8833
|
exports.transcriptStore = transcriptStore;
|
|
8704
8834
|
exports.updateSnippet = updateSnippet;
|
|
8835
|
+
exports.useExternalSettings = useExternalSettings;
|
|
8705
8836
|
exports.vocabularyStore = vocabularyStore;
|
|
8706
8837
|
//# sourceMappingURL=index.cjs.map
|