@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.
Files changed (187) hide show
  1. package/README.md +45 -52
  2. package/dist/_virtual/_commonjsHelpers.js +9 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/prism-python.js +28 -0
  5. package/dist/_virtual/prism-python.js.map +1 -0
  6. package/dist/_virtual/prism-python2.js +5 -0
  7. package/dist/_virtual/prism-python2.js.map +1 -0
  8. package/dist/_virtual/prism-typescript.js +28 -0
  9. package/dist/_virtual/prism-typescript.js.map +1 -0
  10. package/dist/_virtual/prism-typescript2.js +5 -0
  11. package/dist/_virtual/prism-typescript2.js.map +1 -0
  12. package/dist/_virtual/prism.js +28 -0
  13. package/dist/_virtual/prism.js.map +1 -0
  14. package/dist/_virtual/prism2.js +5 -0
  15. package/dist/_virtual/prism2.js.map +1 -0
  16. package/dist/assets/sw_background.webp.js +5 -0
  17. package/dist/assets/sw_background.webp.js.map +1 -0
  18. package/dist/components/UI/DEFAULT_BACKGROUND.d.ts +4 -0
  19. package/dist/components/UI/DEFAULT_BACKGROUND.d.ts.map +1 -0
  20. package/dist/components/UI/DEFAULT_BACKGROUND.js +5 -0
  21. package/dist/components/UI/DEFAULT_BACKGROUND.js.map +1 -0
  22. package/dist/components/UI/controls/sw-ui-control-bar.d.ts +114 -0
  23. package/dist/components/UI/controls/sw-ui-control-bar.d.ts.map +1 -0
  24. package/dist/components/UI/controls/sw-ui-control-bar.js +324 -0
  25. package/dist/components/UI/controls/sw-ui-control-bar.js.map +1 -0
  26. package/dist/components/UI/controls/sw-ui-dialpad.d.ts +57 -0
  27. package/dist/components/UI/controls/sw-ui-dialpad.d.ts.map +1 -0
  28. package/dist/components/UI/controls/sw-ui-dialpad.js +319 -0
  29. package/dist/components/UI/controls/sw-ui-dialpad.js.map +1 -0
  30. package/dist/components/UI/controls/sw-ui-dropup.d.ts +42 -0
  31. package/dist/components/UI/controls/sw-ui-dropup.d.ts.map +1 -0
  32. package/dist/components/UI/controls/sw-ui-dropup.js +137 -0
  33. package/dist/components/UI/controls/sw-ui-dropup.js.map +1 -0
  34. package/dist/components/UI/controls/sw-ui-split-button.d.ts +44 -0
  35. package/dist/components/UI/controls/sw-ui-split-button.d.ts.map +1 -0
  36. package/dist/components/UI/controls/sw-ui-split-button.js +177 -0
  37. package/dist/components/UI/controls/sw-ui-split-button.js.map +1 -0
  38. package/dist/components/UI/icons/backspace.svg.js +10 -0
  39. package/dist/components/UI/icons/backspace.svg.js.map +1 -0
  40. package/dist/components/UI/icons/camera-off.svg.js +8 -0
  41. package/dist/components/UI/icons/camera-off.svg.js.map +1 -0
  42. package/dist/components/UI/icons/camera-on.svg.js +8 -0
  43. package/dist/components/UI/icons/camera-on.svg.js.map +1 -0
  44. package/dist/components/UI/icons/check-circle.svg.js +6 -0
  45. package/dist/components/UI/icons/check-circle.svg.js.map +1 -0
  46. package/dist/components/UI/icons/chevron-up.svg.js +8 -0
  47. package/dist/components/UI/icons/chevron-up.svg.js.map +1 -0
  48. package/dist/components/UI/icons/close.svg.js +6 -0
  49. package/dist/components/UI/icons/close.svg.js.map +1 -0
  50. package/dist/components/UI/icons/copy.svg.js +6 -0
  51. package/dist/components/UI/icons/copy.svg.js.map +1 -0
  52. package/dist/components/UI/icons/download.svg.js +6 -0
  53. package/dist/components/UI/icons/download.svg.js.map +1 -0
  54. package/dist/components/UI/icons/fullscreen-exit.svg.js +8 -0
  55. package/dist/components/UI/icons/fullscreen-exit.svg.js.map +1 -0
  56. package/dist/components/UI/icons/fullscreen.svg.js +8 -0
  57. package/dist/components/UI/icons/fullscreen.svg.js.map +1 -0
  58. package/dist/components/UI/icons/hand-raise.svg.js +6 -0
  59. package/dist/components/UI/icons/hand-raise.svg.js.map +1 -0
  60. package/dist/components/UI/icons/icons.d.ts +31 -0
  61. package/dist/components/UI/icons/icons.d.ts.map +1 -0
  62. package/dist/components/UI/icons/icons.js +60 -0
  63. package/dist/components/UI/icons/icons.js.map +1 -0
  64. package/dist/components/UI/icons/index.d.ts +4 -0
  65. package/dist/components/UI/icons/index.d.ts.map +1 -0
  66. package/dist/components/UI/icons/info-circle.svg.js +6 -0
  67. package/dist/components/UI/icons/info-circle.svg.js.map +1 -0
  68. package/dist/components/UI/icons/mic-off.svg.js +8 -0
  69. package/dist/components/UI/icons/mic-off.svg.js.map +1 -0
  70. package/dist/components/UI/icons/mic-on.svg.js +8 -0
  71. package/dist/components/UI/icons/mic-on.svg.js.map +1 -0
  72. package/dist/components/UI/icons/person.svg.js +8 -0
  73. package/dist/components/UI/icons/person.svg.js.map +1 -0
  74. package/dist/components/UI/icons/phone-call.svg.js +8 -0
  75. package/dist/components/UI/icons/phone-call.svg.js.map +1 -0
  76. package/dist/components/UI/icons/phone-end.svg.js +8 -0
  77. package/dist/components/UI/icons/phone-end.svg.js.map +1 -0
  78. package/dist/components/UI/icons/room.svg.js +8 -0
  79. package/dist/components/UI/icons/room.svg.js.map +1 -0
  80. package/dist/components/UI/icons/screen-share-off.svg.js +9 -0
  81. package/dist/components/UI/icons/screen-share-off.svg.js.map +1 -0
  82. package/dist/components/UI/icons/screen-share.svg.js +9 -0
  83. package/dist/components/UI/icons/screen-share.svg.js.map +1 -0
  84. package/dist/components/UI/icons/sendIcon.svg.js +9 -0
  85. package/dist/components/UI/icons/sendIcon.svg.js.map +1 -0
  86. package/dist/components/UI/icons/settings.svg.js +8 -0
  87. package/dist/components/UI/icons/settings.svg.js.map +1 -0
  88. package/dist/components/UI/icons/speaker-off.svg.js +8 -0
  89. package/dist/components/UI/icons/speaker-off.svg.js.map +1 -0
  90. package/dist/components/UI/icons/speaker-on.svg.js +8 -0
  91. package/dist/components/UI/icons/speaker-on.svg.js.map +1 -0
  92. package/dist/components/UI/icons/spinner.svg.js +9 -0
  93. package/dist/components/UI/icons/spinner.svg.js.map +1 -0
  94. package/dist/components/UI/icons/sw-logo.svg.js +11 -0
  95. package/dist/components/UI/icons/sw-logo.svg.js.map +1 -0
  96. package/dist/components/UI/icons/sw-ui-icon.d.ts +28 -0
  97. package/dist/components/UI/icons/sw-ui-icon.d.ts.map +1 -0
  98. package/dist/components/UI/icons/sw-ui-icon.js +47 -0
  99. package/dist/components/UI/icons/sw-ui-icon.js.map +1 -0
  100. package/dist/components/UI/icons/transcript.svg.js +10 -0
  101. package/dist/components/UI/icons/transcript.svg.js.map +1 -0
  102. package/dist/components/UI/index.d.ts +18 -0
  103. package/dist/components/UI/index.d.ts.map +1 -0
  104. package/dist/components/UI/layout/sw-ui-background.d.ts +33 -0
  105. package/dist/components/UI/layout/sw-ui-background.d.ts.map +1 -0
  106. package/dist/components/UI/layout/sw-ui-background.js +106 -0
  107. package/dist/components/UI/layout/sw-ui-background.js.map +1 -0
  108. package/dist/components/UI/layout/sw-ui-call-layout.d.ts +69 -0
  109. package/dist/components/UI/layout/sw-ui-call-layout.d.ts.map +1 -0
  110. package/dist/components/UI/layout/sw-ui-call-layout.js +278 -0
  111. package/dist/components/UI/layout/sw-ui-call-layout.js.map +1 -0
  112. package/dist/components/UI/layout/sw-ui-content-drawer.d.ts +50 -0
  113. package/dist/components/UI/layout/sw-ui-content-drawer.d.ts.map +1 -0
  114. package/dist/components/UI/layout/sw-ui-content-drawer.js +413 -0
  115. package/dist/components/UI/layout/sw-ui-content-drawer.js.map +1 -0
  116. package/dist/components/UI/layout/sw-ui-modal.d.ts +31 -0
  117. package/dist/components/UI/layout/sw-ui-modal.d.ts.map +1 -0
  118. package/dist/components/UI/layout/sw-ui-modal.js +150 -0
  119. package/dist/components/UI/layout/sw-ui-modal.js.map +1 -0
  120. package/dist/components/UI/layout/sw-ui-responsive-container.d.ts +15 -0
  121. package/dist/components/UI/layout/sw-ui-responsive-container.d.ts.map +1 -0
  122. package/dist/components/UI/layout/sw-ui-responsive-container.js +78 -0
  123. package/dist/components/UI/layout/sw-ui-responsive-container.js.map +1 -0
  124. package/dist/components/UI/sw-ui-alert.d.ts +37 -0
  125. package/dist/components/UI/sw-ui-alert.d.ts.map +1 -0
  126. package/dist/components/UI/sw-ui-alert.js +126 -0
  127. package/dist/components/UI/sw-ui-alert.js.map +1 -0
  128. package/dist/components/UI/sw-ui-transcript-view.d.ts +56 -0
  129. package/dist/components/UI/sw-ui-transcript-view.d.ts.map +1 -0
  130. package/dist/components/UI/sw-ui-transcript-view.js +341 -0
  131. package/dist/components/UI/sw-ui-transcript-view.js.map +1 -0
  132. package/dist/components/directory.d.ts +10 -18
  133. package/dist/components/directory.d.ts.map +1 -1
  134. package/dist/components/directory.js +129 -198
  135. package/dist/components/directory.js.map +1 -1
  136. package/dist/embed/signalwire-web-components-embed.iife.js +2336 -982
  137. package/dist/embed/signalwire-web-components-embed.iife.js.map +1 -1
  138. package/dist/embed/signalwire-web-components-embed.umd.cjs +2336 -982
  139. package/dist/embed/signalwire-web-components-embed.umd.cjs.map +1 -1
  140. package/dist/embed.d.ts +1 -1
  141. package/dist/embed.d.ts.map +1 -1
  142. package/dist/index.d.ts +2 -3
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +54 -33
  145. package/dist/index.js.map +1 -1
  146. package/dist/node_modules/dompurify/dist/purify.es.js +597 -0
  147. package/dist/node_modules/dompurify/dist/purify.es.js.map +1 -0
  148. package/dist/node_modules/marked/lib/marked.esm.js +1475 -0
  149. package/dist/node_modules/marked/lib/marked.esm.js.map +1 -0
  150. package/dist/node_modules/prismjs/components/prism-bash.js +220 -0
  151. package/dist/node_modules/prismjs/components/prism-bash.js.map +1 -0
  152. package/dist/node_modules/prismjs/components/prism-css.js +56 -0
  153. package/dist/node_modules/prismjs/components/prism-css.js.map +1 -0
  154. package/dist/node_modules/prismjs/components/prism-javascript.js +138 -0
  155. package/dist/node_modules/prismjs/components/prism-javascript.js.map +1 -0
  156. package/dist/node_modules/prismjs/components/prism-json.js +26 -0
  157. package/dist/node_modules/prismjs/components/prism-json.js.map +1 -0
  158. package/dist/node_modules/prismjs/components/prism-markdown.js +301 -0
  159. package/dist/node_modules/prismjs/components/prism-markdown.js.map +1 -0
  160. package/dist/node_modules/prismjs/components/prism-python.js +69 -0
  161. package/dist/node_modules/prismjs/components/prism-python.js.map +1 -0
  162. package/dist/node_modules/prismjs/components/prism-sql.js +34 -0
  163. package/dist/node_modules/prismjs/components/prism-sql.js.map +1 -0
  164. package/dist/node_modules/prismjs/components/prism-typescript.js +53 -0
  165. package/dist/node_modules/prismjs/components/prism-typescript.js.map +1 -0
  166. package/dist/node_modules/prismjs/components/prism-yaml.js +67 -0
  167. package/dist/node_modules/prismjs/components/prism-yaml.js.map +1 -0
  168. package/dist/node_modules/prismjs/prism.js +1165 -0
  169. package/dist/node_modules/prismjs/prism.js.map +1 -0
  170. package/dist/react.d.ts +3 -3
  171. package/dist/utils/prism.d.ts +4 -0
  172. package/dist/utils/prism.d.ts.map +1 -0
  173. package/dist/utils/prism.js +34 -0
  174. package/dist/utils/prism.js.map +1 -0
  175. package/dist/utils/transcriptToMarkdown.d.ts +14 -0
  176. package/dist/utils/transcriptToMarkdown.d.ts.map +1 -0
  177. package/dist/utils/transcriptToMarkdown.js +59 -0
  178. package/dist/utils/transcriptToMarkdown.js.map +1 -0
  179. package/package.json +53 -9
  180. package/dist/components/dialpad.d.ts +0 -74
  181. package/dist/components/dialpad.d.ts.map +0 -1
  182. package/dist/components/dialpad.js +0 -372
  183. package/dist/components/dialpad.js.map +0 -1
  184. package/dist/components/example-button.d.ts +0 -21
  185. package/dist/components/example-button.d.ts.map +0 -1
  186. package/dist/components/example-button.js +0 -74
  187. 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"}