@speechos/client 0.2.1 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/config.d.ts +79 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.test.d.ts +5 -0
  4. package/dist/config.test.d.ts.map +1 -0
  5. package/dist/form-detector.d.cts +25 -0
  6. package/dist/form-detector.d.ts +16 -1
  7. package/dist/form-detector.d.ts.map +1 -1
  8. package/dist/index.cjs +6374 -1538
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +13 -0
  11. package/dist/index.d.ts +19 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.iife.js +7672 -1823
  14. package/dist/index.iife.js.map +1 -1
  15. package/dist/index.iife.min.js +2702 -460
  16. package/dist/index.iife.min.js.map +1 -1
  17. package/dist/index.js +6320 -1535
  18. package/dist/index.js.map +1 -1
  19. package/dist/speechos.d.cts +74 -0
  20. package/dist/speechos.d.ts +47 -5
  21. package/dist/speechos.d.ts.map +1 -1
  22. package/dist/speechos.test.d.ts +5 -0
  23. package/dist/speechos.test.d.ts.map +1 -0
  24. package/dist/stores/audio-settings.d.ts +45 -0
  25. package/dist/stores/audio-settings.d.ts.map +1 -0
  26. package/dist/stores/index.d.ts +15 -0
  27. package/dist/stores/index.d.ts.map +1 -0
  28. package/dist/stores/language-settings.d.ts +106 -0
  29. package/dist/stores/language-settings.d.ts.map +1 -0
  30. package/dist/stores/snippets-store.d.ts +72 -0
  31. package/dist/stores/snippets-store.d.ts.map +1 -0
  32. package/dist/stores/snippets-store.test.d.ts +5 -0
  33. package/dist/stores/snippets-store.test.d.ts.map +1 -0
  34. package/dist/stores/transcript-store.d.ts +54 -0
  35. package/dist/stores/transcript-store.d.ts.map +1 -0
  36. package/dist/stores/transcript-store.test.d.ts +5 -0
  37. package/dist/stores/transcript-store.test.d.ts.map +1 -0
  38. package/dist/stores/vocabulary-store.d.ts +63 -0
  39. package/dist/stores/vocabulary-store.d.ts.map +1 -0
  40. package/dist/stores/vocabulary-store.test.d.ts +5 -0
  41. package/dist/stores/vocabulary-store.test.d.ts.map +1 -0
  42. package/dist/text-input-handler.d.ts +73 -0
  43. package/dist/text-input-handler.d.ts.map +1 -0
  44. package/dist/text-input-handler.test.d.ts +5 -0
  45. package/dist/text-input-handler.test.d.ts.map +1 -0
  46. package/dist/ui/action-bubbles.d.cts +17 -0
  47. package/dist/ui/action-bubbles.d.ts +5 -1
  48. package/dist/ui/action-bubbles.d.ts.map +1 -1
  49. package/dist/ui/audio-level-meter.d.ts +31 -0
  50. package/dist/ui/audio-level-meter.d.ts.map +1 -0
  51. package/dist/ui/audio-visualizer.d.ts +29 -0
  52. package/dist/ui/audio-visualizer.d.ts.map +1 -0
  53. package/dist/ui/dictation-output-modal.d.ts +25 -0
  54. package/dist/ui/dictation-output-modal.d.ts.map +1 -0
  55. package/dist/ui/dictation-output-modal.test.d.ts +5 -0
  56. package/dist/ui/dictation-output-modal.test.d.ts.map +1 -0
  57. package/dist/ui/edit-help-modal.d.ts +19 -0
  58. package/dist/ui/edit-help-modal.d.ts.map +1 -0
  59. package/dist/ui/edit-help-modal.test.d.ts +5 -0
  60. package/dist/ui/edit-help-modal.test.d.ts.map +1 -0
  61. package/dist/ui/icons.d.cts +88 -0
  62. package/dist/ui/icons.d.ts +30 -0
  63. package/dist/ui/icons.d.ts.map +1 -1
  64. package/dist/ui/index.d.cts +20 -0
  65. package/dist/ui/index.d.ts +8 -0
  66. package/dist/ui/index.d.ts.map +1 -1
  67. package/dist/ui/mic-button.d.cts +34 -0
  68. package/dist/ui/mic-button.d.ts +4 -0
  69. package/dist/ui/mic-button.d.ts.map +1 -1
  70. package/dist/ui/mic-button.test.d.ts +5 -0
  71. package/dist/ui/mic-button.test.d.ts.map +1 -0
  72. package/dist/ui/settings-button.d.cts +16 -0
  73. package/dist/ui/settings-button.d.ts.map +1 -1
  74. package/dist/ui/settings-modal.d.cts +34 -0
  75. package/dist/ui/settings-modal.d.ts +13 -14
  76. package/dist/ui/settings-modal.d.ts.map +1 -1
  77. package/dist/ui/styles/modal-styles.d.ts +10 -0
  78. package/dist/ui/styles/modal-styles.d.ts.map +1 -0
  79. package/dist/ui/styles/popup-modal-styles.d.ts +7 -0
  80. package/dist/ui/styles/popup-modal-styles.d.ts.map +1 -0
  81. package/dist/ui/styles/theme.d.cts +17 -0
  82. package/dist/ui/tabs/about-tab.d.ts +14 -0
  83. package/dist/ui/tabs/about-tab.d.ts.map +1 -0
  84. package/dist/ui/tabs/help-tab.d.ts +14 -0
  85. package/dist/ui/tabs/help-tab.d.ts.map +1 -0
  86. package/dist/ui/tabs/history-tab.d.ts +26 -0
  87. package/dist/ui/tabs/history-tab.d.ts.map +1 -0
  88. package/dist/ui/tabs/index.d.ts +10 -0
  89. package/dist/ui/tabs/index.d.ts.map +1 -0
  90. package/dist/ui/tabs/settings-tab.d.ts +42 -0
  91. package/dist/ui/tabs/settings-tab.d.ts.map +1 -0
  92. package/dist/ui/tabs/snippets-tab.d.ts +34 -0
  93. package/dist/ui/tabs/snippets-tab.d.ts.map +1 -0
  94. package/dist/ui/tabs/vocabulary-tab.d.ts +30 -0
  95. package/dist/ui/tabs/vocabulary-tab.d.ts.map +1 -0
  96. package/dist/ui/widget.d.cts +64 -0
  97. package/dist/ui/widget.d.ts +33 -0
  98. package/dist/ui/widget.d.ts.map +1 -1
  99. package/dist/ui/widget.test.d.ts +6 -0
  100. package/dist/ui/widget.test.d.ts.map +1 -0
  101. package/package.json +5 -4
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared styles for settings modal and tabs
3
+ */
4
+ /** Base modal layout styles */
5
+ export declare const modalLayoutStyles: import("lit").CSSResult;
6
+ /** Shared tab content styles */
7
+ export declare const tabContentStyles: import("lit").CSSResult;
8
+ /** Form styles for add/edit forms */
9
+ export declare const formStyles: import("lit").CSSResult;
10
+ //# sourceMappingURL=modal-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-styles.d.ts","sourceRoot":"","sources":["../../../src/ui/styles/modal-styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,yBAkO7B,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,gBAAgB,yBAmF5B,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,UAAU,yBA4KtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared styles for lightweight popup modals
3
+ * Used by dictation-output-modal and edit-help-modal
4
+ */
5
+ /** Base popup modal styles - simpler than full settings modal */
6
+ export declare const popupModalStyles: import("lit").CSSResult;
7
+ //# sourceMappingURL=popup-modal-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup-modal-styles.d.ts","sourceRoot":"","sources":["../../../src/ui/styles/popup-modal-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,yBA6O5B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared styles and CSS variables for SpeechOS UI components
3
+ */
4
+ import { type CSSResult } from 'lit';
5
+ /**
6
+ * CSS variables and theme tokens
7
+ * These can be customized by the host application
8
+ */
9
+ export declare const themeStyles: CSSResult;
10
+ /**
11
+ * Common animation keyframes
12
+ */
13
+ export declare const animations: CSSResult;
14
+ /**
15
+ * Utility styles for common patterns
16
+ */
17
+ export declare const utilityStyles: CSSResult;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * About tab component - Shows SpeechOS branding and links
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ export declare class SpeechOSAboutTab extends LitElement {
6
+ static styles: CSSResultGroup;
7
+ render(): import("lit-html").TemplateResult<1>;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ "speechos-about-tab": SpeechOSAboutTab;
12
+ }
13
+ }
14
+ //# sourceMappingURL=about-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/about-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKjE,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,EAAE,cAAc,CAgF3B;IAEF,MAAM;CAqCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Help tab component - Shows usage instructions for dictate and edit modes
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ export declare class SpeechOSHelpTab extends LitElement {
6
+ static styles: CSSResultGroup;
7
+ render(): import("lit-html").TemplateResult<1>;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ "speechos-help-tab": SpeechOSHelpTab;
12
+ }
13
+ }
14
+ //# sourceMappingURL=help-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/help-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKjE,qBACa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAM,EAAE,cAAc,CAoE3B;IAEF,MAAM;CA4CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * History tab component - Shows transcript history with copy/delete actions
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ export declare class SpeechOSHistoryTab extends LitElement {
6
+ static styles: CSSResultGroup;
7
+ private transcripts;
8
+ connectedCallback(): void;
9
+ /** Reload transcripts from store */
10
+ refresh(): void;
11
+ private loadTranscripts;
12
+ private formatTime;
13
+ private handleDelete;
14
+ private handleClearAll;
15
+ private handleCopy;
16
+ private getActionIcon;
17
+ private renderCommandDetails;
18
+ private getCopyText;
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ "speechos-history-tab": SpeechOSHistoryTab;
24
+ }
25
+ }
26
+ //# sourceMappingURL=history-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/history-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAcjE,qBACa,kBAAmB,SAAQ,UAAU;IAChD,MAAM,CAAC,MAAM,EAAE,cAAc,CAwI3B;IAGF,OAAO,CAAC,WAAW,CAAyB;IAE5C,iBAAiB,IAAI,IAAI;IAKzB,oCAAoC;IACpC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;YAKR,UAAU;IAwBxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,WAAW;IAOnB,MAAM;CAqDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,kBAAkB,CAAC;KAC5C;CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tab components for settings modal
3
+ */
4
+ export { SpeechOSHistoryTab } from "./history-tab.js";
5
+ export { SpeechOSHelpTab } from "./help-tab.js";
6
+ export { SpeechOSAboutTab } from "./about-tab.js";
7
+ export { SpeechOSSettingsTab } from "./settings-tab.js";
8
+ export { SpeechOSSnippetsTab } from "./snippets-tab.js";
9
+ export { SpeechOSVocabularyTab } from "./vocabulary-tab.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Settings tab component - Language and microphone preferences
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ import "../audio-level-meter.js";
6
+ export declare class SpeechOSSettingsTab extends LitElement {
7
+ static styles: CSSResultGroup;
8
+ private audioDevices;
9
+ private selectedDeviceId;
10
+ private selectedInputLanguageCode;
11
+ private selectedOutputLanguageCode;
12
+ private isTestingMic;
13
+ private showSavedIndicator;
14
+ private permissionGranted;
15
+ private smartFormatEnabled;
16
+ private savedIndicatorTimeout;
17
+ connectedCallback(): void;
18
+ disconnectedCallback(): void;
19
+ /** Called when tab becomes active */
20
+ activate(): void;
21
+ /** Called when tab becomes inactive */
22
+ deactivate(): void;
23
+ private loadSettings;
24
+ private loadAudioDevices;
25
+ private requestMicPermission;
26
+ private startMicPreview;
27
+ private showSaved;
28
+ private handleInputLanguageChange;
29
+ private handleOutputLanguageChange;
30
+ private handleDeviceChange;
31
+ private handleSmartFormatToggle;
32
+ private renderLanguageSelector;
33
+ private renderDeviceSelector;
34
+ private renderPermissionRequest;
35
+ render(): import("lit-html").TemplateResult<1>;
36
+ }
37
+ declare global {
38
+ interface HTMLElementTagNameMap {
39
+ "speechos-settings-tab": SpeechOSSettingsTab;
40
+ }
41
+ }
42
+ //# sourceMappingURL=settings-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/settings-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAkBjE,OAAO,yBAAyB,CAAC;AAEjC,qBACa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,MAAM,EAAE,cAAc,CAyK3B;IAGF,OAAO,CAAC,YAAY,CAAyB;IAG7C,OAAO,CAAC,gBAAgB,CAAc;IAGtC,OAAO,CAAC,yBAAyB,CAAmB;IAGpD,OAAO,CAAC,0BAA0B,CAAmB;IAGrD,OAAO,CAAC,YAAY,CAAkB;IAGtC,OAAO,CAAC,kBAAkB,CAAkB;IAG5C,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,kBAAkB,CAAiB;IAE3C,OAAO,CAAC,qBAAqB,CAA8C;IAE3E,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAQ5B,qCAAqC;IACrC,QAAQ,IAAI,IAAI;IAIhB,uCAAuC;IACvC,UAAU,IAAI,IAAI;YAIJ,YAAY;YAQZ,gBAAgB;YAehB,oBAAoB;YAWpB,eAAe;IAS7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAsC9B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,uBAAuB;IAyB/B,MAAM;CA2FP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,mBAAmB,CAAC;KAC9C;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Snippets tab component - Manage text snippets that expand from trigger phrases
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ export declare class SpeechOSSnippetsTab extends LitElement {
6
+ static styles: CSSResultGroup;
7
+ private snippets;
8
+ private showForm;
9
+ private editingId;
10
+ private trigger;
11
+ private expansion;
12
+ private error;
13
+ connectedCallback(): void;
14
+ /** Reload snippets from store */
15
+ refresh(): void;
16
+ /** Reset form state */
17
+ resetForm(): void;
18
+ private loadSnippets;
19
+ private handleAddClick;
20
+ private handleEditClick;
21
+ private handleCancel;
22
+ private handleTriggerInput;
23
+ private handleExpansionInput;
24
+ private handleSave;
25
+ private handleDelete;
26
+ private renderForm;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ "speechos-snippets-tab": SpeechOSSnippetsTab;
32
+ }
33
+ }
34
+ //# sourceMappingURL=snippets-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippets-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/snippets-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAOjE,qBACa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,MAAM,EAAE,cAAc,CAoG3B;IAGF,OAAO,CAAC,QAAQ,CAAiB;IAGjC,OAAO,CAAC,QAAQ,CAAkB;IAGlC,OAAO,CAAC,SAAS,CAAuB;IAGxC,OAAO,CAAC,OAAO,CAAc;IAG7B,OAAO,CAAC,SAAS,CAAc;IAG/B,OAAO,CAAC,KAAK,CAAc;IAE3B,iBAAiB,IAAI,IAAI;IAKzB,iCAAiC;IACjC,OAAO,IAAI,IAAI;IAIf,uBAAuB;IACvB,SAAS,IAAI,IAAI;IAQjB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IA0ElB,MAAM;CAkFP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,mBAAmB,CAAC;KAC9C;CACF"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Vocabulary tab component - Manage custom vocabulary terms for transcription accuracy
3
+ */
4
+ import { LitElement, type CSSResultGroup } from "lit";
5
+ export declare class SpeechOSVocabularyTab extends LitElement {
6
+ static styles: CSSResultGroup;
7
+ private vocabulary;
8
+ private showForm;
9
+ private term;
10
+ private error;
11
+ connectedCallback(): void;
12
+ /** Reload vocabulary from store */
13
+ refresh(): void;
14
+ /** Reset form state */
15
+ resetForm(): void;
16
+ private loadVocabulary;
17
+ private handleAddClick;
18
+ private handleCancel;
19
+ private handleTermInput;
20
+ private handleSave;
21
+ private handleDelete;
22
+ private renderForm;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ "speechos-vocabulary-tab": SpeechOSVocabularyTab;
28
+ }
29
+ }
30
+ //# sourceMappingURL=vocabulary-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocabulary-tab.d.ts","sourceRoot":"","sources":["../../../src/ui/tabs/vocabulary-tab.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAOjE,qBACa,qBAAsB,SAAQ,UAAU;IACnD,MAAM,CAAC,MAAM,EAAE,cAAc,CA+C3B;IAGF,OAAO,CAAC,UAAU,CAAwB;IAG1C,OAAO,CAAC,QAAQ,CAAkB;IAGlC,OAAO,CAAC,IAAI,CAAc;IAG1B,OAAO,CAAC,KAAK,CAAc;IAE3B,iBAAiB,IAAI,IAAI;IAKzB,mCAAmC;IACnC,OAAO,IAAI,IAAI;IAIf,uBAAuB;IACvB,SAAS,IAAI,IAAI;IAMjB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IA6ClB,MAAM;CAmEP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,qBAAqB,CAAC;KAClD;CACF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Main widget container component
3
+ * Composes mic button and action bubbles with state management
4
+ */
5
+ import { LitElement, type CSSResultGroup, type TemplateResult } from "lit";
6
+ import "./mic-button.js";
7
+ import "./action-bubbles.js";
8
+ import "./settings-button.js";
9
+ import "./settings-modal.js";
10
+ export declare class SpeechOSWidget extends LitElement {
11
+ static styles: CSSResultGroup;
12
+ private widgetState;
13
+ private settingsOpen;
14
+ private stateUnsubscribe?;
15
+ private errorEventUnsubscribe?;
16
+ private dictationTargetElement;
17
+ private editTargetElement;
18
+ private dictationCursorStart;
19
+ private dictationCursorEnd;
20
+ private editSelectionStart;
21
+ private editSelectionEnd;
22
+ private editSelectedText;
23
+ private boundClickOutsideHandler;
24
+ private modalElement;
25
+ private customPosition;
26
+ private isDragging;
27
+ private dragStartPos;
28
+ private dragOffset;
29
+ private boundDragMove;
30
+ private boundDragEnd;
31
+ private static readonly DRAG_THRESHOLD;
32
+ private suppressNextClick;
33
+ connectedCallback(): void;
34
+ disconnectedCallback(): void;
35
+ updated(changedProperties: Map<string, unknown>): void;
36
+ private handleClickOutside;
37
+ private isFormField;
38
+ private updatePosition;
39
+ private handleMicClick;
40
+ private handleStopRecording;
41
+ private handleCancelOperation;
42
+ private handleRetryConnection;
43
+ private handleCloseWidget;
44
+ private handleSettingsClick;
45
+ private handleDragStart;
46
+ private handleDragMove;
47
+ private handleDragEnd;
48
+ private applyCustomPosition;
49
+ private insertTranscription;
50
+ private handleActionSelect;
51
+ private withMinDisplayTime;
52
+ private startDictation;
53
+ private startEdit;
54
+ private handleStopEdit;
55
+ private supportsSelection;
56
+ private getElementContent;
57
+ private applyEdit;
58
+ render(): TemplateResult | string;
59
+ }
60
+ declare global {
61
+ interface HTMLElementTagNameMap {
62
+ "speechos-widget": SpeechOSWidget;
63
+ }
64
+ }
@@ -7,10 +7,16 @@ import "./mic-button.js";
7
7
  import "./action-bubbles.js";
8
8
  import "./settings-button.js";
9
9
  import "./settings-modal.js";
10
+ import "./dictation-output-modal.js";
11
+ import "./edit-help-modal.js";
10
12
  export declare class SpeechOSWidget extends LitElement {
11
13
  static styles: CSSResultGroup;
12
14
  private widgetState;
13
15
  private settingsOpen;
16
+ private dictationModalOpen;
17
+ private dictationModalText;
18
+ private editHelpModalOpen;
19
+ private commandFeedback;
14
20
  private stateUnsubscribe?;
15
21
  private errorEventUnsubscribe?;
16
22
  private dictationTargetElement;
@@ -22,6 +28,9 @@ export declare class SpeechOSWidget extends LitElement {
22
28
  private editSelectedText;
23
29
  private boundClickOutsideHandler;
24
30
  private modalElement;
31
+ private dictationModalElement;
32
+ private editHelpModalElement;
33
+ private commandFeedbackTimeout;
25
34
  private customPosition;
26
35
  private isDragging;
27
36
  private dragStartPos;
@@ -30,12 +39,32 @@ export declare class SpeechOSWidget extends LitElement {
30
39
  private boundDragEnd;
31
40
  private static readonly DRAG_THRESHOLD;
32
41
  private suppressNextClick;
42
+ private boundViewportResizeHandler;
43
+ private boundScrollHandler;
44
+ private static readonly KEYBOARD_HEIGHT_THRESHOLD;
33
45
  connectedCallback(): void;
34
46
  disconnectedCallback(): void;
35
47
  updated(changedProperties: Map<string, unknown>): void;
36
48
  private handleClickOutside;
37
49
  private isFormField;
50
+ /**
51
+ * Check if the device is likely a mobile/touch device
52
+ */
53
+ private isMobileDevice;
38
54
  private updatePosition;
55
+ /**
56
+ * Position the widget below a specific element
57
+ */
58
+ private positionBelowElement;
59
+ /**
60
+ * Handle visual viewport resize (mobile keyboard show/hide)
61
+ * Adjusts widget position to stay above the virtual keyboard
62
+ */
63
+ private handleViewportResize;
64
+ /**
65
+ * Handle scroll events to update anchored position
66
+ */
67
+ private handleScroll;
39
68
  private handleMicClick;
40
69
  private handleStopRecording;
41
70
  private handleCancelOperation;
@@ -52,6 +81,10 @@ export declare class SpeechOSWidget extends LitElement {
52
81
  private startDictation;
53
82
  private startEdit;
54
83
  private handleStopEdit;
84
+ private startCommand;
85
+ private handleStopCommand;
86
+ private showCommandFeedback;
87
+ private clearCommandFeedback;
55
88
  private supportsSelection;
56
89
  private getElementContent;
57
90
  private applyEdit;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/ui/widget.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAGV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAcb,OAAO,iBAAiB,CAAC;AACzB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAE7B,qBACa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,EAAE,cAAc,CAsD3B;IAGF,OAAO,CAAC,WAAW,CAAmC;IAGtD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,gBAAgB,CAAC,CAAgB;IACzC,OAAO,CAAC,qBAAqB,CAAC,CAAgB;IAC9C,OAAO,CAAC,sBAAsB,CAA4B;IAC1D,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,wBAAwB,CAA8C;IAC9E,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAK;IAC3C,OAAO,CAAC,iBAAiB,CAAS;IAElC,iBAAiB,IAAI,IAAI;IA+BzB,oBAAoB,IAAI,IAAI;IA0B5B,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMtD,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;YAcR,mBAAmB;YAyBnB,qBAAqB;YAgBrB,qBAAqB;IAUnC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,kBAAkB;YAcZ,kBAAkB;YAKlB,cAAc;YA8Bd,SAAS;YA4CT,cAAc;IAgB5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,SAAS;IAkDjB,MAAM,IAAI,cAAc,GAAG,MAAM;CA4BlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/ui/widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tests for SpeechOS Widget positioning
3
+ * Ensures mobile anchoring vs desktop center-bottom behavior is preserved
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=widget.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.test.d.ts","sourceRoot":"","sources":["../../src/ui/widget.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speechos/client",
3
- "version": "0.2.1",
3
+ "version": "0.2.4",
4
4
  "description": "Vanilla JS client SDK for embedding SpeechOS into web applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -22,14 +22,15 @@
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",
25
- "url": "https://github.com/speechos-org/speechos.git",
26
- "directory": "speechos-client/packages/client"
25
+ "url": "git+ssh://git@github.com/speechos-org/speechos-client.git",
26
+ "directory": "packages/client"
27
27
  },
28
28
  "homepage": "https://speechos.ai",
29
29
  "bugs": {
30
- "url": "https://github.com/speechos-org/speechos/issues"
30
+ "url": "https://github.com/speechos-org/speechos-client/issues"
31
31
  },
32
32
  "scripts": {
33
+ "prepare": "npm run build",
33
34
  "build": "rollup -c rollup.config.js",
34
35
  "dev": "rollup -c rollup.config.js --watch",
35
36
  "dev:iife": "rollup -c rollup.config.js --watch",