arcane-os 0.3.0 → 0.3.2
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/CHANGELOG.md +27 -0
- package/README.md +86 -117
- package/bin/arcane-test.mjs +170 -46
- package/browser-runtime/ai/browser-speech-artifacts.mjs +887 -909
- package/browser-runtime/ai/browser-speech-providers.mjs +96 -152
- package/browser-runtime/ai/browser-wasm-llm-provider.mjs +627 -819
- package/browser-runtime/ai/browser-wasm.mjs +24 -35
- package/browser-runtime/ai/browser-wllama-runtime.mjs +64 -316
- package/browser-runtime/ai/model-controller.mjs +584 -181
- package/browser-runtime/ai/speech-worker-client.mjs +8 -146
- package/browser-runtime/ai/speech-worker-runtime.mjs +643 -363
- package/browser-runtime/dom-event-instrumentation.mjs +55 -147
- package/browser-runtime/event-manager.mjs +239 -624
- package/package.json +5 -6
- package/runtime/arcane/components/app-bar.html +3 -15
- package/runtime/arcane/components/assistant-panel.html +10 -10
- package/runtime/arcane/components/calculator.html +1 -1
- package/runtime/arcane/components/chat.html +1359 -135
- package/runtime/arcane/components/conversation-view.html +2 -2
- package/runtime/arcane/components/document-inspector.html +11 -17
- package/runtime/arcane/components/file-manager.html +13 -56
- package/runtime/arcane/components/markdown-document.html +82 -281
- package/runtime/arcane/components/markdown-editor.html +7 -10
- package/runtime/arcane/components/media-embed.html +6 -6
- package/runtime/arcane/components/screen-capture.html +4 -4
- package/runtime/arcane/components/source-explanation.html +2 -2
- package/runtime/arcane/components/speech.html +112 -68
- package/runtime/arcane/components/terminal-workspace.html +4 -4
- package/runtime/arcane/components/theme-editor.html +1 -1
- package/runtime/arcane/components/unified-inbox.html +2 -2
- package/runtime/arcane/components/voice-transcription.html +31 -21
- package/runtime/arcane/entities/Calculation.js +2 -3
- package/runtime/arcane/entities/Chat.js +228 -43
- package/runtime/arcane/entities/Preference.js +3 -5
- package/runtime/arcane/entities/Weather.js +5 -5
- package/runtime/arcane/modules/AI.js +1050 -427
- package/runtime/arcane/modules/AIProviderRuntime.js +658 -363
- package/runtime/arcane/modules/AIResponseLength.js +9 -19
- package/runtime/arcane/modules/AIRuntimeState.js +109 -72
- package/runtime/arcane/modules/ArcaneNavigationPolicy.js +45 -32
- package/runtime/arcane/modules/BrowserTestSuite.js +78 -122
- package/runtime/arcane/modules/CalculatorEngine.js +9 -9
- package/runtime/arcane/modules/CommunicationAppController.js +3 -7
- package/runtime/arcane/modules/ComponentContracts.js +30 -32
- package/runtime/arcane/modules/ConfiguredAIChatSession.js +281 -230
- package/runtime/arcane/modules/ConversationActionItems.js +26 -59
- package/runtime/arcane/modules/ConversationClosingReport.js +34 -61
- package/runtime/arcane/modules/ConversationTimebox.js +27 -15
- package/runtime/arcane/modules/DBOPFSDocumentLibrary.js +152 -344
- package/runtime/arcane/modules/DocumentLexicalSearch.js +25 -91
- package/runtime/arcane/modules/HTMLImport.js +54 -1
- package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +40 -203
- package/runtime/arcane/modules/LocalAIReadiness.js +40 -60
- package/runtime/arcane/modules/LocalAIReadinessController.js +15 -13
- package/runtime/arcane/modules/MD.js +1 -45
- package/runtime/arcane/modules/Mail.js +51 -103
- package/runtime/arcane/modules/MailOutbox.mjs +95 -193
- package/runtime/arcane/modules/MailTransport.mjs +36 -57
- package/runtime/arcane/modules/ModelDefinition.js +22 -106
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +39 -101
- package/runtime/arcane/modules/PersistentAIChatSession.js +281 -18
- package/runtime/arcane/modules/PreferenceStore.js +102 -30
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +8 -9
- package/runtime/arcane/modules/ScopedOPFSCache.js +7 -42
- package/runtime/arcane/modules/ScreenCapture.js +175 -128
- package/runtime/arcane/modules/SpeechPlayback.js +46 -149
- package/runtime/arcane/modules/StaticDocumentCatalog.js +173 -407
- package/runtime/arcane/modules/ToolCallRouter.js +25 -12
- package/runtime/arcane/modules/YouTubeMedia.js +6 -5
- package/schemas/arcane-app-bundle.schema.json +13 -78
- package/schemas/arcane-app.schema.json +9 -25
- package/schemas/arcane-lock.schema.json +18 -151
- package/schemas/arcane-package.schema.json +2 -16
- package/schemas/native-build-plan.schema.json +119 -122
- package/src/app-descriptor.mjs +75 -132
- package/src/application-tests.mjs +200 -0
- package/src/cli/main.mjs +27 -46
- package/src/constants.mjs +3 -4
- package/src/dev-server.mjs +30 -324
- package/src/doctor.mjs +92 -154
- package/src/dom-event-instrumentation.mjs +55 -147
- package/src/errors.mjs +2 -3
- package/src/event-manager.mjs +239 -624
- package/src/event-queue.mjs +3 -3
- package/src/import-map.mjs +273 -1028
- package/src/index.mjs +14 -16
- package/src/installed-sdk-runtime.mjs +40 -62
- package/src/integrated-provider-loader.mjs +53 -382
- package/src/mail-api.mjs +0 -2
- package/src/mail-server.mjs +224 -580
- package/src/mail.mjs +4 -10
- package/src/native-plan.mjs +163 -598
- package/src/native-provider-loader.mjs +104 -1063
- package/src/packager/core.mjs +485 -3229
- package/src/process.mjs +5 -10
- package/src/release-bundle.mjs +292 -2405
- package/src/runtime.mjs +76 -396
- package/src/scaffold.mjs +30 -80
- package/src/sdk-browser-runtime.mjs +70 -626
- package/src/source-server.mjs +588 -0
- package/src/targets/index.mjs +78 -188
- package/src/templates/workspace-template.mjs +19 -135
- package/src/testing-loader.mjs +164 -0
- package/src/testing.mjs +1 -1
- package/src/toolchain.mjs +131 -544
- package/src/update-check.mjs +26 -64
- package/src/workspace-operation-lock.mjs +139 -430
- package/src/workspace-runtime.mjs +112 -779
- package/src/workspace.mjs +40 -302
- package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +0 -218
- package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +0 -203
- package/browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json +0 -80
- package/browser-runtime/ai/internal/sha256.mjs +0 -166
- package/docs/architecture.md +0 -344
- package/docs/compatibility.md +0 -36
- package/docs/event-manager.md +0 -294
- package/docs/platform-targets.md +0 -108
- package/docs/publishing.md +0 -201
- package/docs/reference/README.md +0 -187
- package/docs/reference/ai/browser-speech-package-authority.json +0 -835
- package/docs/reference/ai/browser-speech.md +0 -1252
- package/docs/reference/ai/browser-wasm.md +0 -530
- package/docs/reference/arcane-ollama.md +0 -288
- package/docs/reference/availability-and-normalization.md +0 -183
- package/docs/reference/behavioral-testing.md +0 -133
- package/docs/reference/cli.md +0 -779
- package/docs/reference/core/README.md +0 -62
- package/docs/reference/core/arcane-ai-contracts.md +0 -907
- package/docs/reference/core/arcane-api.md +0 -601
- package/docs/reference/core/arcane-entities.md +0 -65
- package/docs/reference/core/arcane-events.md +0 -134
- package/docs/reference/core/ollama-module.md +0 -181
- package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +0 -1909
- package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +0 -1057
- package/docs/reference/core/reference/arcane-api/core-and-events.md +0 -320
- package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +0 -610
- package/docs/reference/core/reference/arcane-api/namespaces.md +0 -1157
- package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +0 -1423
- package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +0 -315
- package/docs/reference/event-manager.md +0 -1511
- package/docs/reference/inventory/package-api.json +0 -3284
- package/docs/reference/inventory/runtime-components.json +0 -1011
- package/docs/reference/inventory/runtime-entities.json +0 -26
- package/docs/reference/inventory/runtime-modules.json +0 -1431
- package/docs/reference/mail.md +0 -316
- package/docs/reference/protocols.md +0 -677
- package/docs/reference/runtime-components.md +0 -1366
- package/docs/reference/runtime-entities.md +0 -303
- package/docs/reference/runtime-modules.md +0 -2960
- package/docs/reference/sdk-api.md +0 -6694
- package/docs/roadmap.md +0 -79
- package/docs/work-amplification.md +0 -129
- package/runtime/ARCANE_RUNTIME_RELEASE.json +0 -826
|
@@ -1,1366 +0,0 @@
|
|
|
1
|
-
# Arcane runtime component catalog
|
|
2
|
-
|
|
3
|
-
Arcane components are reusable HTML fragments loaded through the shared `<html-import>` element. They are browser UI, so they run in an ordinary supported browser renderer and in native Arcane WebViews. They do not run in Node or as cloud services.
|
|
4
|
-
|
|
5
|
-
A component file does not register its own custom element. The `<html-import>` host fetches the fragment from the same origin, attaches an open shadow root, runs its inline scripts with `this` bound to the host, and publishes `html-import-ready` or `html-import-error`. Component methods and properties are attached to that host.
|
|
6
|
-
|
|
7
|
-
## Basic loading pattern
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<script type="module">
|
|
11
|
-
import '/arcane/modules/HTMLImport.js';
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<html-import id="widget" href="/arcane/components/weather-widget.html"></html-import>
|
|
15
|
-
|
|
16
|
-
<script type="module">
|
|
17
|
-
const widget = document.querySelector('#widget');
|
|
18
|
-
widget.addEventListener('html-import-ready', () => {
|
|
19
|
-
console.log('Component methods are attached.', typeof widget.setWeather);
|
|
20
|
-
}, {once: true});
|
|
21
|
-
</script>
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Shared semantic-event and lifecycle contract
|
|
25
|
-
|
|
26
|
-
Except for the legacy `header.html` and platform-owned `theme-switcher.html`,
|
|
27
|
-
each component owns exactly one source created through
|
|
28
|
-
`createArcaneEventSource(host,{source:'arcane.component.<name>',eventTypes})`.
|
|
29
|
-
That source publishes synchronously to the realm's branded
|
|
30
|
-
`globalThis.arcaneEvents` authority. Component DOM events are one-way
|
|
31
|
-
compatibility projections of the same canonical occurrence; they are never
|
|
32
|
-
republished into the authority. Every projected detail has the canonical
|
|
33
|
-
`occurrenceId`, `arcaneSource`, `instanceId`, and `operationId` fields and a
|
|
34
|
-
frozen outer record. A compatibility payload's existing `source` field remains
|
|
35
|
-
source-local and may differ from `arcaneSource`; the payload may additionally
|
|
36
|
-
retain source-local browser or provider objects.
|
|
37
|
-
|
|
38
|
-
When a component uses a cancelable event as an admission gate, cancellation on
|
|
39
|
-
either the canonical occurrence or its DOM projection makes the publication
|
|
40
|
-
unaccepted, and the component does not continue the guarded operation. A
|
|
41
|
-
cancelable compatibility notification emitted after committed work does not
|
|
42
|
-
roll that work back unless its component section explicitly says otherwise.
|
|
43
|
-
Asynchronous work keeps its own `AbortSignal`, operation generation, and
|
|
44
|
-
promise ownership; canonical publication is synchronous and does not become an
|
|
45
|
-
async queue.
|
|
46
|
-
|
|
47
|
-
Every singleton-backed component publishes its ready event only after its host
|
|
48
|
-
members are installed. Its idempotent `destroy()` (unless a more specific
|
|
49
|
-
return is documented) disposes the canonical source and marks the host
|
|
50
|
-
unready. Cleanup of owned listeners, pending work, nested subscriptions, and
|
|
51
|
-
controllers is component-specific and is stated below where it forms part of
|
|
52
|
-
that component's public contract. Removing an `<html-import>` host calls an
|
|
53
|
-
imported component's `destroy()` through `HTMLImport`; callers that invoke
|
|
54
|
-
`destroy()` directly retain responsibility for removing the element when
|
|
55
|
-
appropriate.
|
|
56
|
-
|
|
57
|
-
## Canonical inventory
|
|
58
|
-
|
|
59
|
-
| Component | Capability | Principal methods | Events | Normalization |
|
|
60
|
-
| --- | --- | --- | --- | --- |
|
|
61
|
-
| [`app-bar.html`](#app-barhtml) | Responsive application navigation, route state, status, and trailing actions. | `setNavigation()`<br>`setActiveRoute()`<br>`setStatus()`<br>`refresh()`<br>`destroy()` | `app-bar-ready` | DOM-normalized |
|
|
62
|
-
| [`assistant-panel.html`](#assistant-panelhtml) | Reusable assistant drawer, message area, composer, pending/streaming/empty/error state, and actions. | `open()`<br>`close()`<br>`toggle()`<br>`send()`<br>`clear()`<br>`setState()`<br>`focusComposer()`<br>`scrollToEnd()`<br>`destroy()` | `assistant-ready`<br>`assistant-opened`<br>`assistant-closed`<br>`assistant-send`<br>`assistant-clear` | DOM-normalized; caller/provider results remain external |
|
|
63
|
-
| [`calculator.html`](#calculatorhtml) | Calculator keypad and result/error event surface backed by CalculatorEngine. | `calculate()`<br>`destroy()` | `calculator-ready`<br>`calculation-complete`<br>`calculation-error` | Normalized Calculation/error events |
|
|
64
|
-
| [`chart.html`](#charthtml) | Accessible uPlot line, area, or point chart with normalized options and rows. | `configure()`<br>`populate()`<br>`setData()`<br>`addData()`<br>`update()`<br>`destroy()` | `chart-ready`<br>`chart-remove` | Options/rows normalized; uPlot rendering is vendor-native |
|
|
65
|
-
| [`chat.html`](#chathtml) | Shared chat, visible selected-model activation request, file upload, streaming, speech, language, availability, and conversation-timebox surface. | `streamMessage()`<br>`setMessageProgress()`<br>`setAIAvailability()`<br>`setInitialSpeechMuted()`<br>`setConversationComplete()`<br>`bindConversationTimebox()`<br>`submitMessage()`<br>`sendMessage()`<br>`languageChanged()`<br>`requestAIActivation()`<br>`destroy()` | `chat-ready`<br>`chat-send-message`<br>`chat-send-error`<br>`chat-file-uploaded`<br>`chat-file-upload-error`<br>`chat-language-changed`<br>`chat-language-change-error`<br>`chat-ai-activation-request`<br>`chat-ai-activation-error`<br>`chat-speech-synthesis-error`<br>`conversation-timebox-error` | UI/runtime state and explicit user activation intent normalized; AI/storage/media behavior mixed |
|
|
66
|
-
| [`conversation-view.html`](#conversation-viewhtml) | Provider-neutral conversation display, advisory actions, composer, busy state, and status. | `setConversation()`<br>`setBusy()`<br>`setStatus()`<br>`clearComposer()`<br>`destroy()` | `conversation-view-ready`<br>`communication-send`<br>`communication-advisory-action` | DOM-normalized |
|
|
67
|
-
| [`dashboard-config.html`](#dashboard-confightml) | Selects which normalized chart definitions are visible on a dashboard. | `configure()`<br>`setDefinitions()`<br>`setVisibility()`<br>`getChartOptions()`<br>`getEffectiveVisibility()`<br>`open()`<br>`close()`<br>`destroy()` | `dashboard-config-ready`<br>`dashboard-config-opened`<br>`dashboard-config-closed`<br>`dashboard-config-change` | Fully normalized definitions and visibility |
|
|
68
|
-
| [`data-maintenance.html`](#data-maintenancehtml) | Runs destructive cleanup of empty chats and memories inside the current app data scope. | `open()`<br>`destroy()` | `data-maintenance-ready`<br>`data-maintenance-complete` | Normalized counts; DBOPFS failures mixed |
|
|
69
|
-
| [`data-view.html`](#data-viewhtml) | Opens a generic modal-style data view around an injected provider. | `beforeOpen()`<br>`open()`<br>`destroy()` | `data-view-ready` | DOM-native result |
|
|
70
|
-
| [`directory-picker.html`](#directory-pickerhtml) | Presents the provider-owned OS directory chooser with change/cancel/error states. | `configure()`<br>`focus()`<br>`select()`<br>`destroy()` | `directory-picker-ready`<br>`directory-picker-change`<br>`directory-picker-cancel`<br>`directory-picker-error` | Strict normalized native selection/error |
|
|
71
|
-
| [`document-inspector.html`](#document-inspectorhtml) | Inspects PDF, text, or source documents and records review state. | `loadDocument()`<br>`selectView()`<br>`markSaved()`<br>`destroy()` | `document-inspector-ready`<br>`document-review-change` | Document state normalized; browser document APIs mixed |
|
|
72
|
-
| [`file-drop.html`](#file-drophtml) | Acquires files by drag/drop or picker and presents busy, progress, error, and cleared state. | `configure()`<br>`openPicker()`<br>`clear()`<br>`setBusy()`<br>`setError()`<br>`setProgress()`<br>`destroy()` | `file-drop-ready`<br>`file-drop-selected`<br>`file-drop-progress`<br>`file-drop-state`<br>`file-drop-error` | State normalized; browser File/drop errors mixed |
|
|
73
|
-
| [`file-inspector.html`](#file-inspectorhtml) | Displays file metadata, preview, busy/error state, and caller-defined actions. | `configure()`<br>`show()`<br>`clear()`<br>`setActions()`<br>`setBusy()`<br>`setError()`<br>`setPreview()`<br>`destroy()` | `file-inspector-ready`<br>`file-inspector-action`<br>`file-inspector-change`<br>`file-inspector-cleared`<br>`file-inspector-error` | State normalized; preview/provider behavior mixed |
|
|
74
|
-
| [`file-manager.html`](#file-managerhtml) | Browses, filters, selects, opens, and acts on app-scoped files. | `setProvider()`<br>`loadAll()`<br>`setFilter()`<br>`select()`<br>`clearSelection()`<br>`destroy()` | `file-manager-ready`<br>`file-manager-select`<br>`file-manager-open`<br>`file-manager-action` | Selection/filter state normalized; storage/provider behavior mixed |
|
|
75
|
-
| [`header.html`](#headerhtml) | Legacy title bar with history, reload, online marker, presentation labels, and 988 link. | None | No component-specific event | Browser/platform-native behavior; no component-ready contract |
|
|
76
|
-
| [`integration-settings.html`](#integration-settingshtml) | Edits non-secret communication service configuration and service actions. | `configure()`<br>`getValues()`<br>`setStatus()`<br>`destroy()` | `integration-settings-ready`<br>`integration-settings-save`<br>`integration-settings-close`<br>`integration-action` | Normalized non-secret values |
|
|
77
|
-
| [`local-ai-status.html`](#local-ai-statushtml) | Presents local-AI standby, failure, recovery, guidance, retry, and dismissal states. | `configure()`<br>`begin()`<br>`present()`<br>`destroy()`<br>`hidden` | `local-ai-status-ready`<br>`local-ai-status-dismissed`<br>`local-ai-retry` | Fully normalized LocalAIReadiness report |
|
|
78
|
-
| [`markdown-document.html`](#markdown-documenthtml) | Safely renders and navigates a Markdown document with focusable fragments. | `configure()`<br>`load()`<br>`render()`<br>`clear()`<br>`fail()`<br>`focus()`<br>`focusFragment()`<br>`destroy()` | `markdown-document-ready`<br>`markdown-document-state`<br>`markdown-document-loading`<br>`markdown-document-rendered`<br>`markdown-document-empty`<br>`markdown-document-error`<br>`markdown-document-navigate` | State/sanitized output normalized; Marked/DOM failures mixed |
|
|
79
|
-
| [`markdown-editor.html`](#markdown-editorhtml) | Configurable Markdown authoring, toolbar, preview, title, and save surface. | `configure()`<br>`focus()`<br>`clear()`<br>`saveEntry()`<br>`destroy()` | `markdown-editor-ready`<br>`markdown-editor-change`<br>`markdown-editor-saved` | Editor values normalized; injected save result mixed |
|
|
80
|
-
| [`media-embed.html`](#media-embedhtml) | Loads a validated YouTube video or playlist embed and exposes external-platform action. | `configure()`<br>`load()`<br>`destroy()` | `media-embed-ready`<br>`media-load`<br>`media-error`<br>`media-open-platform` | URL/error normalized; iframe/platform behavior native |
|
|
81
|
-
| [`modal.html`](#modalhtml) | Generic modal with population, open/close, actions, and sequential task execution. | `populate()`<br>`open()`<br>`close()`<br>`runTasks()`<br>`destroy()` | `modal-ready`<br>`modal-opened`<br>`modal-closed`<br>`modal-action` | Modal state normalized; injected task results mixed |
|
|
82
|
-
| [`output-panel.html`](#output-panelhtml) | Presents status, output, body, coverage, actions, pending, error, and cleared states. | `configure()`<br>`setOutput()`<br>`setBody()`<br>`setCoverage()`<br>`setActions()`<br>`setPending()`<br>`setStatus()`<br>`setError()`<br>`clear()`<br>`destroy()` | `output-panel-ready`<br>`output-panel-state`<br>`output-panel-change`<br>`output-panel-action`<br>`output-panel-error`<br>`output-panel-cleared` | DOM-normalized |
|
|
83
|
-
| [`preferences-form.html`](#preferences-formhtml) | Builds a schema-driven preferences form with submit, reset, busy, and status behavior. | `configure()`<br>`getValues()`<br>`setValues()`<br>`setBusy()`<br>`setStatus()`<br>`destroy()` | `preferences-form-ready`<br>`preferences-change`<br>`preferences-submit`<br>`preferences-reset` | Normalized form values |
|
|
84
|
-
| [`record-timeline.html`](#record-timelinehtml) | Displays chronological records/evidence and emits open actions. | `setItems()`<br>`populate()`<br>`destroy()` | `record-timeline-ready`<br>`record-timeline-open` | DOM-normalized |
|
|
85
|
-
| [`relationship-board.html`](#relationship-boardhtml) | Displays normalized relationship nodes/edges in graph and list forms. | `setGraph()`<br>`populate()`<br>`destroy()` | `relationship-board-ready`<br>`relationship-node-open`<br>`relationship-edge-open` | DOM-normalized |
|
|
86
|
-
| [`screen-capture.html`](#screen-capturehtml) | Presents image, video, or GIF display-capture workflow. | `capture` (`ScreenCapture` instance)<br>`destroy()` | `screen-capture-ready`<br>`screen-capture-result` | State/result normalized; media permission/codec failures mixed |
|
|
87
|
-
| [`source-code-viewer.html`](#source-code-viewerhtml) | Renders line-addressable source code with load, error, focus, and state behavior. | `configure()`<br>`load()`<br>`render()`<br>`clear()`<br>`fail()`<br>`focus()`<br>`focusLine()`<br>`destroy()` | `source-code-viewer-ready`<br>`source-code-viewer-state`<br>`source-code-viewer-state-loading`<br>`source-code-viewer-state-ready`<br>`source-code-viewer-state-empty`<br>`source-code-viewer-state-error` | Normalized source/state |
|
|
88
|
-
| [`source-explanation.html`](#source-explanationhtml) | Presents an evidence finding, source selection, explanation, and save state. | `showFinding()`<br>`populate()`<br>`selectSource()`<br>`markSaved()`<br>`destroy()` | `source-explanation-ready`<br>`source-explanation-save`<br>`source-explanation-source-selected` | DOM-normalized |
|
|
89
|
-
| [`speech.html`](#speechhtml) | Coordinates explicit STT activation, speech controls, transcription completion, mute state, and microphone availability. | `configure()`<br>`setAvailability()`<br>`setMuted()`<br>`reportTTSError()`<br>`requestSTTActivation()`<br>`destroy()`<br>`availability`<br>`muted`<br>`initialMuted`<br>`componentReady` | `speech-ready`<br>`speech-transcription-complete`<br>`speech-transcription-error`<br>`speech-transcription-cancelled`<br>`speech-microphone-unavailable`<br>`speech-stt-activation-request`<br>`speech-stt-activation-error`<br>`speech-tts-lifecycle-error`<br>`speech-synthesis-error` | Sticky runtime speech readiness, explicit STT activation, request cancellation, and TTS mute lifecycle intent normalized; provider/model authority and media behavior remain external |
|
|
90
|
-
| [`summary-strip.html`](#summary-striphtml) | Displays compact selectable KPI or summary items. | `configure()`<br>`setItems()`<br>`updateItem()`<br>`clear()`<br>`destroy()` | `summary-strip-ready`<br>`summary-strip-change`<br>`summary-strip-select` | DOM-normalized |
|
|
91
|
-
| [`table.html`](#tablehtml) | Builds and updates a simple header/body table. | `buildHeader()`<br>`buildTable()`<br>`destroy()` | `table-ready`<br>`header-update`<br>`body-update` | DOM-normalized |
|
|
92
|
-
| [`task-progress.html`](#task-progresshtml) | Runs and displays a task list with started/change/complete/error state. | `configure()`<br>`setTasks()`<br>`updateTask()`<br>`runTasks()`<br>`clear()`<br>`destroy()` | `task-progress-ready`<br>`task-progress-started`<br>`task-progress-change`<br>`task-progress-complete`<br>`task-progress-error` | Task state normalized; injected task results mixed |
|
|
93
|
-
| [`terminal-workspace.html`](#terminal-workspacehtml) | Presents multiple terminal sessions, output, active selection, theme, and terminal actions. | `configure()`<br>`addSession()`<br>`removeSession()`<br>`activateSession()`<br>`append()`<br>`clear()`<br>`setState()`<br>`setTheme()`<br>`focus()`<br>`destroy()` | `terminal-workspace-ready`<br>`terminal-submit`<br>`terminal-interrupt`<br>`terminal-clear`<br>`terminal-session-new`<br>`terminal-session-close`<br>`terminal-session-select`<br>`terminal-settings` | UI/session state normalized; native command results supplied externally |
|
|
94
|
-
| [`theme-editor.html`](#theme-editorhtml) | Edits, previews, saves, and resets semantic custom theme tokens. | `configure()`<br>`getTheme()`<br>`setTheme()`<br>`setBusy()`<br>`setStatus()`<br>`destroy()` | `theme-editor-ready`<br>`theme-preview`<br>`theme-save`<br>`theme-reset` | Fully normalized Theme values |
|
|
95
|
-
| [`theme-switcher.html`](#theme-switcherhtml) | Selects and refreshes system, light, dark, or custom theme mode. | `setMode()`<br>`refresh()` | No component-specific event | Preference/native appearance behavior mixed; no component-ready contract |
|
|
96
|
-
| [`unified-inbox.html`](#unified-inboxhtml) | Displays provider-neutral communication threads with active/loading state. | `configure()`<br>`setThreads()`<br>`setActive()`<br>`setLoading()`<br>`destroy()` | `unified-inbox-ready`<br>`inbox-refresh`<br>`thread-select` | DOM-normalized |
|
|
97
|
-
| [`voice-transcription.html`](#voice-transcriptionhtml) | Records segmented microphone audio only after authoritative STT admission, exposes explicit selected-STT activation, transcribes with cancellation, persists, and completes a combined transcript. | `configure()`<br>`requestSTTActivation()`<br>`startRecording()`<br>`stopRecording()`<br>`save()`<br>`completeTranscription()/complete()`<br>`clear()`<br>`reset()`<br>`destroy()` | `voice-transcription-ready`<br>`voice-transcription-state`<br>`voice-transcription-segment`<br>`voice-transcription-change`<br>`voice-transcription-complete`<br>`speech-transcription-complete`<br>`speech-transcription-cancelled`<br>`speech-stt-activation-request`<br>`speech-stt-activation-error` | Sticky runtime STT readiness, explicit activation, request cancellation, and state/text are normalized; media/provider behavior remains external |
|
|
98
|
-
| [`weather-widget.html`](#weather-widgethtml) | Displays normalized current and daily weather with refresh intent. | `setWeather()`<br>`clear()`<br>`destroy()` | `weather-widget-ready`<br>`weather-refresh` | Display normalized; provider supplied externally |
|
|
99
|
-
| [`web-navigator.html`](#web-navigatorhtml) | Guards embedded/external navigation and surfaces allow/block/open intents. | `configure()`<br>`navigate()`<br>`currentUrl()`<br>`destroy()` | `web-navigator-ready`<br>`web-navigate`<br>`web-navigation-blocked`<br>`web-open-external` | Navigation intent/decision normalized; browser navigation result platform-native |
|
|
100
|
-
|
|
101
|
-
## app-bar.html
|
|
102
|
-
|
|
103
|
-
### Overview
|
|
104
|
-
|
|
105
|
-
Responsive application navigation, route state, status, and trailing actions.
|
|
106
|
-
|
|
107
|
-
### Public surface
|
|
108
|
-
|
|
109
|
-
Methods/properties: `setNavigation()`, `setActiveRoute()`, `setStatus()`, `refresh()`, `destroy()`.
|
|
110
|
-
|
|
111
|
-
Events: `app-bar-ready`.
|
|
112
|
-
|
|
113
|
-
Slots: `brand-mark`, `product-name`, `navigation`, `status`, `trailing`.
|
|
114
|
-
|
|
115
|
-
### Availability and normalization
|
|
116
|
-
|
|
117
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
118
|
-
|
|
119
|
-
### Example
|
|
120
|
-
|
|
121
|
-
```html
|
|
122
|
-
<html-import
|
|
123
|
-
id="app-bar.html"
|
|
124
|
-
href="/arcane/components/app-bar.html">
|
|
125
|
-
</html-import>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
## assistant-panel.html
|
|
129
|
-
|
|
130
|
-
### Overview
|
|
131
|
-
|
|
132
|
-
Reusable assistant drawer, message area, composer, pending/streaming/empty/error state, and actions.
|
|
133
|
-
|
|
134
|
-
### Public surface
|
|
135
|
-
|
|
136
|
-
Methods/properties: `open()`, `close()`, `toggle()`, `send()`, `clear()`, `setState()`, `focusComposer()`, `scrollToEnd()`, `destroy()`.
|
|
137
|
-
|
|
138
|
-
Events: `assistant-ready`, `assistant-opened`, `assistant-closed`,
|
|
139
|
-
`assistant-send`, `assistant-clear`.
|
|
140
|
-
|
|
141
|
-
Slots: `title`, `subtitle`, `identity`, `messages/message`, `composer`, `actions`, `pending`, `streaming`, `empty`, `error`, `footer`.
|
|
142
|
-
|
|
143
|
-
### Availability and normalization
|
|
144
|
-
|
|
145
|
-
**Browser and supported native WebViews.** DOM-normalized; caller/provider results remain external. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
146
|
-
|
|
147
|
-
### Example
|
|
148
|
-
|
|
149
|
-
```html
|
|
150
|
-
<html-import
|
|
151
|
-
id="assistant-panel.html"
|
|
152
|
-
href="/arcane/components/assistant-panel.html">
|
|
153
|
-
</html-import>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## calculator.html
|
|
157
|
-
|
|
158
|
-
### Overview
|
|
159
|
-
|
|
160
|
-
Calculator keypad and result/error event surface backed by CalculatorEngine.
|
|
161
|
-
|
|
162
|
-
### Public surface
|
|
163
|
-
|
|
164
|
-
Methods/properties: `calculate()`, `destroy()`.
|
|
165
|
-
|
|
166
|
-
Events: `calculator-ready`, `calculation-complete`, `calculation-error`.
|
|
167
|
-
|
|
168
|
-
Shared dependencies: [`CalculatorEngine.js`](runtime-modules.md#calculatorenginejs).
|
|
169
|
-
|
|
170
|
-
### Availability and normalization
|
|
171
|
-
|
|
172
|
-
**Browser and supported native WebViews.** Normalized Calculation/error events. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
173
|
-
|
|
174
|
-
### Example
|
|
175
|
-
|
|
176
|
-
```html
|
|
177
|
-
<html-import
|
|
178
|
-
id="calculator.html"
|
|
179
|
-
href="/arcane/components/calculator.html">
|
|
180
|
-
</html-import>
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## chart.html
|
|
184
|
-
|
|
185
|
-
### Overview
|
|
186
|
-
|
|
187
|
-
Accessible uPlot line, area, or point chart with normalized options and rows.
|
|
188
|
-
|
|
189
|
-
### Public surface
|
|
190
|
-
|
|
191
|
-
Methods/properties: `configure()`, `populate()`, `setData()`, `addData()`, `update()`, `destroy()`.
|
|
192
|
-
|
|
193
|
-
Events: `chart-ready`, `chart-remove`.
|
|
194
|
-
|
|
195
|
-
Shared dependencies: [`ChartLibrary.js`](runtime-modules.md#chartlibraryjs), [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs).
|
|
196
|
-
|
|
197
|
-
### Availability and normalization
|
|
198
|
-
|
|
199
|
-
**Browser and supported native WebViews.** Options/rows normalized; uPlot rendering is vendor-native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
200
|
-
|
|
201
|
-
### Example
|
|
202
|
-
|
|
203
|
-
```html
|
|
204
|
-
<html-import
|
|
205
|
-
id="chart.html"
|
|
206
|
-
href="/arcane/components/chart.html">
|
|
207
|
-
</html-import>
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## chat.html
|
|
211
|
-
|
|
212
|
-
### Overview
|
|
213
|
-
|
|
214
|
-
Shared chat, visible selected-model activation request, file upload, streaming,
|
|
215
|
-
speech, language, availability, and conversation-timebox surface.
|
|
216
|
-
|
|
217
|
-
### Public surface
|
|
218
|
-
|
|
219
|
-
Methods/properties: `streamMessage()`, `setMessageProgress()`,
|
|
220
|
-
`setAIAvailability()`, `setInitialSpeechMuted()`,
|
|
221
|
-
`setConversationComplete()`, `bindConversationTimebox()`, `submitMessage()`,
|
|
222
|
-
`sendMessage()`, `languageChanged()`, `requestAIActivation()`, and `destroy()`.
|
|
223
|
-
|
|
224
|
-
`sendMessage(text)` and `languageChanged(text)` are host-overridable async
|
|
225
|
-
extension callbacks. The component installs warning-only defaults when the host
|
|
226
|
-
does not supply them; applications may instead consume the corresponding
|
|
227
|
-
`chat-send-message` and `chat-language-changed` events.
|
|
228
|
-
|
|
229
|
-
`submitMessage(textOverride='',context={})` returns `Promise<boolean>`.
|
|
230
|
-
`context` accepts `source`, `preserveDraft`, `synthetic`, an optional exact
|
|
231
|
-
`operationId`, and an optional caller-owned `AbortSignal`. The component owns a
|
|
232
|
-
derived signal for each submission, supplies it in the frozen compatibility
|
|
233
|
-
`{message,context}` detail, and aborts it on canonical/DOM cancellation,
|
|
234
|
-
component destruction, or caller cancellation. `chat-send-message` is
|
|
235
|
-
cancelable and is the gate before `sendMessage(text,context)`; a canceled event
|
|
236
|
-
never reaches the host callback. Rejected host promises are observed as
|
|
237
|
-
`chat-send-error`, and stale settlement after abort or destruction is
|
|
238
|
-
suppressed.
|
|
239
|
-
|
|
240
|
-
`setAIAvailability()` remains an LLM compatibility input, but selected sticky
|
|
241
|
-
`AIRuntimeState` LLM state wins over that boolean. STT and TTS readiness always
|
|
242
|
-
comes from sticky runtime role state; the method never forwards compatibility
|
|
243
|
-
speech booleans or synthesizes ready speech roles without an admitted, loaded
|
|
244
|
-
provider.
|
|
245
|
-
|
|
246
|
-
When a selected LLM route is `unloaded` or in `error`, the component exposes a
|
|
247
|
-
keyboard-operable Start/Try again control while Send stays disabled. During
|
|
248
|
-
`loading`, the control becomes Cancel loading and reflects sticky progress.
|
|
249
|
-
The default `requestAIActivation(intent)` forwards frozen
|
|
250
|
-
`{role:'llm',action:'load'|'unload',reason:'user'}` to
|
|
251
|
-
`requestAIRuntimeIntent()`. A host may replace that callback.
|
|
252
|
-
|
|
253
|
-
Before the callback, the component dispatches the bubbles/composed/cancelable
|
|
254
|
-
`chat-ai-activation-request` event with frozen `{intent,state}` detail.
|
|
255
|
-
`preventDefault()` suppresses the callback. A callback failure dispatches the
|
|
256
|
-
bubbles/composed, noncancelable `chat-ai-activation-error` event with frozen
|
|
257
|
-
`{request,error,message}`. A recognized canceled load whose current route is
|
|
258
|
-
`unloaded` or `unloading` is not reported as an activation error.
|
|
259
|
-
|
|
260
|
-
`destroy()` aborts the component's AI-runtime-state subscription, destroys the
|
|
261
|
-
activation controller, removes its `pagehide` listener, calls the optional
|
|
262
|
-
speech controller's `destroy()`, sets `ready` to `false`, and returns
|
|
263
|
-
`undefined`. It does not initiate a provider load or unload.
|
|
264
|
-
|
|
265
|
-
Events: `chat-ready`, `chat-send-message`, `chat-send-error`,
|
|
266
|
-
`chat-file-uploaded`, `chat-file-upload-error`, `chat-language-changed`,
|
|
267
|
-
`chat-language-change-error`, `chat-ai-activation-request`,
|
|
268
|
-
`chat-ai-activation-error`, `chat-speech-synthesis-error`, and
|
|
269
|
-
`conversation-timebox-error`.
|
|
270
|
-
|
|
271
|
-
All chat operation ids have the form
|
|
272
|
-
`<component-instance-id>:<kind>:<sequence>`. The stable public reasons are
|
|
273
|
-
`chat-ready`, `message-submission-requested`,
|
|
274
|
-
`message-submission-cancelled`, `caller-signal-aborted`,
|
|
275
|
-
`component-destroyed`, `host-message-submission-rejected`,
|
|
276
|
-
`file-storage-completed`, `file-storage-rejected`,
|
|
277
|
-
`language-change-requested`, `language-change-callback-rejected`,
|
|
278
|
-
`language-model-activation-requested`,
|
|
279
|
-
`language-model-activation-rejected`, `speech-synthesis-rejected`, and
|
|
280
|
-
`conversation-timebox-delivery-rejected`.
|
|
281
|
-
|
|
282
|
-
The stable chat boundary codes are:
|
|
283
|
-
|
|
284
|
-
- `ARCANE_CHAT_MESSAGE_SUBMISSION_ABORTED` for the owned submission signal;
|
|
285
|
-
- `ARCANE_CHAT_LANGUAGE_MODEL_ACTIVATION_REQUEST_REJECTED`;
|
|
286
|
-
- `ARCANE_CHAT_HOST_MESSAGE_SUBMISSION_REJECTED`;
|
|
287
|
-
- `ARCANE_CHAT_FILE_STORAGE_REJECTED`;
|
|
288
|
-
- `ARCANE_CHAT_LANGUAGE_CHANGE_CALLBACK_REJECTED`;
|
|
289
|
-
- `ARCANE_CHAT_SPEECH_SYNTHESIS_REQUEST_REJECTED`;
|
|
290
|
-
- `ARCANE_CHAT_CONVERSATION_TIMEBOX_DELIVERY_REJECTED`.
|
|
291
|
-
|
|
292
|
-
Error projections expose the boundary `code` and include `causeCode` only when
|
|
293
|
-
the rejected dependency supplies a distinct code. File projections expose only
|
|
294
|
-
size/type metadata canonically while retaining the live `File` locally.
|
|
295
|
-
Language and LLM activation request projections are cancelable gates before
|
|
296
|
-
their host callbacks. Every public detail is frozen by the canonical authority.
|
|
297
|
-
|
|
298
|
-
Shared dependencies: [`MD.js`](runtime-modules.md#mdjs), [`File.js`](runtime-entities.md#filejs), [`ConversationTimebox.js`](runtime-modules.md#conversationtimeboxjs), [`AIRuntimeState.js`](runtime-modules.md#airuntimestatejs).
|
|
299
|
-
|
|
300
|
-
### Availability and normalization
|
|
301
|
-
|
|
302
|
-
**Browser and supported native WebViews.** UI and provider-runtime state are
|
|
303
|
-
normalized; AI/storage/media behavior remains mixed. The component emits no
|
|
304
|
-
activation request on import or startup. After the user operates the visible
|
|
305
|
-
control and the component event is not canceled, it publishes a
|
|
306
|
-
capability-neutral user intent; a provider/runtime owner decides whether and
|
|
307
|
-
how to execute the requested load or unload. HTMLImport + DOM; injected
|
|
308
|
-
Arcane/provider modules where listed. Native methods remain subject to the
|
|
309
|
-
bound app's capabilities. [Deep protocol details](protocols.md).
|
|
310
|
-
|
|
311
|
-
### Example
|
|
312
|
-
|
|
313
|
-
```html
|
|
314
|
-
<html-import
|
|
315
|
-
id="chat.html"
|
|
316
|
-
href="/arcane/components/chat.html">
|
|
317
|
-
</html-import>
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
## conversation-view.html
|
|
321
|
-
|
|
322
|
-
### Overview
|
|
323
|
-
|
|
324
|
-
Provider-neutral conversation display, advisory actions, composer, busy state, and status.
|
|
325
|
-
|
|
326
|
-
### Public surface
|
|
327
|
-
|
|
328
|
-
Methods/properties: `setConversation()`, `setBusy()`, `setStatus()`, `clearComposer()`, `destroy()`.
|
|
329
|
-
|
|
330
|
-
Events: `conversation-view-ready`, `communication-send`, `communication-advisory-action`.
|
|
331
|
-
|
|
332
|
-
### Availability and normalization
|
|
333
|
-
|
|
334
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
335
|
-
|
|
336
|
-
### Example
|
|
337
|
-
|
|
338
|
-
```html
|
|
339
|
-
<html-import
|
|
340
|
-
id="conversation-view.html"
|
|
341
|
-
href="/arcane/components/conversation-view.html">
|
|
342
|
-
</html-import>
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
## dashboard-config.html
|
|
346
|
-
|
|
347
|
-
### Overview
|
|
348
|
-
|
|
349
|
-
Selects which normalized chart definitions are visible on a dashboard.
|
|
350
|
-
|
|
351
|
-
### Public surface
|
|
352
|
-
|
|
353
|
-
Methods/properties: `configure()`, `setDefinitions()`, `setVisibility()`, `getChartOptions()`, `getEffectiveVisibility()`, `open()`, `close()`, `destroy()`.
|
|
354
|
-
|
|
355
|
-
Events: `dashboard-config-ready`, `dashboard-config-opened`, `dashboard-config-closed`, `dashboard-config-change`.
|
|
356
|
-
|
|
357
|
-
Shared dependencies: [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
|
|
358
|
-
|
|
359
|
-
### Availability and normalization
|
|
360
|
-
|
|
361
|
-
**Browser and supported native WebViews.** Fully normalized definitions and visibility. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
362
|
-
|
|
363
|
-
### Example
|
|
364
|
-
|
|
365
|
-
```html
|
|
366
|
-
<html-import
|
|
367
|
-
id="dashboard-config.html"
|
|
368
|
-
href="/arcane/components/dashboard-config.html">
|
|
369
|
-
</html-import>
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
## data-maintenance.html
|
|
373
|
-
|
|
374
|
-
### Overview
|
|
375
|
-
|
|
376
|
-
Runs destructive cleanup of empty chats and memories inside the current app data scope.
|
|
377
|
-
|
|
378
|
-
### Public surface
|
|
379
|
-
|
|
380
|
-
Methods/properties: `open()`, `destroy()`.
|
|
381
|
-
|
|
382
|
-
Events: `data-maintenance-ready`, `data-maintenance-complete`.
|
|
383
|
-
|
|
384
|
-
Shared dependencies: [`DataMaintenance.js`](runtime-modules.md#datamaintenancejs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
|
|
385
|
-
|
|
386
|
-
### Availability and normalization
|
|
387
|
-
|
|
388
|
-
**Browser and supported native WebViews.** Normalized counts; DBOPFS failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
389
|
-
|
|
390
|
-
### Example
|
|
391
|
-
|
|
392
|
-
```html
|
|
393
|
-
<html-import
|
|
394
|
-
id="data-maintenance.html"
|
|
395
|
-
href="/arcane/components/data-maintenance.html">
|
|
396
|
-
</html-import>
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
## data-view.html
|
|
400
|
-
|
|
401
|
-
### Overview
|
|
402
|
-
|
|
403
|
-
Opens a generic modal-style data view around an injected provider.
|
|
404
|
-
|
|
405
|
-
### Public surface
|
|
406
|
-
|
|
407
|
-
Methods/properties: `beforeOpen()`, `open()`, `destroy()`.
|
|
408
|
-
|
|
409
|
-
Events: `data-view-ready`.
|
|
410
|
-
|
|
411
|
-
Shared dependencies: [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
|
|
412
|
-
|
|
413
|
-
### Availability and normalization
|
|
414
|
-
|
|
415
|
-
**Browser and supported native WebViews.** DOM-native result. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
416
|
-
|
|
417
|
-
### Example
|
|
418
|
-
|
|
419
|
-
```html
|
|
420
|
-
<html-import
|
|
421
|
-
id="data-view.html"
|
|
422
|
-
href="/arcane/components/data-view.html">
|
|
423
|
-
</html-import>
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
## directory-picker.html
|
|
427
|
-
|
|
428
|
-
### Overview
|
|
429
|
-
|
|
430
|
-
Presents the provider-owned OS directory chooser with change/cancel/error states.
|
|
431
|
-
|
|
432
|
-
### Public surface
|
|
433
|
-
|
|
434
|
-
Methods/properties: `configure()`, `focus()`, `select()`, `destroy()`.
|
|
435
|
-
|
|
436
|
-
Events: `directory-picker-ready`, `directory-picker-change`, `directory-picker-cancel`, `directory-picker-error`.
|
|
437
|
-
|
|
438
|
-
Shared dependencies: [`DirectoryPicker.js`](runtime-modules.md#directorypickerjs).
|
|
439
|
-
|
|
440
|
-
### Availability and normalization
|
|
441
|
-
|
|
442
|
-
**Browser and supported native WebViews.** Strict normalized native selection/error. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
443
|
-
|
|
444
|
-
### Example
|
|
445
|
-
|
|
446
|
-
```html
|
|
447
|
-
<html-import
|
|
448
|
-
id="directory-picker.html"
|
|
449
|
-
href="/arcane/components/directory-picker.html">
|
|
450
|
-
</html-import>
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
## document-inspector.html
|
|
454
|
-
|
|
455
|
-
### Overview
|
|
456
|
-
|
|
457
|
-
Inspects PDF, text, or source documents and records review state.
|
|
458
|
-
|
|
459
|
-
### Public surface
|
|
460
|
-
|
|
461
|
-
Methods/properties: `loadDocument()`, `selectView()`, `markSaved()`, `destroy()`.
|
|
462
|
-
|
|
463
|
-
Events: `document-inspector-ready`, `document-review-change`.
|
|
464
|
-
|
|
465
|
-
Shared dependencies: [`MD.js`](runtime-modules.md#mdjs).
|
|
466
|
-
|
|
467
|
-
### Availability and normalization
|
|
468
|
-
|
|
469
|
-
**Browser and supported native WebViews.** Document state normalized; browser document APIs mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
470
|
-
|
|
471
|
-
### Example
|
|
472
|
-
|
|
473
|
-
```html
|
|
474
|
-
<html-import
|
|
475
|
-
id="document-inspector.html"
|
|
476
|
-
href="/arcane/components/document-inspector.html">
|
|
477
|
-
</html-import>
|
|
478
|
-
```
|
|
479
|
-
|
|
480
|
-
## file-drop.html
|
|
481
|
-
|
|
482
|
-
### Overview
|
|
483
|
-
|
|
484
|
-
Acquires files by drag/drop or picker and presents busy, progress, error, and cleared state.
|
|
485
|
-
|
|
486
|
-
### Public surface
|
|
487
|
-
|
|
488
|
-
Methods/properties: `configure()`, `openPicker()`, `clear()`, `setBusy()`, `setError()`, `setProgress()`, `destroy()`.
|
|
489
|
-
|
|
490
|
-
Events: `file-drop-ready`, `file-drop-selected`, `file-drop-progress`, `file-drop-state`, `file-drop-error`.
|
|
491
|
-
|
|
492
|
-
### Availability and normalization
|
|
493
|
-
|
|
494
|
-
**Browser and supported native WebViews.** State normalized; browser File/drop errors mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
495
|
-
|
|
496
|
-
### Example
|
|
497
|
-
|
|
498
|
-
```html
|
|
499
|
-
<html-import
|
|
500
|
-
id="file-drop.html"
|
|
501
|
-
href="/arcane/components/file-drop.html">
|
|
502
|
-
</html-import>
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
## file-inspector.html
|
|
506
|
-
|
|
507
|
-
### Overview
|
|
508
|
-
|
|
509
|
-
Displays file metadata, preview, busy/error state, and caller-defined actions.
|
|
510
|
-
|
|
511
|
-
### Public surface
|
|
512
|
-
|
|
513
|
-
Methods/properties: `configure()`, `show()`, `clear()`, `setActions()`, `setBusy()`, `setError()`, `setPreview()`, `destroy()`.
|
|
514
|
-
|
|
515
|
-
Events: `file-inspector-ready`, `file-inspector-action`, `file-inspector-change`, `file-inspector-cleared`, `file-inspector-error`.
|
|
516
|
-
|
|
517
|
-
Slots: `title`, `preview`, `metadata`, `actions`.
|
|
518
|
-
|
|
519
|
-
### Availability and normalization
|
|
520
|
-
|
|
521
|
-
**Browser and supported native WebViews.** State normalized; preview/provider behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
522
|
-
|
|
523
|
-
### Example
|
|
524
|
-
|
|
525
|
-
```html
|
|
526
|
-
<html-import
|
|
527
|
-
id="file-inspector.html"
|
|
528
|
-
href="/arcane/components/file-inspector.html">
|
|
529
|
-
</html-import>
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
## file-manager.html
|
|
533
|
-
|
|
534
|
-
### Overview
|
|
535
|
-
|
|
536
|
-
Browses, filters, selects, opens, and acts on app-scoped files.
|
|
537
|
-
|
|
538
|
-
### Public surface
|
|
539
|
-
|
|
540
|
-
Methods/properties: `setProvider()`, `loadAll()`, `setFilter()`, `select()`, `clearSelection()`, `destroy()`.
|
|
541
|
-
|
|
542
|
-
Events: `file-manager-ready`, `file-manager-select`, `file-manager-open`, `file-manager-action`.
|
|
543
|
-
|
|
544
|
-
Shared dependencies: [`DBOPFS.js`](runtime-modules.md#dbopfsjs), [`File.js`](runtime-entities.md#filejs), [`WaitForComponent.js`](runtime-modules.md#waitforcomponentjs).
|
|
545
|
-
|
|
546
|
-
### Availability and normalization
|
|
547
|
-
|
|
548
|
-
**Browser and supported native WebViews.** Selection/filter state normalized; storage/provider behavior mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
549
|
-
|
|
550
|
-
### Example
|
|
551
|
-
|
|
552
|
-
```html
|
|
553
|
-
<html-import
|
|
554
|
-
id="file-manager.html"
|
|
555
|
-
href="/arcane/components/file-manager.html">
|
|
556
|
-
</html-import>
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
## header.html
|
|
560
|
-
|
|
561
|
-
### Overview
|
|
562
|
-
|
|
563
|
-
Legacy title bar with history, reload, online marker, presentation labels, and 988 link.
|
|
564
|
-
|
|
565
|
-
### Public surface
|
|
566
|
-
|
|
567
|
-
This fragment declares no public host method.
|
|
568
|
-
|
|
569
|
-
This fragment declares no component-specific readiness or action event; use the loader's `html-import-ready` only to know that import execution completed.
|
|
570
|
-
|
|
571
|
-
### Availability and normalization
|
|
572
|
-
|
|
573
|
-
**Browser and supported native WebViews.** Browser/platform-native behavior; no component-ready contract. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
574
|
-
|
|
575
|
-
### Example
|
|
576
|
-
|
|
577
|
-
```html
|
|
578
|
-
<html-import
|
|
579
|
-
id="header.html"
|
|
580
|
-
href="/arcane/components/header.html">
|
|
581
|
-
</html-import>
|
|
582
|
-
```
|
|
583
|
-
|
|
584
|
-
## integration-settings.html
|
|
585
|
-
|
|
586
|
-
### Overview
|
|
587
|
-
|
|
588
|
-
Edits non-secret communication service configuration and service actions.
|
|
589
|
-
|
|
590
|
-
### Public surface
|
|
591
|
-
|
|
592
|
-
Methods/properties: `configure()`, `getValues()`, `setStatus()`, `destroy()`.
|
|
593
|
-
|
|
594
|
-
Events: `integration-settings-ready`, `integration-settings-save`, `integration-settings-close`, `integration-action`.
|
|
595
|
-
|
|
596
|
-
### Availability and normalization
|
|
597
|
-
|
|
598
|
-
**Browser and supported native WebViews.** Normalized non-secret values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
599
|
-
|
|
600
|
-
### Example
|
|
601
|
-
|
|
602
|
-
```html
|
|
603
|
-
<html-import
|
|
604
|
-
id="integration-settings.html"
|
|
605
|
-
href="/arcane/components/integration-settings.html">
|
|
606
|
-
</html-import>
|
|
607
|
-
```
|
|
608
|
-
|
|
609
|
-
## local-ai-status.html
|
|
610
|
-
|
|
611
|
-
### Overview
|
|
612
|
-
|
|
613
|
-
Presents local-AI standby, failure, recovery, guidance, retry, and dismissal states.
|
|
614
|
-
|
|
615
|
-
### Public surface
|
|
616
|
-
|
|
617
|
-
Methods/properties: `configure()`, `begin()`, `present()`, `destroy()`, and the `hidden` property.
|
|
618
|
-
|
|
619
|
-
Events: `local-ai-status-ready`, `local-ai-status-dismissed`, `local-ai-retry`.
|
|
620
|
-
|
|
621
|
-
Shared dependencies: [`LocalAIReadiness.js`](runtime-modules.md#localaireadinessjs).
|
|
622
|
-
|
|
623
|
-
### Availability and normalization
|
|
624
|
-
|
|
625
|
-
**Browser and supported native WebViews.** Fully normalized LocalAIReadiness report. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
626
|
-
|
|
627
|
-
### Example
|
|
628
|
-
|
|
629
|
-
```html
|
|
630
|
-
<html-import
|
|
631
|
-
id="local-ai-status.html"
|
|
632
|
-
href="/arcane/components/local-ai-status.html">
|
|
633
|
-
</html-import>
|
|
634
|
-
```
|
|
635
|
-
|
|
636
|
-
## markdown-document.html
|
|
637
|
-
|
|
638
|
-
### Overview
|
|
639
|
-
|
|
640
|
-
Safely renders and navigates a Markdown document with focusable fragments.
|
|
641
|
-
|
|
642
|
-
### Public surface
|
|
643
|
-
|
|
644
|
-
Methods/properties: `configure()`, `load()`, `render()`, `clear()`, `fail()`, `focus()`, `focusFragment()`, `destroy()`.
|
|
645
|
-
|
|
646
|
-
Events: `markdown-document-ready`, `markdown-document-state`,
|
|
647
|
-
`markdown-document-loading`, `markdown-document-rendered`,
|
|
648
|
-
`markdown-document-empty`, `markdown-document-error`, and
|
|
649
|
-
`markdown-document-navigate`.
|
|
650
|
-
|
|
651
|
-
Shared dependencies: [`MD.js`](runtime-modules.md#mdjs).
|
|
652
|
-
|
|
653
|
-
### Availability and normalization
|
|
654
|
-
|
|
655
|
-
**Browser and supported native WebViews.** State/sanitized output normalized; Marked/DOM failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
656
|
-
|
|
657
|
-
### Example
|
|
658
|
-
|
|
659
|
-
```html
|
|
660
|
-
<html-import
|
|
661
|
-
id="markdown-document.html"
|
|
662
|
-
href="/arcane/components/markdown-document.html">
|
|
663
|
-
</html-import>
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
## markdown-editor.html
|
|
667
|
-
|
|
668
|
-
### Overview
|
|
669
|
-
|
|
670
|
-
Configurable Markdown authoring, toolbar, preview, title, and save surface.
|
|
671
|
-
|
|
672
|
-
### Public surface
|
|
673
|
-
|
|
674
|
-
Methods/properties: `configure()`, `focus()`, `clear()`, `saveEntry()`, `destroy()`.
|
|
675
|
-
|
|
676
|
-
Events: `markdown-editor-ready`, `markdown-editor-change`, `markdown-editor-saved`.
|
|
677
|
-
|
|
678
|
-
Shared dependencies: [`MD.js`](runtime-modules.md#mdjs), [`ComponentContracts.js`](runtime-modules.md#componentcontractsjs).
|
|
679
|
-
|
|
680
|
-
### Availability and normalization
|
|
681
|
-
|
|
682
|
-
**Browser and supported native WebViews.** Editor values normalized; injected save result mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
683
|
-
|
|
684
|
-
### Example
|
|
685
|
-
|
|
686
|
-
```html
|
|
687
|
-
<html-import
|
|
688
|
-
id="markdown-editor.html"
|
|
689
|
-
href="/arcane/components/markdown-editor.html">
|
|
690
|
-
</html-import>
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
## media-embed.html
|
|
694
|
-
|
|
695
|
-
### Overview
|
|
696
|
-
|
|
697
|
-
Loads a validated YouTube video or playlist embed and exposes external-platform action.
|
|
698
|
-
|
|
699
|
-
### Public surface
|
|
700
|
-
|
|
701
|
-
Methods/properties: `configure()`, `load()`, `destroy()`.
|
|
702
|
-
|
|
703
|
-
Events: `media-embed-ready`, `media-load`, `media-error`, `media-open-platform`.
|
|
704
|
-
|
|
705
|
-
Shared dependencies: [`YouTubeMedia.js`](runtime-modules.md#youtubemediajs).
|
|
706
|
-
|
|
707
|
-
### Availability and normalization
|
|
708
|
-
|
|
709
|
-
**Browser and supported native WebViews.** URL/error normalized; iframe/platform behavior native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
710
|
-
|
|
711
|
-
### Example
|
|
712
|
-
|
|
713
|
-
```html
|
|
714
|
-
<html-import
|
|
715
|
-
id="media-embed.html"
|
|
716
|
-
href="/arcane/components/media-embed.html">
|
|
717
|
-
</html-import>
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
## modal.html
|
|
721
|
-
|
|
722
|
-
### Overview
|
|
723
|
-
|
|
724
|
-
Generic modal with population, open/close, actions, and sequential task execution.
|
|
725
|
-
|
|
726
|
-
### Public surface
|
|
727
|
-
|
|
728
|
-
Methods/properties: `populate()`, `open()`, `close()`, `runTasks()`, `destroy()`.
|
|
729
|
-
|
|
730
|
-
Events: `modal-ready`, `modal-opened`, `modal-closed`, `modal-action`.
|
|
731
|
-
|
|
732
|
-
Slots: `header`, `body`, `footer`.
|
|
733
|
-
|
|
734
|
-
### Availability and normalization
|
|
735
|
-
|
|
736
|
-
**Browser and supported native WebViews.** Modal state normalized; injected task results mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
737
|
-
|
|
738
|
-
### Example
|
|
739
|
-
|
|
740
|
-
```html
|
|
741
|
-
<html-import
|
|
742
|
-
id="modal.html"
|
|
743
|
-
href="/arcane/components/modal.html">
|
|
744
|
-
</html-import>
|
|
745
|
-
```
|
|
746
|
-
|
|
747
|
-
## output-panel.html
|
|
748
|
-
|
|
749
|
-
### Overview
|
|
750
|
-
|
|
751
|
-
Presents status, output, body, coverage, actions, pending, error, and cleared states.
|
|
752
|
-
|
|
753
|
-
### Public surface
|
|
754
|
-
|
|
755
|
-
Methods/properties: `configure()`, `setOutput()`, `setBody()`, `setCoverage()`, `setActions()`, `setPending()`, `setStatus()`, `setError()`, `clear()`, `destroy()`.
|
|
756
|
-
|
|
757
|
-
Events: `output-panel-ready`, `output-panel-state`, `output-panel-change`, `output-panel-action`, `output-panel-error`, `output-panel-cleared`.
|
|
758
|
-
|
|
759
|
-
Slots: `title`, `header-actions`, `body`, `coverage`, `actions`.
|
|
760
|
-
|
|
761
|
-
### Availability and normalization
|
|
762
|
-
|
|
763
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
764
|
-
|
|
765
|
-
### Example
|
|
766
|
-
|
|
767
|
-
```html
|
|
768
|
-
<html-import
|
|
769
|
-
id="output-panel.html"
|
|
770
|
-
href="/arcane/components/output-panel.html">
|
|
771
|
-
</html-import>
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
## preferences-form.html
|
|
775
|
-
|
|
776
|
-
### Overview
|
|
777
|
-
|
|
778
|
-
Builds a schema-driven preferences form with submit, reset, busy, and status behavior.
|
|
779
|
-
|
|
780
|
-
### Public surface
|
|
781
|
-
|
|
782
|
-
Methods/properties: `configure()`, `getValues()`, `setValues()`, `setBusy()`, `setStatus()`, `destroy()`.
|
|
783
|
-
|
|
784
|
-
Events: `preferences-form-ready`, `preferences-change`, `preferences-submit`, `preferences-reset`.
|
|
785
|
-
|
|
786
|
-
### Availability and normalization
|
|
787
|
-
|
|
788
|
-
**Browser and supported native WebViews.** Normalized form values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
789
|
-
|
|
790
|
-
### Example
|
|
791
|
-
|
|
792
|
-
```html
|
|
793
|
-
<html-import
|
|
794
|
-
id="preferences-form.html"
|
|
795
|
-
href="/arcane/components/preferences-form.html">
|
|
796
|
-
</html-import>
|
|
797
|
-
```
|
|
798
|
-
|
|
799
|
-
## record-timeline.html
|
|
800
|
-
|
|
801
|
-
### Overview
|
|
802
|
-
|
|
803
|
-
Displays chronological records/evidence and emits open actions.
|
|
804
|
-
|
|
805
|
-
### Public surface
|
|
806
|
-
|
|
807
|
-
Methods/properties: `setItems()`, `populate()`, `destroy()`.
|
|
808
|
-
|
|
809
|
-
Events: `record-timeline-ready`, `record-timeline-open`.
|
|
810
|
-
|
|
811
|
-
### Availability and normalization
|
|
812
|
-
|
|
813
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
814
|
-
|
|
815
|
-
### Example
|
|
816
|
-
|
|
817
|
-
```html
|
|
818
|
-
<html-import
|
|
819
|
-
id="record-timeline.html"
|
|
820
|
-
href="/arcane/components/record-timeline.html">
|
|
821
|
-
</html-import>
|
|
822
|
-
```
|
|
823
|
-
|
|
824
|
-
## relationship-board.html
|
|
825
|
-
|
|
826
|
-
### Overview
|
|
827
|
-
|
|
828
|
-
Displays normalized relationship nodes/edges in graph and list forms.
|
|
829
|
-
|
|
830
|
-
### Public surface
|
|
831
|
-
|
|
832
|
-
Methods/properties: `setGraph()`, `populate()`, `destroy()`.
|
|
833
|
-
|
|
834
|
-
Events: `relationship-board-ready`, `relationship-node-open`, `relationship-edge-open`.
|
|
835
|
-
|
|
836
|
-
### Availability and normalization
|
|
837
|
-
|
|
838
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
839
|
-
|
|
840
|
-
### Example
|
|
841
|
-
|
|
842
|
-
```html
|
|
843
|
-
<html-import
|
|
844
|
-
id="relationship-board.html"
|
|
845
|
-
href="/arcane/components/relationship-board.html">
|
|
846
|
-
</html-import>
|
|
847
|
-
```
|
|
848
|
-
|
|
849
|
-
## screen-capture.html
|
|
850
|
-
|
|
851
|
-
### Overview
|
|
852
|
-
|
|
853
|
-
Presents image, video, or GIF display-capture workflow.
|
|
854
|
-
|
|
855
|
-
### Public surface
|
|
856
|
-
|
|
857
|
-
Methods/properties: `capture` (the component-owned `ScreenCapture` instance) and `destroy()`.
|
|
858
|
-
|
|
859
|
-
Events: `screen-capture-ready`, `screen-capture-result`.
|
|
860
|
-
|
|
861
|
-
Ready uses operation id `screen-capture-ready-<component-instance-id>`;
|
|
862
|
-
capture results use the current instance-owned generation. `destroy()`
|
|
863
|
-
invalidates that generation, aborts UI listeners, revokes the preview URL,
|
|
864
|
-
destroys the `ScreenCapture` instance, disposes the source, marks the host
|
|
865
|
-
unready, and returns `true`; repeated calls return `false`.
|
|
866
|
-
|
|
867
|
-
Shared dependencies: [`ScreenCapture.js`](runtime-modules.md#screencapturejs).
|
|
868
|
-
|
|
869
|
-
### Availability and normalization
|
|
870
|
-
|
|
871
|
-
**Browser and supported native WebViews.** State/result normalized; media permission/codec failures mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
872
|
-
|
|
873
|
-
### Example
|
|
874
|
-
|
|
875
|
-
```html
|
|
876
|
-
<html-import
|
|
877
|
-
id="screen-capture.html"
|
|
878
|
-
href="/arcane/components/screen-capture.html">
|
|
879
|
-
</html-import>
|
|
880
|
-
```
|
|
881
|
-
|
|
882
|
-
## source-code-viewer.html
|
|
883
|
-
|
|
884
|
-
### Overview
|
|
885
|
-
|
|
886
|
-
Renders line-addressable source code with load, error, focus, and state behavior.
|
|
887
|
-
|
|
888
|
-
### Public surface
|
|
889
|
-
|
|
890
|
-
Methods/properties: `configure()`, `load()`, `render()`, `clear()`, `fail()`, `focus()`, `focusLine()`, `destroy()`.
|
|
891
|
-
|
|
892
|
-
Events: `source-code-viewer-ready`, `source-code-viewer-state`,
|
|
893
|
-
`source-code-viewer-state-loading`, `source-code-viewer-state-ready`,
|
|
894
|
-
`source-code-viewer-state-empty`, and `source-code-viewer-state-error`.
|
|
895
|
-
|
|
896
|
-
### Availability and normalization
|
|
897
|
-
|
|
898
|
-
**Browser and supported native WebViews.** Normalized source/state. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
899
|
-
|
|
900
|
-
### Example
|
|
901
|
-
|
|
902
|
-
```html
|
|
903
|
-
<html-import
|
|
904
|
-
id="source-code-viewer.html"
|
|
905
|
-
href="/arcane/components/source-code-viewer.html">
|
|
906
|
-
</html-import>
|
|
907
|
-
```
|
|
908
|
-
|
|
909
|
-
## source-explanation.html
|
|
910
|
-
|
|
911
|
-
### Overview
|
|
912
|
-
|
|
913
|
-
Presents an evidence finding, source selection, explanation, and save state.
|
|
914
|
-
|
|
915
|
-
### Public surface
|
|
916
|
-
|
|
917
|
-
Methods/properties: `showFinding()`, `populate()`, `selectSource()`, `markSaved()`, `destroy()`.
|
|
918
|
-
|
|
919
|
-
Events: `source-explanation-ready`, `source-explanation-save`, `source-explanation-source-selected`.
|
|
920
|
-
|
|
921
|
-
### Availability and normalization
|
|
922
|
-
|
|
923
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
924
|
-
|
|
925
|
-
### Example
|
|
926
|
-
|
|
927
|
-
```html
|
|
928
|
-
<html-import
|
|
929
|
-
id="source-explanation.html"
|
|
930
|
-
href="/arcane/components/source-explanation.html">
|
|
931
|
-
</html-import>
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
## speech.html
|
|
935
|
-
|
|
936
|
-
### Overview
|
|
937
|
-
|
|
938
|
-
Coordinates explicit speech-to-text activation, speech controls, transcription
|
|
939
|
-
completion, mute state, and microphone availability.
|
|
940
|
-
|
|
941
|
-
### Public surface
|
|
942
|
-
|
|
943
|
-
Methods/properties: `configure()`, `setAvailability()`, `setMuted()`,
|
|
944
|
-
`reportTTSError(error,boundary='synthesis')`, `requestSTTActivation()`,
|
|
945
|
-
`destroy()`, `availability`, `muted`, `initialMuted`, and `componentReady`.
|
|
946
|
-
|
|
947
|
-
Events: `speech-ready`, `speech-transcription-complete`,
|
|
948
|
-
`speech-transcription-error`, `speech-transcription-cancelled`,
|
|
949
|
-
`speech-microphone-unavailable`, `speech-stt-activation-request`,
|
|
950
|
-
`speech-stt-activation-error`, `speech-tts-lifecycle-error`, and
|
|
951
|
-
`speech-synthesis-error`.
|
|
952
|
-
|
|
953
|
-
Shared dependencies: [`AI.js`](runtime-modules.md#aijs),
|
|
954
|
-
[`AIRuntimeState.js`](runtime-modules.md#airuntimestatejs),
|
|
955
|
-
[`ComponentContracts.js`](runtime-modules.md#componentcontractsjs), and
|
|
956
|
-
[`DBLS.js`](runtime-modules.md#dblsjs).
|
|
957
|
-
|
|
958
|
-
The Hold to talk control remains disabled unless sticky STT state is `ready`,
|
|
959
|
-
the role is not busy, and microphone capture is available. For an explicitly
|
|
960
|
-
selected STT route, a separate keyboard-operable control presents Start
|
|
961
|
-
transcription while `unloaded`, Cancel loading while `loading`, a disabled
|
|
962
|
-
Canceling state while `unloading`, and Try again with the sticky error while
|
|
963
|
-
`error`. Selected-unloaded, busy, and error states are shown as distinct facts;
|
|
964
|
-
none is treated as ready.
|
|
965
|
-
|
|
966
|
-
The default `requestSTTActivation(intent)` forwards the frozen
|
|
967
|
-
`{role:'stt',action:'load'|'unload',reason:'user'}` record to
|
|
968
|
-
`requestAIRuntimeIntent()`. Before calling it, the component emits a bubbling,
|
|
969
|
-
composed, cancelable `speech-stt-activation-request` event with frozen
|
|
970
|
-
`{intent,state}` detail. `preventDefault()` suppresses the callback and intent.
|
|
971
|
-
Callback failure emits `speech-stt-activation-error` with frozen
|
|
972
|
-
`{request,error,message}` detail. Cancel loading publishes an `unload` intent;
|
|
973
|
-
only subsequent sticky `unloading` or `unloaded` state confirms lifecycle
|
|
974
|
-
progress, and callback return never proves provider work stopped.
|
|
975
|
-
|
|
976
|
-
The component emits no activation request on import or state observation.
|
|
977
|
-
Provider registration and selection remain inert, and default
|
|
978
|
-
`startTranscription=false` does not request STT during runtime startup. The
|
|
979
|
-
provider/runtime owner decides whether and how to execute a user intent; the
|
|
980
|
-
component never selects a runtime or model, downloads artifacts, reloads after
|
|
981
|
-
failure, or falls back to another provider.
|
|
982
|
-
|
|
983
|
-
`setAvailability()` is compatibility-only for microphone and negative
|
|
984
|
-
unselected-role reports. Positive STT/TTS booleans cannot manufacture a ready
|
|
985
|
-
role, and no compatibility value can replace a selected sticky role. Hold to
|
|
986
|
-
talk stays disabled without sticky ready STT, and compatibility input cannot
|
|
987
|
-
enable a no-selection TTS role or bypass explicit TTS activation.
|
|
988
|
-
|
|
989
|
-
Each transcription request owns an `AbortController`; its signal is passed as
|
|
990
|
-
the third argument to `AI.fetchSTT()`. Cancel, a newer capture, and `destroy()`
|
|
991
|
-
abort that controller and suppress late results. This proves request delivery
|
|
992
|
-
was canceled, not that an uncooperative provider stopped underlying work.
|
|
993
|
-
|
|
994
|
-
User Unmute calls the shared `AI.setSpeechMuted(false)` lifecycle owner before
|
|
995
|
-
or with publishing the TTS load intent, so the runtime can legally load TTS.
|
|
996
|
-
Mute calls `AI.setSpeechMuted(true)`, stops playback, cancels active TTS work,
|
|
997
|
-
and unloads the selected TTS role. Lifecycle failures remain visible through
|
|
998
|
-
`speech-tts-lifecycle-error` and sticky role state.
|
|
999
|
-
|
|
1000
|
-
Speech operation ids are
|
|
1001
|
-
`<component-instance-id>:<kind>:<sequence>`. Canonical cancellation reasons are
|
|
1002
|
-
`stt-role-unready`, `stt-provider-transcription-cancelled`, `stt-role-busy`,
|
|
1003
|
-
`microphone-unavailable`, `component-destroyed`, and
|
|
1004
|
-
`stt-transcription-cancelled`. Microphone capture-failure reasons are
|
|
1005
|
-
`microphone-input-missing`, `microphone-input-unavailable`,
|
|
1006
|
-
`microphone-capture-denied`, and `microphone-capture-rejected`. Component
|
|
1007
|
-
boundary codes are `ARCANE_SPEECH_MICROPHONE_CAPTURE_REJECTED`,
|
|
1008
|
-
`ARCANE_SPEECH_STT_TRANSCRIPTION_REQUEST_REJECTED`,
|
|
1009
|
-
`ARCANE_SPEECH_TTS_LOAD_REJECTED`, `ARCANE_SPEECH_TTS_UNLOAD_REJECTED`,
|
|
1010
|
-
`ARCANE_SPEECH_TTS_SYNTHESIS_REQUEST_REJECTED`, and
|
|
1011
|
-
`ARCANE_SPEECH_TTS_PLAYBACK_RESUME_REJECTED`. Each of those component-boundary
|
|
1012
|
-
public projections keeps the exact boundary in `code` and preserves a distinct
|
|
1013
|
-
string code from the browser, runtime, or provider additively as `causeCode`.
|
|
1014
|
-
A missing STT method therefore uses boundary
|
|
1015
|
-
`ARCANE_SPEECH_STT_TRANSCRIPTION_REQUEST_REJECTED` with
|
|
1016
|
-
`causeCode:'ARCANE_SPEECH_STT_RUNTIME_METHOD_UNAVAILABLE'`.
|
|
1017
|
-
|
|
1018
|
-
Stable rejection reasons are `stt-transcription-rejected`,
|
|
1019
|
-
`tts-load-rejected`, `tts-unload-rejected`, `tts-synthesis-rejected`, and
|
|
1020
|
-
`tts-playback-resume-rejected`. Shared activation rejection uses
|
|
1021
|
-
`ARCANE_STT_ACTIVATION_REQUEST_REJECTED` and `activation-request-rejected`.
|
|
1022
|
-
|
|
1023
|
-
### Availability and normalization
|
|
1024
|
-
|
|
1025
|
-
**Browser and supported native WebViews.** UI/runtime state and explicit user
|
|
1026
|
-
STT activation intent are normalized; provider/model authority and media
|
|
1027
|
-
behavior remain external. HTMLImport + DOM; injected Arcane/provider modules
|
|
1028
|
-
where listed. Native methods remain subject to the bound app's capabilities.
|
|
1029
|
-
[Deep protocol details](protocols.md).
|
|
1030
|
-
|
|
1031
|
-
### Example
|
|
1032
|
-
|
|
1033
|
-
```html
|
|
1034
|
-
<html-import
|
|
1035
|
-
id="speech.html"
|
|
1036
|
-
href="/arcane/components/speech.html">
|
|
1037
|
-
</html-import>
|
|
1038
|
-
```
|
|
1039
|
-
|
|
1040
|
-
## summary-strip.html
|
|
1041
|
-
|
|
1042
|
-
### Overview
|
|
1043
|
-
|
|
1044
|
-
Displays compact selectable KPI or summary items.
|
|
1045
|
-
|
|
1046
|
-
### Public surface
|
|
1047
|
-
|
|
1048
|
-
Methods/properties: `configure()`, `setItems()`, `updateItem()`, `clear()`, `destroy()`.
|
|
1049
|
-
|
|
1050
|
-
Events: `summary-strip-ready`, `summary-strip-change`, `summary-strip-select`.
|
|
1051
|
-
|
|
1052
|
-
### Availability and normalization
|
|
1053
|
-
|
|
1054
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1055
|
-
|
|
1056
|
-
### Example
|
|
1057
|
-
|
|
1058
|
-
```html
|
|
1059
|
-
<html-import
|
|
1060
|
-
id="summary-strip.html"
|
|
1061
|
-
href="/arcane/components/summary-strip.html">
|
|
1062
|
-
</html-import>
|
|
1063
|
-
```
|
|
1064
|
-
|
|
1065
|
-
## table.html
|
|
1066
|
-
|
|
1067
|
-
### Overview
|
|
1068
|
-
|
|
1069
|
-
Builds and updates a simple header/body table.
|
|
1070
|
-
|
|
1071
|
-
### Public surface
|
|
1072
|
-
|
|
1073
|
-
Methods/properties: `buildHeader()`, `buildTable()`, `destroy()`.
|
|
1074
|
-
|
|
1075
|
-
Events: `table-ready`, `header-update`, `body-update`.
|
|
1076
|
-
|
|
1077
|
-
### Availability and normalization
|
|
1078
|
-
|
|
1079
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1080
|
-
|
|
1081
|
-
### Example
|
|
1082
|
-
|
|
1083
|
-
```html
|
|
1084
|
-
<html-import
|
|
1085
|
-
id="table.html"
|
|
1086
|
-
href="/arcane/components/table.html">
|
|
1087
|
-
</html-import>
|
|
1088
|
-
```
|
|
1089
|
-
|
|
1090
|
-
## task-progress.html
|
|
1091
|
-
|
|
1092
|
-
### Overview
|
|
1093
|
-
|
|
1094
|
-
Runs and displays a task list with started/change/complete/error state.
|
|
1095
|
-
|
|
1096
|
-
### Public surface
|
|
1097
|
-
|
|
1098
|
-
Methods/properties: `configure()`, `setTasks()`, `updateTask()`, `runTasks()`, `clear()`, `destroy()`.
|
|
1099
|
-
|
|
1100
|
-
Events: `task-progress-ready`, `task-progress-started`, `task-progress-change`, `task-progress-complete`, `task-progress-error`.
|
|
1101
|
-
|
|
1102
|
-
### Availability and normalization
|
|
1103
|
-
|
|
1104
|
-
**Browser and supported native WebViews.** Task state normalized; injected task results mixed. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1105
|
-
|
|
1106
|
-
### Example
|
|
1107
|
-
|
|
1108
|
-
```html
|
|
1109
|
-
<html-import
|
|
1110
|
-
id="task-progress.html"
|
|
1111
|
-
href="/arcane/components/task-progress.html">
|
|
1112
|
-
</html-import>
|
|
1113
|
-
```
|
|
1114
|
-
|
|
1115
|
-
## terminal-workspace.html
|
|
1116
|
-
|
|
1117
|
-
### Overview
|
|
1118
|
-
|
|
1119
|
-
Presents multiple terminal sessions, output, active selection, theme, and terminal actions.
|
|
1120
|
-
|
|
1121
|
-
### Public surface
|
|
1122
|
-
|
|
1123
|
-
Methods/properties: `configure()`, `addSession()`, `removeSession()`, `activateSession()`, `append()`, `clear()`, `setState()`, `setTheme()`, `focus()`, `destroy()`.
|
|
1124
|
-
|
|
1125
|
-
Events: `terminal-workspace-ready`, `terminal-submit`, `terminal-interrupt`, `terminal-clear`, `terminal-session-new`, `terminal-session-close`, `terminal-session-select`, `terminal-settings`.
|
|
1126
|
-
|
|
1127
|
-
Shared dependencies: [`AnsiText.js`](runtime-modules.md#ansitextjs).
|
|
1128
|
-
|
|
1129
|
-
### Availability and normalization
|
|
1130
|
-
|
|
1131
|
-
**Browser and supported native WebViews.** UI/session state normalized; native command results supplied externally. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1132
|
-
|
|
1133
|
-
### Example
|
|
1134
|
-
|
|
1135
|
-
```html
|
|
1136
|
-
<html-import
|
|
1137
|
-
id="terminal-workspace.html"
|
|
1138
|
-
href="/arcane/components/terminal-workspace.html">
|
|
1139
|
-
</html-import>
|
|
1140
|
-
```
|
|
1141
|
-
|
|
1142
|
-
## theme-editor.html
|
|
1143
|
-
|
|
1144
|
-
### Overview
|
|
1145
|
-
|
|
1146
|
-
Edits, previews, saves, and resets semantic custom theme tokens.
|
|
1147
|
-
|
|
1148
|
-
### Public surface
|
|
1149
|
-
|
|
1150
|
-
Methods/properties: `configure()`, `getTheme()`, `setTheme()`, `setBusy()`, `setStatus()`, `destroy()`.
|
|
1151
|
-
|
|
1152
|
-
Events: `theme-editor-ready`, `theme-preview`, `theme-save`, `theme-reset`.
|
|
1153
|
-
|
|
1154
|
-
Shared dependencies: [`Theme.js`](runtime-entities.md#themejs).
|
|
1155
|
-
|
|
1156
|
-
### Availability and normalization
|
|
1157
|
-
|
|
1158
|
-
**Browser and supported native WebViews.** Fully normalized Theme values. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1159
|
-
|
|
1160
|
-
### Example
|
|
1161
|
-
|
|
1162
|
-
```html
|
|
1163
|
-
<html-import
|
|
1164
|
-
id="theme-editor.html"
|
|
1165
|
-
href="/arcane/components/theme-editor.html">
|
|
1166
|
-
</html-import>
|
|
1167
|
-
```
|
|
1168
|
-
|
|
1169
|
-
## theme-switcher.html
|
|
1170
|
-
|
|
1171
|
-
### Overview
|
|
1172
|
-
|
|
1173
|
-
Selects and refreshes system, light, dark, or custom theme mode.
|
|
1174
|
-
|
|
1175
|
-
### Public surface
|
|
1176
|
-
|
|
1177
|
-
Methods/properties: `setMode()`, `refresh()`.
|
|
1178
|
-
|
|
1179
|
-
This fragment declares no component-specific readiness or action event; use the loader's `html-import-ready` only to know that import execution completed.
|
|
1180
|
-
|
|
1181
|
-
Shared dependencies: [`ThemeManager.js`](runtime-modules.md#thememanagerjs).
|
|
1182
|
-
|
|
1183
|
-
### Availability and normalization
|
|
1184
|
-
|
|
1185
|
-
**Browser and supported native WebViews.** Preference/native appearance behavior mixed; no component-ready contract. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1186
|
-
|
|
1187
|
-
### Example
|
|
1188
|
-
|
|
1189
|
-
```html
|
|
1190
|
-
<html-import
|
|
1191
|
-
id="theme-switcher.html"
|
|
1192
|
-
href="/arcane/components/theme-switcher.html">
|
|
1193
|
-
</html-import>
|
|
1194
|
-
```
|
|
1195
|
-
|
|
1196
|
-
## unified-inbox.html
|
|
1197
|
-
|
|
1198
|
-
### Overview
|
|
1199
|
-
|
|
1200
|
-
Displays provider-neutral communication threads with active/loading state.
|
|
1201
|
-
|
|
1202
|
-
### Public surface
|
|
1203
|
-
|
|
1204
|
-
Methods/properties: `configure()`, `setThreads()`, `setActive()`, `setLoading()`, `destroy()`.
|
|
1205
|
-
|
|
1206
|
-
Events: `unified-inbox-ready`, `inbox-refresh`, `thread-select`.
|
|
1207
|
-
|
|
1208
|
-
### Availability and normalization
|
|
1209
|
-
|
|
1210
|
-
**Browser and supported native WebViews.** DOM-normalized. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1211
|
-
|
|
1212
|
-
### Example
|
|
1213
|
-
|
|
1214
|
-
```html
|
|
1215
|
-
<html-import
|
|
1216
|
-
id="unified-inbox.html"
|
|
1217
|
-
href="/arcane/components/unified-inbox.html">
|
|
1218
|
-
</html-import>
|
|
1219
|
-
```
|
|
1220
|
-
|
|
1221
|
-
## voice-transcription.html
|
|
1222
|
-
|
|
1223
|
-
### Overview
|
|
1224
|
-
|
|
1225
|
-
Records segmented microphone audio only after authoritative STT admission,
|
|
1226
|
-
exposes explicit selected-STT activation, transcribes with cancellation,
|
|
1227
|
-
persists, and completes a combined transcript.
|
|
1228
|
-
|
|
1229
|
-
### Public surface
|
|
1230
|
-
|
|
1231
|
-
Methods/properties: `configure()`, `requestSTTActivation()`, `startRecording()`,
|
|
1232
|
-
`stopRecording()`, `save()`, `completeTranscription()/complete()`, `clear()`,
|
|
1233
|
-
`reset()`, `destroy()`.
|
|
1234
|
-
|
|
1235
|
-
Events: `voice-transcription-ready`, `voice-transcription-state`,
|
|
1236
|
-
`voice-transcription-segment`, `voice-transcription-change`,
|
|
1237
|
-
`voice-transcription-complete`, `speech-transcription-complete`,
|
|
1238
|
-
`speech-transcription-cancelled`, `speech-stt-activation-request`, and
|
|
1239
|
-
`speech-stt-activation-error`.
|
|
1240
|
-
|
|
1241
|
-
Shared dependencies: [`MD.js`](runtime-modules.md#mdjs),
|
|
1242
|
-
[`ComponentContracts.js`](runtime-modules.md#componentcontractsjs),
|
|
1243
|
-
[`AIRuntimeState.js`](runtime-modules.md#airuntimestatejs), and
|
|
1244
|
-
[`AI.js`](runtime-modules.md#aijs).
|
|
1245
|
-
|
|
1246
|
-
### Availability and normalization
|
|
1247
|
-
|
|
1248
|
-
**Browser and supported native WebViews.** The component subscribes
|
|
1249
|
-
synchronously to sticky `AIRuntimeState.roles.stt`; its recording Start button
|
|
1250
|
-
and public `startRecording()` both fail closed unless that role is exactly
|
|
1251
|
-
`ready` and not busy. A configured `transcribe(file,context)` callback remains
|
|
1252
|
-
request plumbing rather than readiness authority. Its context now includes the
|
|
1253
|
-
owned `signal` additively. The default route calls
|
|
1254
|
-
`AI.fetchSTT(file,undefined,signal)` so the callback position remains valid and
|
|
1255
|
-
readiness loss or destruction can abort delivery.
|
|
1256
|
-
|
|
1257
|
-
For a selected `unloaded`, `loading`, `unloading`, or `error` role, the component
|
|
1258
|
-
keeps recording Start disabled and presents the same keyboard-operable Start
|
|
1259
|
-
transcription/Try again or Cancel loading control as `speech.html`. Both use the
|
|
1260
|
-
shared `createSTTActivationController()` contract. User operation emits the
|
|
1261
|
-
cancelable `speech-stt-activation-request` event with frozen `{intent,state}`;
|
|
1262
|
-
`preventDefault()` suppresses the callback. The default
|
|
1263
|
-
`requestSTTActivation(intent)` publishes the frozen
|
|
1264
|
-
`{role:'stt',action:'load'|'unload',reason:'user'}` intent. Callback failure emits
|
|
1265
|
-
`speech-stt-activation-error` with frozen `{request,error,message}`. Import and
|
|
1266
|
-
state observation emit no activation request and never begin a model download.
|
|
1267
|
-
|
|
1268
|
-
If sticky readiness is lost during microphone acquisition, capture, or the STT
|
|
1269
|
-
request, the component invalidates the session, aborts the owned request signal,
|
|
1270
|
-
releases media, discards late completion, and emits
|
|
1271
|
-
`speech-transcription-cancelled`. Its local compatibility reason is
|
|
1272
|
-
`runtime-unready`, while its canonical/public reason is `stt-role-unready`. A
|
|
1273
|
-
busy role uses `stt-role-busy` in both views. A current provider cancellation
|
|
1274
|
-
returns the component workflow to `idle` with local
|
|
1275
|
-
`stt-provider-request-cancelled` and canonical/public
|
|
1276
|
-
`stt-provider-transcription-cancelled`; destruction uses
|
|
1277
|
-
`component-destroyed` in both views. Replacing configuration without an
|
|
1278
|
-
`initialValue` during active work uses `configuration-replaced` in both views.
|
|
1279
|
-
Stale teardown results remain suppressed. A
|
|
1280
|
-
current save failure, including `AbortError`, enters the visible `error` state.
|
|
1281
|
-
Readiness loss after transcription has finished does not invalidate an already
|
|
1282
|
-
pending application save or completion callback: its settlement remains
|
|
1283
|
-
observable, while any new recording remains gated by current sticky readiness.
|
|
1284
|
-
Assigning `value` or calling `configure({initialValue})` explicitly supersedes
|
|
1285
|
-
an in-flight microphone start, STT request, save, or completion. The component
|
|
1286
|
-
advances its generation, aborts owned STT delivery, releases owned media, emits
|
|
1287
|
-
`speech-transcription-cancelled` with
|
|
1288
|
-
`reason:'transcript-replaced'`, and suppresses
|
|
1289
|
-
late settlement before publishing the assigned transcript. Assigning transcript
|
|
1290
|
-
text during active recording preserves that recording and changes the transcript
|
|
1291
|
-
to which the captured segment will be appended.
|
|
1292
|
-
`destroy()` aborts the state subscription, cancels active work, removes the
|
|
1293
|
-
activation listener, sets component `ready` to `false`, and returns `true`;
|
|
1294
|
-
repeated destruction is
|
|
1295
|
-
idempotent. Destruction is terminal: Start, activation, and Complete remain
|
|
1296
|
-
disabled and status remains unavailable. `voice-transcription-state` detail is
|
|
1297
|
-
the frozen `{message,state,stt}` record, where `state` remains the component
|
|
1298
|
-
workflow and `stt` is the authoritative immutable role record. Transcript
|
|
1299
|
-
completion stays available when STT is unavailable before destruction.
|
|
1300
|
-
State/text, explicit activation, and request cancellation are normalized;
|
|
1301
|
-
provider/model authority and media behavior remain external. HTMLImport + DOM;
|
|
1302
|
-
injected Arcane/provider modules where listed.
|
|
1303
|
-
Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1304
|
-
|
|
1305
|
-
### Example
|
|
1306
|
-
|
|
1307
|
-
```html
|
|
1308
|
-
<html-import
|
|
1309
|
-
id="voice-transcription.html"
|
|
1310
|
-
href="/arcane/components/voice-transcription.html">
|
|
1311
|
-
</html-import>
|
|
1312
|
-
```
|
|
1313
|
-
|
|
1314
|
-
## weather-widget.html
|
|
1315
|
-
|
|
1316
|
-
### Overview
|
|
1317
|
-
|
|
1318
|
-
Displays normalized current and daily weather with refresh intent.
|
|
1319
|
-
|
|
1320
|
-
### Public surface
|
|
1321
|
-
|
|
1322
|
-
Methods/properties: `setWeather()`, `clear()`, `destroy()`.
|
|
1323
|
-
|
|
1324
|
-
Events: `weather-widget-ready`, `weather-refresh`.
|
|
1325
|
-
|
|
1326
|
-
### Availability and normalization
|
|
1327
|
-
|
|
1328
|
-
**Browser and supported native WebViews.** Display normalized; provider supplied externally. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1329
|
-
|
|
1330
|
-
### Example
|
|
1331
|
-
|
|
1332
|
-
```html
|
|
1333
|
-
<html-import
|
|
1334
|
-
id="weather-widget.html"
|
|
1335
|
-
href="/arcane/components/weather-widget.html">
|
|
1336
|
-
</html-import>
|
|
1337
|
-
```
|
|
1338
|
-
|
|
1339
|
-
## web-navigator.html
|
|
1340
|
-
|
|
1341
|
-
### Overview
|
|
1342
|
-
|
|
1343
|
-
Guards embedded/external navigation and surfaces allow/block/open intents.
|
|
1344
|
-
|
|
1345
|
-
### Public surface
|
|
1346
|
-
|
|
1347
|
-
Methods/properties: `configure()`, `navigate()`, `currentUrl()`, `destroy()`.
|
|
1348
|
-
|
|
1349
|
-
Events: `web-navigator-ready`, `web-navigate`, `web-navigation-blocked`, `web-open-external`.
|
|
1350
|
-
|
|
1351
|
-
### Availability and normalization
|
|
1352
|
-
|
|
1353
|
-
**Browser and supported native WebViews.** Navigation intent/decision normalized; browser navigation result platform-native. HTMLImport + DOM; injected Arcane/provider modules where listed. Native methods remain subject to the bound app's capabilities. [Deep protocol details](protocols.md).
|
|
1354
|
-
|
|
1355
|
-
### Example
|
|
1356
|
-
|
|
1357
|
-
```html
|
|
1358
|
-
<html-import
|
|
1359
|
-
id="web-navigator.html"
|
|
1360
|
-
href="/arcane/components/web-navigator.html">
|
|
1361
|
-
</html-import>
|
|
1362
|
-
```
|
|
1363
|
-
|
|
1364
|
-
## Readiness caveats
|
|
1365
|
-
|
|
1366
|
-
`header.html` and `theme-switcher.html` do not currently publish a component-specific ready event/property. Consumers can observe `html-import-ready` for completed fragment execution and then feature-detect their methods. Other fragments publish the exact ready event listed above.
|