@scaleflex/uploader 0.1.0 → 0.2.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 (54) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +1 -1
  3. package/dist/auth/auth.service.d.ts.map +1 -1
  4. package/dist/components/actions-bar.d.ts +4 -1
  5. package/dist/components/actions-bar.d.ts.map +1 -1
  6. package/dist/components/camera-dialog.d.ts +2 -1
  7. package/dist/components/camera-dialog.d.ts.map +1 -1
  8. package/dist/components/drop-zone.d.ts +17 -0
  9. package/dist/components/drop-zone.d.ts.map +1 -1
  10. package/dist/components/file-item.d.ts.map +1 -1
  11. package/dist/components/file-list.d.ts.map +1 -1
  12. package/dist/components/provider-browser.d.ts +1 -0
  13. package/dist/components/provider-browser.d.ts.map +1 -1
  14. package/dist/components/screen-cast-dialog.d.ts +2 -1
  15. package/dist/components/screen-cast-dialog.d.ts.map +1 -1
  16. package/dist/components/shared-styles.d.ts +5 -0
  17. package/dist/components/shared-styles.d.ts.map +1 -0
  18. package/dist/components/source-pills.d.ts.map +1 -1
  19. package/dist/components/success-card.d.ts +3 -1
  20. package/dist/components/success-card.d.ts.map +1 -1
  21. package/dist/components/url-dialog.d.ts +2 -2
  22. package/dist/components/url-dialog.d.ts.map +1 -1
  23. package/dist/connectors/provider-registry.d.ts.map +1 -1
  24. package/dist/define.cjs +1 -1
  25. package/dist/define.js +1 -1
  26. package/dist/engine/upload-engine.d.ts.map +1 -1
  27. package/dist/events/public-events.d.ts +1 -3
  28. package/dist/events/public-events.d.ts.map +1 -1
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/{provider-browser-C-S_MPrC.js → provider-browser-CUbPlWmj.js} +430 -185
  32. package/dist/provider-browser-D7G2wcFH.cjs +820 -0
  33. package/dist/{search-provider-browser-jCOer2Y9.js → search-provider-browser-D_kyqQ2m.js} +30 -30
  34. package/dist/{search-provider-browser-DxmLznEB.cjs → search-provider-browser-uDZrkDBZ.cjs} +29 -29
  35. package/dist/sfx-uploader-Cxz9YHev.js +5387 -0
  36. package/dist/sfx-uploader-DbaSJxEf.cjs +3298 -0
  37. package/dist/sfx-uploader.d.ts +55 -1
  38. package/dist/sfx-uploader.d.ts.map +1 -1
  39. package/dist/store/store.types.d.ts +1 -1
  40. package/dist/store/store.types.d.ts.map +1 -1
  41. package/dist/types/source.types.d.ts +3 -0
  42. package/dist/types/source.types.d.ts.map +1 -1
  43. package/dist/utils/file-utils.d.ts +2 -0
  44. package/dist/utils/file-utils.d.ts.map +1 -1
  45. package/dist/utils/focus-trap.d.ts +7 -0
  46. package/dist/utils/focus-trap.d.ts.map +1 -0
  47. package/dist/utils/validate.d.ts +11 -0
  48. package/dist/utils/validate.d.ts.map +1 -1
  49. package/package.json +3 -2
  50. package/dist/events/event-bus.d.ts +0 -38
  51. package/dist/events/event-bus.d.ts.map +0 -1
  52. package/dist/provider-browser-CmCwv0ph.cjs +0 -581
  53. package/dist/sfx-uploader-BVDK-9xi.cjs +0 -2029
  54. package/dist/sfx-uploader-C2lWIRnU.js +0 -3789
@@ -1,7 +1,7 @@
1
1
  import { LitElement as x, css as g, html as s, nothing as d } from "lit";
2
- import { property as f, state as a } from "lit/decorators.js";
3
- import { m as b, s as u } from "./sfx-uploader-C2lWIRnU.js";
4
- var m = Object.defineProperty, n = (c, r, e, t) => {
2
+ import { property as f, state as n } from "lit/decorators.js";
3
+ import { m as b, s as u } from "./sfx-uploader-Cxz9YHev.js";
4
+ var m = Object.defineProperty, a = (c, r, e, t) => {
5
5
  for (var i = void 0, l = c.length - 1, h; l >= 0; l--)
6
6
  (h = c[l]) && (i = h(r, e, i) || i);
7
7
  return i && m(r, e, i), i;
@@ -227,7 +227,7 @@ p.styles = g`
227
227
  }
228
228
 
229
229
  .back-btn:hover {
230
- background: #f1f5f9;
230
+ background: var(--sfx-up-border-light, #f1f5f9);
231
231
  color: var(--sfx-up-text, #1e293b);
232
232
  }
233
233
 
@@ -261,7 +261,7 @@ p.styles = g`
261
261
  font-family: inherit;
262
262
  font-size: 13px;
263
263
  color: var(--sfx-up-text, #1e293b);
264
- background: #fff;
264
+ background: var(--sfx-up-bg, #fff);
265
265
  outline: none;
266
266
  transition: border-color 0.15s;
267
267
  }
@@ -280,7 +280,7 @@ p.styles = g`
280
280
  border: none;
281
281
  border-radius: 9px;
282
282
  background: linear-gradient(135deg, var(--sfx-up-primary, #2563eb), var(--sfx-up-primary-mid, #3b82f6));
283
- color: #fff;
283
+ color: var(--primary-foreground, #fff);
284
284
  font-family: inherit;
285
285
  font-size: 13px;
286
286
  font-weight: 600;
@@ -355,7 +355,7 @@ p.styles = g`
355
355
 
356
356
  .result-item.selected .check {
357
357
  background: var(--sfx-up-primary, #2563eb);
358
- color: #fff;
358
+ color: var(--sfx-up-bg, #fff);
359
359
  }
360
360
 
361
361
  .check svg {
@@ -405,18 +405,18 @@ p.styles = g`
405
405
  border: none;
406
406
  border-radius: 9px;
407
407
  background: linear-gradient(135deg, var(--sfx-up-primary, #2563eb), var(--sfx-up-primary-mid, #3b82f6));
408
- color: #fff;
408
+ color: var(--primary-foreground, #fff);
409
409
  font-family: inherit;
410
410
  font-size: 13px;
411
411
  font-weight: 600;
412
412
  cursor: pointer;
413
413
  transition: all 0.18s;
414
- box-shadow: 0 2px 10px rgba(37, 99, 235, 0.28);
414
+ box-shadow: 0 2px 10px var(--sfx-up-primary-glow, rgba(37, 99, 235, 0.28));
415
415
  }
416
416
 
417
417
  .add-btn:hover:not(:disabled) {
418
418
  transform: translateY(-1px);
419
- box-shadow: 0 4px 16px rgba(37, 99, 235, 0.38);
419
+ box-shadow: 0 4px 16px var(--sfx-up-primary-glow, rgba(37, 99, 235, 0.38));
420
420
  }
421
421
 
422
422
  .add-btn:disabled {
@@ -465,8 +465,8 @@ p.styles = g`
465
465
  }
466
466
 
467
467
  .retry-btn:hover {
468
- background: #f8faff;
469
- border-color: #d1dff0;
468
+ background: var(--sfx-up-border-light, #f8faff);
469
+ border-color: var(--sfx-up-border, #d1dff0);
470
470
  }
471
471
 
472
472
  .empty-text {
@@ -502,35 +502,35 @@ p.styles = g`
502
502
  }
503
503
  `;
504
504
  let o = p;
505
- n([
505
+ a([
506
506
  f({ type: String })
507
507
  ], o.prototype, "provider");
508
- n([
508
+ a([
509
509
  f({ type: String })
510
510
  ], o.prototype, "companionUrl");
511
- n([
512
- a()
511
+ a([
512
+ n()
513
513
  ], o.prototype, "_loading");
514
- n([
515
- a()
514
+ a([
515
+ n()
516
516
  ], o.prototype, "_loadingMore");
517
- n([
518
- a()
517
+ a([
518
+ n()
519
519
  ], o.prototype, "_items");
520
- n([
521
- a()
520
+ a([
521
+ n()
522
522
  ], o.prototype, "_selectedIds");
523
- n([
524
- a()
523
+ a([
524
+ n()
525
525
  ], o.prototype, "_error");
526
- n([
527
- a()
526
+ a([
527
+ n()
528
528
  ], o.prototype, "_searchQuery");
529
- n([
530
- a()
529
+ a([
530
+ n()
531
531
  ], o.prototype, "_nextPageQuery");
532
- n([
533
- a()
532
+ a([
533
+ n()
534
534
  ], o.prototype, "_searched");
535
535
  export {
536
536
  o as SfxSearchProviderBrowser
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("lit"),n=require("lit/decorators.js"),l=require("./sfx-uploader-BVDK-9xi.cjs");var u=Object.defineProperty,a=(c,t,e,s)=>{for(var i=void 0,d=c.length-1,h;d>=0;d--)(h=c[d])&&(i=h(t,e,i)||i);return i&&u(t,e,i),i};const p=class p extends r.LitElement{constructor(){super(...arguments),this.provider="unsplash",this.companionUrl="",this._loading=!1,this._loadingMore=!1,this._items=[],this._selectedIds=new Set,this._error=null,this._searchQuery="",this._nextPageQuery=null,this._searched=!1,this._onResultsScroll=t=>{if(!this._nextPageQuery||this._loadingMore)return;const e=t.target;e.scrollHeight-e.scrollTop-e.clientHeight<200&&this._onLoadMore()},this._onSearchInput=t=>{this._searchQuery=t.target.value},this._onSearchKeydown=t=>{t.key==="Enter"&&this._doSearch()},this._onAddSelected=()=>{const e=this._items.filter(s=>this._selectedIds.has(s.id)).map(s=>({companionUrl:this.companionUrl,provider:this.provider,token:"",requestPath:s.requestPath,fileId:s.id,name:s.name||s.id,mimeType:s.mimeType,size:s.size,thumbnail:s.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:e},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))}}get _providerLabel(){var e;return((e=l.getProviderSources([this.provider])[0])==null?void 0:e.label)??this.provider}async _doSearch(){const t=this._searchQuery.trim();if(t){this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._nextPageQuery=null,this._searched=!0;try{const e=await l.searchProvider(this.companionUrl,this.provider,t),s=new Set;this._items=e.items.filter(i=>s.has(i.id)?!1:(s.add(i.id),!0)),this._nextPageQuery=e.nextPageQuery}catch(e){this._error=e instanceof Error?e.message:"Search failed"}finally{this._loading=!1}}}async _onLoadMore(){if(!(!this._nextPageQuery||this._loadingMore)){this._loadingMore=!0;try{const t=await l.searchProvider(this.companionUrl,this.provider,this._searchQuery.trim(),this._nextPageQuery),e=new Set(this._items.map(i=>i.id)),s=t.items.filter(i=>!e.has(i.id));this._items=[...this._items,...s],this._nextPageQuery=t.nextPageQuery}catch{}finally{this._loadingMore=!1}}}_toggleSelect(t){const e=new Set(this._selectedIds);e.has(t.id)?e.delete(t.id):e.add(t.id),this._selectedIds=e}render(){return r.html`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("lit"),a=require("lit/decorators.js"),l=require("./sfx-uploader-DbaSJxEf.cjs");var u=Object.defineProperty,n=(c,r,e,s)=>{for(var i=void 0,d=c.length-1,h;d>=0;d--)(h=c[d])&&(i=h(r,e,i)||i);return i&&u(r,e,i),i};const p=class p extends t.LitElement{constructor(){super(...arguments),this.provider="unsplash",this.companionUrl="",this._loading=!1,this._loadingMore=!1,this._items=[],this._selectedIds=new Set,this._error=null,this._searchQuery="",this._nextPageQuery=null,this._searched=!1,this._onResultsScroll=r=>{if(!this._nextPageQuery||this._loadingMore)return;const e=r.target;e.scrollHeight-e.scrollTop-e.clientHeight<200&&this._onLoadMore()},this._onSearchInput=r=>{this._searchQuery=r.target.value},this._onSearchKeydown=r=>{r.key==="Enter"&&this._doSearch()},this._onAddSelected=()=>{const e=this._items.filter(s=>this._selectedIds.has(s.id)).map(s=>({companionUrl:this.companionUrl,provider:this.provider,token:"",requestPath:s.requestPath,fileId:s.id,name:s.name||s.id,mimeType:s.mimeType,size:s.size,thumbnail:s.thumbnail}));this.dispatchEvent(new CustomEvent("connector-files-selected",{detail:{files:e},bubbles:!0,composed:!0}))},this._onClose=()=>{this.dispatchEvent(new CustomEvent("connector-close",{bubbles:!0,composed:!0}))}}get _providerLabel(){var e;return((e=l.getProviderSources([this.provider])[0])==null?void 0:e.label)??this.provider}async _doSearch(){const r=this._searchQuery.trim();if(r){this._loading=!0,this._error=null,this._items=[],this._selectedIds=new Set,this._nextPageQuery=null,this._searched=!0;try{const e=await l.searchProvider(this.companionUrl,this.provider,r),s=new Set;this._items=e.items.filter(i=>s.has(i.id)?!1:(s.add(i.id),!0)),this._nextPageQuery=e.nextPageQuery}catch(e){this._error=e instanceof Error?e.message:"Search failed"}finally{this._loading=!1}}}async _onLoadMore(){if(!(!this._nextPageQuery||this._loadingMore)){this._loadingMore=!0;try{const r=await l.searchProvider(this.companionUrl,this.provider,this._searchQuery.trim(),this._nextPageQuery),e=new Set(this._items.map(i=>i.id)),s=r.items.filter(i=>!e.has(i.id));this._items=[...this._items,...s],this._nextPageQuery=r.nextPageQuery}catch{}finally{this._loadingMore=!1}}}_toggleSelect(r){const e=new Set(this._selectedIds);e.has(r.id)?e.delete(r.id):e.add(r.id),this._selectedIds=e}render(){return t.html`
2
2
  ${this._renderHeader()}
3
3
  ${this._renderSearchBar()}
4
4
  ${this._loading?this._renderLoading():this._error?this._renderError():this._renderResults()}
5
- `}_renderHeader(){return r.html`
5
+ `}_renderHeader(){return t.html`
6
6
  <div class="browser-header">
7
7
  <button class="back-btn" @click=${this._onClose}>
8
8
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
@@ -11,7 +11,7 @@
11
11
  </button>
12
12
  <span class="browser-title">${this._providerLabel}</span>
13
13
  </div>
14
- `}_renderSearchBar(){return r.html`
14
+ `}_renderSearchBar(){return t.html`
15
15
  <div class="search-bar">
16
16
  <input
17
17
  class="search-input"
@@ -29,57 +29,57 @@
29
29
  Search
30
30
  </button>
31
31
  </div>
32
- `}_renderLoading(){return r.html`
32
+ `}_renderLoading(){return t.html`
33
33
  <div class="loading">
34
34
  <div class="spinner"></div>
35
35
  </div>
36
- `}_renderError(){return r.html`
36
+ `}_renderError(){return t.html`
37
37
  <div class="error-view">
38
38
  <div class="error-text">${this._error}</div>
39
39
  <button class="retry-btn" @click=${()=>this._doSearch()}>Retry</button>
40
40
  </div>
41
- `}_renderResults(){const t=this._selectedIds.size;return this._searched?this._items.length===0?r.html`
41
+ `}_renderResults(){const r=this._selectedIds.size;return this._searched?this._items.length===0?t.html`
42
42
  <div class="empty-state">
43
43
  <div class="empty-text">No results found</div>
44
44
  </div>
45
- `:r.html`
45
+ `:t.html`
46
46
  <div class="results" @scroll=${this._onResultsScroll}>
47
47
  <div class="results-grid">
48
- ${this._items.map(e=>{var s;return r.html`
48
+ ${this._items.map(e=>{var s;return t.html`
49
49
  <div
50
50
  class="result-item ${this._selectedIds.has(e.id)?"selected":""}"
51
51
  @click=${()=>this._toggleSelect(e)}
52
52
  >
53
- ${e.thumbnail?r.html`<img src=${e.thumbnail} alt=${e.name} loading="lazy" referrerpolicy="no-referrer" />`:r.nothing}
53
+ ${e.thumbnail?t.html`<img src=${e.thumbnail} alt=${e.name} loading="lazy" referrerpolicy="no-referrer" />`:t.nothing}
54
54
  <div class="check">
55
- ${this._selectedIds.has(e.id)?r.html`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><polyline points="20 6 9 17 4 12" /></svg>`:r.nothing}
55
+ ${this._selectedIds.has(e.id)?t.html`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><polyline points="20 6 9 17 4 12" /></svg>`:t.nothing}
56
56
  </div>
57
- ${(s=e.author)!=null&&s.name?r.html`<div class="author">${e.author.name}</div>`:r.nothing}
57
+ ${(s=e.author)!=null&&s.name?t.html`<div class="author">${e.author.name}</div>`:t.nothing}
58
58
  </div>
59
59
  `})}
60
60
  </div>
61
- ${this._loadingMore?r.html`<div class="loading" style="padding:16px 0"><div class="spinner"></div></div>`:r.nothing}
61
+ ${this._loadingMore?t.html`<div class="loading" style="padding:16px 0"><div class="spinner"></div></div>`:t.nothing}
62
62
  </div>
63
63
 
64
- ${this._items.length>0?r.html`
64
+ ${this._items.length>0?t.html`
65
65
  <div class="browser-footer">
66
66
  <span class="selected-count">
67
- ${t>0?`${t} image${t===1?"":"s"} selected`:"Select images to add"}
67
+ ${r>0?`${r} image${r===1?"":"s"} selected`:"Select images to add"}
68
68
  </span>
69
69
  <button
70
70
  class="add-btn"
71
- ?disabled=${t===0}
71
+ ?disabled=${r===0}
72
72
  @click=${this._onAddSelected}
73
73
  >
74
- Add ${t>0?t:""} image${t===1?"":"s"}
74
+ Add ${r>0?r:""} image${r===1?"":"s"}
75
75
  </button>
76
76
  </div>
77
- `:r.nothing}
78
- `:r.html`
77
+ `:t.nothing}
78
+ `:t.html`
79
79
  <div class="empty-state">
80
80
  <div class="empty-text">Enter text to search for images</div>
81
81
  </div>
82
- `}};p.styles=r.css`
82
+ `}};p.styles=t.css`
83
83
  :host {
84
84
  display: flex;
85
85
  flex-direction: column;
@@ -114,7 +114,7 @@
114
114
  }
115
115
 
116
116
  .back-btn:hover {
117
- background: #f1f5f9;
117
+ background: var(--sfx-up-border-light, #f1f5f9);
118
118
  color: var(--sfx-up-text, #1e293b);
119
119
  }
120
120
 
@@ -148,7 +148,7 @@
148
148
  font-family: inherit;
149
149
  font-size: 13px;
150
150
  color: var(--sfx-up-text, #1e293b);
151
- background: #fff;
151
+ background: var(--sfx-up-bg, #fff);
152
152
  outline: none;
153
153
  transition: border-color 0.15s;
154
154
  }
@@ -167,7 +167,7 @@
167
167
  border: none;
168
168
  border-radius: 9px;
169
169
  background: linear-gradient(135deg, var(--sfx-up-primary, #2563eb), var(--sfx-up-primary-mid, #3b82f6));
170
- color: #fff;
170
+ color: var(--primary-foreground, #fff);
171
171
  font-family: inherit;
172
172
  font-size: 13px;
173
173
  font-weight: 600;
@@ -242,7 +242,7 @@
242
242
 
243
243
  .result-item.selected .check {
244
244
  background: var(--sfx-up-primary, #2563eb);
245
- color: #fff;
245
+ color: var(--sfx-up-bg, #fff);
246
246
  }
247
247
 
248
248
  .check svg {
@@ -292,18 +292,18 @@
292
292
  border: none;
293
293
  border-radius: 9px;
294
294
  background: linear-gradient(135deg, var(--sfx-up-primary, #2563eb), var(--sfx-up-primary-mid, #3b82f6));
295
- color: #fff;
295
+ color: var(--primary-foreground, #fff);
296
296
  font-family: inherit;
297
297
  font-size: 13px;
298
298
  font-weight: 600;
299
299
  cursor: pointer;
300
300
  transition: all 0.18s;
301
- box-shadow: 0 2px 10px rgba(37, 99, 235, 0.28);
301
+ box-shadow: 0 2px 10px var(--sfx-up-primary-glow, rgba(37, 99, 235, 0.28));
302
302
  }
303
303
 
304
304
  .add-btn:hover:not(:disabled) {
305
305
  transform: translateY(-1px);
306
- box-shadow: 0 4px 16px rgba(37, 99, 235, 0.38);
306
+ box-shadow: 0 4px 16px var(--sfx-up-primary-glow, rgba(37, 99, 235, 0.38));
307
307
  }
308
308
 
309
309
  .add-btn:disabled {
@@ -352,8 +352,8 @@
352
352
  }
353
353
 
354
354
  .retry-btn:hover {
355
- background: #f8faff;
356
- border-color: #d1dff0;
355
+ background: var(--sfx-up-border-light, #f8faff);
356
+ border-color: var(--sfx-up-border, #d1dff0);
357
357
  }
358
358
 
359
359
  .empty-text {
@@ -387,4 +387,4 @@
387
387
  @media (prefers-reduced-motion: reduce) {
388
388
  .spinner { animation: none; }
389
389
  }
390
- `;let o=p;a([n.property({type:String})],o.prototype,"provider");a([n.property({type:String})],o.prototype,"companionUrl");a([n.state()],o.prototype,"_loading");a([n.state()],o.prototype,"_loadingMore");a([n.state()],o.prototype,"_items");a([n.state()],o.prototype,"_selectedIds");a([n.state()],o.prototype,"_error");a([n.state()],o.prototype,"_searchQuery");a([n.state()],o.prototype,"_nextPageQuery");a([n.state()],o.prototype,"_searched");exports.SfxSearchProviderBrowser=o;
390
+ `;let o=p;n([a.property({type:String})],o.prototype,"provider");n([a.property({type:String})],o.prototype,"companionUrl");n([a.state()],o.prototype,"_loading");n([a.state()],o.prototype,"_loadingMore");n([a.state()],o.prototype,"_items");n([a.state()],o.prototype,"_selectedIds");n([a.state()],o.prototype,"_error");n([a.state()],o.prototype,"_searchQuery");n([a.state()],o.prototype,"_nextPageQuery");n([a.state()],o.prototype,"_searched");exports.SfxSearchProviderBrowser=o;