@kumwe/studio-media 0.1.0-alpha.7 → 0.1.0-rc.1

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 CHANGED
@@ -10,6 +10,14 @@ Studio artifacts store the protocol's usage-specific `MediaReference`, while `Me
10
10
  host's library projection. URLs are delivery details returned by the receiving host and belong in
11
11
  neither persisted contract.
12
12
 
13
+ `StudioMediaFieldController` provides the reusable browse/search/page/select/replace and
14
+ paste/drop/upload workflow, including progress, cancel/retry, alternative text, decorative mode,
15
+ caption, focal point, rendition intent, and orphan recovery. Inject a `MediaProvider` and, for
16
+ host-authorized chunked uploads, a `MediaUploadTransport`. Dynamic host bindings are read-only.
17
+
18
+ The controller's observable value contains only the stable `MediaReference`; asset projections,
19
+ bytes, paths, delivery URLs, credentials, and upload grants never enter the artifact.
20
+
13
21
  ## Upload orchestration
14
22
 
15
23
  `MediaUploadController` drives the canonical media-upload-session state machine —
@@ -0,0 +1,9 @@
1
+ # Third-party notices
2
+
3
+ <!-- Generated by scripts/generate-third-party-notices.mjs. Do not edit by hand. -->
4
+
5
+ Package: `@kumwe/studio-media`
6
+
7
+ Production closure SHA-256: `4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945`
8
+
9
+ This package has no third-party runtime dependencies.
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export { MediaLibrary, MEDIA_PROVIDER_FAILURE, selectBestRendition, type MediaLi
2
2
  export { MediaUploadController, MEDIA_UPLOAD_FAILURE, MEDIA_UPLOAD_TOO_LARGE, type MediaUploadChunk, type MediaUploadControllerOptions, type MediaUploadListener, type MediaUploadTransport, } from './upload-controller.js';
3
3
  export { evaluateUploadPolicy, planFromPolicy, type MediaUploadPolicy, type MediaUploadPolicyDecision, } from './upload-policy.js';
4
4
  export { validateMediaReference } from './validate-media-reference.js';
5
+ export { StudioMediaFieldController, type StudioMediaFieldListener, type StudioMediaFieldOptions, type StudioMediaFieldState, type StudioMediaFieldStatus, } from './media-field.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export { MediaLibrary, MEDIA_PROVIDER_FAILURE, selectBestRendition, } from './me
2
2
  export { MediaUploadController, MEDIA_UPLOAD_FAILURE, MEDIA_UPLOAD_TOO_LARGE, } from './upload-controller.js';
3
3
  export { evaluateUploadPolicy, planFromPolicy, } from './upload-policy.js';
4
4
  export { validateMediaReference } from './validate-media-reference.js';
5
+ export { StudioMediaFieldController, } from './media-field.js';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,GAMpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAKvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,GAMpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAKvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,0BAA0B,GAK3B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { type FieldBinding, type MediaAsset, type MediaReference, type MediaRenditionIntent, type MediaUploadSession, type StudioDiagnostic } from '@kumwe/studio-protocol';
2
+ import { type MediaLibraryState, type MediaProvider } from './media-library.js';
3
+ import { type MediaUploadTransport } from './upload-controller.js';
4
+ export interface StudioMediaFieldOptions {
5
+ binding?: FieldBinding;
6
+ mediaTypes?: string[];
7
+ onChange?: (state: StudioMediaFieldState) => void;
8
+ provider: MediaProvider;
9
+ readOnly?: boolean;
10
+ uploadTransport?: MediaUploadTransport;
11
+ usage: `${string}/${string}`;
12
+ value?: MediaReference;
13
+ }
14
+ export type StudioMediaFieldStatus = 'browsing' | 'empty' | 'error' | 'orphaned' | 'ready' | 'uploading';
15
+ export interface StudioMediaFieldState {
16
+ asset?: MediaAsset;
17
+ diagnostics: StudioDiagnostic[];
18
+ library: MediaLibraryState;
19
+ readOnly: boolean;
20
+ status: StudioMediaFieldStatus;
21
+ upload?: MediaUploadSession;
22
+ value?: MediaReference;
23
+ }
24
+ export type StudioMediaFieldListener = (state: StudioMediaFieldState) => void;
25
+ /**
26
+ * Host-neutral media-field state machine. It coordinates the complete author
27
+ * journey while persisting only a canonical MediaReference — never bytes,
28
+ * delivery URLs, upload grants, Editor state, or catalogue projections.
29
+ */
30
+ export declare class StudioMediaFieldController {
31
+ #private;
32
+ constructor(options: StudioMediaFieldOptions);
33
+ get state(): StudioMediaFieldState;
34
+ cancelUpload(): void;
35
+ clear(): void;
36
+ dispose(): void;
37
+ drop(files: FileList | readonly File[]): Promise<StudioMediaFieldState>;
38
+ loadNext(): Promise<StudioMediaFieldState>;
39
+ open(): Promise<StudioMediaFieldState>;
40
+ paste(items: DataTransferItemList | readonly DataTransferItem[]): Promise<StudioMediaFieldState>;
41
+ resolve(): Promise<StudioMediaFieldState>;
42
+ retryUpload(): Promise<StudioMediaFieldState>;
43
+ search(search: string): Promise<StudioMediaFieldState>;
44
+ select(asset: MediaAsset): void;
45
+ setAltText(altText: string): void;
46
+ setCaption(caption: string | undefined): void;
47
+ setDecorative(decorative: boolean): void;
48
+ setFocalPoint(point: {
49
+ x: number;
50
+ y: number;
51
+ } | undefined): void;
52
+ setRenditionIntent(intent: MediaRenditionIntent | undefined): void;
53
+ subscribe(listener: StudioMediaFieldListener): () => void;
54
+ upload(file: File): Promise<StudioMediaFieldState>;
55
+ }
56
+ //# sourceMappingURL=media-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-field.d.ts","sourceRoot":"","sources":["../src/media-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG1F,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,KAAK,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,MAAM,sBAAsB,GAChC,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE9E;;;;GAIG;AACH,qBAAa,0BAA0B;;gBAelB,OAAO,EAAE,uBAAuB;IAkCnD,IAAW,KAAK,IAAI,qBAAqB,CAWxC;IAEM,YAAY,IAAI,IAAI;IAKpB,KAAK,IAAI,IAAI;IAQb,OAAO,IAAI,IAAI;IAKT,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,IAAI,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIvE,QAAQ,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAM1C,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAItC,KAAK,CAChB,KAAK,EAAE,oBAAoB,GAAG,SAAS,gBAAgB,EAAE,GACxD,OAAO,CAAC,qBAAqB,CAAC;IAQpB,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAqBzC,WAAW,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAQ7C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAU5D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAqB/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAajC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAa7C,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAexC,aAAa,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI;IAWhE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;IAWlE,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAQnD,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA6DhE"}
@@ -0,0 +1,301 @@
1
+ import { STUDIO_CONTRACT_VERSION, } from '@kumwe/studio-protocol';
2
+ import { MediaLibrary } from './media-library.js';
3
+ import { MediaUploadController } from './upload-controller.js';
4
+ import { validateMediaReference } from './validate-media-reference.js';
5
+ /**
6
+ * Host-neutral media-field state machine. It coordinates the complete author
7
+ * journey while persisting only a canonical MediaReference — never bytes,
8
+ * delivery URLs, upload grants, Editor state, or catalogue projections.
9
+ */
10
+ export class StudioMediaFieldController {
11
+ #library;
12
+ #listeners = new Set();
13
+ #mediaTypes;
14
+ #onChange;
15
+ #provider;
16
+ #readOnly;
17
+ #upload;
18
+ #usage;
19
+ #asset;
20
+ #libraryState = { assets: [], status: 'idle' };
21
+ #status;
22
+ #uploadState;
23
+ #value;
24
+ constructor(options) {
25
+ this.#provider = options.provider;
26
+ this.#usage = options.usage;
27
+ this.#mediaTypes = options.mediaTypes === undefined ? undefined : [...options.mediaTypes];
28
+ this.#onChange = options.onChange;
29
+ this.#readOnly =
30
+ options.readOnly === true ||
31
+ (options.binding !== undefined && options.binding.source.kind !== 'static-value');
32
+ this.#value = options.value === undefined ? undefined : structuredClone(options.value);
33
+ this.#upload =
34
+ options.uploadTransport === undefined
35
+ ? undefined
36
+ : new MediaUploadController(options.uploadTransport);
37
+ this.#status = this.#value === undefined ? 'empty' : 'browsing';
38
+ this.#library = new MediaLibrary(options.provider);
39
+ this.#library.subscribe((library) => {
40
+ this.#libraryState = library;
41
+ if (library.status === 'error')
42
+ this.#status = 'error';
43
+ this.#emit(false);
44
+ });
45
+ if (this.#upload !== undefined) {
46
+ this.#upload.subscribe((upload) => {
47
+ this.#uploadState = upload;
48
+ this.#status =
49
+ upload.state === 'failed'
50
+ ? 'error'
51
+ : upload.state === 'complete'
52
+ ? 'browsing'
53
+ : 'uploading';
54
+ this.#emit(false);
55
+ });
56
+ }
57
+ }
58
+ get state() {
59
+ const state = {
60
+ diagnostics: this.#value === undefined ? [] : validateMediaReference(this.#value),
61
+ library: structuredClone(this.#libraryState),
62
+ readOnly: this.#readOnly,
63
+ status: this.#status,
64
+ };
65
+ if (this.#asset !== undefined)
66
+ state.asset = structuredClone(this.#asset);
67
+ if (this.#uploadState !== undefined)
68
+ state.upload = structuredClone(this.#uploadState);
69
+ if (this.#value !== undefined)
70
+ state.value = structuredClone(this.#value);
71
+ return state;
72
+ }
73
+ cancelUpload() {
74
+ this.#assertMutable();
75
+ this.#upload?.cancel();
76
+ }
77
+ clear() {
78
+ this.#assertMutable();
79
+ this.#asset = undefined;
80
+ this.#value = undefined;
81
+ this.#status = 'empty';
82
+ this.#emit(true);
83
+ }
84
+ dispose() {
85
+ this.#library.dispose();
86
+ this.#listeners.clear();
87
+ }
88
+ async drop(files) {
89
+ return this.#uploadFiles([...files]);
90
+ }
91
+ async loadNext() {
92
+ this.#status = 'browsing';
93
+ await this.#library.loadNext();
94
+ return this.state;
95
+ }
96
+ async open() {
97
+ return this.search('');
98
+ }
99
+ async paste(items) {
100
+ const files = [...items]
101
+ .filter((item) => item.kind === 'file')
102
+ .map((item) => item.getAsFile())
103
+ .filter((file) => file !== null);
104
+ return this.#uploadFiles(files);
105
+ }
106
+ async resolve() {
107
+ if (this.#value === undefined)
108
+ return this.state;
109
+ this.#status = 'browsing';
110
+ this.#emit(false);
111
+ try {
112
+ const asset = await this.#provider.get(this.#value.assetId);
113
+ if (asset === null) {
114
+ this.#asset = undefined;
115
+ this.#status = 'orphaned';
116
+ }
117
+ else {
118
+ this.#asset = asset;
119
+ this.#status =
120
+ asset.state === 'rejected' || asset.state === 'quarantined' ? 'error' : 'ready';
121
+ }
122
+ }
123
+ catch {
124
+ this.#status = 'error';
125
+ }
126
+ this.#emit(false);
127
+ return this.state;
128
+ }
129
+ async retryUpload() {
130
+ this.#assertMutable();
131
+ if (this.#upload === undefined)
132
+ throw new Error('This media field has no upload transport.');
133
+ const result = await this.#upload.retry();
134
+ await this.#acceptCompletedUpload(result);
135
+ return this.state;
136
+ }
137
+ async search(search) {
138
+ this.#status = 'browsing';
139
+ await this.#library.search({
140
+ limit: 40,
141
+ ...(this.#mediaTypes === undefined ? {} : { mediaTypes: this.#mediaTypes }),
142
+ ...(search.trim().length === 0 ? {} : { search: search.trim().slice(0, 500) }),
143
+ });
144
+ return this.state;
145
+ }
146
+ select(asset) {
147
+ this.#assertMutable();
148
+ this.#asset = structuredClone(asset);
149
+ const alt = asset.metadata.altText?.trim();
150
+ this.#value = {
151
+ accessibility: {
152
+ altText: alt === undefined || alt.length === 0 ? asset.filename : alt,
153
+ ...(asset.metadata.caption === undefined ? {} : { caption: asset.metadata.caption }),
154
+ mode: 'informative',
155
+ },
156
+ assetId: asset.id,
157
+ assetRevision: asset.revision,
158
+ contractVersion: STUDIO_CONTRACT_VERSION,
159
+ kind: 'media-reference',
160
+ usage: this.#usage,
161
+ };
162
+ this.#status =
163
+ asset.state === 'ready' ? 'ready' : asset.state === 'processing' ? 'uploading' : 'error';
164
+ this.#emit(true);
165
+ }
166
+ setAltText(altText) {
167
+ this.#assertMutable();
168
+ const value = this.#requireValue();
169
+ const caption = value.accessibility.mode === 'informative' ? value.accessibility.caption : undefined;
170
+ value.accessibility = {
171
+ altText: altText.trim().slice(0, 5_000),
172
+ ...(caption === undefined ? {} : { caption }),
173
+ mode: 'informative',
174
+ };
175
+ this.#emit(true);
176
+ }
177
+ setCaption(caption) {
178
+ this.#assertMutable();
179
+ const value = this.#requireValue();
180
+ if (value.accessibility.mode !== 'informative')
181
+ return;
182
+ value.accessibility = {
183
+ ...value.accessibility,
184
+ ...(caption === undefined || caption.length === 0
185
+ ? {}
186
+ : { caption: caption.slice(0, 20_000) }),
187
+ };
188
+ this.#emit(true);
189
+ }
190
+ setDecorative(decorative) {
191
+ this.#assertMutable();
192
+ const value = this.#requireValue();
193
+ if (decorative) {
194
+ value.accessibility = { mode: 'decorative' };
195
+ }
196
+ else {
197
+ const metadataAlt = this.#asset?.metadata.altText?.trim() ?? '';
198
+ const filename = this.#asset?.filename ?? '';
199
+ const suggested = metadataAlt.length > 0 ? metadataAlt : filename.length > 0 ? filename : 'Media';
200
+ value.accessibility = { altText: suggested, mode: 'informative' };
201
+ }
202
+ this.#emit(true);
203
+ }
204
+ setFocalPoint(point) {
205
+ this.#assertMutable();
206
+ const value = this.#requireValue();
207
+ if (point === undefined) {
208
+ delete value.focalPoint;
209
+ }
210
+ else {
211
+ value.focalPoint = { x: clampUnit(point.x), y: clampUnit(point.y) };
212
+ }
213
+ this.#emit(true);
214
+ }
215
+ setRenditionIntent(intent) {
216
+ this.#assertMutable();
217
+ const value = this.#requireValue();
218
+ if (intent === undefined) {
219
+ delete value.renditionIntent;
220
+ }
221
+ else {
222
+ value.renditionIntent = structuredClone(intent);
223
+ }
224
+ this.#emit(true);
225
+ }
226
+ subscribe(listener) {
227
+ this.#listeners.add(listener);
228
+ listener(this.state);
229
+ return () => {
230
+ this.#listeners.delete(listener);
231
+ };
232
+ }
233
+ async upload(file) {
234
+ return this.#uploadFiles([file]);
235
+ }
236
+ #assertMutable() {
237
+ if (this.#readOnly)
238
+ throw new Error('Dynamic and read-only media fields cannot be mutated.');
239
+ }
240
+ async #acceptCompletedUpload(session) {
241
+ if (session.state !== 'complete' || session.asset === undefined)
242
+ return;
243
+ const asset = await this.#provider.get(session.asset.id);
244
+ if (asset === null) {
245
+ this.#value = {
246
+ accessibility: { altText: session.request.filename, mode: 'informative' },
247
+ assetId: session.asset.id,
248
+ assetRevision: session.asset.revision,
249
+ contractVersion: STUDIO_CONTRACT_VERSION,
250
+ kind: 'media-reference',
251
+ usage: this.#usage,
252
+ };
253
+ this.#asset = undefined;
254
+ this.#status = 'orphaned';
255
+ this.#emit(true);
256
+ return;
257
+ }
258
+ this.select(asset);
259
+ }
260
+ #emit(changed) {
261
+ const state = this.state;
262
+ if (changed)
263
+ this.#onChange?.(state);
264
+ for (const listener of this.#listeners)
265
+ listener(state);
266
+ }
267
+ #requireValue() {
268
+ if (this.#value === undefined)
269
+ throw new Error('Select media before editing its usage.');
270
+ return this.#value;
271
+ }
272
+ async #uploadFiles(files) {
273
+ this.#assertMutable();
274
+ const file = files[0];
275
+ if (file === undefined)
276
+ return this.state;
277
+ if (this.#mediaTypes !== undefined && !this.#mediaTypes.includes(file.type)) {
278
+ throw new TypeError(`Media type "${file.type}" is not accepted by this field.`);
279
+ }
280
+ this.#status = 'uploading';
281
+ this.#emit(false);
282
+ if (this.#upload === undefined) {
283
+ const asset = await this.#provider.upload({ alt: file.name, file });
284
+ this.select(asset);
285
+ return this.state;
286
+ }
287
+ const result = await this.#upload.upload(file, {
288
+ filename: file.name,
289
+ mediaType: file.type || 'application/octet-stream',
290
+ purpose: this.#usage,
291
+ });
292
+ await this.#acceptCompletedUpload(result);
293
+ return this.state;
294
+ }
295
+ }
296
+ function clampUnit(value) {
297
+ if (!Number.isFinite(value))
298
+ throw new TypeError('Focal coordinates must be finite numbers.');
299
+ return Math.max(0, Math.min(1, value));
300
+ }
301
+ //# sourceMappingURL=media-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-field.js","sourceRoot":"","sources":["../src/media-field.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kumwe/studio-media",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-rc.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/kumwe/studio.git",
@@ -13,6 +13,8 @@
13
13
  "sideEffects": false,
14
14
  "files": [
15
15
  "LICENSE",
16
+ "THIRD_PARTY_NOTICES.md",
17
+ "third-party-licenses",
16
18
  "dist",
17
19
  "README.md"
18
20
  ],
@@ -26,7 +28,7 @@
26
28
  "build": "tsc -b"
27
29
  },
28
30
  "dependencies": {
29
- "@kumwe/studio-protocol": "0.1.0-alpha.6"
31
+ "@kumwe/studio-protocol": "0.1.0-rc.1"
30
32
  },
31
33
  "publishConfig": {
32
34
  "access": "public",