@signalwire/web-components 4.0.0-beta.9 → 4.0.0-dev-20260515133934
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/README.md +48 -55
- package/dist/_virtual/_commonjsHelpers.js +9 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/prism-python.js +28 -0
- package/dist/_virtual/prism-python.js.map +1 -0
- package/dist/_virtual/prism-python2.js +5 -0
- package/dist/_virtual/prism-python2.js.map +1 -0
- package/dist/_virtual/prism-typescript.js +28 -0
- package/dist/_virtual/prism-typescript.js.map +1 -0
- package/dist/_virtual/prism-typescript2.js +5 -0
- package/dist/_virtual/prism-typescript2.js.map +1 -0
- package/dist/_virtual/prism.js +28 -0
- package/dist/_virtual/prism.js.map +1 -0
- package/dist/_virtual/prism2.js +5 -0
- package/dist/_virtual/prism2.js.map +1 -0
- package/dist/assets/sw_background.webp.js +5 -0
- package/dist/assets/sw_background.webp.js.map +1 -0
- package/dist/components/UI/DEFAULT_BACKGROUND.d.ts +4 -0
- package/dist/components/UI/DEFAULT_BACKGROUND.d.ts.map +1 -0
- package/dist/components/UI/DEFAULT_BACKGROUND.js +5 -0
- package/dist/components/UI/DEFAULT_BACKGROUND.js.map +1 -0
- package/dist/components/UI/controls/sw-ui-control-bar.d.ts +114 -0
- package/dist/components/UI/controls/sw-ui-control-bar.d.ts.map +1 -0
- package/dist/components/UI/controls/sw-ui-control-bar.js +324 -0
- package/dist/components/UI/controls/sw-ui-control-bar.js.map +1 -0
- package/dist/components/UI/controls/sw-ui-dialpad.d.ts +67 -0
- package/dist/components/UI/controls/sw-ui-dialpad.d.ts.map +1 -0
- package/dist/components/UI/controls/sw-ui-dialpad.js +360 -0
- package/dist/components/UI/controls/sw-ui-dialpad.js.map +1 -0
- package/dist/components/UI/controls/sw-ui-dropup.d.ts +42 -0
- package/dist/components/UI/controls/sw-ui-dropup.d.ts.map +1 -0
- package/dist/components/UI/controls/sw-ui-dropup.js +138 -0
- package/dist/components/UI/controls/sw-ui-dropup.js.map +1 -0
- package/dist/components/UI/controls/sw-ui-split-button.d.ts +44 -0
- package/dist/components/UI/controls/sw-ui-split-button.d.ts.map +1 -0
- package/dist/components/UI/controls/sw-ui-split-button.js +178 -0
- package/dist/components/UI/controls/sw-ui-split-button.js.map +1 -0
- package/dist/components/UI/host-reset.d.ts +16 -0
- package/dist/components/UI/host-reset.d.ts.map +1 -0
- package/dist/components/UI/host-reset.js +20 -0
- package/dist/components/UI/host-reset.js.map +1 -0
- package/dist/components/UI/icons/backspace.svg.js +10 -0
- package/dist/components/UI/icons/backspace.svg.js.map +1 -0
- package/dist/components/UI/icons/camera-off.svg.js +8 -0
- package/dist/components/UI/icons/camera-off.svg.js.map +1 -0
- package/dist/components/UI/icons/camera-on.svg.js +8 -0
- package/dist/components/UI/icons/camera-on.svg.js.map +1 -0
- package/dist/components/UI/icons/check-circle.svg.js +6 -0
- package/dist/components/UI/icons/check-circle.svg.js.map +1 -0
- package/dist/components/UI/icons/chevron-up.svg.js +8 -0
- package/dist/components/UI/icons/chevron-up.svg.js.map +1 -0
- package/dist/components/UI/icons/close.svg.js +6 -0
- package/dist/components/UI/icons/close.svg.js.map +1 -0
- package/dist/components/UI/icons/copy.svg.js +6 -0
- package/dist/components/UI/icons/copy.svg.js.map +1 -0
- package/dist/components/UI/icons/download.svg.js +6 -0
- package/dist/components/UI/icons/download.svg.js.map +1 -0
- package/dist/components/UI/icons/fullscreen-exit.svg.js +8 -0
- package/dist/components/UI/icons/fullscreen-exit.svg.js.map +1 -0
- package/dist/components/UI/icons/fullscreen.svg.js +8 -0
- package/dist/components/UI/icons/fullscreen.svg.js.map +1 -0
- package/dist/components/UI/icons/hand-raise.svg.js +6 -0
- package/dist/components/UI/icons/hand-raise.svg.js.map +1 -0
- package/dist/components/UI/icons/icons.d.ts +31 -0
- package/dist/components/UI/icons/icons.d.ts.map +1 -0
- package/dist/components/UI/icons/icons.js +60 -0
- package/dist/components/UI/icons/icons.js.map +1 -0
- package/dist/components/UI/icons/index.d.ts +4 -0
- package/dist/components/UI/icons/index.d.ts.map +1 -0
- package/dist/components/UI/icons/info-circle.svg.js +6 -0
- package/dist/components/UI/icons/info-circle.svg.js.map +1 -0
- package/dist/components/UI/icons/mic-off.svg.js +8 -0
- package/dist/components/UI/icons/mic-off.svg.js.map +1 -0
- package/dist/components/UI/icons/mic-on.svg.js +8 -0
- package/dist/components/UI/icons/mic-on.svg.js.map +1 -0
- package/dist/components/UI/icons/person.svg.js +8 -0
- package/dist/components/UI/icons/person.svg.js.map +1 -0
- package/dist/components/UI/icons/phone-call.svg.js +8 -0
- package/dist/components/UI/icons/phone-call.svg.js.map +1 -0
- package/dist/components/UI/icons/phone-end.svg.js +8 -0
- package/dist/components/UI/icons/phone-end.svg.js.map +1 -0
- package/dist/components/UI/icons/room.svg.js +8 -0
- package/dist/components/UI/icons/room.svg.js.map +1 -0
- package/dist/components/UI/icons/screen-share-off.svg.js +9 -0
- package/dist/components/UI/icons/screen-share-off.svg.js.map +1 -0
- package/dist/components/UI/icons/screen-share.svg.js +9 -0
- package/dist/components/UI/icons/screen-share.svg.js.map +1 -0
- package/dist/components/UI/icons/sendIcon.svg.js +9 -0
- package/dist/components/UI/icons/sendIcon.svg.js.map +1 -0
- package/dist/components/UI/icons/settings.svg.js +8 -0
- package/dist/components/UI/icons/settings.svg.js.map +1 -0
- package/dist/components/UI/icons/speaker-off.svg.js +8 -0
- package/dist/components/UI/icons/speaker-off.svg.js.map +1 -0
- package/dist/components/UI/icons/speaker-on.svg.js +8 -0
- package/dist/components/UI/icons/speaker-on.svg.js.map +1 -0
- package/dist/components/UI/icons/spinner.svg.js +9 -0
- package/dist/components/UI/icons/spinner.svg.js.map +1 -0
- package/dist/components/UI/icons/sw-logo.svg.js +11 -0
- package/dist/components/UI/icons/sw-logo.svg.js.map +1 -0
- package/dist/components/UI/icons/sw-ui-icon.d.ts +28 -0
- package/dist/components/UI/icons/sw-ui-icon.d.ts.map +1 -0
- package/dist/components/UI/icons/sw-ui-icon.js +47 -0
- package/dist/components/UI/icons/sw-ui-icon.js.map +1 -0
- package/dist/components/UI/icons/transcript.svg.js +10 -0
- package/dist/components/UI/icons/transcript.svg.js.map +1 -0
- package/dist/components/UI/index.d.ts +18 -0
- package/dist/components/UI/index.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-background.d.ts +33 -0
- package/dist/components/UI/layout/sw-ui-background.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-background.js +106 -0
- package/dist/components/UI/layout/sw-ui-background.js.map +1 -0
- package/dist/components/UI/layout/sw-ui-call-layout.d.ts +69 -0
- package/dist/components/UI/layout/sw-ui-call-layout.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-call-layout.js +278 -0
- package/dist/components/UI/layout/sw-ui-call-layout.js.map +1 -0
- package/dist/components/UI/layout/sw-ui-content-drawer.d.ts +50 -0
- package/dist/components/UI/layout/sw-ui-content-drawer.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-content-drawer.js +413 -0
- package/dist/components/UI/layout/sw-ui-content-drawer.js.map +1 -0
- package/dist/components/UI/layout/sw-ui-modal.d.ts +31 -0
- package/dist/components/UI/layout/sw-ui-modal.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-modal.js +150 -0
- package/dist/components/UI/layout/sw-ui-modal.js.map +1 -0
- package/dist/components/UI/layout/sw-ui-responsive-container.d.ts +15 -0
- package/dist/components/UI/layout/sw-ui-responsive-container.d.ts.map +1 -0
- package/dist/components/UI/layout/sw-ui-responsive-container.js +78 -0
- package/dist/components/UI/layout/sw-ui-responsive-container.js.map +1 -0
- package/dist/components/UI/sw-ui-alert.d.ts +37 -0
- package/dist/components/UI/sw-ui-alert.d.ts.map +1 -0
- package/dist/components/UI/sw-ui-alert.js +127 -0
- package/dist/components/UI/sw-ui-alert.js.map +1 -0
- package/dist/components/UI/sw-ui-transcript-view.d.ts +56 -0
- package/dist/components/UI/sw-ui-transcript-view.d.ts.map +1 -0
- package/dist/components/UI/sw-ui-transcript-view.js +342 -0
- package/dist/components/UI/sw-ui-transcript-view.js.map +1 -0
- package/dist/components/{audio-level.d.ts → sw-audio-level.d.ts} +44 -4
- package/dist/components/sw-audio-level.d.ts.map +1 -0
- package/dist/components/sw-audio-level.js +252 -0
- package/dist/components/sw-audio-level.js.map +1 -0
- package/dist/components/sw-call-controls.d.ts +58 -0
- package/dist/components/sw-call-controls.d.ts.map +1 -0
- package/dist/components/sw-call-controls.js +186 -0
- package/dist/components/sw-call-controls.js.map +1 -0
- package/dist/components/sw-call-dialpad.d.ts +52 -0
- package/dist/components/sw-call-dialpad.d.ts.map +1 -0
- package/dist/components/sw-call-dialpad.js +70 -0
- package/dist/components/sw-call-dialpad.js.map +1 -0
- package/dist/components/sw-call-media.d.ts +59 -0
- package/dist/components/sw-call-media.d.ts.map +1 -0
- package/dist/components/sw-call-media.js +178 -0
- package/dist/components/sw-call-media.js.map +1 -0
- package/dist/components/sw-call-provider.d.ts +41 -0
- package/dist/components/sw-call-provider.d.ts.map +1 -0
- package/dist/components/sw-call-provider.js +37 -0
- package/dist/components/sw-call-provider.js.map +1 -0
- package/dist/components/sw-call-status.d.ts +50 -0
- package/dist/components/sw-call-status.d.ts.map +1 -0
- package/dist/components/sw-call-status.js +204 -0
- package/dist/components/sw-call-status.js.map +1 -0
- package/dist/components/sw-call-widget/client-factory.d.ts +6 -0
- package/dist/components/sw-call-widget/client-factory.d.ts.map +1 -0
- package/dist/components/sw-call-widget/client-factory.js +25 -0
- package/dist/components/sw-call-widget/client-factory.js.map +1 -0
- package/dist/components/sw-call-widget/sw-call-widget.d.ts +110 -0
- package/dist/components/sw-call-widget/sw-call-widget.d.ts.map +1 -0
- package/dist/components/sw-call-widget/sw-call-widget.js +251 -0
- package/dist/components/sw-call-widget/sw-call-widget.js.map +1 -0
- package/dist/components/sw-call-widget/sw-call-widget.templates.d.ts +17 -0
- package/dist/components/sw-call-widget/sw-call-widget.templates.d.ts.map +1 -0
- package/dist/components/sw-call-widget/sw-call-widget.templates.js +80 -0
- package/dist/components/sw-call-widget/sw-call-widget.templates.js.map +1 -0
- package/dist/components/sw-click-to-call.d.ts +39 -0
- package/dist/components/sw-click-to-call.d.ts.map +1 -0
- package/dist/components/sw-click-to-call.js +88 -0
- package/dist/components/sw-click-to-call.js.map +1 -0
- package/dist/components/sw-device-selector/index.d.ts +2 -0
- package/dist/components/sw-device-selector/index.d.ts.map +1 -0
- package/dist/components/sw-device-selector/sw-device-selector.d.ts +69 -0
- package/dist/components/sw-device-selector/sw-device-selector.d.ts.map +1 -0
- package/dist/components/sw-device-selector/sw-device-selector.js +278 -0
- package/dist/components/sw-device-selector/sw-device-selector.js.map +1 -0
- package/dist/components/sw-device-selector/sw-device-selector.styles.d.ts +2 -0
- package/dist/components/sw-device-selector/sw-device-selector.styles.d.ts.map +1 -0
- package/dist/components/sw-device-selector/sw-device-selector.styles.js +238 -0
- package/dist/components/sw-device-selector/sw-device-selector.styles.js.map +1 -0
- package/dist/components/{directory.d.ts → sw-directory.d.ts} +18 -4
- package/dist/components/sw-directory.d.ts.map +1 -0
- package/dist/components/sw-directory.js +435 -0
- package/dist/components/sw-directory.js.map +1 -0
- package/dist/components/sw-local-camera.d.ts +53 -0
- package/dist/components/sw-local-camera.d.ts.map +1 -0
- package/dist/components/sw-local-camera.js +147 -0
- package/dist/components/sw-local-camera.js.map +1 -0
- package/dist/components/sw-participant-controls.d.ts +58 -0
- package/dist/components/sw-participant-controls.d.ts.map +1 -0
- package/dist/components/sw-participant-controls.js +306 -0
- package/dist/components/sw-participant-controls.js.map +1 -0
- package/dist/components/sw-participants.d.ts +55 -0
- package/dist/components/sw-participants.d.ts.map +1 -0
- package/dist/components/sw-participants.js +320 -0
- package/dist/components/sw-participants.js.map +1 -0
- package/dist/components/sw-self-media.d.ts +46 -0
- package/dist/components/sw-self-media.d.ts.map +1 -0
- package/dist/components/sw-self-media.js +106 -0
- package/dist/components/sw-self-media.js.map +1 -0
- package/dist/context/CallStateContextController.d.ts +31 -0
- package/dist/context/CallStateContextController.d.ts.map +1 -0
- package/dist/context/CallStateContextController.js +125 -0
- package/dist/context/CallStateContextController.js.map +1 -0
- package/dist/context/DevicesContextController.d.ts +38 -0
- package/dist/context/DevicesContextController.d.ts.map +1 -0
- package/dist/context/DevicesContextController.js +124 -0
- package/dist/context/DevicesContextController.js.map +1 -0
- package/dist/context/TranscriptController.d.ts +32 -0
- package/dist/context/TranscriptController.d.ts.map +1 -0
- package/dist/context/TranscriptController.js +113 -0
- package/dist/context/TranscriptController.js.map +1 -0
- package/dist/context/UserEventController.d.ts +26 -0
- package/dist/context/UserEventController.d.ts.map +1 -0
- package/dist/context/UserEventController.js +55 -0
- package/dist/context/UserEventController.js.map +1 -0
- package/dist/context/call-state-context.d.ts +75 -0
- package/dist/context/call-state-context.d.ts.map +1 -0
- package/dist/context/call-state-context.js +39 -0
- package/dist/context/call-state-context.js.map +1 -0
- package/dist/context/chat-state.d.ts +41 -0
- package/dist/context/chat-state.d.ts.map +1 -0
- package/dist/context/chat-state.js +61 -0
- package/dist/context/chat-state.js.map +1 -0
- package/dist/context/devices-context.d.ts +28 -0
- package/dist/context/devices-context.d.ts.map +1 -0
- package/dist/context/devices-context.js +6 -0
- package/dist/context/devices-context.js.map +1 -0
- package/dist/context/index.d.ts +9 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/transcript-context.d.ts +9 -0
- package/dist/context/transcript-context.d.ts.map +1 -0
- package/dist/context/transcript-context.js +6 -0
- package/dist/context/transcript-context.js.map +1 -0
- package/dist/context/types.d.ts +9 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/embed/signalwire-web-components-embed.iife.js +3237 -0
- package/dist/embed/signalwire-web-components-embed.iife.js.map +1 -0
- package/dist/embed/signalwire-web-components-embed.umd.cjs +3237 -0
- package/dist/embed/signalwire-web-components-embed.umd.cjs.map +1 -0
- package/dist/embed.d.ts +20 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/index.d.ts +19 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84 -35
- package/dist/index.js.map +1 -1
- package/dist/node_modules/dompurify/dist/purify.es.js +597 -0
- package/dist/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/dist/node_modules/marked/lib/marked.esm.js +1475 -0
- package/dist/node_modules/marked/lib/marked.esm.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-bash.js +220 -0
- package/dist/node_modules/prismjs/components/prism-bash.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-css.js +56 -0
- package/dist/node_modules/prismjs/components/prism-css.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-javascript.js +138 -0
- package/dist/node_modules/prismjs/components/prism-javascript.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-json.js +26 -0
- package/dist/node_modules/prismjs/components/prism-json.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-markdown.js +301 -0
- package/dist/node_modules/prismjs/components/prism-markdown.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-python.js +69 -0
- package/dist/node_modules/prismjs/components/prism-python.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-sql.js +34 -0
- package/dist/node_modules/prismjs/components/prism-sql.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-typescript.js +53 -0
- package/dist/node_modules/prismjs/components/prism-typescript.js.map +1 -0
- package/dist/node_modules/prismjs/components/prism-yaml.js +67 -0
- package/dist/node_modules/prismjs/components/prism-yaml.js.map +1 -0
- package/dist/node_modules/prismjs/prism.js +1165 -0
- package/dist/node_modules/prismjs/prism.js.map +1 -0
- package/dist/react.d.ts +96 -46
- package/dist/theme.css +451 -0
- package/dist/theme.css.js +5 -0
- package/dist/theme.css.js.map +1 -0
- package/dist/types/index.d.ts +9 -33
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/prism.d.ts +4 -0
- package/dist/utils/prism.d.ts.map +1 -0
- package/dist/utils/prism.js +34 -0
- package/dist/utils/prism.js.map +1 -0
- package/dist/utils/theme-loader.d.ts +11 -0
- package/dist/utils/theme-loader.d.ts.map +1 -0
- package/dist/utils/theme-loader.js +17 -0
- package/dist/utils/theme-loader.js.map +1 -0
- package/dist/utils/transcriptToMarkdown.d.ts +14 -0
- package/dist/utils/transcriptToMarkdown.d.ts.map +1 -0
- package/dist/utils/transcriptToMarkdown.js +59 -0
- package/dist/utils/transcriptToMarkdown.js.map +1 -0
- package/dist/utils/use-google-font.d.ts +18 -0
- package/dist/utils/use-google-font.d.ts.map +1 -0
- package/dist/utils/use-google-font.js +12 -0
- package/dist/utils/use-google-font.js.map +1 -0
- package/dist/utils/user-variables.d.ts +20 -0
- package/dist/utils/user-variables.d.ts.map +1 -0
- package/dist/utils/user-variables.js +37 -0
- package/dist/utils/user-variables.js.map +1 -0
- package/dist/utils/video.js +6 -21
- package/dist/utils/video.js.map +1 -1
- package/package.json +105 -42
- package/dist/components/audio-level.d.ts.map +0 -1
- package/dist/components/audio-level.js +0 -203
- package/dist/components/audio-level.js.map +0 -1
- package/dist/components/call-controls.d.ts +0 -163
- package/dist/components/call-controls.d.ts.map +0 -1
- package/dist/components/call-controls.js +0 -606
- package/dist/components/call-controls.js.map +0 -1
- package/dist/components/call-media.d.ts +0 -114
- package/dist/components/call-media.d.ts.map +0 -1
- package/dist/components/call-media.js +0 -219
- package/dist/components/call-media.js.map +0 -1
- package/dist/components/call-status.d.ts +0 -68
- package/dist/components/call-status.d.ts.map +0 -1
- package/dist/components/call-status.js +0 -254
- package/dist/components/call-status.js.map +0 -1
- package/dist/components/click-to-call.d.ts +0 -123
- package/dist/components/click-to-call.d.ts.map +0 -1
- package/dist/components/click-to-call.js +0 -428
- package/dist/components/click-to-call.js.map +0 -1
- package/dist/components/device-selector.d.ts +0 -224
- package/dist/components/device-selector.d.ts.map +0 -1
- package/dist/components/device-selector.js +0 -685
- package/dist/components/device-selector.js.map +0 -1
- package/dist/components/dialpad.d.ts +0 -60
- package/dist/components/dialpad.d.ts.map +0 -1
- package/dist/components/dialpad.js +0 -372
- package/dist/components/dialpad.js.map +0 -1
- package/dist/components/directory.d.ts.map +0 -1
- package/dist/components/directory.js +0 -503
- package/dist/components/directory.js.map +0 -1
- package/dist/components/example-button.d.ts +0 -20
- package/dist/components/example-button.d.ts.map +0 -1
- package/dist/components/example-button.js +0 -74
- package/dist/components/example-button.js.map +0 -1
- package/dist/components/participant-controls.d.ts +0 -94
- package/dist/components/participant-controls.d.ts.map +0 -1
- package/dist/components/participant-controls.js +0 -468
- package/dist/components/participant-controls.js.map +0 -1
- package/dist/components/participants.d.ts +0 -116
- package/dist/components/participants.d.ts.map +0 -1
- package/dist/components/participants.js +0 -394
- package/dist/components/participants.js.map +0 -1
- package/dist/components/self-media.d.ts +0 -78
- package/dist/components/self-media.d.ts.map +0 -1
- package/dist/components/self-media.js +0 -129
- package/dist/components/self-media.js.map +0 -1
- package/dist/constants.js +0 -5
- package/dist/constants.js.map +0 -1
- package/dist/context/call-context.d.ts +0 -13
- package/dist/context/call-context.d.ts.map +0 -1
- package/dist/context/call-context.js +0 -6
- package/dist/context/call-context.js.map +0 -1
- package/dist/types/index.js +0 -12
- package/dist/types/index.js.map +0 -1
- package/dist/utils/debounce.js +0 -13
- package/dist/utils/debounce.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { Call, DeviceController } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Context provider element that bridges an external `Call` and/or
|
|
5
|
+
* `DeviceController` into Lit context so any descendant web component
|
|
6
|
+
* (sw-call-media, sw-call-controls, sw-participants, etc.) receives live
|
|
7
|
+
* state without manual property wiring.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```html
|
|
11
|
+
* <sw-call-provider id="provider">
|
|
12
|
+
* <sw-call-media></sw-call-media>
|
|
13
|
+
* <sw-call-controls></sw-call-controls>
|
|
14
|
+
* </sw-call-provider>
|
|
15
|
+
* ```
|
|
16
|
+
* ```js
|
|
17
|
+
* provider.call = activeCall;
|
|
18
|
+
* provider.deviceController = signalWireClient;
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @prop {Call} call - Active call object
|
|
22
|
+
* @prop {DeviceController} deviceController - Device controller for input/output device management
|
|
23
|
+
*
|
|
24
|
+
* @slot - Default slot. Descendants consume the provided contexts.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SwCallProvider extends LitElement {
|
|
27
|
+
static styles: import("lit").CSSResult;
|
|
28
|
+
call: Call | undefined;
|
|
29
|
+
deviceController: DeviceController | undefined;
|
|
30
|
+
private _callState;
|
|
31
|
+
private _devices;
|
|
32
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
33
|
+
disconnectedCallback(): void;
|
|
34
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
35
|
+
}
|
|
36
|
+
declare global {
|
|
37
|
+
interface HTMLElementTagNameMap {
|
|
38
|
+
'sw-call-provider': SwCallProvider;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sw-call-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-call-provider.d.ts","sourceRoot":"","sources":["../../src/components/sw-call-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,0BAAqC;IAElB,IAAI,EAAE,IAAI,GAAG,SAAS,CAAa;IACnC,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAa;IAE3F,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,QAAQ,CAAsC;IAEtD,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAkBtD,oBAAoB,IAAI,IAAI;IAM5B,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LitElement as d, html as p, css as v } from "lit";
|
|
2
|
+
import { property as a, customElement as h } from "lit/decorators.js";
|
|
3
|
+
import { CallStateContextController as C } from "../context/CallStateContextController.js";
|
|
4
|
+
import { DevicesContextController as _ } from "../context/DevicesContextController.js";
|
|
5
|
+
var f = Object.defineProperty, m = Object.getOwnPropertyDescriptor, n = (t, s, r, o) => {
|
|
6
|
+
for (var e = o > 1 ? void 0 : o ? m(s, r) : s, i = t.length - 1, c; i >= 0; i--)
|
|
7
|
+
(c = t[i]) && (e = (o ? c(s, r, e) : c(e)) || e);
|
|
8
|
+
return o && e && f(s, r, e), e;
|
|
9
|
+
};
|
|
10
|
+
let l = class extends d {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments), this.call = void 0, this.deviceController = void 0, this._callState = new C(this), this._devices = new _(this);
|
|
13
|
+
}
|
|
14
|
+
updated(t) {
|
|
15
|
+
super.updated(t), t.has("call") && (this.call ? (this._callState.connect(this.call), this._devices.connectCall(this.call)) : (this._callState.disconnect(), this._devices.disconnectCall())), t.has("deviceController") && this.deviceController && this._devices.connectDevices(this.deviceController);
|
|
16
|
+
}
|
|
17
|
+
disconnectedCallback() {
|
|
18
|
+
super.disconnectedCallback(), this._callState.disconnect(), this._devices.disconnect();
|
|
19
|
+
}
|
|
20
|
+
render() {
|
|
21
|
+
return p`<slot></slot>`;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
l.styles = v`:host { display: contents; }`;
|
|
25
|
+
n([
|
|
26
|
+
a({ attribute: !1 })
|
|
27
|
+
], l.prototype, "call", 2);
|
|
28
|
+
n([
|
|
29
|
+
a({ attribute: !1 })
|
|
30
|
+
], l.prototype, "deviceController", 2);
|
|
31
|
+
l = n([
|
|
32
|
+
h("sw-call-provider")
|
|
33
|
+
], l);
|
|
34
|
+
export {
|
|
35
|
+
l as SwCallProvider
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=sw-call-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-call-provider.js","sources":["../../src/components/sw-call-provider.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport type { Call, DeviceController } from '../types/index.js';\nimport { CallStateContextController } from '../context/CallStateContextController.js';\nimport { DevicesContextController } from '../context/DevicesContextController.js';\n\n/**\n * Context provider element that bridges an external `Call` and/or\n * `DeviceController` into Lit context so any descendant web component\n * (sw-call-media, sw-call-controls, sw-participants, etc.) receives live\n * state without manual property wiring.\n *\n * Usage:\n * ```html\n * <sw-call-provider id=\"provider\">\n * <sw-call-media></sw-call-media>\n * <sw-call-controls></sw-call-controls>\n * </sw-call-provider>\n * ```\n * ```js\n * provider.call = activeCall;\n * provider.deviceController = signalWireClient;\n * ```\n *\n * @prop {Call} call - Active call object\n * @prop {DeviceController} deviceController - Device controller for input/output device management\n *\n * @slot - Default slot. Descendants consume the provided contexts.\n */\n@customElement('sw-call-provider')\nexport class SwCallProvider extends LitElement {\n static styles = css`:host { display: contents; }`;\n\n @property({ attribute: false }) call: Call | undefined = undefined;\n @property({ attribute: false }) deviceController: DeviceController | undefined = undefined;\n\n private _callState = new CallStateContextController(this);\n private _devices = new DevicesContextController(this);\n\n protected updated(changed: Map<string, unknown>): void {\n super.updated(changed);\n\n if (changed.has('call')) {\n if (this.call) {\n this._callState.connect(this.call);\n this._devices.connectCall(this.call);\n } else {\n this._callState.disconnect();\n this._devices.disconnectCall();\n }\n }\n\n if (changed.has('deviceController') && this.deviceController) {\n this._devices.connectDevices(this.deviceController);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._callState.disconnect();\n this._devices.disconnect();\n }\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sw-call-provider': SwCallProvider;\n }\n}\n"],"names":["SwCallProvider","LitElement","CallStateContextController","DevicesContextController","changed","html","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;;AA8BO,IAAMA,IAAN,cAA6BC,EAAW;AAAA,EAAxC,cAAA;AAAA,UAAA,GAAA,SAAA,GAG2B,KAAA,OAAyB,QACzB,KAAA,mBAAiD,QAEjF,KAAQ,aAAa,IAAIC,EAA2B,IAAI,GACxD,KAAQ,WAAW,IAAIC,EAAyB,IAAI;AAAA,EAAA;AAAA,EAE1C,QAAQC,GAAqC;AACrD,UAAM,QAAQA,CAAO,GAEjBA,EAAQ,IAAI,MAAM,MAChB,KAAK,QACP,KAAK,WAAW,QAAQ,KAAK,IAAI,GACjC,KAAK,SAAS,YAAY,KAAK,IAAI,MAEnC,KAAK,WAAW,WAAA,GAChB,KAAK,SAAS,eAAA,KAIdA,EAAQ,IAAI,kBAAkB,KAAK,KAAK,oBAC1C,KAAK,SAAS,eAAe,KAAK,gBAAgB;AAAA,EAEtD;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA,GACN,KAAK,WAAW,WAAA,GAChB,KAAK,SAAS,WAAA;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,WAAOC;AAAA,EACT;AACF;AApCaL,EACJ,SAASM;AAEgBC,EAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAHnBR,EAGqB,WAAA,QAAA,CAAA;AACAO,EAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAJnBR,EAIqB,WAAA,oBAAA,CAAA;AAJrBA,IAANO,EAAA;AAAA,EADNE,EAAc,kBAAkB;AAAA,GACpBT,CAAA;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call Status Component
|
|
3
|
+
*
|
|
4
|
+
* Displays current call state with status text and duration timer.
|
|
5
|
+
*
|
|
6
|
+
* Input precedence (most specific wins): `.call` > context.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```html
|
|
10
|
+
* <!-- Inside a context provider: -->
|
|
11
|
+
* <sw-call-status></sw-call-status>
|
|
12
|
+
*
|
|
13
|
+
* <!-- Standalone with an explicit Call: -->
|
|
14
|
+
* <sw-call-status .call=${call}></sw-call-status>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @csspart container - Outer status container.
|
|
18
|
+
* @csspart status-text - Text label of the current status.
|
|
19
|
+
* @csspart duration - Elapsed-time label (only rendered when connected).
|
|
20
|
+
*/
|
|
21
|
+
import { LitElement } from 'lit';
|
|
22
|
+
import type { Call } from '../types/index.js';
|
|
23
|
+
export declare class SwCallStatus extends LitElement {
|
|
24
|
+
static styles: import("lit").CSSResult[];
|
|
25
|
+
/** Explicit Call — when set, subscribes directly to its observables and bypasses context. */
|
|
26
|
+
call?: Call;
|
|
27
|
+
private _callState?;
|
|
28
|
+
/** Status from a directly-subscribed `.call` — `null` when context is the source. */
|
|
29
|
+
private _directStatus;
|
|
30
|
+
private _callStartTime;
|
|
31
|
+
private _duration;
|
|
32
|
+
private _durationInterval;
|
|
33
|
+
private _prevStatus;
|
|
34
|
+
private _directSubscriptions;
|
|
35
|
+
private get _effectiveStatus();
|
|
36
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
37
|
+
disconnectedCallback(): void;
|
|
38
|
+
private _setupDirect;
|
|
39
|
+
private _teardownDirect;
|
|
40
|
+
private _startDurationTimer;
|
|
41
|
+
private _stopDurationTimer;
|
|
42
|
+
private getStatusText;
|
|
43
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
44
|
+
}
|
|
45
|
+
declare global {
|
|
46
|
+
interface HTMLElementTagNameMap {
|
|
47
|
+
'sw-call-status': SwCallStatus;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sw-call-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-call-status.d.ts","sourceRoot":"","sources":["../../src/components/sw-call-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAI9C,qBACa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,4BA4FR;IAEL,6FAA6F;IACjE,IAAI,CAAC,EAAE,IAAI,CAAC;IAIxC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,qFAAqF;IAC5E,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAU;IAEpC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,oBAAoB,CAAsB;IAElD,OAAO,KAAK,gBAAgB,GAE3B;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqBtD,oBAAoB;IAMpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,aAAa;IA8BrB,MAAM;CAgBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { LitElement as d, html as l, css as p } from "lit";
|
|
2
|
+
import { property as h, state as c, customElement as v } from "lit/decorators.js";
|
|
3
|
+
import { consume as _ } from "@lit/context";
|
|
4
|
+
import { callStateContext as f } from "../context/call-state-context.js";
|
|
5
|
+
import { hostReset as g } from "./UI/host-reset.js";
|
|
6
|
+
var m = Object.defineProperty, S = Object.getOwnPropertyDescriptor, n = (t, e, r, i) => {
|
|
7
|
+
for (var a = i > 1 ? void 0 : i ? S(e, r) : e, o = t.length - 1, u; o >= 0; o--)
|
|
8
|
+
(u = t[o]) && (a = (i ? u(e, r, a) : u(a)) || a);
|
|
9
|
+
return i && a && m(e, r, a), a;
|
|
10
|
+
};
|
|
11
|
+
let s = class extends d {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments), this._directStatus = null, this._callStartTime = null, this._duration = "0:00", this._durationInterval = null, this._prevStatus = "new", this._directSubscriptions = [];
|
|
14
|
+
}
|
|
15
|
+
get _effectiveStatus() {
|
|
16
|
+
var t;
|
|
17
|
+
return this.call ? this._directStatus ?? "new" : ((t = this._callState) == null ? void 0 : t.status) ?? "new";
|
|
18
|
+
}
|
|
19
|
+
updated(t) {
|
|
20
|
+
if (super.updated(t), t.has("call") && (this._teardownDirect(), this.call && this._setupDirect(this.call)), t.has("call") || t.has("_callState") || t.has("_directStatus")) {
|
|
21
|
+
const e = this._effectiveStatus;
|
|
22
|
+
e !== this._prevStatus && (e === "connected" && this._prevStatus !== "connected" ? this._startDurationTimer() : e !== "connected" && this._stopDurationTimer(), this._prevStatus = e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
disconnectedCallback() {
|
|
26
|
+
super.disconnectedCallback(), this._stopDurationTimer(), this._teardownDirect();
|
|
27
|
+
}
|
|
28
|
+
_setupDirect(t) {
|
|
29
|
+
this._directSubscriptions.push(
|
|
30
|
+
t.status$.subscribe((e) => {
|
|
31
|
+
this._directStatus = e;
|
|
32
|
+
})
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
_teardownDirect() {
|
|
36
|
+
this._directSubscriptions.forEach((t) => t.unsubscribe()), this._directSubscriptions = [], this._directStatus = null;
|
|
37
|
+
}
|
|
38
|
+
_startDurationTimer() {
|
|
39
|
+
this._callStartTime = Date.now(), this._duration = "0:00", this._durationInterval = window.setInterval(() => {
|
|
40
|
+
if (this._callStartTime) {
|
|
41
|
+
const t = Math.floor((Date.now() - this._callStartTime) / 1e3), e = Math.floor(t / 3600), r = Math.floor(t % 3600 / 60), i = t % 60;
|
|
42
|
+
this._duration = e > 0 ? `${e}:${r.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}` : `${r}:${i.toString().padStart(2, "0")}`;
|
|
43
|
+
}
|
|
44
|
+
}, 1e3);
|
|
45
|
+
}
|
|
46
|
+
_stopDurationTimer() {
|
|
47
|
+
this._durationInterval && (clearInterval(this._durationInterval), this._durationInterval = null), this._callStartTime = null, this._duration = "0:00";
|
|
48
|
+
}
|
|
49
|
+
getStatusText() {
|
|
50
|
+
const t = this._effectiveStatus;
|
|
51
|
+
switch (t) {
|
|
52
|
+
case "new":
|
|
53
|
+
return "Ready";
|
|
54
|
+
case "trying":
|
|
55
|
+
return "Trying...";
|
|
56
|
+
case "connecting":
|
|
57
|
+
return "Connecting...";
|
|
58
|
+
case "ringing":
|
|
59
|
+
return "Ringing...";
|
|
60
|
+
case "connected":
|
|
61
|
+
return "Connected";
|
|
62
|
+
case "recovering":
|
|
63
|
+
return "Reconnecting...";
|
|
64
|
+
case "disconnecting":
|
|
65
|
+
return "Disconnecting...";
|
|
66
|
+
case "disconnected":
|
|
67
|
+
return "Disconnected";
|
|
68
|
+
case "failed":
|
|
69
|
+
return "Failed";
|
|
70
|
+
case "destroyed":
|
|
71
|
+
return "Ended";
|
|
72
|
+
default:
|
|
73
|
+
return String(t);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
render() {
|
|
77
|
+
const t = this._effectiveStatus, e = this.getStatusText();
|
|
78
|
+
return l`
|
|
79
|
+
<div class="container" part="container">
|
|
80
|
+
<span class="status-indicator ${t}" aria-hidden="true"></span>
|
|
81
|
+
<span class="status-text ${t}" part="status-text" role="status" aria-live="polite">
|
|
82
|
+
${e}
|
|
83
|
+
</span>
|
|
84
|
+
${t === "connected" ? l`<span class="duration" part="duration">${this._duration}</span>` : null}
|
|
85
|
+
</div>
|
|
86
|
+
`;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
s.styles = [g, p`
|
|
90
|
+
:host {
|
|
91
|
+
display: inline-flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
gap: 8px;
|
|
94
|
+
font-family: var(--type-family-body);
|
|
95
|
+
font-size: var(--type-size-small);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.container {
|
|
99
|
+
display: inline-flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: 8px;
|
|
102
|
+
padding: 8px 12px;
|
|
103
|
+
border-radius: var(--radius-md);
|
|
104
|
+
color: var(--fg-default);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.status-indicator {
|
|
108
|
+
width: 10px;
|
|
109
|
+
height: 10px;
|
|
110
|
+
border-radius: 50%;
|
|
111
|
+
flex-shrink: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.status-indicator.new {
|
|
115
|
+
background-color: var(--bg-surface-raised);
|
|
116
|
+
}
|
|
117
|
+
.status-indicator.connecting,
|
|
118
|
+
.status-indicator.ringing,
|
|
119
|
+
.status-indicator.trying,
|
|
120
|
+
.status-indicator.recovering {
|
|
121
|
+
background-color: var(--interactive-status-warning);
|
|
122
|
+
animation: pulse 1.5s ease-in-out infinite;
|
|
123
|
+
}
|
|
124
|
+
.status-indicator.connected {
|
|
125
|
+
background-color: var(--interactive-status-success);
|
|
126
|
+
}
|
|
127
|
+
.status-indicator.disconnecting {
|
|
128
|
+
background-color: var(--interactive-button-destructive-bg);
|
|
129
|
+
animation: pulse 1s ease-in-out infinite;
|
|
130
|
+
}
|
|
131
|
+
.status-indicator.disconnected,
|
|
132
|
+
.status-indicator.failed {
|
|
133
|
+
background-color: var(--interactive-button-destructive-bg);
|
|
134
|
+
}
|
|
135
|
+
.status-indicator.destroyed {
|
|
136
|
+
background-color: var(--bg-surface-raised);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@keyframes pulse {
|
|
140
|
+
0%,
|
|
141
|
+
100% {
|
|
142
|
+
opacity: 1;
|
|
143
|
+
transform: scale(1);
|
|
144
|
+
}
|
|
145
|
+
50% {
|
|
146
|
+
opacity: 0.5;
|
|
147
|
+
transform: scale(1.1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.status-text {
|
|
152
|
+
font-weight: 500;
|
|
153
|
+
white-space: nowrap;
|
|
154
|
+
}
|
|
155
|
+
.status-text.trying,
|
|
156
|
+
.status-text.connecting,
|
|
157
|
+
.status-text.ringing,
|
|
158
|
+
.status-text.recovering {
|
|
159
|
+
color: var(--interactive-status-warning);
|
|
160
|
+
}
|
|
161
|
+
.status-text.disconnecting {
|
|
162
|
+
color: var(--interactive-button-destructive-bg);
|
|
163
|
+
}
|
|
164
|
+
.status-text.connected {
|
|
165
|
+
color: var(--interactive-status-success);
|
|
166
|
+
}
|
|
167
|
+
.status-text.disconnected,
|
|
168
|
+
.status-text.failed {
|
|
169
|
+
color: var(--interactive-button-destructive-bg);
|
|
170
|
+
}
|
|
171
|
+
.status-text.new,
|
|
172
|
+
.status-text.destroyed {
|
|
173
|
+
color: var(--bg-surface-raised);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.duration {
|
|
177
|
+
font-variant-numeric: tabular-nums;
|
|
178
|
+
opacity: 0.6;
|
|
179
|
+
font-size: 0.85em;
|
|
180
|
+
}
|
|
181
|
+
`];
|
|
182
|
+
n([
|
|
183
|
+
h({ type: Object })
|
|
184
|
+
], s.prototype, "call", 2);
|
|
185
|
+
n([
|
|
186
|
+
_({ context: f, subscribe: !0 }),
|
|
187
|
+
c()
|
|
188
|
+
], s.prototype, "_callState", 2);
|
|
189
|
+
n([
|
|
190
|
+
c()
|
|
191
|
+
], s.prototype, "_directStatus", 2);
|
|
192
|
+
n([
|
|
193
|
+
c()
|
|
194
|
+
], s.prototype, "_callStartTime", 2);
|
|
195
|
+
n([
|
|
196
|
+
c()
|
|
197
|
+
], s.prototype, "_duration", 2);
|
|
198
|
+
s = n([
|
|
199
|
+
v("sw-call-status")
|
|
200
|
+
], s);
|
|
201
|
+
export {
|
|
202
|
+
s as SwCallStatus
|
|
203
|
+
};
|
|
204
|
+
//# sourceMappingURL=sw-call-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-call-status.js","sources":["../../src/components/sw-call-status.ts"],"sourcesContent":["/**\n * Call Status Component\n *\n * Displays current call state with status text and duration timer.\n *\n * Input precedence (most specific wins): `.call` > context.\n *\n * @example\n * ```html\n * <!-- Inside a context provider: -->\n * <sw-call-status></sw-call-status>\n *\n * <!-- Standalone with an explicit Call: -->\n * <sw-call-status .call=${call}></sw-call-status>\n * ```\n *\n * @csspart container - Outer status container.\n * @csspart status-text - Text label of the current status.\n * @csspart duration - Elapsed-time label (only rendered when connected).\n */\n\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { consume } from '@lit/context';\nimport { Subscription } from 'rxjs';\nimport type { CallStatus } from '@signalwire/js';\nimport type { Call } from '../types/index.js';\nimport { callStateContext, type CallState } from '../context/call-state-context.js';\nimport { hostReset } from './UI/host-reset.js';\n\n@customElement('sw-call-status')\nexport class SwCallStatus extends LitElement {\n static styles = [hostReset, css`\n :host {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n font-family: var(--type-family-body);\n font-size: var(--type-size-small);\n }\n\n .container {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: var(--radius-md);\n color: var(--fg-default);\n }\n\n .status-indicator {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.new {\n background-color: var(--bg-surface-raised);\n }\n .status-indicator.connecting,\n .status-indicator.ringing,\n .status-indicator.trying,\n .status-indicator.recovering {\n background-color: var(--interactive-status-warning);\n animation: pulse 1.5s ease-in-out infinite;\n }\n .status-indicator.connected {\n background-color: var(--interactive-status-success);\n }\n .status-indicator.disconnecting {\n background-color: var(--interactive-button-destructive-bg);\n animation: pulse 1s ease-in-out infinite;\n }\n .status-indicator.disconnected,\n .status-indicator.failed {\n background-color: var(--interactive-button-destructive-bg);\n }\n .status-indicator.destroyed {\n background-color: var(--bg-surface-raised);\n }\n\n @keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n 50% {\n opacity: 0.5;\n transform: scale(1.1);\n }\n }\n\n .status-text {\n font-weight: 500;\n white-space: nowrap;\n }\n .status-text.trying,\n .status-text.connecting,\n .status-text.ringing,\n .status-text.recovering {\n color: var(--interactive-status-warning);\n }\n .status-text.disconnecting {\n color: var(--interactive-button-destructive-bg);\n }\n .status-text.connected {\n color: var(--interactive-status-success);\n }\n .status-text.disconnected,\n .status-text.failed {\n color: var(--interactive-button-destructive-bg);\n }\n .status-text.new,\n .status-text.destroyed {\n color: var(--bg-surface-raised);\n }\n\n .duration {\n font-variant-numeric: tabular-nums;\n opacity: 0.6;\n font-size: 0.85em;\n }\n `];\n\n /** Explicit Call — when set, subscribes directly to its observables and bypasses context. */\n @property({ type: Object }) call?: Call;\n\n @consume({ context: callStateContext, subscribe: true })\n @state()\n private _callState?: CallState;\n\n /** Status from a directly-subscribed `.call` — `null` when context is the source. */\n @state() private _directStatus: CallStatus | null = null;\n\n @state() private _callStartTime: number | null = null;\n @state() private _duration = '0:00';\n\n private _durationInterval: number | null = null;\n private _prevStatus: CallStatus = 'new';\n private _directSubscriptions: Subscription[] = [];\n\n private get _effectiveStatus(): CallStatus {\n return this.call ? this._directStatus ?? 'new' : this._callState?.status ?? 'new';\n }\n\n protected updated(changed: Map<string, unknown>): void {\n super.updated(changed);\n\n if (changed.has('call')) {\n this._teardownDirect();\n if (this.call) this._setupDirect(this.call);\n }\n\n if (changed.has('call') || changed.has('_callState') || changed.has('_directStatus')) {\n const status = this._effectiveStatus;\n if (status !== this._prevStatus) {\n if (status === 'connected' && this._prevStatus !== 'connected') {\n this._startDurationTimer();\n } else if (status !== 'connected') {\n this._stopDurationTimer();\n }\n this._prevStatus = status;\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._stopDurationTimer();\n this._teardownDirect();\n }\n\n private _setupDirect(call: Call): void {\n this._directSubscriptions.push(\n call.status$.subscribe((s) => {\n this._directStatus = s;\n })\n );\n }\n\n private _teardownDirect(): void {\n this._directSubscriptions.forEach((s) => s.unsubscribe());\n this._directSubscriptions = [];\n this._directStatus = null;\n }\n\n private _startDurationTimer(): void {\n this._callStartTime = Date.now();\n this._duration = '0:00';\n this._durationInterval = window.setInterval(() => {\n if (this._callStartTime) {\n const elapsed = Math.floor((Date.now() - this._callStartTime) / 1000);\n const hours = Math.floor(elapsed / 3600);\n const minutes = Math.floor((elapsed % 3600) / 60);\n const secs = elapsed % 60;\n this._duration =\n hours > 0\n ? `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`\n : `${minutes}:${secs.toString().padStart(2, '0')}`;\n }\n }, 1000);\n }\n\n private _stopDurationTimer(): void {\n if (this._durationInterval) {\n clearInterval(this._durationInterval);\n this._durationInterval = null;\n }\n this._callStartTime = null;\n this._duration = '0:00';\n }\n\n private getStatusText(): string {\n const status = this._effectiveStatus;\n switch (status) {\n case 'new':\n return 'Ready';\n case 'trying':\n return 'Trying...';\n case 'connecting':\n return 'Connecting...';\n case 'ringing':\n return 'Ringing...';\n case 'connected':\n return 'Connected';\n case 'recovering':\n return 'Reconnecting...';\n case 'disconnecting':\n return 'Disconnecting...';\n case 'disconnected':\n return 'Disconnected';\n case 'failed':\n return 'Failed';\n case 'destroyed':\n return 'Ended';\n default: {\n const _exhaustive: never = status;\n return String(_exhaustive);\n }\n }\n }\n\n render() {\n const status = this._effectiveStatus;\n const statusText = this.getStatusText();\n\n return html`\n <div class=\"container\" part=\"container\">\n <span class=\"status-indicator ${status}\" aria-hidden=\"true\"></span>\n <span class=\"status-text ${status}\" part=\"status-text\" role=\"status\" aria-live=\"polite\">\n ${statusText}\n </span>\n ${status === 'connected'\n ? html`<span class=\"duration\" part=\"duration\">${this._duration}</span>`\n : null}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sw-call-status': SwCallStatus;\n }\n}\n"],"names":["SwCallStatus","LitElement","_a","changed","status","call","s","elapsed","hours","minutes","secs","statusText","html","hostReset","css","__decorateClass","property","consume","callStateContext","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { StaticCredentialProvider, EmbedTokenCredentialProvider } from '@signalwire/js';
|
|
2
|
+
export declare const DEFAULT_EMBED_HOST = "embeds.signalwire.com";
|
|
3
|
+
export declare function normalizeHost(h: string): string;
|
|
4
|
+
export declare function isEmbedToken(t: string): boolean;
|
|
5
|
+
export declare function buildCredentialProvider(token: string, host: string): EmbedTokenCredentialProvider | StaticCredentialProvider;
|
|
6
|
+
//# sourceMappingURL=client-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../../../src/components/sw-call-widget/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2DAQlE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EmbedTokenCredentialProvider as t, StaticCredentialProvider as n } from "@signalwire/js";
|
|
2
|
+
const i = ["c2c_", "c2t_"], o = "embeds.signalwire.com";
|
|
3
|
+
function c(r) {
|
|
4
|
+
try {
|
|
5
|
+
return new URL(r.includes("://") ? r : `https://${r}`).hostname;
|
|
6
|
+
} catch {
|
|
7
|
+
return r;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function s(r) {
|
|
11
|
+
return i.some((e) => r.startsWith(e));
|
|
12
|
+
}
|
|
13
|
+
function d(r, e) {
|
|
14
|
+
return s(r) ? new t(
|
|
15
|
+
c(e || o),
|
|
16
|
+
r
|
|
17
|
+
) : new n({ token: r });
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
o as DEFAULT_EMBED_HOST,
|
|
21
|
+
d as buildCredentialProvider,
|
|
22
|
+
s as isEmbedToken,
|
|
23
|
+
c as normalizeHost
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.js","sources":["../../../src/components/sw-call-widget/client-factory.ts"],"sourcesContent":["import {\n StaticCredentialProvider,\n EmbedTokenCredentialProvider,\n} from '@signalwire/js';\n\nconst EMBED_TOKEN_PREFIXES = ['c2c_', 'c2t_'] as const;\nexport const DEFAULT_EMBED_HOST = 'embeds.signalwire.com';\n\nexport function normalizeHost(h: string): string {\n try {\n const url = new URL(h.includes('://') ? h : `https://${h}`);\n return url.hostname;\n } catch {\n return h;\n }\n}\n\nexport function isEmbedToken(t: string): boolean {\n return EMBED_TOKEN_PREFIXES.some((p) => t.startsWith(p));\n}\n\nexport function buildCredentialProvider(token: string, host: string) {\n if (isEmbedToken(token)) {\n return new EmbedTokenCredentialProvider(\n normalizeHost(host || DEFAULT_EMBED_HOST),\n token,\n );\n }\n return new StaticCredentialProvider({ token });\n}\n"],"names":["EMBED_TOKEN_PREFIXES","DEFAULT_EMBED_HOST","normalizeHost","h","isEmbedToken","t","p","buildCredentialProvider","token","host","EmbedTokenCredentialProvider","StaticCredentialProvider"],"mappings":";AAKA,MAAMA,IAAuB,CAAC,QAAQ,MAAM,GAC/BC,IAAqB;AAE3B,SAASC,EAAcC,GAAmB;AAC/C,MAAI;AAEF,WADY,IAAI,IAAIA,EAAE,SAAS,KAAK,IAAIA,IAAI,WAAWA,CAAC,EAAE,EAC/C;AAAA,EACb,QAAQ;AACN,WAAOA;AAAA,EACT;AACF;AAEO,SAASC,EAAaC,GAAoB;AAC/C,SAAOL,EAAqB,KAAK,CAACM,MAAMD,EAAE,WAAWC,CAAC,CAAC;AACzD;AAEO,SAASC,EAAwBC,GAAeC,GAAc;AACnE,SAAIL,EAAaI,CAAK,IACb,IAAIE;AAAA,IACTR,EAAcO,KAAQR,CAAkB;AAAA,IACxCO;AAAA,EAAA,IAGG,IAAIG,EAAyB,EAAE,OAAAH,GAAO;AAC/C;"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../sw-call-media.js';
|
|
3
|
+
import '../sw-local-camera.js';
|
|
4
|
+
import '../sw-call-controls.js';
|
|
5
|
+
import '../UI/layout/sw-ui-call-layout.js';
|
|
6
|
+
import '../UI/layout/sw-ui-responsive-container.js';
|
|
7
|
+
import '../UI/layout/sw-ui-modal.js';
|
|
8
|
+
import '../UI/layout/sw-ui-background.js';
|
|
9
|
+
import '../UI/layout/sw-ui-content-drawer.js';
|
|
10
|
+
import '../UI/sw-ui-transcript-view.js';
|
|
11
|
+
/**
|
|
12
|
+
* All-in-one call widget. Handles client initialisation, dialling, media,
|
|
13
|
+
* controls and optional AI transcript — in either inline or modal modes.
|
|
14
|
+
*
|
|
15
|
+
* Composes `sw-ui-call-layout`, `sw-call-media`, `sw-local-camera`,
|
|
16
|
+
* `sw-call-controls`, and `sw-ui-transcript-view` under the hood.
|
|
17
|
+
* All child components are wired via Lit context — no manual plumbing needed.
|
|
18
|
+
*
|
|
19
|
+
* @prop {string} token - SignalWire SAT or embed token
|
|
20
|
+
* @prop {string} host - Optional server host
|
|
21
|
+
* @prop {string} destination - Call destination (address or resource)
|
|
22
|
+
* @prop {boolean} modal - Render in a `<sw-ui-modal>` overlay
|
|
23
|
+
* @prop {boolean} transcription - Show AI transcript panel
|
|
24
|
+
*
|
|
25
|
+
* @slot background - Background element (e.g. `<sw-ui-background default>`)
|
|
26
|
+
* @slot (default) - Trigger element (click to dial, shown when idle)
|
|
27
|
+
*
|
|
28
|
+
* @fires sw-dial - When `dial()` is invoked. Detail: `{ destination }`.
|
|
29
|
+
* @fires sw-call-ended - When the call reaches a terminal state (user hangup, remote disconnect, or failure). Detail: `{ status }`.
|
|
30
|
+
* @fires sw-display-content - From `display_content` user event. Detail: `DisplayContentPayload`.
|
|
31
|
+
* @fires signalwire-address:event - Forwarded SignalWire custom user events.
|
|
32
|
+
*
|
|
33
|
+
* All inner events bubble.
|
|
34
|
+
*
|
|
35
|
+
* @method dial() - Initiate call
|
|
36
|
+
* @method hangup() - End active call
|
|
37
|
+
*/
|
|
38
|
+
export declare class SwCallWidget extends LitElement {
|
|
39
|
+
static styles: import("lit").CSSResult[];
|
|
40
|
+
token: string;
|
|
41
|
+
host: string;
|
|
42
|
+
destination: string;
|
|
43
|
+
modal: boolean;
|
|
44
|
+
transcription: boolean;
|
|
45
|
+
allowIncomingCalls: boolean;
|
|
46
|
+
audioOnly: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Custom variables sent with the Verto invite as a JSON object.
|
|
49
|
+
*
|
|
50
|
+
* The widget always advertises `capabilities.display_content` and
|
|
51
|
+
* `metadata.widget.opened_at` so the agent can detect that the caller
|
|
52
|
+
* supports the content drawer; user-supplied keys are merged in and win
|
|
53
|
+
* on shallow conflict.
|
|
54
|
+
*
|
|
55
|
+
* Invalid JSON is logged and ignored — the call still dials.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* <sw-call-widget user-variables='{"customer_id": "abc-123"}'></sw-call-widget>
|
|
59
|
+
*/
|
|
60
|
+
userVariables: string;
|
|
61
|
+
/**
|
|
62
|
+
* Skip auto-injecting the SignalWire `theme.css` design-token stylesheet.
|
|
63
|
+
* Set this when the host page already loads `@signalwire/web-components/theme.css`
|
|
64
|
+
* or a custom theme written against the same DTCG token names.
|
|
65
|
+
*/
|
|
66
|
+
disableAutoTheme: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Skip auto-loading the SignalWire brand fonts (Lexend, Instrument Sans,
|
|
69
|
+
* JetBrains Mono) from Google Fonts. Set this when fonts are self-hosted
|
|
70
|
+
* or loaded elsewhere.
|
|
71
|
+
*/
|
|
72
|
+
disableAutoFonts: boolean;
|
|
73
|
+
private _call;
|
|
74
|
+
private _connecting;
|
|
75
|
+
private _hasLayoutLayers;
|
|
76
|
+
private _drawer;
|
|
77
|
+
private _callState;
|
|
78
|
+
private _devices;
|
|
79
|
+
private _transcript;
|
|
80
|
+
private _userEventCtrl;
|
|
81
|
+
private _incomingCalls;
|
|
82
|
+
private _client;
|
|
83
|
+
private _subs;
|
|
84
|
+
private _pendingIncoming;
|
|
85
|
+
connectedCallback(): void;
|
|
86
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
87
|
+
disconnectedCallback(): void;
|
|
88
|
+
private _destroyClient;
|
|
89
|
+
private _refreshClient;
|
|
90
|
+
dial(): Promise<void>;
|
|
91
|
+
hangup(): Promise<void>;
|
|
92
|
+
private _connectIncomingCalls;
|
|
93
|
+
private _handleIncomingCall;
|
|
94
|
+
private _wireCall;
|
|
95
|
+
private _onDisplayContent;
|
|
96
|
+
private _onDrawerClose;
|
|
97
|
+
private _unwireCall;
|
|
98
|
+
private _onSlotChange;
|
|
99
|
+
private _onHangUp;
|
|
100
|
+
private _onModalClose;
|
|
101
|
+
private _onFullscreenToggle;
|
|
102
|
+
private _onTranscriptToggle;
|
|
103
|
+
render(): import("lit-html").TemplateResult;
|
|
104
|
+
}
|
|
105
|
+
declare global {
|
|
106
|
+
interface HTMLElementTagNameMap {
|
|
107
|
+
'sw-call-widget': SwCallWidget;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=sw-call-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-call-widget.d.ts","sourceRoot":"","sources":["../../../src/components/sw-call-widget/sw-call-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAchD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,wBAAwB,CAAC;AAChC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4CAA4C,CAAC;AACpD,OAAO,6BAA6B,CAAC;AACrC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,gCAAgC,CAAC;AAkBxC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,4BAA6B;IAId,KAAK,SAAM;IACX,IAAI,SAAM;IACV,WAAW,SAAM;IACD,KAAK,UAAS;IACd,aAAa,UAAS;IACa,kBAAkB,UAAS;IACrC,SAAS,UAAS;IAEvF;;;;;;;;;;;;OAYG;IACsD,aAAa,SAAM;IAE5E;;;;OAIG;IAC0E,gBAAgB,UAAS;IAEtG;;;;OAIG;IAC0E,gBAAgB,UAAS;IAI7F,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAsC;IAI9D,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,WAAW,CAAwD;IAC3E,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,cAAc,CAAoC;IAI1D,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,gBAAgB,CAAS;IAIjC,iBAAiB,IAAI,IAAI;IAMzB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAsBtD,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,cAAc;IAoBhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ7B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,mBAAmB,CAyBzB;IAIF,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,iBAAiB,CASvB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa,CAYnB;IAEF,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAM3B,MAAM;CAgCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|