@livepeer-frameworks/streamcrafter-wc 0.1.0

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 (81) hide show
  1. package/dist/cjs/components/fw-sc-advanced.js +198 -0
  2. package/dist/cjs/components/fw-sc-advanced.js.map +1 -0
  3. package/dist/cjs/components/fw-sc-compositor.js +116 -0
  4. package/dist/cjs/components/fw-sc-compositor.js.map +1 -0
  5. package/dist/cjs/components/fw-sc-layer-list.js +253 -0
  6. package/dist/cjs/components/fw-sc-layer-list.js.map +1 -0
  7. package/dist/cjs/components/fw-sc-scene-switcher.js +164 -0
  8. package/dist/cjs/components/fw-sc-scene-switcher.js.map +1 -0
  9. package/dist/cjs/components/fw-sc-volume.js +183 -0
  10. package/dist/cjs/components/fw-sc-volume.js.map +1 -0
  11. package/dist/cjs/components/fw-streamcrafter.js +508 -0
  12. package/dist/cjs/components/fw-streamcrafter.js.map +1 -0
  13. package/dist/cjs/controllers/ingest-controller-host.js +236 -0
  14. package/dist/cjs/controllers/ingest-controller-host.js.map +1 -0
  15. package/dist/cjs/define.js +25 -0
  16. package/dist/cjs/define.js.map +1 -0
  17. package/dist/cjs/icons/index.js +283 -0
  18. package/dist/cjs/icons/index.js.map +1 -0
  19. package/dist/cjs/index.js +38 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +33 -0
  22. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js.map +1 -0
  23. package/dist/cjs/styles/shared-styles.js +2019 -0
  24. package/dist/cjs/styles/shared-styles.js.map +1 -0
  25. package/dist/cjs/styles/utility-styles.js +182 -0
  26. package/dist/cjs/styles/utility-styles.js.map +1 -0
  27. package/dist/esm/components/fw-sc-advanced.js +198 -0
  28. package/dist/esm/components/fw-sc-advanced.js.map +1 -0
  29. package/dist/esm/components/fw-sc-compositor.js +116 -0
  30. package/dist/esm/components/fw-sc-compositor.js.map +1 -0
  31. package/dist/esm/components/fw-sc-layer-list.js +253 -0
  32. package/dist/esm/components/fw-sc-layer-list.js.map +1 -0
  33. package/dist/esm/components/fw-sc-scene-switcher.js +164 -0
  34. package/dist/esm/components/fw-sc-scene-switcher.js.map +1 -0
  35. package/dist/esm/components/fw-sc-volume.js +183 -0
  36. package/dist/esm/components/fw-sc-volume.js.map +1 -0
  37. package/dist/esm/components/fw-streamcrafter.js +508 -0
  38. package/dist/esm/components/fw-streamcrafter.js.map +1 -0
  39. package/dist/esm/controllers/ingest-controller-host.js +234 -0
  40. package/dist/esm/controllers/ingest-controller-host.js.map +1 -0
  41. package/dist/esm/define.js +23 -0
  42. package/dist/esm/define.js.map +1 -0
  43. package/dist/esm/icons/index.js +253 -0
  44. package/dist/esm/icons/index.js.map +1 -0
  45. package/dist/esm/index.js +8 -0
  46. package/dist/esm/index.js.map +1 -0
  47. package/dist/esm/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +31 -0
  48. package/dist/esm/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js.map +1 -0
  49. package/dist/esm/styles/shared-styles.js +2017 -0
  50. package/dist/esm/styles/shared-styles.js.map +1 -0
  51. package/dist/esm/styles/utility-styles.js +180 -0
  52. package/dist/esm/styles/utility-styles.js.map +1 -0
  53. package/dist/fw-streamcrafter.iife.js +3121 -0
  54. package/dist/fw-streamcrafter.iife.js.map +1 -0
  55. package/dist/types/components/fw-sc-advanced.d.ts +20 -0
  56. package/dist/types/components/fw-sc-compositor.d.ts +19 -0
  57. package/dist/types/components/fw-sc-layer-list.d.ts +30 -0
  58. package/dist/types/components/fw-sc-scene-switcher.d.ts +23 -0
  59. package/dist/types/components/fw-sc-volume.d.ts +30 -0
  60. package/dist/types/components/fw-streamcrafter.d.ts +49 -0
  61. package/dist/types/controllers/ingest-controller-host.d.ts +77 -0
  62. package/dist/types/define.d.ts +1 -0
  63. package/dist/types/icons/index.d.ts +29 -0
  64. package/dist/types/iife-entry.d.ts +11 -0
  65. package/dist/types/index.d.ts +12 -0
  66. package/dist/types/styles/shared-styles.d.ts +1 -0
  67. package/dist/types/styles/utility-styles.d.ts +1 -0
  68. package/package.json +55 -0
  69. package/src/components/fw-sc-advanced.ts +221 -0
  70. package/src/components/fw-sc-compositor.ts +162 -0
  71. package/src/components/fw-sc-layer-list.ts +251 -0
  72. package/src/components/fw-sc-scene-switcher.ts +163 -0
  73. package/src/components/fw-sc-volume.ts +171 -0
  74. package/src/components/fw-streamcrafter.ts +515 -0
  75. package/src/controllers/ingest-controller-host.ts +358 -0
  76. package/src/define.ts +23 -0
  77. package/src/icons/index.ts +291 -0
  78. package/src/iife-entry.ts +11 -0
  79. package/src/index.ts +15 -0
  80. package/src/styles/shared-styles.ts +2014 -0
  81. package/src/styles/utility-styles.ts +177 -0
@@ -0,0 +1,236 @@
1
+ 'use strict';
2
+
3
+ var streamcrafterCore = require('@livepeer-frameworks/streamcrafter-core');
4
+
5
+ class IngestControllerHost {
6
+ constructor(host, initialProfile = "broadcast") {
7
+ this.controller = null;
8
+ this.unsubs = [];
9
+ this.encoderStatsCleanup = null;
10
+ this.host = host;
11
+ host.addController(this);
12
+ const capabilities = streamcrafterCore.detectCapabilities();
13
+ this.s = {
14
+ state: "idle",
15
+ stateContext: {},
16
+ isStreaming: false,
17
+ isCapturing: false,
18
+ isReconnecting: false,
19
+ error: null,
20
+ mediaStream: null,
21
+ sources: [],
22
+ qualityProfile: initialProfile,
23
+ reconnectionState: null,
24
+ stats: null,
25
+ useWebCodecs: capabilities.recommended === "webcodecs",
26
+ isWebCodecsActive: false,
27
+ isWebCodecsAvailable: streamcrafterCore.isWebCodecsEncodingPathSupported(),
28
+ encoderStats: null,
29
+ };
30
+ }
31
+ // ---- Configuration & Lifecycle ----
32
+ initialize(config) {
33
+ this.teardown();
34
+ const controller = new streamcrafterCore.IngestControllerV2({
35
+ ...config,
36
+ useWebCodecs: this.s.useWebCodecs,
37
+ });
38
+ this.controller = controller;
39
+ this.subscribeToEvents(controller);
40
+ }
41
+ hostConnected() { }
42
+ hostDisconnected() {
43
+ this.teardown();
44
+ }
45
+ teardown() {
46
+ this.unsubs.forEach((fn) => fn());
47
+ this.unsubs = [];
48
+ if (this.encoderStatsCleanup) {
49
+ this.encoderStatsCleanup();
50
+ this.encoderStatsCleanup = null;
51
+ }
52
+ this.controller?.destroy();
53
+ this.controller = null;
54
+ }
55
+ // ---- State Updates ----
56
+ update(partial) {
57
+ Object.assign(this.s, partial);
58
+ this.host.requestUpdate();
59
+ }
60
+ // ---- Event Subscriptions ----
61
+ subscribeToEvents(controller) {
62
+ const u = this.unsubs;
63
+ u.push(controller.on("stateChange", (event) => {
64
+ const state = event.state;
65
+ const ctx = (event.context ?? {});
66
+ this.update({
67
+ state,
68
+ stateContext: ctx,
69
+ isStreaming: state === "streaming",
70
+ isCapturing: state === "capturing" || state === "streaming",
71
+ isReconnecting: state === "reconnecting",
72
+ mediaStream: controller.getMediaStream(),
73
+ sources: controller.getSources(),
74
+ reconnectionState: ctx.reconnection ?? this.s.reconnectionState,
75
+ });
76
+ this.dispatchEvent("fw-sc-state-change", { state, context: ctx });
77
+ }));
78
+ u.push(controller.on("statsUpdate", (newStats) => {
79
+ this.update({ stats: newStats });
80
+ }));
81
+ u.push(controller.on("error", (event) => {
82
+ this.update({ error: event.error });
83
+ this.dispatchEvent("fw-sc-error", { error: event.error });
84
+ }));
85
+ u.push(controller.on("sourceAdded", () => {
86
+ this.update({
87
+ sources: controller.getSources(),
88
+ mediaStream: controller.getMediaStream(),
89
+ });
90
+ }));
91
+ u.push(controller.on("sourceRemoved", () => {
92
+ this.update({
93
+ sources: controller.getSources(),
94
+ mediaStream: controller.getMediaStream(),
95
+ });
96
+ }));
97
+ u.push(controller.on("sourceUpdated", () => {
98
+ this.update({
99
+ sources: controller.getSources(),
100
+ mediaStream: controller.getMediaStream(),
101
+ });
102
+ }));
103
+ u.push(controller.on("qualityChanged", (event) => {
104
+ this.update({ qualityProfile: event.profile });
105
+ }));
106
+ u.push(controller.on("reconnectionAttempt", () => {
107
+ this.update({
108
+ reconnectionState: controller.getReconnectionManager().getState(),
109
+ });
110
+ }));
111
+ u.push(controller.on("webCodecsActive", (event) => {
112
+ this.update({ isWebCodecsActive: event.active });
113
+ if (event.active) {
114
+ this.setupEncoderStatsListener();
115
+ }
116
+ }));
117
+ // Monitor encoder status on state changes
118
+ u.push(controller.on("stateChange", (event) => {
119
+ if (event.state === "streaming") {
120
+ setTimeout(() => {
121
+ this.update({ isWebCodecsActive: controller.isWebCodecsActive() });
122
+ if (controller.isWebCodecsActive() && !this.encoderStatsCleanup) {
123
+ this.setupEncoderStatsListener();
124
+ }
125
+ }, 200);
126
+ }
127
+ else if (event.state === "idle" || event.state === "capturing") {
128
+ this.update({ isWebCodecsActive: false, encoderStats: null });
129
+ if (this.encoderStatsCleanup) {
130
+ this.encoderStatsCleanup();
131
+ this.encoderStatsCleanup = null;
132
+ }
133
+ }
134
+ }));
135
+ }
136
+ setupEncoderStatsListener() {
137
+ if (!this.controller)
138
+ return;
139
+ const encoder = this.controller.getEncoderManager();
140
+ if (encoder) {
141
+ this.encoderStatsCleanup = encoder.on("stats", (newStats) => {
142
+ this.update({ encoderStats: newStats });
143
+ });
144
+ }
145
+ }
146
+ dispatchEvent(name, detail) {
147
+ this.host.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));
148
+ }
149
+ // ---- Capture Actions ----
150
+ async startCamera(options) {
151
+ if (!this.controller)
152
+ throw new Error("Controller not initialized");
153
+ this.update({ error: null });
154
+ return this.controller.startCamera(options);
155
+ }
156
+ async startScreenShare(options) {
157
+ if (!this.controller)
158
+ throw new Error("Controller not initialized");
159
+ this.update({ error: null });
160
+ return this.controller.startScreenShare(options);
161
+ }
162
+ addCustomSource(stream, label) {
163
+ if (!this.controller)
164
+ throw new Error("Controller not initialized");
165
+ return this.controller.addCustomSource(stream, label);
166
+ }
167
+ removeSource(sourceId) {
168
+ this.controller?.removeSource(sourceId);
169
+ }
170
+ async stopCapture() {
171
+ await this.controller?.stopCapture();
172
+ }
173
+ // ---- Source Management ----
174
+ setSourceVolume(sourceId, volume) {
175
+ this.controller?.setSourceVolume(sourceId, volume);
176
+ }
177
+ setSourceMuted(sourceId, muted) {
178
+ this.controller?.setSourceMuted(sourceId, muted);
179
+ }
180
+ setSourceActive(sourceId, active) {
181
+ this.controller?.setSourceActive(sourceId, active);
182
+ }
183
+ setPrimaryVideoSource(sourceId) {
184
+ this.controller?.setPrimaryVideoSource(sourceId);
185
+ }
186
+ // ---- Master Audio ----
187
+ setMasterVolume(volume) {
188
+ this.controller?.setMasterVolume(volume);
189
+ }
190
+ getMasterVolume() {
191
+ return this.controller?.getMasterVolume() ?? 1;
192
+ }
193
+ // ---- Quality ----
194
+ async setQualityProfile(profile) {
195
+ await this.controller?.setQualityProfile(profile);
196
+ }
197
+ // ---- Streaming ----
198
+ async startStreaming() {
199
+ if (!this.controller)
200
+ throw new Error("Controller not initialized");
201
+ this.update({ error: null });
202
+ await this.controller.startStreaming();
203
+ }
204
+ async stopStreaming() {
205
+ await this.controller?.stopStreaming();
206
+ }
207
+ // ---- Devices ----
208
+ async getDevices() {
209
+ return this.controller?.getDevices() ?? [];
210
+ }
211
+ async switchVideoDevice(deviceId) {
212
+ await this.controller?.switchVideoDevice(deviceId);
213
+ }
214
+ async switchAudioDevice(deviceId) {
215
+ await this.controller?.switchAudioDevice(deviceId);
216
+ }
217
+ // ---- Stats ----
218
+ async getStats() {
219
+ return this.controller?.getStats() ?? null;
220
+ }
221
+ // ---- Encoder ----
222
+ setUseWebCodecs(enabled) {
223
+ this.update({ useWebCodecs: enabled });
224
+ this.controller?.setUseWebCodecs(enabled);
225
+ }
226
+ setEncoderOverrides(overrides) {
227
+ this.controller?.setEncoderOverrides(overrides);
228
+ }
229
+ // ---- Controller Access ----
230
+ getController() {
231
+ return this.controller;
232
+ }
233
+ }
234
+
235
+ exports.IngestControllerHost = IngestControllerHost;
236
+ //# sourceMappingURL=ingest-controller-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-controller-host.js","sources":["../../../../src/controllers/ingest-controller-host.ts"],"sourcesContent":[null],"names":["detectCapabilities","isWebCodecsEncodingPathSupported","IngestControllerV2"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var fwStreamcrafter = require('./components/fw-streamcrafter.js');
4
+ var fwScCompositor = require('./components/fw-sc-compositor.js');
5
+ var fwScSceneSwitcher = require('./components/fw-sc-scene-switcher.js');
6
+ var fwScLayerList = require('./components/fw-sc-layer-list.js');
7
+ var fwScVolume = require('./components/fw-sc-volume.js');
8
+ var fwScAdvanced = require('./components/fw-sc-advanced.js');
9
+
10
+ /**
11
+ * Side-effect import that registers all custom elements.
12
+ * Usage: import '@livepeer-frameworks/streamcrafter-wc/define';
13
+ */
14
+ function safeDefine(name, ctor) {
15
+ if (!customElements.get(name)) {
16
+ customElements.define(name, ctor);
17
+ }
18
+ }
19
+ safeDefine("fw-streamcrafter", fwStreamcrafter.FwStreamCrafter);
20
+ safeDefine("fw-sc-compositor", fwScCompositor.FwScCompositor);
21
+ safeDefine("fw-sc-scene-switcher", fwScSceneSwitcher.FwScSceneSwitcher);
22
+ safeDefine("fw-sc-layer-list", fwScLayerList.FwScLayerList);
23
+ safeDefine("fw-sc-volume", fwScVolume.FwScVolume);
24
+ safeDefine("fw-sc-advanced", fwScAdvanced.FwScAdvanced);
25
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sources":["../../../src/define.ts"],"sourcesContent":[null],"names":["FwStreamCrafter","FwScCompositor","FwScSceneSwitcher","FwScLayerList","FwScVolume","FwScAdvanced"],"mappings":";;;;;;;;;AAAA;;;AAGG;AAQH,SAAS,UAAU,CAAC,IAAY,EAAE,IAA8B,EAAA;IAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7B,QAAA,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IACnC;AACF;AAEA,UAAU,CAAC,kBAAkB,EAAEA,+BAAe,CAAC;AAC/C,UAAU,CAAC,kBAAkB,EAAEC,6BAAc,CAAC;AAC9C,UAAU,CAAC,sBAAsB,EAAEC,mCAAiB,CAAC;AACrD,UAAU,CAAC,kBAAkB,EAAEC,2BAAa,CAAC;AAC7C,UAAU,CAAC,cAAc,EAAEC,qBAAU,CAAC;AACtC,UAAU,CAAC,gBAAgB,EAAEC,yBAAY,CAAC;;"}
@@ -0,0 +1,283 @@
1
+ 'use strict';
2
+
3
+ var lit = require('lit');
4
+
5
+ /**
6
+ * SVG icons as Lit html template functions for StreamCrafter WC.
7
+ * Ported from StreamCrafter.tsx and CompositorControls.tsx inline SVGs.
8
+ */
9
+ const cameraIcon = (size = 18) => lit.html ` <svg
10
+ width="${size}"
11
+ height="${size}"
12
+ viewBox="0 0 24 24"
13
+ fill="none"
14
+ stroke="currentColor"
15
+ stroke-width="2"
16
+ stroke-linecap="round"
17
+ stroke-linejoin="round"
18
+ >
19
+ <path d="M23 7l-7 5 7 5V7z" />
20
+ <rect x="1" y="5" width="15" height="14" rx="2" ry="2" />
21
+ </svg>`;
22
+ const monitorIcon = (size = 18) => lit.html ` <svg
23
+ width="${size}"
24
+ height="${size}"
25
+ viewBox="0 0 24 24"
26
+ fill="none"
27
+ stroke="currentColor"
28
+ stroke-width="2"
29
+ stroke-linecap="round"
30
+ stroke-linejoin="round"
31
+ >
32
+ <rect x="2" y="3" width="20" height="14" rx="2" ry="2" />
33
+ <line x1="8" y1="21" x2="16" y2="21" />
34
+ <line x1="12" y1="17" x2="12" y2="21" />
35
+ </svg>`;
36
+ const micIcon = (size = 16) => lit.html ` <svg
37
+ width="${size}"
38
+ height="${size}"
39
+ viewBox="0 0 24 24"
40
+ fill="none"
41
+ stroke="currentColor"
42
+ stroke-width="2"
43
+ stroke-linecap="round"
44
+ stroke-linejoin="round"
45
+ >
46
+ <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" />
47
+ <path d="M19 10v2a7 7 0 0 1-14 0v-2" />
48
+ <line x1="12" y1="19" x2="12" y2="23" />
49
+ <line x1="8" y1="23" x2="16" y2="23" />
50
+ </svg>`;
51
+ const micMutedIcon = (size = 16) => lit.html ` <svg
52
+ width="${size}"
53
+ height="${size}"
54
+ viewBox="0 0 24 24"
55
+ fill="none"
56
+ stroke="currentColor"
57
+ stroke-width="2"
58
+ stroke-linecap="round"
59
+ stroke-linejoin="round"
60
+ >
61
+ <line x1="1" y1="1" x2="23" y2="23" />
62
+ <path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" />
63
+ <path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" />
64
+ <line x1="12" y1="19" x2="12" y2="23" />
65
+ <line x1="8" y1="23" x2="16" y2="23" />
66
+ </svg>`;
67
+ const xIcon = (size = 14) => lit.html ` <svg
68
+ width="${size}"
69
+ height="${size}"
70
+ viewBox="0 0 24 24"
71
+ fill="none"
72
+ stroke="currentColor"
73
+ stroke-width="2"
74
+ stroke-linecap="round"
75
+ stroke-linejoin="round"
76
+ >
77
+ <line x1="18" y1="6" x2="6" y2="18" />
78
+ <line x1="6" y1="6" x2="18" y2="18" />
79
+ </svg>`;
80
+ const settingsIcon = (size = 16) => lit.html ` <svg
81
+ width="${size}"
82
+ height="${size}"
83
+ viewBox="0 0 24 24"
84
+ fill="none"
85
+ stroke="currentColor"
86
+ stroke-width="2"
87
+ stroke-linecap="round"
88
+ stroke-linejoin="round"
89
+ >
90
+ <circle cx="12" cy="12" r="3" />
91
+ <path
92
+ d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"
93
+ />
94
+ </svg>`;
95
+ const chevronsRightIcon = (size = 14) => lit.html ` <svg
96
+ width="${size}"
97
+ height="${size}"
98
+ viewBox="0 0 24 24"
99
+ fill="none"
100
+ stroke="currentColor"
101
+ stroke-width="2"
102
+ stroke-linecap="round"
103
+ stroke-linejoin="round"
104
+ >
105
+ <polyline points="13 17 18 12 13 7" />
106
+ <polyline points="6 17 11 12 6 7" />
107
+ </svg>`;
108
+ const chevronsLeftIcon = (size = 14) => lit.html ` <svg
109
+ width="${size}"
110
+ height="${size}"
111
+ viewBox="0 0 24 24"
112
+ fill="none"
113
+ stroke="currentColor"
114
+ stroke-width="2"
115
+ stroke-linecap="round"
116
+ stroke-linejoin="round"
117
+ >
118
+ <polyline points="11 17 6 12 11 7" />
119
+ <polyline points="18 17 13 12 18 7" />
120
+ </svg>`;
121
+ const eyeIcon = (size = 14) => lit.html ` <svg
122
+ width="${size}"
123
+ height="${size}"
124
+ viewBox="0 0 24 24"
125
+ fill="none"
126
+ stroke="currentColor"
127
+ stroke-width="2"
128
+ stroke-linecap="round"
129
+ stroke-linejoin="round"
130
+ >
131
+ <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" />
132
+ <circle cx="12" cy="12" r="3" />
133
+ </svg>`;
134
+ const eyeOffIcon = (size = 14) => lit.html ` <svg
135
+ width="${size}"
136
+ height="${size}"
137
+ viewBox="0 0 24 24"
138
+ fill="none"
139
+ stroke="currentColor"
140
+ stroke-width="2"
141
+ stroke-linecap="round"
142
+ stroke-linejoin="round"
143
+ >
144
+ <path
145
+ d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"
146
+ />
147
+ <line x1="1" y1="1" x2="23" y2="23" />
148
+ </svg>`;
149
+ const videoIcon = (size = 14) => lit.html ` <svg
150
+ width="${size}"
151
+ height="${size}"
152
+ viewBox="0 0 24 24"
153
+ fill="none"
154
+ stroke="currentColor"
155
+ stroke-width="2"
156
+ stroke-linecap="round"
157
+ stroke-linejoin="round"
158
+ >
159
+ <polygon points="23 7 16 12 23 17 23 7" />
160
+ <rect x="1" y="5" width="15" height="14" rx="2" ry="2" />
161
+ </svg>`;
162
+ // Layout icons (12x12 compositor presets)
163
+ const soloIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
164
+ <rect x="1" y="1" width="10" height="10" rx="1" />
165
+ </svg>`;
166
+ const pipBRIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
167
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
168
+ <rect x="6.5" y="6.5" width="4" height="3" rx="0.5" />
169
+ </svg>`;
170
+ const pipBLIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
171
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
172
+ <rect x="1.5" y="6.5" width="4" height="3" rx="0.5" />
173
+ </svg>`;
174
+ const pipTRIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
175
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
176
+ <rect x="6.5" y="2.5" width="4" height="3" rx="0.5" />
177
+ </svg>`;
178
+ const pipTLIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
179
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
180
+ <rect x="1.5" y="2.5" width="4" height="3" rx="0.5" />
181
+ </svg>`;
182
+ const splitHIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
183
+ <rect x="1" y="1" width="4.5" height="10" rx="1" />
184
+ <rect x="6.5" y="1" width="4.5" height="10" rx="1" />
185
+ </svg>`;
186
+ const splitVIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
187
+ <rect x="1" y="1" width="10" height="4.5" rx="1" />
188
+ <rect x="1" y="6.5" width="10" height="4.5" rx="1" />
189
+ </svg>`;
190
+ const focusLIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
191
+ <rect x="1" y="1" width="7" height="10" rx="1" />
192
+ <rect x="8.5" y="1" width="2.5" height="10" rx="1" fill-opacity="0.5" />
193
+ </svg>`;
194
+ const focusRIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
195
+ <rect x="1" y="1" width="2.5" height="10" rx="1" fill-opacity="0.5" />
196
+ <rect x="4" y="1" width="7" height="10" rx="1" />
197
+ </svg>`;
198
+ const gridIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
199
+ <rect x="1" y="1" width="4.5" height="4.5" rx="1" />
200
+ <rect x="6.5" y="1" width="4.5" height="4.5" rx="1" />
201
+ <rect x="1" y="6.5" width="4.5" height="4.5" rx="1" />
202
+ <rect x="6.5" y="6.5" width="4.5" height="4.5" rx="1" />
203
+ </svg>`;
204
+ const stackIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
205
+ <rect x="1" y="1" width="10" height="2.8" rx="0.5" />
206
+ <rect x="1" y="4.6" width="10" height="2.8" rx="0.5" />
207
+ <rect x="1" y="8.2" width="10" height="2.8" rx="0.5" />
208
+ </svg>`;
209
+ const dualPipIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
210
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
211
+ <rect x="7" y="4" width="3.5" height="2.5" rx="0.5" />
212
+ <rect x="7" y="7" width="3.5" height="2.5" rx="0.5" />
213
+ </svg>`;
214
+ const splitPipIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
215
+ <rect x="1" y="1" width="4.5" height="10" rx="1" />
216
+ <rect x="6.5" y="1" width="4.5" height="10" rx="1" fill-opacity="0.5" />
217
+ <rect x="7.5" y="7" width="2.5" height="2.5" rx="0.5" />
218
+ </svg>`;
219
+ const featuredIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
220
+ <rect x="1" y="1" width="10" height="7.5" rx="1" />
221
+ <rect x="1" y="9" width="3" height="2" rx="0.5" fill-opacity="0.5" />
222
+ <rect x="4.5" y="9" width="3" height="2" rx="0.5" fill-opacity="0.5" />
223
+ <rect x="8" y="9" width="3" height="2" rx="0.5" fill-opacity="0.5" />
224
+ </svg>`;
225
+ const featuredRIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
226
+ <rect x="1" y="1" width="8" height="10" rx="1" />
227
+ <rect x="9.5" y="1" width="1.5" height="3" rx="0.5" fill-opacity="0.5" />
228
+ <rect x="9.5" y="4.5" width="1.5" height="3" rx="0.5" fill-opacity="0.5" />
229
+ <rect x="9.5" y="8" width="1.5" height="3" rx="0.5" fill-opacity="0.5" />
230
+ </svg>`;
231
+ // Scaling mode icons
232
+ const letterboxIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
233
+ <rect x="1" y="3" width="10" height="6" rx="1" />
234
+ <rect x="0" y="1" width="12" height="1.5" fill-opacity="0.3" />
235
+ <rect x="0" y="9.5" width="12" height="1.5" fill-opacity="0.3" />
236
+ </svg>`;
237
+ const cropIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
238
+ <rect x="0" y="0" width="12" height="12" rx="1" />
239
+ <path
240
+ d="M2 0v2H0v1h3V0H2zM10 0v3h2V2h-2V0H9v3h3V2h-2V0h1zM0 9v1h2v2h1V9H0zM12 9H9v3h1v-2h2v-1z"
241
+ fill-opacity="0.5"
242
+ />
243
+ </svg>`;
244
+ const stretchIcon = () => lit.html `<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor">
245
+ <rect x="1" y="1" width="10" height="10" rx="1" fill-opacity="0.3" />
246
+ <path
247
+ d="M3 5.5h6M3 5l-1.5 1L3 7M9 5l1.5 1L9 7M5.5 3v6M5 3L6 1.5 7 3M5 9l1 1.5 1-1.5"
248
+ stroke="currentColor"
249
+ stroke-width="1"
250
+ fill="none"
251
+ />
252
+ </svg>`;
253
+
254
+ exports.cameraIcon = cameraIcon;
255
+ exports.chevronsLeftIcon = chevronsLeftIcon;
256
+ exports.chevronsRightIcon = chevronsRightIcon;
257
+ exports.cropIcon = cropIcon;
258
+ exports.dualPipIcon = dualPipIcon;
259
+ exports.eyeIcon = eyeIcon;
260
+ exports.eyeOffIcon = eyeOffIcon;
261
+ exports.featuredIcon = featuredIcon;
262
+ exports.featuredRIcon = featuredRIcon;
263
+ exports.focusLIcon = focusLIcon;
264
+ exports.focusRIcon = focusRIcon;
265
+ exports.gridIcon = gridIcon;
266
+ exports.letterboxIcon = letterboxIcon;
267
+ exports.micIcon = micIcon;
268
+ exports.micMutedIcon = micMutedIcon;
269
+ exports.monitorIcon = monitorIcon;
270
+ exports.pipBLIcon = pipBLIcon;
271
+ exports.pipBRIcon = pipBRIcon;
272
+ exports.pipTLIcon = pipTLIcon;
273
+ exports.pipTRIcon = pipTRIcon;
274
+ exports.settingsIcon = settingsIcon;
275
+ exports.soloIcon = soloIcon;
276
+ exports.splitHIcon = splitHIcon;
277
+ exports.splitPipIcon = splitPipIcon;
278
+ exports.splitVIcon = splitVIcon;
279
+ exports.stackIcon = stackIcon;
280
+ exports.stretchIcon = stretchIcon;
281
+ exports.videoIcon = videoIcon;
282
+ exports.xIcon = xIcon;
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/icons/index.ts"],"sourcesContent":[null],"names":["html"],"mappings":";;;;AAAA;;;AAGG;AAGI,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,KAClCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYX,MAAM,WAAW,GAAG,CAAC,IAAI,GAAG,EAAE,KACnCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;;AAaX,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,KAC/BA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;;;AAcX,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,KACpCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;;;;AAeX,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,KAC7BA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYX,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,KACpCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;;;AAcX,MAAM,iBAAiB,GAAG,CAAC,IAAI,GAAG,EAAE,KACzCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYX,MAAM,gBAAgB,GAAG,CAAC,IAAI,GAAG,EAAE,KACxCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYX,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,KAC/BA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYX,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,EAAE,KAClCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;;;AAcX,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,KACjCA,QAAI,CAAA,CAAA;aACO,IAAI,CAAA;cACH,IAAI,CAAA;;;;;;;;;;;AAYlB;MACa,QAAQ,GAAG,MACtBA,QAAI,CAAA,CAAA;;;MAGO,SAAS,GAAG,MACvBA,QAAI,CAAA,CAAA;;;;MAIO,SAAS,GAAG,MACvBA,QAAI,CAAA,CAAA;;;;MAIO,SAAS,GAAG,MACvBA,QAAI,CAAA,CAAA;;;;MAIO,SAAS,GAAG,MACvBA,QAAI,CAAA,CAAA;;;;MAIO,UAAU,GAAG,MACxBA,QAAI,CAAA,CAAA;;;;MAIO,UAAU,GAAG,MACxBA,QAAI,CAAA,CAAA;;;;MAIO,UAAU,GAAG,MACxBA,QAAI,CAAA,CAAA;;;;MAIO,UAAU,GAAG,MACxBA,QAAI,CAAA,CAAA;;;;MAIO,QAAQ,GAAG,MACtBA,QAAI,CAAA,CAAA;;;;;;MAMO,SAAS,GAAG,MACvBA,QAAI,CAAA,CAAA;;;;;MAKO,WAAW,GAAG,MACzBA,QAAI,CAAA,CAAA;;;;;MAKO,YAAY,GAAG,MAC1BA,QAAI,CAAA,CAAA;;;;;MAKO,YAAY,GAAG,MAC1BA,QAAI,CAAA,CAAA;;;;;;MAMO,aAAa,GAAG,MAC3BA,QAAI,CAAA,CAAA;;;;;;AAON;MACa,aAAa,GAAG,MAC3BA,QAAI,CAAA,CAAA;;;;;MAKO,QAAQ,GAAG,MACtBA,QAAI,CAAA,CAAA;;;;;;;MAOO,WAAW,GAAG,MACzBA,QAAI,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var fwStreamcrafter = require('./components/fw-streamcrafter.js');
4
+ var fwScCompositor = require('./components/fw-sc-compositor.js');
5
+ var fwScSceneSwitcher = require('./components/fw-sc-scene-switcher.js');
6
+ var fwScLayerList = require('./components/fw-sc-layer-list.js');
7
+ var fwScVolume = require('./components/fw-sc-volume.js');
8
+ var fwScAdvanced = require('./components/fw-sc-advanced.js');
9
+ var ingestControllerHost = require('./controllers/ingest-controller-host.js');
10
+
11
+
12
+
13
+ Object.defineProperty(exports, "FwStreamCrafter", {
14
+ enumerable: true,
15
+ get: function () { return fwStreamcrafter.FwStreamCrafter; }
16
+ });
17
+ Object.defineProperty(exports, "FwScCompositor", {
18
+ enumerable: true,
19
+ get: function () { return fwScCompositor.FwScCompositor; }
20
+ });
21
+ Object.defineProperty(exports, "FwScSceneSwitcher", {
22
+ enumerable: true,
23
+ get: function () { return fwScSceneSwitcher.FwScSceneSwitcher; }
24
+ });
25
+ Object.defineProperty(exports, "FwScLayerList", {
26
+ enumerable: true,
27
+ get: function () { return fwScLayerList.FwScLayerList; }
28
+ });
29
+ Object.defineProperty(exports, "FwScVolume", {
30
+ enumerable: true,
31
+ get: function () { return fwScVolume.FwScVolume; }
32
+ });
33
+ Object.defineProperty(exports, "FwScAdvanced", {
34
+ enumerable: true,
35
+ get: function () { return fwScAdvanced.FwScAdvanced; }
36
+ });
37
+ exports.IngestControllerHost = ingestControllerHost.IngestControllerHost;
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ /******************************************************************************
4
+ Copyright (c) Microsoft Corporation.
5
+
6
+ Permission to use, copy, modify, and/or distribute this software for any
7
+ purpose with or without fee is hereby granted.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
16
+ ***************************************************************************** */
17
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
18
+
19
+
20
+ function __decorate(decorators, target, key, desc) {
21
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
24
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
25
+ }
26
+
27
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
28
+ var e = new Error(message);
29
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
30
+ };
31
+
32
+ exports.__decorate = __decorate;
33
+ //# sourceMappingURL=tslib.es6.js.map