@absolutejs/voice 0.0.22-beta.131 → 0.0.22-beta.132
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/client/htmxBootstrap.js +19 -0
- package/package.json +1 -1
|
@@ -1743,6 +1743,17 @@ var formatErrorMessage = (error) => {
|
|
|
1743
1743
|
}
|
|
1744
1744
|
return "Unexpected error";
|
|
1745
1745
|
};
|
|
1746
|
+
var formatReconnectState = (reconnect) => {
|
|
1747
|
+
const pieces = [reconnect.status];
|
|
1748
|
+
if (reconnect.attempts > 0 || reconnect.maxAttempts > 0) {
|
|
1749
|
+
pieces.push(`${reconnect.attempts}/${reconnect.maxAttempts} attempts`);
|
|
1750
|
+
}
|
|
1751
|
+
if (reconnect.nextAttemptAt) {
|
|
1752
|
+
const waitMs = Math.max(0, reconnect.nextAttemptAt - Date.now());
|
|
1753
|
+
pieces.push(`retry in ${Math.ceil(waitMs / 100) / 10}s`);
|
|
1754
|
+
}
|
|
1755
|
+
return pieces.join(" · ");
|
|
1756
|
+
};
|
|
1746
1757
|
var createInitialVoiceWaveLevels = (count = VOICE_WAVE_POINTS) => Array.from({ length: count }, () => 0);
|
|
1747
1758
|
var pushVoiceWaveLevel = (levels, nextLevel, count = VOICE_WAVE_POINTS) => {
|
|
1748
1759
|
const next = levels.slice(-(count - 1));
|
|
@@ -1806,6 +1817,10 @@ var parseOptionalNumber = (value) => {
|
|
|
1806
1817
|
const parsed = Number(value);
|
|
1807
1818
|
return Number.isFinite(parsed) ? parsed : undefined;
|
|
1808
1819
|
};
|
|
1820
|
+
var resolveElement2 = (root, selector, ctor) => {
|
|
1821
|
+
const value = selector ? document.querySelector(selector) : root.querySelector(selector ?? "");
|
|
1822
|
+
return value instanceof ctor ? value : null;
|
|
1823
|
+
};
|
|
1809
1824
|
var requireElement = (root, selector, ctor, name) => {
|
|
1810
1825
|
const value = selector ? document.querySelector(selector) : null;
|
|
1811
1826
|
if (value instanceof ctor) {
|
|
@@ -1868,6 +1883,7 @@ var initVoiceHTMXRoot = (root) => {
|
|
|
1868
1883
|
const errorStatus = requireElement(root, root.dataset.voiceError, HTMLElement, "status-error");
|
|
1869
1884
|
const microphoneStatus = requireElement(root, root.dataset.voiceMicrophone, HTMLElement, "status-mic");
|
|
1870
1885
|
const promptStatus = requireElement(root, root.dataset.voicePrompt, HTMLElement, "status-prompt");
|
|
1886
|
+
const reconnectStatus = resolveElement2(root, root.dataset.voiceReconnect, HTMLElement);
|
|
1871
1887
|
const chatList = requireElement(root, root.dataset.voiceChat, HTMLElement, "chat-list");
|
|
1872
1888
|
const startGuidedButton = requireElement(root, root.dataset.voiceStartGuided, HTMLButtonElement, "start-guided");
|
|
1873
1889
|
const startGeneralButton = requireElement(root, root.dataset.voiceStartGeneral, HTMLButtonElement, "start-general");
|
|
@@ -1948,6 +1964,9 @@ var initVoiceHTMXRoot = (root) => {
|
|
|
1948
1964
|
const status = voice.status;
|
|
1949
1965
|
connectionMetric.textContent = voice.isConnected ? "Connected" : "Waiting";
|
|
1950
1966
|
errorStatus.textContent = micError || voice.error || "None";
|
|
1967
|
+
if (reconnectStatus) {
|
|
1968
|
+
reconnectStatus.textContent = formatReconnectState(voice.reconnect);
|
|
1969
|
+
}
|
|
1951
1970
|
microphoneStatus.textContent = isCapturing ? DEFAULT_MIC_LIVE : DEFAULT_MIC_IDLE;
|
|
1952
1971
|
promptStatus.textContent = resolvePromptMessage({
|
|
1953
1972
|
guidedPrompts,
|