@signalwire/web-components 1.0.0-dev-20260428141127 → 1.0.0-dev-20260428183200
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 +45 -52
- 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 +57 -0
- package/dist/components/UI/controls/sw-ui-dialpad.d.ts.map +1 -0
- package/dist/components/UI/controls/sw-ui-dialpad.js +319 -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 +137 -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 +177 -0
- package/dist/components/UI/controls/sw-ui-split-button.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 +126 -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 +341 -0
- package/dist/components/UI/sw-ui-transcript-view.js.map +1 -0
- package/dist/components/directory.d.ts +10 -18
- package/dist/components/directory.d.ts.map +1 -1
- package/dist/components/directory.js +129 -198
- package/dist/components/directory.js.map +1 -1
- package/dist/embed/signalwire-web-components-embed.iife.js +2336 -982
- package/dist/embed/signalwire-web-components-embed.iife.js.map +1 -1
- package/dist/embed/signalwire-web-components-embed.umd.cjs +2336 -982
- package/dist/embed/signalwire-web-components-embed.umd.cjs.map +1 -1
- package/dist/embed.d.ts +1 -1
- package/dist/embed.d.ts.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -33
- 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 +3 -3
- 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/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/package.json +53 -9
- package/dist/components/dialpad.d.ts +0 -74
- 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/example-button.d.ts +0 -21
- 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
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const c = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
2
|
+
<path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>
|
|
3
|
+
</svg>
|
|
4
|
+
`;
|
|
5
|
+
export {
|
|
6
|
+
c as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=settings.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.svg.js","sources":["../../../../src/components/UI/icons/settings.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\\\"/>\\n</svg>\\n\""],"names":["settings"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const l = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
2
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/>
|
|
3
|
+
</svg>
|
|
4
|
+
`;
|
|
5
|
+
export {
|
|
6
|
+
l as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=speaker-off.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speaker-off.svg.js","sources":["../../../../src/components/UI/icons/speaker-off.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\\\"/>\\n</svg>\\n\""],"names":["speakerOff"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const s = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
2
|
+
<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/>
|
|
3
|
+
</svg>
|
|
4
|
+
`;
|
|
5
|
+
export {
|
|
6
|
+
s as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=speaker-on.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speaker-on.svg.js","sources":["../../../../src/components/UI/icons/speaker-on.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\\\"/>\\n</svg>\\n\""],"names":["speakerOn"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const t = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
|
|
2
|
+
<circle cx="12" cy="12" r="10" stroke="rgba(255,255,255,0.15)" stroke-width="2.5"/>
|
|
3
|
+
<path d="M12 2a10 10 0 0 1 10 10" stroke="white" stroke-width="2.5" stroke-linecap="round"/>
|
|
4
|
+
</svg>
|
|
5
|
+
`;
|
|
6
|
+
export {
|
|
7
|
+
t as default
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=spinner.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.svg.js","sources":["../../../../src/components/UI/icons/spinner.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\">\\n <circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\" stroke=\\\"rgba(255,255,255,0.15)\\\" stroke-width=\\\"2.5\\\"/>\\n <path d=\\\"M12 2a10 10 0 0 1 10 10\\\" stroke=\\\"white\\\" stroke-width=\\\"2.5\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\\n\""],"names":["spinner"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const c = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="96 354 338 374" fill="currentColor">
|
|
2
|
+
<path d="M105.97,489.32c0.16-5.21,2.93-11.81,8.36-17.24c33.26-33.18,66.56-66.33,99.8-99.53c6.92-6.91,15.08-10.45,24.83-9.06c11.55,1.65,19.62,8.12,23.38,19.22c3.77,11.12,1.16,21.14-7.02,29.43c-15.91,16.14-31.97,32.12-48.04,48.1c-17.48,17.38-34.98,34.74-52.58,52c-8.93,8.76-20.84,10.92-31.8,6.13C112.3,513.73,105.78,503.52,105.97,489.32z"/>
|
|
3
|
+
<path d="M128.81,527.07c3.79-0.17,6.91-0.08,9.97-0.49c8.02-1.06,14.88-4.54,20.56-10.34c6.38-6.52,12.79-13,19.33-19.66c1.23,1.09,1.98,1.7,2.66,2.38c24.61,24.6,49.24,49.19,73.81,73.83c8.07,8.1,10.9,17.87,7.66,28.86c-3.12,10.58-10.39,17.35-21.17,19.77c-9.33,2.1-18.23,0.31-25.07-6.47C187.38,586.02,158.45,556.8,128.81,527.07z"/>
|
|
4
|
+
<path d="M401.7,562.4c-15.03-1.53-25.7,4.26-34.72,14.22c-4.89,5.4-10.23,10.39-15.51,15.69c-1.1-0.98-1.86-1.59-2.56-2.28c-24.63-24.62-49.29-49.21-73.86-73.89c-8.07-8.1-10.89-17.89-7.56-28.89c3.19-10.56,10.47-17.31,21.28-19.68c9.56-2.1,18.45,0,25.44,6.92c28.65,28.38,57.1,56.96,85.61,85.47C400.25,560.39,400.57,560.92,401.7,562.4z"/>
|
|
5
|
+
<path d="M424.3,594.33c0.03,10.31-2.8,17.06-8.37,22.62c-33.38,33.3-66.75,66.6-100.19,99.85c-11.62,11.55-28.55,12.12-40.06,1.56c-12.12-11.13-12.6-29.39-0.75-41.47c15.05-15.34,30.32-30.47,45.56-45.63c18.31-18.2,36.65-36.36,55.06-54.45c8.91-8.75,20.84-11.07,31.77-6.1C418.43,575.74,423.92,584.63,424.3,594.33z"/>
|
|
6
|
+
</svg>
|
|
7
|
+
`;
|
|
8
|
+
export {
|
|
9
|
+
c as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=sw-logo.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-logo.svg.js","sources":["../../../../src/components/UI/icons/sw-logo.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"96 354 338 374\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M105.97,489.32c0.16-5.21,2.93-11.81,8.36-17.24c33.26-33.18,66.56-66.33,99.8-99.53c6.92-6.91,15.08-10.45,24.83-9.06c11.55,1.65,19.62,8.12,23.38,19.22c3.77,11.12,1.16,21.14-7.02,29.43c-15.91,16.14-31.97,32.12-48.04,48.1c-17.48,17.38-34.98,34.74-52.58,52c-8.93,8.76-20.84,10.92-31.8,6.13C112.3,513.73,105.78,503.52,105.97,489.32z\\\"/>\\n <path d=\\\"M128.81,527.07c3.79-0.17,6.91-0.08,9.97-0.49c8.02-1.06,14.88-4.54,20.56-10.34c6.38-6.52,12.79-13,19.33-19.66c1.23,1.09,1.98,1.7,2.66,2.38c24.61,24.6,49.24,49.19,73.81,73.83c8.07,8.1,10.9,17.87,7.66,28.86c-3.12,10.58-10.39,17.35-21.17,19.77c-9.33,2.1-18.23,0.31-25.07-6.47C187.38,586.02,158.45,556.8,128.81,527.07z\\\"/>\\n <path d=\\\"M401.7,562.4c-15.03-1.53-25.7,4.26-34.72,14.22c-4.89,5.4-10.23,10.39-15.51,15.69c-1.1-0.98-1.86-1.59-2.56-2.28c-24.63-24.62-49.29-49.21-73.86-73.89c-8.07-8.1-10.89-17.89-7.56-28.89c3.19-10.56,10.47-17.31,21.28-19.68c9.56-2.1,18.45,0,25.44,6.92c28.65,28.38,57.1,56.96,85.61,85.47C400.25,560.39,400.57,560.92,401.7,562.4z\\\"/>\\n <path d=\\\"M424.3,594.33c0.03,10.31-2.8,17.06-8.37,22.62c-33.38,33.3-66.75,66.6-100.19,99.85c-11.62,11.55-28.55,12.12-40.06,1.56c-12.12-11.13-12.6-29.39-0.75-41.47c15.05-15.34,30.32-30.47,45.56-45.63c18.31-18.2,36.65-36.36,55.06-54.45c8.91-8.75,20.84-11.07,31.77-6.1C418.43,575.74,423.92,584.63,424.3,594.33z\\\"/>\\n</svg>\\n\""],"names":["swLogo"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { IconName } from './icons';
|
|
3
|
+
/**
|
|
4
|
+
* Inline SVG icon component. All SVG raw imports are isolated inside the icons folder.
|
|
5
|
+
*
|
|
6
|
+
* @attr name - Icon name (e.g. "mic-on", "camera-off"). See IconName for all values.
|
|
7
|
+
* @attr size - Size in pixels applied as width and height on the SVG (default: 24).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <sw-ui-icon name="mic-on"></sw-ui-icon>
|
|
11
|
+
* <sw-ui-icon name="phone-end" size="32"></sw-ui-icon>
|
|
12
|
+
* <sw-ui-icon name="settings" slot="icon"></sw-ui-icon>
|
|
13
|
+
*
|
|
14
|
+
* The inline SVG inherits `color` from the host (use `currentColor` in
|
|
15
|
+
* stylesheets). Sizing is controlled via the `size` attribute, not CSS parts.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SwUiIcon extends LitElement {
|
|
18
|
+
static styles: import("lit").CSSResult;
|
|
19
|
+
name: IconName;
|
|
20
|
+
size: number;
|
|
21
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
'sw-ui-icon': SwUiIcon;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=sw-ui-icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-ui-icon.d.ts","sourceRoot":"","sources":["../../../../src/components/UI/icons/sw-ui-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC;;;;;;;;;;;;;GAaG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAWX;IAE2B,IAAI,EAAE,QAAQ,CAAW;IAC1B,IAAI,EAAE,MAAM,CAAgB;IAExD,MAAM;CAWP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,QAAQ,CAAC;KACxB;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { LitElement as f, html as l, css as h } from "lit";
|
|
2
|
+
import { property as m, customElement as u } from "lit/decorators.js";
|
|
3
|
+
import { unsafeHTML as a } from "lit/directives/unsafe-html.js";
|
|
4
|
+
import { ICONS as v } from "./icons.js";
|
|
5
|
+
var y = Object.defineProperty, g = Object.getOwnPropertyDescriptor, c = (r, t, o, i) => {
|
|
6
|
+
for (var e = i > 1 ? void 0 : i ? g(t, o) : t, n = r.length - 1, p; n >= 0; n--)
|
|
7
|
+
(p = r[n]) && (e = (i ? p(t, o, e) : p(e)) || e);
|
|
8
|
+
return i && e && y(t, o, e), e;
|
|
9
|
+
};
|
|
10
|
+
const _ = 24;
|
|
11
|
+
let s = class extends f {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments), this.name = "close", this.size = _;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
const r = v[this.name];
|
|
17
|
+
if (!r)
|
|
18
|
+
return l``;
|
|
19
|
+
const t = r.replace("<svg", `<svg width="${this.size}" height="${this.size}"`);
|
|
20
|
+
return l`${a(t)}`;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
s.styles = h`
|
|
24
|
+
:host {
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
line-height: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
svg {
|
|
32
|
+
display: block;
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
c([
|
|
36
|
+
m({ reflect: !0 })
|
|
37
|
+
], s.prototype, "name", 2);
|
|
38
|
+
c([
|
|
39
|
+
m({ type: Number })
|
|
40
|
+
], s.prototype, "size", 2);
|
|
41
|
+
s = c([
|
|
42
|
+
u("sw-ui-icon")
|
|
43
|
+
], s);
|
|
44
|
+
export {
|
|
45
|
+
s as SwUiIcon
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=sw-ui-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-ui-icon.js","sources":["../../../../src/components/UI/icons/sw-ui-icon.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { ICONS } from './icons';\nimport type { IconName } from './icons';\n\nconst DEFAULT_SIZE = 24;\n\n/**\n * Inline SVG icon component. All SVG raw imports are isolated inside the icons folder.\n *\n * @attr name - Icon name (e.g. \"mic-on\", \"camera-off\"). See IconName for all values.\n * @attr size - Size in pixels applied as width and height on the SVG (default: 24).\n *\n * @example\n * <sw-ui-icon name=\"mic-on\"></sw-ui-icon>\n * <sw-ui-icon name=\"phone-end\" size=\"32\"></sw-ui-icon>\n * <sw-ui-icon name=\"settings\" slot=\"icon\"></sw-ui-icon>\n *\n * The inline SVG inherits `color` from the host (use `currentColor` in\n * stylesheets). Sizing is controlled via the `size` attribute, not CSS parts.\n */\n@customElement('sw-ui-icon')\nexport class SwUiIcon extends LitElement {\n static styles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n }\n\n svg {\n display: block;\n }\n `;\n\n @property({ reflect: true }) name: IconName = 'close';\n @property({ type: Number }) size: number = DEFAULT_SIZE;\n\n render() {\n const raw = ICONS[this.name];\n\n if (!raw) {\n return html``;\n }\n\n const sized = raw.replace('<svg', `<svg width=\"${this.size}\" height=\"${this.size}\"`);\n\n return html`${unsafeHTML(sized)}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sw-ui-icon': SwUiIcon;\n }\n}\n"],"names":["DEFAULT_SIZE","SwUiIcon","LitElement","raw","ICONS","html","sized","unsafeHTML","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;;AAMA,MAAMA,IAAe;AAiBd,IAAMC,IAAN,cAAuBC,EAAW;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA,GAcwB,KAAA,OAAiB,SAClB,KAAA,OAAeF;AAAA,EAAA;AAAA,EAE3C,SAAS;AACP,UAAMG,IAAMC,EAAM,KAAK,IAAI;AAE3B,QAAI,CAACD;AACH,aAAOE;AAGT,UAAMC,IAAQH,EAAI,QAAQ,QAAQ,eAAe,KAAK,IAAI,aAAa,KAAK,IAAI,GAAG;AAEnF,WAAOE,IAAOE,EAAWD,CAAK,CAAC;AAAA,EACjC;AACF;AA5BaL,EACJ,SAASO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaaC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAdhBT,EAckB,WAAA,QAAA,CAAA;AACDQ,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAffT,EAeiB,WAAA,QAAA,CAAA;AAfjBA,IAANQ,EAAA;AAAA,EADNE,EAAc,YAAY;AAAA,GACdV,CAAA;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const n = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
3
|
+
<line x1="9" y1="9" x2="15" y2="9"/>
|
|
4
|
+
<line x1="9" y1="13" x2="13" y2="13"/>
|
|
5
|
+
</svg>
|
|
6
|
+
`;
|
|
7
|
+
export {
|
|
8
|
+
n as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=transcript.svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.svg.js","sources":["../../../../src/components/UI/icons/transcript.svg?raw"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\">\\n <path d=\\\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\\\"/>\\n <line x1=\\\"9\\\" y1=\\\"9\\\" x2=\\\"15\\\" y2=\\\"9\\\"/>\\n <line x1=\\\"9\\\" y1=\\\"13\\\" x2=\\\"13\\\" y2=\\\"13\\\"/>\\n</svg>\\n\""],"names":["transcript"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { SwUiCallLayout } from './layout/sw-ui-call-layout';
|
|
2
|
+
export { SwUiBackground } from './layout/sw-ui-background';
|
|
3
|
+
export { SwUiModal } from './layout/sw-ui-modal';
|
|
4
|
+
export { SwUiResponsiveContainer } from './layout/sw-ui-responsive-container';
|
|
5
|
+
export { SwUiAlert, showPrompt } from './sw-ui-alert';
|
|
6
|
+
export { SwUiDropup } from './controls/sw-ui-dropup';
|
|
7
|
+
export { SwUiSplitButton } from './controls/sw-ui-split-button';
|
|
8
|
+
export { SwUiControlBar } from './controls/sw-ui-control-bar';
|
|
9
|
+
export { SwUiIcon } from './icons';
|
|
10
|
+
export type { IconName } from './icons';
|
|
11
|
+
export { SwUiDialpad } from './controls/sw-ui-dialpad';
|
|
12
|
+
export { SwUiContentDrawer } from './layout/sw-ui-content-drawer';
|
|
13
|
+
export type { DisplayContentPayload, ContentFormat } from './layout/sw-ui-content-drawer';
|
|
14
|
+
export { SwUiTranscriptView } from './sw-ui-transcript-view';
|
|
15
|
+
export type { TranscriptEntry, TranscriptEntryMeta } from './sw-ui-transcript-view';
|
|
16
|
+
export type { PromptType } from './sw-ui-alert';
|
|
17
|
+
export type { MicToggleDetail, CameraToggleDetail, SpeakerToggleDetail, DeviceChangeDetail, FullscreenToggleDetail, ScreenShareToggleDetail, HandRaiseToggleDetail, } from './controls/sw-ui-control-bar';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UI/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Video background with a blurred thumbnail placeholder that crossfades into
|
|
4
|
+
* the full-resolution image once it has finished loading.
|
|
5
|
+
*
|
|
6
|
+
* Slot this into `sw-ui-call-layout`'s `background` slot.
|
|
7
|
+
*
|
|
8
|
+
* @prop {boolean} [default] - Use the built-in SignalWire background image
|
|
9
|
+
* @prop {string} thumbnail - Data URL shown immediately as a blurred preview
|
|
10
|
+
* @prop {string} src - URL of the full-resolution background image
|
|
11
|
+
* @prop {string} [blurAmount] - CSS blur amount applied to the thumbnail (default: 20px)
|
|
12
|
+
*
|
|
13
|
+
* @csspart thumb - Blurred low-res thumbnail layer.
|
|
14
|
+
* @csspart image - Full-resolution image layer (fades in once loaded).
|
|
15
|
+
*/
|
|
16
|
+
export declare class SwUiBackground extends LitElement {
|
|
17
|
+
static styles: import("lit").CSSResult;
|
|
18
|
+
default: boolean;
|
|
19
|
+
thumbnail?: string;
|
|
20
|
+
src?: string;
|
|
21
|
+
blurAmount: string;
|
|
22
|
+
private _loaded;
|
|
23
|
+
private get _src();
|
|
24
|
+
private get _thumbnail();
|
|
25
|
+
willUpdate(changed: Map<string, unknown>): void;
|
|
26
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
27
|
+
}
|
|
28
|
+
declare global {
|
|
29
|
+
interface HTMLElementTagNameMap {
|
|
30
|
+
'sw-ui-background': SwUiBackground;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=sw-ui-background.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-ui-background.d.ts","sourceRoot":"","sources":["../../../../src/components/UI/layout/sw-ui-background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAQrD;;;;;;;;;;;;;GAaG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,MAAM,0BAsCX;IAE0C,OAAO,UAAS;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACa,UAAU,SAAU;IAEjE,OAAO,CAAC,OAAO,CAAS;IAEjC,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,KAAK,UAAU,GAErB;IAED,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMxC,MAAM;CAyBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { LitElement as m, nothing as c, html as p, css as d } from "lit";
|
|
2
|
+
import { property as a, state as h, customElement as b } from "lit/decorators.js";
|
|
3
|
+
import { styleMap as f } from "lit/directives/style-map.js";
|
|
4
|
+
import { DEFAULT_BACKGROUND_THUMBNAIL as g } from "../DEFAULT_BACKGROUND.js";
|
|
5
|
+
import _ from "../../../assets/sw_background.webp.js";
|
|
6
|
+
var y = Object.defineProperty, v = Object.getOwnPropertyDescriptor, r = (i, o, l, s) => {
|
|
7
|
+
for (var e = s > 1 ? void 0 : s ? v(o, l) : o, n = i.length - 1, u; n >= 0; n--)
|
|
8
|
+
(u = i[n]) && (e = (s ? u(o, l, e) : u(e)) || e);
|
|
9
|
+
return s && e && y(o, l, e), e;
|
|
10
|
+
};
|
|
11
|
+
let t = class extends m {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments), this.default = !1, this.blurAmount = "20px", this._loaded = !1;
|
|
14
|
+
}
|
|
15
|
+
get _src() {
|
|
16
|
+
return this.default ? _ : this.src;
|
|
17
|
+
}
|
|
18
|
+
get _thumbnail() {
|
|
19
|
+
return this.default ? g : this.thumbnail;
|
|
20
|
+
}
|
|
21
|
+
willUpdate(i) {
|
|
22
|
+
(i.has("src") || i.has("default")) && (this._loaded = !1);
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
return p`
|
|
26
|
+
${this._thumbnail ? p`<div
|
|
27
|
+
part="thumb"
|
|
28
|
+
class=${`thumb${this._loaded ? " hidden" : ""}`}
|
|
29
|
+
style=${f({
|
|
30
|
+
"background-image": `url('${this._thumbnail}')`,
|
|
31
|
+
filter: `blur(${this.blurAmount})`
|
|
32
|
+
})}
|
|
33
|
+
></div>` : c}
|
|
34
|
+
${this._src ? p`<img
|
|
35
|
+
part="image"
|
|
36
|
+
class=${this._loaded ? "loaded" : ""}
|
|
37
|
+
src=${this._src}
|
|
38
|
+
alt=""
|
|
39
|
+
@load=${() => {
|
|
40
|
+
this._loaded = !0;
|
|
41
|
+
}}
|
|
42
|
+
/>` : c}
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
t.styles = d`
|
|
47
|
+
:host {
|
|
48
|
+
display: block;
|
|
49
|
+
position: relative; /* containing block for .thumb and img */
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.thumb {
|
|
54
|
+
position: absolute;
|
|
55
|
+
inset: 0;
|
|
56
|
+
background-size: cover;
|
|
57
|
+
background-position: center;
|
|
58
|
+
transform: scale(1.1); /* prevents blur edge fringing */
|
|
59
|
+
opacity: 1;
|
|
60
|
+
transition: opacity 600ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.thumb.hidden {
|
|
64
|
+
opacity: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
img {
|
|
68
|
+
position: absolute;
|
|
69
|
+
inset: 0;
|
|
70
|
+
width: 100%;
|
|
71
|
+
height: 100%;
|
|
72
|
+
object-fit: cover;
|
|
73
|
+
opacity: 0;
|
|
74
|
+
transform: scale(1.03);
|
|
75
|
+
transition:
|
|
76
|
+
opacity 600ms cubic-bezier(0.4, 0, 0.2, 1),
|
|
77
|
+
transform 700ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
img.loaded {
|
|
81
|
+
opacity: 1;
|
|
82
|
+
transform: scale(1);
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
r([
|
|
86
|
+
a({ type: Boolean, reflect: !0 })
|
|
87
|
+
], t.prototype, "default", 2);
|
|
88
|
+
r([
|
|
89
|
+
a({ type: String })
|
|
90
|
+
], t.prototype, "thumbnail", 2);
|
|
91
|
+
r([
|
|
92
|
+
a({ type: String })
|
|
93
|
+
], t.prototype, "src", 2);
|
|
94
|
+
r([
|
|
95
|
+
a({ type: String, attribute: "blur-amount" })
|
|
96
|
+
], t.prototype, "blurAmount", 2);
|
|
97
|
+
r([
|
|
98
|
+
h()
|
|
99
|
+
], t.prototype, "_loaded", 2);
|
|
100
|
+
t = r([
|
|
101
|
+
b("sw-ui-background")
|
|
102
|
+
], t);
|
|
103
|
+
export {
|
|
104
|
+
t as SwUiBackground
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=sw-ui-background.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-ui-background.js","sources":["../../../../src/components/UI/layout/sw-ui-background.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport {\n DEFAULT_BACKGROUND_IMAGE,\n DEFAULT_BACKGROUND_THUMBNAIL,\n} from '../DEFAULT_BACKGROUND';\n\n/**\n * Video background with a blurred thumbnail placeholder that crossfades into\n * the full-resolution image once it has finished loading.\n *\n * Slot this into `sw-ui-call-layout`'s `background` slot.\n *\n * @prop {boolean} [default] - Use the built-in SignalWire background image\n * @prop {string} thumbnail - Data URL shown immediately as a blurred preview\n * @prop {string} src - URL of the full-resolution background image\n * @prop {string} [blurAmount] - CSS blur amount applied to the thumbnail (default: 20px)\n *\n * @csspart thumb - Blurred low-res thumbnail layer.\n * @csspart image - Full-resolution image layer (fades in once loaded).\n */\n@customElement('sw-ui-background')\nexport class SwUiBackground extends LitElement {\n static styles = css`\n :host {\n display: block;\n position: relative; /* containing block for .thumb and img */\n overflow: hidden;\n }\n\n .thumb {\n position: absolute;\n inset: 0;\n background-size: cover;\n background-position: center;\n transform: scale(1.1); /* prevents blur edge fringing */\n opacity: 1;\n transition: opacity 600ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .thumb.hidden {\n opacity: 0;\n }\n\n img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n opacity: 0;\n transform: scale(1.03);\n transition:\n opacity 600ms cubic-bezier(0.4, 0, 0.2, 1),\n transform 700ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n img.loaded {\n opacity: 1;\n transform: scale(1);\n }\n `;\n\n @property({ type: Boolean, reflect: true }) default = false;\n @property({ type: String }) thumbnail?: string;\n @property({ type: String }) src?: string;\n @property({ type: String, attribute: 'blur-amount' }) blurAmount = '20px';\n\n @state() private _loaded = false;\n\n private get _src() {\n return this.default ? DEFAULT_BACKGROUND_IMAGE : this.src;\n }\n\n private get _thumbnail() {\n return this.default ? DEFAULT_BACKGROUND_THUMBNAIL : this.thumbnail;\n }\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('src') || changed.has('default')) {\n this._loaded = false;\n }\n }\n\n render() {\n return html`\n ${this._thumbnail\n ? html`<div\n part=\"thumb\"\n class=${`thumb${this._loaded ? ' hidden' : ''}`}\n style=${styleMap({\n 'background-image': `url('${this._thumbnail}')`,\n filter: `blur(${this.blurAmount})`,\n })}\n ></div>`\n : nothing}\n ${this._src\n ? html`<img\n part=\"image\"\n class=${this._loaded ? 'loaded' : ''}\n src=${this._src}\n alt=\"\"\n @load=${() => {\n this._loaded = true;\n }}\n />`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sw-ui-background': SwUiBackground;\n }\n}\n"],"names":["SwUiBackground","LitElement","DEFAULT_BACKGROUND_IMAGE","DEFAULT_BACKGROUND_THUMBNAIL","changed","html","styleMap","nothing","css","__decorateClass","property","state","customElement"],"mappings":";;;;;;;;;;AAuBO,IAAMA,IAAN,cAA6BC,EAAW;AAAA,EAAxC,cAAA;AAAA,UAAA,GAAA,SAAA,GAyCuC,KAAA,UAAU,IAGA,KAAA,aAAa,QAE1D,KAAQ,UAAU;AAAA,EAAA;AAAA,EAE3B,IAAY,OAAO;AACjB,WAAO,KAAK,UAAUC,IAA2B,KAAK;AAAA,EACxD;AAAA,EAEA,IAAY,aAAa;AACvB,WAAO,KAAK,UAAUC,IAA+B,KAAK;AAAA,EAC5D;AAAA,EAEA,WAAWC,GAA+B;AACxC,KAAIA,EAAQ,IAAI,KAAK,KAAKA,EAAQ,IAAI,SAAS,OAC7C,KAAK,UAAU;AAAA,EAEnB;AAAA,EAEA,SAAS;AACP,WAAOC;AAAA,QACH,KAAK,aACHA;AAAA;AAAA,oBAEU,QAAQ,KAAK,UAAU,YAAY,EAAE,EAAE;AAAA,oBACvCC,EAAS;AAAA,MACf,oBAAoB,QAAQ,KAAK,UAAU;AAAA,MAC3C,QAAQ,QAAQ,KAAK,UAAU;AAAA,IAAA,CAChC,CAAC;AAAA,qBAEJC,CAAO;AAAA,QACT,KAAK,OACHF;AAAA;AAAA,oBAEU,KAAK,UAAU,WAAW,EAAE;AAAA,kBAC9B,KAAK,IAAI;AAAA;AAAA,oBAEP,MAAM;AACZ,WAAK,UAAU;AAAA,IACjB,CAAC;AAAA,gBAEHE,CAAO;AAAA;AAAA,EAEf;AACF;AAvFaP,EACJ,SAASQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwC4BC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAzC/BV,EAyCiC,WAAA,WAAA,CAAA;AAChBS,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA1CfV,EA0CiB,WAAA,aAAA,CAAA;AACAS,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA3CfV,EA2CiB,WAAA,OAAA,CAAA;AAC0BS,EAAA;AAAA,EAArDC,EAAS,EAAE,MAAM,QAAQ,WAAW,eAAe;AAAA,GA5CzCV,EA4C2C,WAAA,cAAA,CAAA;AAErCS,EAAA;AAAA,EAAhBE,EAAA;AAAM,GA9CIX,EA8CM,WAAA,WAAA,CAAA;AA9CNA,IAANS,EAAA;AAAA,EADNG,EAAc,kBAAkB;AAAA,GACpBZ,CAAA;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../icons/sw-ui-icon.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fluid call layout that adapts to any container shape.
|
|
5
|
+
*
|
|
6
|
+
* Uses the container's **aspect ratio** (not just width) to decide whether
|
|
7
|
+
* the transcript pane sits beside the video (landscape) or below it
|
|
8
|
+
* (portrait / narrow). The video area is always maximised.
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* Wide (landscape): Narrow (portrait):
|
|
12
|
+
* ┌────────────────┬─────────┐ ┌─────────────────┐
|
|
13
|
+
* │ VIDEO │ TRANSCR │ │ VIDEO │
|
|
14
|
+
* │ (maximised) │ (side) │ │ (maximised) │
|
|
15
|
+
* ├────────────────┴─────────┤ ├──────────────────┤
|
|
16
|
+
* │ CONTROLS │ │ CONTROLS │
|
|
17
|
+
* └──────────────────────────┘ ├──────────────────┤
|
|
18
|
+
* │ TRANSCRIPT │
|
|
19
|
+
* └──────────────────┘
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @slot video - main video content
|
|
23
|
+
* @slot background - element behind the video (e.g. `<sw-ui-background>`)
|
|
24
|
+
* @slot floating-video - picture-in-picture overlay (absolute, bottom-right)
|
|
25
|
+
* @slot controls - control bar beneath the video
|
|
26
|
+
* @slot transcript - transcript panel (side or bottom)
|
|
27
|
+
*
|
|
28
|
+
* @prop {boolean} transcript - show / hide the transcript pane
|
|
29
|
+
* @prop {boolean} loading - show a spinner overlay on the video area
|
|
30
|
+
* @prop {boolean} shadow - apply a drop shadow to the host
|
|
31
|
+
* @prop {boolean} fullscreen - (read-only) reflects the current fullscreen state
|
|
32
|
+
*
|
|
33
|
+
* @method toggleTranscript() - flip the transcript pane open / closed
|
|
34
|
+
* @method toggleFullscreen() - enter or exit fullscreen
|
|
35
|
+
* @method requestFullscreen() - inherited, enters fullscreen
|
|
36
|
+
* @method exitFullscreen() - static, exits fullscreen
|
|
37
|
+
*
|
|
38
|
+
* @cssprop --sw-call-layout-radius [0] - border-radius on external corners
|
|
39
|
+
* @cssprop --sw-call-layout-shadow - box-shadow when `shadow` is set
|
|
40
|
+
* @cssprop --sw-call-layout-loading-bg [rgba(0,0,0,0.6)] - loading overlay background
|
|
41
|
+
* @cssprop --loading-spinner-size [48] - spinner icon size (px, number)
|
|
42
|
+
* @cssprop --sw-call-layout-transcript-transition [350ms ease-in-out] - open/close transition
|
|
43
|
+
* @cssprop --sw-call-layout-pip-width [clamp(100px, 20%, 200px)] - PiP container width
|
|
44
|
+
* @cssprop --sw-call-layout-pip-radius [8px] - PiP border-radius
|
|
45
|
+
* @cssprop --sw-call-layout-pip-shadow [0 2px 8px rgba(0,0,0,0.5)] - PiP box-shadow
|
|
46
|
+
* @cssprop --sw-call-layout-pip-bottom [12px] - PiP offset from bottom
|
|
47
|
+
* @cssprop --sw-call-layout-pip-right [12px] - PiP offset from right
|
|
48
|
+
*/
|
|
49
|
+
export declare class SwUiCallLayout extends LitElement {
|
|
50
|
+
transcript: boolean;
|
|
51
|
+
loading: boolean;
|
|
52
|
+
shadow: boolean;
|
|
53
|
+
private _fullscreen;
|
|
54
|
+
/** Reflects as an attribute so CSS can target `:host([fullscreen])`. */
|
|
55
|
+
get fullscreen(): boolean;
|
|
56
|
+
toggleTranscript(): void;
|
|
57
|
+
toggleFullscreen(): void;
|
|
58
|
+
private _onFullscreenChange;
|
|
59
|
+
connectedCallback(): void;
|
|
60
|
+
disconnectedCallback(): void;
|
|
61
|
+
static styles: import("lit").CSSResult;
|
|
62
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
63
|
+
}
|
|
64
|
+
declare global {
|
|
65
|
+
interface HTMLElementTagNameMap {
|
|
66
|
+
'sw-ui-call-layout': SwUiCallLayout;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=sw-ui-call-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-ui-call-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/UI/layout/sw-ui-call-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBACa,cAAe,SAAQ,UAAU;IACA,UAAU,UAAS;IACnB,OAAO,UAAS;IAChB,MAAM,UAAS;IAClD,OAAO,CAAC,WAAW,CAAS;IAErC,wEAAwE;IACxE,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,gBAAgB,IAAI,IAAI;IAIxB,gBAAgB,IAAI,IAAI;IAQxB,OAAO,CAAC,mBAAmB,CAUzB;IAEF,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,MAAM,CAAC,MAAM,0BAmMX;IAEF,MAAM;CAgCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,cAAc,CAAC;KACrC;CACF"}
|