@uploadcare/file-uploader 1.33.1 → 1.34.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.
- package/dist/abstract/loadFileUploaderFrom.js +2 -2
- package/dist/env.js +3 -3
- package/dist/index.css +2 -2
- package/dist/index.d.ts +277 -105
- package/dist/index.js +5 -5
- package/dist/index.layered.css +2 -2
- package/dist/index.ssr.js +3 -1
- package/dist/locales/file-uploader/ar.js +2 -2
- package/dist/locales/file-uploader/az.js +2 -2
- package/dist/locales/file-uploader/ca.js +2 -2
- package/dist/locales/file-uploader/cs.js +2 -2
- package/dist/locales/file-uploader/da.js +2 -2
- package/dist/locales/file-uploader/de.js +2 -2
- package/dist/locales/file-uploader/el.js +2 -2
- package/dist/locales/file-uploader/en.js +2 -2
- package/dist/locales/file-uploader/es.js +2 -2
- package/dist/locales/file-uploader/et.js +2 -2
- package/dist/locales/file-uploader/fi.js +2 -2
- package/dist/locales/file-uploader/fr.js +2 -2
- package/dist/locales/file-uploader/he.js +2 -2
- package/dist/locales/file-uploader/hy.js +2 -2
- package/dist/locales/file-uploader/is.js +2 -2
- package/dist/locales/file-uploader/it.js +2 -2
- package/dist/locales/file-uploader/ja.js +2 -2
- package/dist/locales/file-uploader/ka.js +2 -2
- package/dist/locales/file-uploader/kk.js +2 -2
- package/dist/locales/file-uploader/ko.js +2 -2
- package/dist/locales/file-uploader/lv.js +2 -2
- package/dist/locales/file-uploader/nb.js +2 -2
- package/dist/locales/file-uploader/nl.js +2 -2
- package/dist/locales/file-uploader/pl.js +2 -2
- package/dist/locales/file-uploader/pt.js +2 -2
- package/dist/locales/file-uploader/ro.js +2 -2
- package/dist/locales/file-uploader/ru.js +2 -2
- package/dist/locales/file-uploader/sk.js +2 -2
- package/dist/locales/file-uploader/sr.js +2 -2
- package/dist/locales/file-uploader/sv.js +2 -2
- package/dist/locales/file-uploader/tr.js +2 -2
- package/dist/locales/file-uploader/uk.js +2 -2
- package/dist/locales/file-uploader/vi.js +2 -2
- package/dist/locales/file-uploader/zh-TW.js +2 -2
- package/dist/locales/file-uploader/zh.js +2 -2
- package/package.json +8 -7
- package/types/jsx.d.ts +29 -1
- package/web/file-uploader.iife.min.d.ts +277 -105
- package/web/file-uploader.iife.min.js +4 -4
- package/web/file-uploader.min.d.ts +277 -105
- package/web/file-uploader.min.js +4 -4
- package/web/uc-basic.layered.min.css +2 -2
- package/web/uc-basic.min.css +2 -2
- package/web/uc-cloud-image-editor.layered.min.css +2 -2
- package/web/uc-cloud-image-editor.min.css +2 -2
- package/web/uc-cloud-image-editor.min.d.ts +159 -10
- package/web/uc-cloud-image-editor.min.js +4 -4
- package/web/uc-file-uploader-inline.layered.min.css +2 -2
- package/web/uc-file-uploader-inline.min.css +2 -2
- package/web/uc-file-uploader-inline.min.d.ts +277 -105
- package/web/uc-file-uploader-inline.min.js +4 -4
- package/web/uc-file-uploader-minimal.layered.min.css +2 -2
- package/web/uc-file-uploader-minimal.min.css +2 -2
- package/web/uc-file-uploader-minimal.min.d.ts +277 -105
- package/web/uc-file-uploader-minimal.min.js +4 -4
- package/web/uc-file-uploader-regular.layered.min.css +2 -2
- package/web/uc-file-uploader-regular.min.css +2 -2
- package/web/uc-file-uploader-regular.min.d.ts +277 -105
- package/web/uc-file-uploader-regular.min.js +4 -4
- package/web/uc-img.min.js +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Package: @uploadcare/file-uploader@1.
|
|
3
|
+
* Package: @uploadcare/file-uploader@1.34.0 (MIT)
|
|
4
4
|
* License: https://github.com/uploadcare/blob/main/LICENSE
|
|
5
|
-
* Built: 2026-
|
|
5
|
+
* Built: 2026-09-23T00:02:48.638Z
|
|
6
6
|
*/:where([uc-wgt-common]){--uc-font-family: system-ui;--uc-font-size: 14px;--uc-line-height: normal;--uc-simple-btn-font-family: system-ui;--uc-simple-btn-font-size: 14px;--uc-button-size: 32px;--uc-preview-size: 32px;--uc-padding: 10px;--uc-radius: 8px;--uc-transition: .2s ease;--uc-dialog-width: 430px;--uc-dialog-max-width: 920px;--uc-dialog-max-height: 675px;--uc-simple-btn-padding: 7px 14px;--uc-grid-col: 3;--uc-grid-preview-image-height: auto;--uc-grid-gap: calc(var(--uc-padding) / 2);--uc-grid-aspect-ratio: 1 / 1;--uc-background: var(--uc-background-light);--uc-foreground: var(--uc-foreground-light);--uc-primary: var(--uc-primary-light);--uc-primary-hover: var(--uc-primary-hover-light);--uc-primary-transparent: var(--uc-primary-transparent-light);--uc-primary-foreground: var(--uc-primary-foreground-light);--uc-secondary: var(--uc-secondary-light);--uc-secondary-hover: var(--uc-secondary-hover-light);--uc-secondary-foreground: var(--uc-secondary-foreground-light);--uc-muted: var(--uc-muted-light);--uc-muted-foreground: var(--uc-muted-foreground-light);--uc-destructive: var(--uc-destructive-light);--uc-destructive-foreground: var(--uc-destructive-foreground-light);--uc-border: var(--uc-border-light);--uc-dialog-shadow: var(--uc-dialog-shadow-light);--uc-simple-btn: var(--uc-simple-btn-light);--uc-simple-btn-hover: var(--uc-simple-btn-hover-light);--uc-simple-btn-foreground: var(--uc-simple-btn-foreground-light)}@supports not (color: oklch(0% 0 0)){:where([uc-wgt-common]){--uc-primary-rgb-light: 23 75 215;--uc-primary-light: rgb(var(--uc-primary-rgb-light));--uc-primary-hover-light: rgb(var(--uc-primary-rgb-light) / 90%);--uc-primary-transparent-light: rgb(var(--uc-primary-rgb-light) / 10%);--uc-background-light: rgb(255 255 255);--uc-foreground-light: rgb(24 24 24);--uc-primary-foreground-light: #fff;--uc-secondary-light: rgb(24 24 24 / 5%);--uc-secondary-hover-light: rgb(24 24 24 / 8%);--uc-secondary-foreground-light: rgb(24 24 24);--uc-muted-light: rgb(245 245 245);--uc-muted-foreground-light: rgb(113 113 113);--uc-destructive-light: rgb(232 19 20 / 5%);--uc-destructive-foreground-light: rgb(232 19 20);--uc-border-light: rgb(228 228 232);--uc-dialog-shadow-light: 0px 6px 20px rgb(0 0 0 / 10%);--uc-simple-btn-light: rgb(235 235 235);--uc-simple-btn-hover-light: rgb(228 228 228);--uc-simple-btn-foreground-light: rgb(24 24 24);--uc-primary-rgb-dark: 87 154 255;--uc-primary-dark: rgb(var(--uc-primary-rgb-dark));--uc-primary-hover-dark: rgb(var(--uc-primary-rgb-dark) / 90%);--uc-primary-transparent-dark: rgb(var(--uc-primary-rgb-dark) / 7%);--uc-background-dark: rgb(27 27 27);--uc-foreground-dark: rgb(225 225 225);--uc-primary-foreground-dark: rgb(0 0 0);--uc-secondary-dark: rgb(225 225 225 / 7%);--uc-secondary-hover-dark: rgb(225 225 225 / 10%);--uc-secondary-foreground-dark: rgb(225 225 225);--uc-muted-dark: rgb(36 36 36);--uc-muted-foreground-dark: rgb(152 152 152);--uc-destructive-dark: rgb(244 90 79 / 10%);--uc-destructive-foreground-dark: rgb(244 90 79);--uc-border-dark: rgb(61 61 61);--uc-dialog-shadow-dark: 0px 6px 20px rgb(0 0 0 / 25%);--uc-simple-btn-dark: rgb(36 36 36);--uc-simple-btn-hover-dark: rgb(43 43 43);--uc-simple-btn-foreground-dark: rgb(255 255 255)}}@supports (color: oklch(0% 0 0)){:where([uc-wgt-common]){--uc-primary-oklch-light: 47% .22 264;--uc-primary-light: oklch(var(--uc-primary-oklch-light));--uc-primary-hover-light: oklch(var(--uc-primary-oklch-light) / 90%);--uc-primary-transparent-light: oklch(var(--uc-primary-oklch-light) / 7%);--uc-background-light: oklch(100% 0 0);--uc-foreground-light: oklch(21% 0 0);--uc-primary-foreground-light: oklch(100% 0 0);--uc-secondary-light: oklch(21% 0 0 / .05);--uc-secondary-hover-light: oklch(21% 0 0 / .08);--uc-secondary-foreground-light: oklch(21% 0 0);--uc-muted-light: oklch(97% 0 0);--uc-muted-foreground-light: oklch(40% 0 0);--uc-destructive-light: oklch(59% .235 28.5 / .05);--uc-destructive-foreground-light: oklch(59% .235 28.5);--uc-border-light: oklch(92% 0 0);--uc-dialog-shadow-light: 0px 6px 20px oklch(0% 0 0 / .1);--uc-simple-btn-light: oklch(94% 0 0);--uc-simple-btn-hover-light: oklch(92% 0 0);--uc-simple-btn-foreground-light: oklch(20% 0 0);--uc-primary-oklch-dark: 69% .1768 258.4;--uc-primary-dark: oklch(var(--uc-primary-oklch-dark));--uc-primary-hover-dark: oklch(var(--uc-primary-oklch-dark) / 90%);--uc-primary-transparent-dark: oklch(var(--uc-primary-oklch-dark) / 7%);--uc-background-dark: oklch(22% 0 0);--uc-foreground-dark: oklch(91% 0 0);--uc-primary-foreground-dark: oklch(0% 0 0);--uc-secondary-dark: oklch(91% 0 0 / .07);--uc-secondary-hover-dark: oklch(91% 0 0 / .1);--uc-secondary-foreground-dark: oklch(91% 0 0);--uc-muted-dark: oklch(26% 0 0);--uc-muted-foreground-dark: oklch(68% 0 0);--uc-destructive-dark: oklch(67% .191 27.5 / .1);--uc-destructive-foreground-dark: oklch(67% .191 27.5);--uc-border-dark: oklch(36% 0 0);--uc-dialog-shadow-dark: 0px 6px 20px oklch(0% 0 0 / .25);--uc-simple-btn-dark: oklch(26% 0 0);--uc-simple-btn-hover-dark: oklch(29% 0 0);--uc-simple-btn-foreground-dark: oklch(100% 0 0)}}@media only screen and (max-height:600px){:where([uc-wgt-common]){--uc-dialog-max-height: 100%}}@media only screen and (max-width:680px){:where([uc-wgt-common]){--uc-grid-col: 2}}@media only screen and (max-width:430px){:where([uc-wgt-common]){--uc-dialog-max-width: 100vw;--uc-dialog-max-height: var(--uploadcare-blocks-window-height);--uc-grid-col: 1}}@media(prefers-color-scheme:light){:where([uc-wgt-common]){--uc-background: var(--uc-background-light);--uc-foreground: var(--uc-foreground-light);--uc-primary: var(--uc-primary-light);--uc-primary-hover: var(--uc-primary-hover-light);--uc-primary-transparent: var(--uc-primary-transparent-light);--uc-primary-foreground: var(--uc-primary-foreground-light);--uc-secondary: var(--uc-secondary-light);--uc-secondary-hover: var(--uc-secondary-hover-light);--uc-secondary-foreground: var(--uc-secondary-foreground-light);--uc-muted: var(--uc-muted-light);--uc-muted-foreground: var(--uc-muted-foreground-light);--uc-destructive: var(--uc-destructive-light);--uc-destructive-foreground: var(--uc-destructive-foreground-light);--uc-border: var(--uc-border-light);--uc-dialog-shadow: var(--uc-dialog-shadow-light);--uc-simple-btn: var(--uc-simple-btn-light);--uc-simple-btn-hover: var(--uc-simple-btn-hover-light);--uc-simple-btn-foreground: var(--uc-simple-btn-foreground-light)}}@media(prefers-color-scheme:dark){:where([uc-wgt-common]){--uc-background: var(--uc-background-dark);--uc-foreground: var(--uc-foreground-dark);--uc-primary: var(--uc-primary-dark);--uc-primary-hover: var(--uc-primary-hover-dark);--uc-primary-transparent: var(--uc-primary-transparent-dark);--uc-primary-foreground: var(--uc-primary-foreground-dark);--uc-secondary: var(--uc-secondary-dark);--uc-secondary-hover: var(--uc-secondary-hover-dark);--uc-secondary-foreground: var(--uc-secondary-foreground-dark);--uc-muted: var(--uc-muted-dark);--uc-muted-foreground: var(--uc-muted-foreground-dark);--uc-destructive: var(--uc-destructive-dark);--uc-destructive-foreground: var(--uc-destructive-foreground-dark);--uc-border: var(--uc-border-dark);--uc-dialog-shadow: var(--uc-dialog-shadow-dark);--uc-simple-btn: var(--uc-simple-btn-dark);--uc-simple-btn-hover: var(--uc-simple-btn-hover-dark);--uc-simple-btn-foreground: var(--uc-simple-btn-foreground-dark)}}:where(.uc-light),:where(.uc-light) :where([uc-wgt-common]){--uc-background: var(--uc-background-light);--uc-foreground: var(--uc-foreground-light);--uc-primary: var(--uc-primary-light);--uc-primary-hover: var(--uc-primary-hover-light);--uc-primary-transparent: var(--uc-primary-transparent-light);--uc-primary-foreground: var(--uc-primary-foreground-light);--uc-secondary: var(--uc-secondary-light);--uc-secondary-hover: var(--uc-secondary-hover-light);--uc-secondary-foreground: var(--uc-secondary-foreground-light);--uc-muted: var(--uc-muted-light);--uc-muted-foreground: var(--uc-muted-foreground-light);--uc-destructive: var(--uc-destructive-light);--uc-destructive-foreground: var(--uc-destructive-foreground-light);--uc-border: var(--uc-border-light);--uc-dialog-shadow: var(--uc-dialog-shadow-light);--uc-simple-btn: var(--uc-simple-btn-light);--uc-simple-btn-hover: var(--uc-simple-btn-hover-light);--uc-simple-btn-foreground: var(--uc-simple-btn-foreground-light)}:where(.uc-dark),:where(.uc-dark) :where([uc-wgt-common]){--uc-background: var(--uc-background-dark);--uc-foreground: var(--uc-foreground-dark);--uc-primary: var(--uc-primary-dark);--uc-primary-hover: var(--uc-primary-hover-dark);--uc-primary-transparent: var(--uc-primary-transparent-dark);--uc-primary-foreground: var(--uc-primary-foreground-dark);--uc-secondary: var(--uc-secondary-dark);--uc-secondary-hover: var(--uc-secondary-hover-dark);--uc-secondary-foreground: var(--uc-secondary-foreground-dark);--uc-muted: var(--uc-muted-dark);--uc-muted-foreground: var(--uc-muted-foreground-dark);--uc-destructive: var(--uc-destructive-dark);--uc-destructive-foreground: var(--uc-destructive-foreground-dark);--uc-border: var(--uc-border-dark);--uc-dialog-shadow: var(--uc-dialog-shadow-dark);--uc-simple-btn: var(--uc-simple-btn-dark);--uc-simple-btn-hover: var(--uc-simple-btn-hover-dark);--uc-simple-btn-foreground: var(--uc-simple-btn-foreground-dark)}:where(.uc-purple){--uc-primary-oklch-light: 47% .22 300;--uc-primary-oklch-dark: 69% .1768 300}:where(.uc-red){--uc-primary-oklch-light: 47% .21 21;--uc-primary-oklch-dark: 71% .1768 21}:where(.uc-orange){--uc-primary-oklch-light: 47% .1376 51.88;--uc-primary-oklch-dark: 69% .1768 51.88}:where(.uc-green){--uc-primary-oklch-light: 45% .14 130;--uc-primary-oklch-dark: 69% .1768 130}:where(.uc-turquoise){--uc-primary-oklch-light: 45% .0854 174;--uc-primary-oklch-dark: 69% .1768 174}:where(.uc-gray){--uc-primary-oklch-light: 10% 0 0;--uc-primary-oklch-dark: 97% 0 0}:where(.uc-contrast){--uc-border-light: oklch(50% 0 0);--uc-border-dark: oklch(50% 0 0);--uc-muted-light: oklch(98% 0 0);--uc-muted-dark: oklch(16% 0 0);--uc-muted-foreground-light: oklch(20% 0 0);--uc-muted-foreground-dark: oklch(80% 0 0);--uc-background-light: oklch(100% 0 0);--uc-foreground-light: oklch(0% 0 0);--uc-background-dark: oklch(10% 0 0);--uc-foreground-dark: oklch(100% 0 0)}:where(.uc-radius-none){--uc-radius: 0}:where(.uc-radius-small){--uc-radius: 5px}:where(.uc-radius-medium){--uc-radius: 8px}:where(.uc-radius-large){--uc-radius: 16px}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#){--color-primary-accent: var(--uc-primary);--color-text-base: var(--uc-foreground);--color-text-accent-contrast: var(--uc-background);--color-fill-contrast: var(--uc-background);--color-modal-backdrop: oklch(0% 0 0 / .1);--color-image-background: var(--uc-muted);--color-focus-ring: var(--color-primary-accent);--color-crop-guides: var(--uc-foreground);--font-size-ui: var(--uc-font-size);--size-touch-area: var(--uc-button-size);--size-panel-heading: calc(var(--uc-button-size) + var(--uc-padding) * 2);--size-ui-min-width: 130px;--size-line-width: 1px;--size-modal-width: 650px;--size-icon: calc(var(--uc-button-size) / 2);--border-radius-editor: var(--uc-radius);--border-radius-thumb: var(--uc-radius);--border-radius-ui: var(--uc-radius);--border-radius-base: var(--uc-radius);--cldtr-gap-min: 5px;--cldtr-gap-mid-1: 10px;--cldtr-gap-mid-2: 15px;--cldtr-gap-max: 20px;--transition-duration-2: var(--transition-duration-all, .2s);--transition-duration-3: var(--transition-duration-all, .3s);--transition-duration-4: var(--transition-duration-all, .4s);--transition-duration-5: var(--transition-duration-all, .5s);--modal-header-opacity: 1;--modal-header-height: var(--size-panel-heading);--modal-toolbar-height: var(--size-panel-heading);--transparent-pixel: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);display:block;width:100%;height:100%;max-height:100%}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) :is([can-handle-paste]:hover,[can-handle-paste]:focus){--can-handle-paste: "true"}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#) :is([tabindex]:focus-visible,[tabindex]:hover,[with-effects]:focus-visible,[with-effects]:hover){--filter-effect: var(--hover-filter) !important;--opacity-effect: var(--hover-opacity) !important;--color-effect: var(--hover-color-rgb) !important;--background-effect: var(--hover-background) !important}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#) :is([tabindex]:active,[with-effects]:active){--filter-effect: var(--down-filter) !important;--opacity-effect: var(--down-opacity) !important;--color-effect: var(--down-color-rgb) !important;--background-effect: var(--down-background) !important}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#) :is([tabindex][active],[with-effects][active]){--filter-effect: var(--active-filter) !important;--opacity-effect: var(--active-opacity) !important;--color-effect: var(--active-color-rgb) !important;--background-effect: var(--active-background) !important}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) [hidden-scrollbar]::-webkit-scrollbar{display:none}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) [hidden-scrollbar]{-ms-overflow-style:none;scrollbar-width:none}[uc-cloud-image-editor].uc-editor_ON:not(#\#):not(#\#):not(#\#):not(#\#){--modal-header-opacity: 0;--modal-header-height: 0px;--modal-toolbar-height: calc(var(--size-panel-heading) * 2)}[uc-cloud-image-editor].uc-editor_OFF:not(#\#):not(#\#):not(#\#):not(#\#){--modal-header-opacity: 1;--modal-header-height: var(--size-panel-heading);--modal-toolbar-height: var(--size-panel-heading)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper{--l-min-img-height: var(--modal-toolbar-height);--l-max-img-height: 100%;--l-edit-button-width: 120px;--l-toolbar-horizontal-padding: var(--cldtr-gap-mid-1);position:relative;display:grid;grid-template-rows:minmax(var(--l-min-img-height),var(--l-max-img-height)) minmax(var(--modal-toolbar-height),auto);height:100%;overflow:hidden;overflow-y:auto}@media only screen and (max-width:800px){[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper{--l-edit-button-width: 70px;--l-toolbar-horizontal-padding: var(--cldtr-gap-min)}}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport{display:flex;align-items:center;justify-content:center;overflow:hidden}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-image_container>.uc-image{--viewer-image-opacity: 1;position:absolute;top:0;left:0;z-index:10;display:block;box-sizing:border-box;width:100%;height:100%;object-fit:scale-down;background-color:var(--color-image-background);transform:scale(1);opacity:var(--viewer-image-opacity);user-select:none;pointer-events:auto}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-image_container>.uc-image.uc-image_visible_viewer{transition:opacity var(--transition-duration-3) ease-in-out,transform var(--transition-duration-4)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-image_container>.uc-image.uc-image_hidden_to_cropper{--viewer-image-opacity: 0;background-image:var(--transparent-pixel);transform:scale(1);transition:transform var(--transition-duration-4),opacity var(--transition-duration-3) steps(1,jump-end);pointer-events:none}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-image_container>.uc-image.uc-image_hidden_effects{--viewer-image-opacity: 0;transform:scale(1);transition:opacity var(--transition-duration-3) cubic-bezier(.5,0,1,1),transform var(--transition-duration-4);pointer-events:none}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-image_container{position:relative;display:block;width:100%;height:100%;background-color:var(--color-image-background);transition:var(--transition-duration-3)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-toolbar{position:relative;transition:.3s}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-toolbar>.uc-toolbar_content{position:absolute;bottom:0;left:0;box-sizing:border-box;width:100%;height:var(--modal-toolbar-height);min-height:var(--size-panel-heading);background-color:var(--color-fill-contrast)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-toolbar>.uc-toolbar_content.uc-toolbar_content__viewer{display:flex;align-items:center;justify-content:space-between;height:var(--size-panel-heading);padding-right:var(--l-toolbar-horizontal-padding);padding-left:var(--l-toolbar-horizontal-padding)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-toolbar>.uc-toolbar_content.uc-toolbar_content__editor{display:flex}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-info_pan{position:absolute;user-select:none}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-file_type_outer{position:absolute;z-index:2;display:flex;max-width:120px;transform:translate(-40px);user-select:none}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-viewport>.uc-file_type_outer>.uc-file_type{padding:4px .8em}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-network_problems_splash{position:absolute;z-index:999;display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--color-fill-contrast)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-network_problems_splash>.uc-network_problems_content{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-network_problems_splash>.uc-network_problems_content>.uc-network_problems_icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--uc-foreground);background-color:var(--uc-muted);border-radius:50%}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-network_problems_splash>.uc-network_problems_content>.uc-network_problems_text{margin-top:var(--cldtr-gap-max);font-size:var(--font-size-ui);color:var(--uc-foreground)}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-wrapper>.uc-network_problems_splash>.uc-network_problems_footer{display:flex;align-items:center;justify-content:center;height:var(--size-panel-heading)}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-svg{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;border-top-left-radius:var(--border-radius-base);border-top-right-radius:var(--border-radius-base);opacity:inherit;transition:var(--transition-duration-3)}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-thumb{--idle-color-rgb: var(--color-text-base);--hover-color-rgb: var(--color-primary-accent);--focus-color-rgb: var(--color-primary-accent);--down-color-rgb: var(--color-primary-accent);--color-effect: var(--idle-color-rgb);color:var(--color-effect);transition:color var(--transition-duration-3),opacity var(--transition-duration-3)}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-thumb--visible{opacity:1;pointer-events:auto}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-thumb--hidden{opacity:0;pointer-events:none}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-guides{transition:var(--transition-duration-3)}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-guides--hidden{opacity:0}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-guides--semi-hidden{opacity:.2}uc-crop-frame:not(#\#):not(#\#):not(#\#):not(#\#) .uc-guides--visible{opacity:1}uc-editor-button-control:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-crop-button-control:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-aspect-ratio-button-control:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-operation-control:not(#\#):not(#\#):not(#\#):not(#\#){--l-base-min-width: var(--uc-button-size);--l-base-height: var(--uc-button-size);--opacity-effect: var(--idle-opacity);--color-effect: var(--idle-color-rgb);--background-effect: var(--idle-background);--filter-effect: var(--idle-filter);--idle-color-rgb: var(--uc-secondary-foreground);--idle-opacity: 1;--idle-filter: 1;--idle-background: var(--uc-secondary);--hover-color-rgb: var(--uc-secondary-foreground);--hover-opacity: 1;--hover-filter: .8;--hover-background: var(--uc-secondary-hover);--down-color-rgb: var(--hover-color-rgb);--down-opacity: 1;--down-filter: .6;--down-background: var(--uc-secondary);border-radius:var(--uc-radius)}uc-editor-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button,uc-editor-crop-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button,uc-editor-aspect-ratio-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button,uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button,uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>button,uc-editor-operation-control:not(#\#):not(#\#):not(#\#):not(#\#)>button{all:unset;position:relative;display:grid;grid-template-columns:var(--l-base-min-width) auto;grid-template-rows:100%;align-items:center;height:var(--l-base-height);color:var(--color-effect);opacity:var(--opacity-effect);cursor:pointer;transition:var(--l-width-transition)}uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button{grid-template-columns:auto var(--l-base-min-width)}uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button>uc-icon{margin-left:var(--cldtr-gap-mid-1);width:10px}:where(uc-editor-button-control,uc-editor-crop-button-control,uc-editor-aspect-ratio-button-control,uc-editor-freeform-button-control,uc-editor-filter-control,uc-editor-operation-control):not(#\#):not(#\#):not(#\#):not(#\#)>uc-icon>svg{width:var(--size-icon);height:var(--size-icon)}uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>uc-icon.uc-original-icon>svg{width:100%;height:100%}uc-editor-button-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-operation-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-crop-button-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-aspect-ratio-button-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-freeform-button-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-filter-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#){--idle-color-rgb: var(--uc-primary-foreground);--idle-background: var(--uc-primary);--idle-opacity: 1;--hover-color-rgb: var(--uc-primary-foreground);--hover-background: var(--uc-primary);--hover-opacity: 1}uc-editor-button-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-operation-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-crop-button-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-aspect-ratio-button-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-freeform-button-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#),uc-editor-filter-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#){--idle-color-rgb: var(--uc-secondary-foreground)}:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-button-control.uc-not_active,:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-operation-control.uc-not_active,:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-crop-button-control.uc-not_active,:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-freeform-button-control.uc-not_active,:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-aspect-ratio-button-control.uc-not_active,:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-editor-filter-control.uc-not_active{--idle-background: transparent;--hover-background: var(--uc-secondary);outline:1px solid var(--uc-border);outline-offset:-1px}uc-editor-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before,uc-editor-operation-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before,uc-editor-crop-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before,uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before,uc-editor-aspect-ratio-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before,uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>button:before{position:absolute;content:"";right:0;left:0;z-index:-1;width:100%;height:100%;background-color:var(--background-effect);border-radius:var(--border-radius-editor);transition:var(--transition-duration-3)}uc-editor-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title,uc-editor-operation-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title,uc-editor-crop-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title,uc-editor-aspect-ratio-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title,uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title,uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title{padding-right:var(--cldtr-gap-mid-1);font-size:.7em;letter-spacing:1.004px;text-transform:uppercase}uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-title{padding-left:var(--cldtr-gap-mid-1);padding-right:0}uc-editor-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon,uc-editor-operation-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon,uc-editor-crop-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon,uc-editor-aspect-ratio-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon,uc-editor-freeform-button-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon,uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>button uc-icon{pointer-events:none}uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>button .uc-preview{position:absolute;right:0;left:0;z-index:-1;width:100%;height:var(--l-base-height);background-repeat:no-repeat;background-size:contain;border-radius:var(--border-radius-editor);opacity:0;filter:brightness(var(--filter-effect));transition:var(--transition-duration-3)}uc-editor-filter-control.uc-not_active:not(#\#):not(#\#):not(#\#):not(#\#) .uc-preview[data-loaded]{opacity:1}uc-editor-filter-control.uc-active:not(#\#):not(#\#):not(#\#):not(#\#) .uc-preview{opacity:0}uc-editor-filter-control:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-original-icon{color:var(--color-effect);opacity:.3}uc-editor-image-cropper:not(#\#):not(#\#):not(#\#):not(#\#){position:absolute;top:0;left:0;z-index:10;display:block;width:100%;height:100%;opacity:0;pointer-events:none;touch-action:none;color:var(--color-crop-guides)}uc-editor-image-cropper.uc-active_from_editor:not(#\#):not(#\#):not(#\#):not(#\#){transform:scale(1) translate(0);opacity:1;transition:transform var(--transition-duration-4) cubic-bezier(.37,0,.63,1) .4s,opacity var(--transition-duration-3);pointer-events:auto}uc-editor-image-cropper.uc-active_from_viewer:not(#\#):not(#\#):not(#\#):not(#\#){transform:scale(1) translate(0);opacity:1;transition:transform var(--transition-duration-4) cubic-bezier(.37,0,.63,1) .4s,opacity var(--transition-duration-3);pointer-events:auto}uc-editor-image-cropper.uc-inactive_to_editor:not(#\#):not(#\#):not(#\#):not(#\#){opacity:0;transition:transform var(--transition-duration-4) cubic-bezier(.37,0,.63,1),opacity var(--transition-duration-3) calc(var(--transition-duration-3) + .05s);pointer-events:none}uc-editor-image-cropper:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-canvas{position:absolute;top:0;left:0;z-index:1;display:block;width:100%;height:100%}uc-editor-image-fader:not(#\#):not(#\#):not(#\#):not(#\#){position:absolute;top:0;left:0;display:block;width:100%;height:100%}uc-editor-image-fader.uc-active_from_viewer:not(#\#):not(#\#):not(#\#):not(#\#){z-index:3;transform:scale(1);opacity:1;transition:transform var(--transition-duration-4),opacity var(--transition-duration-3) steps(1,jump-start);pointer-events:auto}uc-editor-image-fader.uc-active_from_cropper:not(#\#):not(#\#):not(#\#):not(#\#){z-index:3;transform:scale(1);opacity:1;transition:transform var(--transition-duration-4),opacity var(--transition-duration-3) steps(1,jump-end);pointer-events:auto}uc-editor-image-fader.uc-inactive_to_cropper:not(#\#):not(#\#):not(#\#):not(#\#){z-index:3;transform:scale(1);opacity:0;transition:transform var(--transition-duration-4),opacity var(--transition-duration-3) steps(1,jump-end);pointer-events:none}uc-editor-image-fader:not(#\#):not(#\#):not(#\#):not(#\#) .uc-fader-image{position:absolute;top:0;left:0;display:block;width:100%;height:100%;object-fit:scale-down;transform:scale(1);user-select:none;content-visibility:auto}uc-editor-image-fader:not(#\#):not(#\#):not(#\#):not(#\#) .uc-fader-image--preview{background-color:var(--color-image-background);border-top-left-radius:var(--border-radius-base);border-top-right-radius:var(--border-radius-base);transform:scale(1);opacity:0;transition:var(--transition-duration-3)}uc-editor-scroller:not(#\#):not(#\#):not(#\#):not(#\#){display:flex;align-items:center;width:100%;height:100%;overflow-x:scroll}uc-editor-slider:not(#\#):not(#\#):not(#\#):not(#\#){display:flex;align-items:center;justify-content:center;width:100%;height:var(--size-panel-heading)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#){position:relative;width:100%;height:100%}@media only screen and (max-width:600px){uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#){--l-tab-gap: var(--cldtr-gap-mid-1);--l-slider-padding: var(--uc-padding);--l-controls-padding: var(--uc-padding)}}@media only screen and (min-width:601px){uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#){--l-tab-gap: var(--cldtr-gap-max);--l-slider-padding: var(--uc-padding);--l-controls-padding: var(--uc-padding)}}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container{position:relative;width:100%;height:100%;overflow:hidden}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar{position:absolute;display:grid;grid-template-rows:1fr 1fr;width:100%;height:100%;background-color:var(--color-fill-contrast);transition:opacity var(--transition-duration-3) ease-in-out,transform var(--transition-duration-3) ease-in-out,visibility var(--transition-duration-3) ease-in-out}.uc-sub-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-list-aspect-ratio-container>.uc-list-aspect-ratio{display:grid;grid-auto-flow:column;justify-content:center;align-items:center;gap:6px;height:var(--size-panel-heading)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar.uc-sub-toolbar--visible{transform:translateY(0);opacity:1;pointer-events:auto}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar.uc-sub-toolbar--top-hidden{transform:translateY(100%);opacity:0;pointer-events:none}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar.uc-sub-toolbar--bottom-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row{display:flex;align-items:center;justify-content:space-between;padding-right:var(--l-controls-padding);padding-left:var(--l-controls-padding)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles{position:relative;display:grid;grid-auto-flow:column;gap:0px var(--l-tab-gap);align-items:center;height:100%}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles>.uc-tab-toggles_indicator{position:absolute;bottom:0;left:0;width:var(--size-touch-area);height:2px;background-color:var(--uc-secondary-foreground);transform:translate(0);transition:transform var(--transition-duration-3)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-tab-content-row{position:relative}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-tab-content-row>.uc-tab-content{position:absolute;top:0;left:0;display:flex;width:100%;height:100%;overflow:hidden;content-visibility:auto}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles>.uc-tab-toggle.uc-tab-toggle--visible{display:contents}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles>.uc-tab-toggle.uc-tab-toggle--hidden{display:none}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles.uc-tab-toggles--hidden{display:none}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles>.uc-tab-toggle>uc-btn-ui{width:var(--uc-button-size)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-controls-row>.uc-tab-toggles>.uc-tab-toggle>uc-btn-ui>uc-icon>svg{width:var(--size-icon);height:var(--size-icon)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-tab-content-row>.uc-tab-content .uc-controls-list_align{display:grid;grid-template-areas:". inner .";grid-template-columns:1fr auto 1fr;box-sizing:border-box;min-width:100%;padding-left:var(--uc-padding)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-tab-content-row>.uc-tab-content .uc-controls-list_inner{display:grid;grid-area:inner;grid-auto-flow:column;gap:6px}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#)>.uc-toolbar-container>.uc-sub-toolbar>.uc-tab-content-row>.uc-tab-content .uc-controls-list_inner:last-child{padding-right:var(--uc-padding)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#) .uc-info-tooltip_container{position:absolute;display:flex;align-items:flex-start;justify-content:center;width:100%;height:100%}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#) .uc-info-tooltip_wrapper{position:absolute;top:calc(-100% - var(--cldtr-gap-mid-2));display:flex;flex-direction:column;justify-content:flex-end;height:100%;pointer-events:none}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#) .uc-info-tooltip{z-index:10;padding:3px 6px;color:var(--color-text-base);font-size:.7em;letter-spacing:1px;text-transform:uppercase;background-color:var(--color-text-accent-contrast);border-radius:var(--border-radius-editor);transform:translateY(100%);opacity:0;transition:var(--transition-duration-3)}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#) .uc-info-tooltip_visible{transform:translateY(0);opacity:1}uc-editor-toolbar:not(#\#):not(#\#):not(#\#):not(#\#) .uc-slider{padding-right:var(--l-slider-padding);padding-left:var(--l-slider-padding)}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#)>button{--filter-effect: var(--idle-brightness);--opacity-effect: var(--idle-opacity);--color-effect: var(--idle-color-rgb);--background-effect: var(--idle-background);--l-transition-effect: var( --css-transition, color var(--transition-duration-2), background-color var(--transition-duration-2), filter var(--transition-duration-2) );all:unset;display:inline-flex;align-items:center;box-sizing:var(--css-box-sizing, border-box);height:var(--css-height, var(--uc-button-size));padding-right:var(--css-padding-right, 14px);padding-left:var(--css-padding-left, 14px);font-size:1em;color:var(--color-effect);background-color:var(--background-effect);border-radius:var(--uc-radius);opacity:var(--opacity-effect);cursor:pointer;filter:brightness(var(--filter-effect));transition:var(--l-transition-effect);user-select:none}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#)>button>uc-icon{pointer-events:none}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-text{white-space:nowrap}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-icon{display:flex;align-items:center;justify-content:center;color:var(--color-effect);filter:brightness(var(--filter-effect));transition:var(--l-transition-effect)}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-icon_left{margin-right:var(--cldtr-gap-mid-1);margin-left:0}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-icon_right{margin-right:0;margin-left:var(--cldtr-gap-mid-1)}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-icon_single{margin-right:0;margin-left:0}uc-btn-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-icon_hidden{display:none;margin:0}uc-btn-ui.uc-primary:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-primary-foreground);--idle-brightness: 1;--idle-opacity: 1;--idle-background: var(--uc-primary);--hover-color-rgb: var(--uc-primary-foreground);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-primary-hover);--down-color-rgb: var(--uc-primary-foreground);--down-brightness: .75;--down-opacity: 1;--down-background: var(--uc-primary);--active-color-rgb: var(--uc-primary-foreground);--active-brightness: 1;--active-opacity: 1;--active-background: var(--uc-primary)}uc-btn-ui.uc-primary-icon:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-primary);--idle-brightness: 1;--idle-opacity: 1;--idle-background: transparent;--hover-color-rgb: var(--uc-primary);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-primary-transparent);--down-color-rgb: var(--uc-primary);--down-brightness: .75;--down-opacity: 1;--down-background: var(--uc-primary-transparent);--active-color-rgb: var(--uc-primary-foreground);--active-brightness: 1;--active-opacity: 1;--active-background: var(--uc-primary);padding:0;width:var(--uc-button-size)}uc-btn-ui.uc-secondary:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-secondary-foreground);--idle-brightness: 1;--idle-opacity: 1;--idle-background: var(--uc-secondary);--hover-color-rgb: var(--uc-secondary-foreground);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-secondary-hover);--down-color-rgb: var(--uc-secondary-foreground);--down-brightness: 1;--down-opacity: 1;--down-background: var(--uc-secondary-hover);--active-color-rgb: var(--uc-secondary-foreground);--active-brightness: 1;--active-opacity: 1;--active-background: transparent}:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-btn-ui.uc-secondary>button{border:1px solid var(--uc-border)}uc-btn-ui.uc-secondary-icon:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-secondary-foreground);--idle-brightness: 1;--idle-opacity: 1;--idle-background: transparent;--hover-color-rgb: var(--uc-secondary-foreground);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-secondary);--down-color-rgb: var(--uc-secondary-foreground);--down-brightness: 1;--down-opacity: 1;--down-background: var(--uc-secondary);--active-color-rgb: var(--uc-secondary-foreground);--active-brightness: 1;--active-opacity: 1;--active-background: transparent;padding:0;width:var(--uc-button-size)}uc-btn-ui.uc-tab:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-secondary-foreground);--idle-brightness: 1;--idle-opacity: 1;--idle-background: transparent;--hover-color-rgb: var(--uc-secondary-foreground);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-secondary);--down-color-rgb: var(--uc-secondary-foreground);--down-brightness: 1;--down-opacity: 1;--down-background: var(--uc-secondary);--active-color-rgb: var(--uc-secondary-foreground);--active-brightness: 1;--active-opacity: 1;--active-background: transparent;padding:0;width:var(--uc-button-size)}uc-btn-ui.uc-default:not(#\#):not(#\#):not(#\#):not(#\#)>button{--idle-color-rgb: var(--uc-secondary-foreground);--idle-brightness: 1;--idle-opacity: 1;--idle-background: var(--uc-secondary);--hover-color-rgb: var(--uc-secondary-foreground);--hover-brightness: 1;--hover-opacity: 1;--hover-background: var(--uc-secondary-hover);--down-color-rgb: var(--uc-secondary-foreground);--down-brightness: .75;--down-opacity: 1;--down-background: var(--uc-secondary);--active-color-rgb: var(--uc-primary);--active-brightness: 1;--active-opacity: 1;--active-background: var(--uc-primary-transparent)}:where(.uc-contrast):not(#\#):not(#\#):not(#\#):not(#\#) uc-btn-ui.uc-default>button{--idle-background: transparent;--hover-background: var(--uc-secondary);--active-background: var(--uc-foreground);--active-color-rgb: var(--uc-background)}uc-line-loader-ui:not(#\#):not(#\#):not(#\#):not(#\#){position:absolute;top:0;left:0;z-index:9999;width:100%;height:2px;opacity:.5}uc-line-loader-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-inner{width:25%;max-width:200px;height:100%}uc-line-loader-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-line{width:100%;height:100%;background-color:var(--uc-primary);transform:translate(-101%);transition:transform 1s}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#){--l-thumb-size: 24px;--l-zero-dot-size: 5px;--l-zero-dot-offset: 2px;--idle-color-rgb: var(--uc-foreground);--hover-color-rgb: var(--uc-primary);--down-color-rgb: var(--uc-primary);--color-effect: var(--idle-color-rgb);--l-color: var(--color-effect);position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:calc(var(--l-thumb-size) + (var(--l-zero-dot-size) + var(--l-zero-dot-offset)) * 2)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-thumb{position:absolute;left:0;width:var(--l-thumb-size);height:var(--l-thumb-size);background-color:var(--l-color);border-radius:50%;transform:translate(0);opacity:1;transition:opacity var(--transition-duration-2),background-color var(--transition-duration-2)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-steps{position:absolute;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:100%;height:100%;padding-right:calc(var(--l-thumb-size) / 2);padding-left:calc(var(--l-thumb-size) / 2)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-border-step{width:0px;height:10px;border-right:1px solid var(--uc-foreground);opacity:1;transition:border-color var(--transition-duration-2)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-minor-step{width:0px;height:4px;border-right:1px solid var(--uc-foreground);opacity:.6;transition:border-color var(--transition-duration-2)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-zero-dot{position:absolute;top:calc(100% - var(--l-zero-dot-offset) * 2);left:calc(var(--l-thumb-size) / 2 - var(--l-zero-dot-size) / 2);width:var(--l-zero-dot-size);height:var(--l-zero-dot-size);background-color:var(--color-primary-accent);border-radius:50%;opacity:0;transition:var(--transition-duration-3)}uc-slider-ui:not(#\#):not(#\#):not(#\#):not(#\#) .uc-input{position:absolute;width:calc(100% - 10px);height:100%;margin:0;cursor:pointer;opacity:0}uc-presence-toggle.uc-transition:not(#\#):not(#\#):not(#\#):not(#\#){transition:opacity var(--transition-duration-3),visibility var(--transition-duration-3)}uc-presence-toggle.uc-visible:not(#\#):not(#\#):not(#\#):not(#\#){opacity:1;pointer-events:inherit}uc-presence-toggle.uc-hidden:not(#\#):not(#\#):not(#\#):not(#\#){opacity:0;pointer-events:none}uc-presence-toggle.uc-initial:not(#\#):not(#\#):not(#\#){display:none!important;transition:none!important}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) [role=button]:focus-visible,[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) button:focus-visible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}[uc-cloud-image-editor]:not(#\#):not(#\#):not(#\#):not(#\#) .uc-cloud-mask{pointer-events:none}[uc-aspect-ratio-freeform]:not(#\#):not(#\#):not(#\#):not(#\#) button{display:flex}[uc-aspect-ratio-freeform]:not(#\#):not(#\#):not(#\#):not(#\#) uc-icon{display:none}[uc-aspect-ratio-freeform]:not(#\#):not(#\#):not(#\#):not(#\#) .uc-title{padding-left:var(--cldtr-gap-mid-1)}:where(uc-editor-freeform-button-control,uc-editor-aspect-ratio-button-control:last-of-type):not(#\#):not(#\#):not(#\#):not(#\#){margin-right:calc(3 * var(--cldtr-gap-mid-1))}:where([uc-cloud-image-editor]):not(#\#):not(#\#):not(#\#):not(#\#) uc-icon{display:flex;justify-content:center;width:100%;height:100%}:where([uc-cloud-image-editor]):not(#\#):not(#\#):not(#\#):not(#\#) uc-icon svg{width:calc(var(--uc-button-size) / 2);height:calc(var(--uc-button-size) / 2)}uc-icon:not(#\#){display:inline-flex;align-items:center;justify-content:center;width:var(--uc-button-size);height:var(--uc-button-size)}uc-icon:not(#\#) svg{width:calc(var(--uc-button-size) / 2);height:calc(var(--uc-button-size) / 2);overflow:visible}uc-config:not(#\#):not(#\#){display:none}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
2
|
import { PropertyValues, nothing, LitElement, TemplateResult } from 'lit';
|
|
3
3
|
import * as _uploadcare_upload_client from '@uploadcare/upload-client';
|
|
4
|
-
import { UploadcareFile, Metadata, Tags, UploadError, NetworkError, UploadcareGroup, FileFromOptions, Queue } from '@uploadcare/upload-client';
|
|
4
|
+
import { UploadcareFile, Metadata, Tags, AuthToken, UploadError, AuthTokenResolverError, NetworkError, UploadcareGroup, FileFromOptions, Queue } from '@uploadcare/upload-client';
|
|
5
5
|
import * as lit_html_directives_ref_js from 'lit-html/directives/ref.js';
|
|
6
6
|
import { Ref } from 'lit/directives/ref.js';
|
|
7
7
|
import { TelemetryRequest } from '@uploadcare/quality-insights';
|
|
@@ -600,11 +600,67 @@ declare global {
|
|
|
600
600
|
}
|
|
601
601
|
|
|
602
602
|
/**
|
|
603
|
-
*
|
|
603
|
+
* How a built-in config key relates to its DOM attribute — the same idea as a
|
|
604
|
+
* plugin's {@link CustomConfigDefinition.attribute}, declared for built-ins.
|
|
605
|
+
*
|
|
606
|
+
* Both default to `true`; a key only appears here to opt out of something.
|
|
607
|
+
* - `attribute: false` — property only, no attribute representation at all
|
|
608
|
+
* (the value is an object or a function).
|
|
609
|
+
* - `reflect: false` — readable from an attribute, but the value is never
|
|
610
|
+
* written back to one.
|
|
604
611
|
*/
|
|
605
|
-
|
|
612
|
+
type ConfigAttributeBehavior = {
|
|
613
|
+
attribute?: boolean;
|
|
614
|
+
reflect?: boolean;
|
|
615
|
+
};
|
|
616
|
+
declare const configAttributeBehavior: {
|
|
617
|
+
readonly metadata: {
|
|
618
|
+
readonly attribute: false;
|
|
619
|
+
};
|
|
620
|
+
readonly tags: {
|
|
621
|
+
readonly attribute: false;
|
|
622
|
+
};
|
|
623
|
+
readonly plugins: {
|
|
624
|
+
readonly attribute: false;
|
|
625
|
+
};
|
|
626
|
+
readonly localeDefinitionOverride: {
|
|
627
|
+
readonly attribute: false;
|
|
628
|
+
};
|
|
629
|
+
readonly secureUploadsSignatureResolver: {
|
|
630
|
+
readonly attribute: false;
|
|
631
|
+
};
|
|
632
|
+
readonly secureDeliveryProxyUrlResolver: {
|
|
633
|
+
readonly attribute: false;
|
|
634
|
+
};
|
|
635
|
+
readonly iconHrefResolver: {
|
|
636
|
+
readonly attribute: false;
|
|
637
|
+
};
|
|
638
|
+
readonly fileValidators: {
|
|
639
|
+
readonly attribute: false;
|
|
640
|
+
};
|
|
641
|
+
readonly collectionValidators: {
|
|
642
|
+
readonly attribute: false;
|
|
643
|
+
};
|
|
644
|
+
readonly mediaRecorderOptions: {
|
|
645
|
+
readonly attribute: false;
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* Settable either way: the attribute carries a plain token, the property also
|
|
649
|
+
* accepts a resolver. Never reflected — a resolver has no attribute form, and
|
|
650
|
+
* a bearer credential is not something to mirror into the DOM unasked.
|
|
651
|
+
*/
|
|
652
|
+
readonly authToken: {
|
|
653
|
+
readonly reflect: false;
|
|
654
|
+
};
|
|
655
|
+
};
|
|
656
|
+
/** Keys of the descriptor whose `field` is declared as `Value`. */
|
|
657
|
+
type KeysWithBehavior<Field extends keyof ConfigAttributeBehavior, Value extends boolean> = {
|
|
658
|
+
[K in keyof typeof configAttributeBehavior]: (typeof configAttributeBehavior)[K] extends Record<Field, Value> ? K : never;
|
|
659
|
+
}[keyof typeof configAttributeBehavior];
|
|
660
|
+
/** Keys the descriptor marks as having no attribute representation at all. */
|
|
661
|
+
type PropertyOnlyConfigKey = KeysWithBehavior<'attribute', false>;
|
|
606
662
|
declare class Config extends LitBlock {
|
|
607
|
-
attributesMeta: Partial<
|
|
663
|
+
attributesMeta: Partial<AttributeConfigType> & {
|
|
608
664
|
'ctx-name': string;
|
|
609
665
|
};
|
|
610
666
|
init$: LitBlock["init$"] & ConfigType;
|
|
@@ -636,6 +692,8 @@ declare class Config extends LitBlock {
|
|
|
636
692
|
* Get attribute names for a config key (kebab-case and lowercase)
|
|
637
693
|
*/
|
|
638
694
|
private _getAttributeNames;
|
|
695
|
+
/** Whether this key's value is written back to the DOM as an attribute. */
|
|
696
|
+
private _isReflectedToAttribute;
|
|
639
697
|
private _flushValueToAttribute;
|
|
640
698
|
private _flushValueToState;
|
|
641
699
|
private _setValue;
|
|
@@ -1026,6 +1084,12 @@ type ApiAddFileCommonOptions = {
|
|
|
1026
1084
|
declare class UploaderPublicApi extends SharedInstance {
|
|
1027
1085
|
private _l10n;
|
|
1028
1086
|
get _uploadCollection(): TypedCollection<UploadEntryData>;
|
|
1087
|
+
/**
|
|
1088
|
+
* The failure of the last group creation, for the validator that reports it.
|
|
1089
|
+
* Underscored like `_uploadCollection`: internal, but a validator has no
|
|
1090
|
+
* other way to reach the context.
|
|
1091
|
+
*/
|
|
1092
|
+
get _groupError(): Error | null;
|
|
1029
1093
|
get cfg(): Readonly<ConfigType>;
|
|
1030
1094
|
get l10n(): (str: string, variables?: Record<string, string | number>) => string;
|
|
1031
1095
|
/**
|
|
@@ -1066,6 +1130,26 @@ declare class UploaderPublicApi extends SharedInstance {
|
|
|
1066
1130
|
private _pluginsReady;
|
|
1067
1131
|
setCurrentActivity: <T extends ActivityType>(activityType: T, ...params: T extends keyof ActivityParamsMap ? [ActivityParamsMap[T]] extends [never] ? [] : [ActivityParamsMap[T]] : []) => void;
|
|
1068
1132
|
on: <T extends EventKey>(type: T, handler: (payload: EventPayload[T]) => void) => (() => void);
|
|
1133
|
+
/**
|
|
1134
|
+
* The auth token as `@uploadcare/upload-client` receives it: the configured
|
|
1135
|
+
* string, or a resolver whose result the uploader already caches.
|
|
1136
|
+
*
|
|
1137
|
+
* Forward this rather than `cfg.authToken` when something else has to
|
|
1138
|
+
* authenticate with the same token — a plugin, say — so it shares this cache
|
|
1139
|
+
* instead of calling your token endpoint again.
|
|
1140
|
+
*/
|
|
1141
|
+
getAuthToken: () => AuthToken | undefined;
|
|
1142
|
+
/**
|
|
1143
|
+
* Drop the cached auth token, so the next request asks `authToken` for a new
|
|
1144
|
+
* one.
|
|
1145
|
+
*
|
|
1146
|
+
* Assigning a different function to `authToken` does not do this: a new
|
|
1147
|
+
* function identity is taken to be the same function, which is what lets a
|
|
1148
|
+
* React component pass an inline resolver without refetching on every render.
|
|
1149
|
+
* Call this when the change is real — the signed-in user changed, say — or
|
|
1150
|
+
* rely on short-lived tokens.
|
|
1151
|
+
*/
|
|
1152
|
+
invalidateAuthToken: () => void;
|
|
1069
1153
|
getCurrentActivity: () => ActivityType;
|
|
1070
1154
|
historyBack: () => void;
|
|
1071
1155
|
setModalState: (opened: boolean) => void;
|
|
@@ -1430,6 +1514,12 @@ type ConfigType = {
|
|
|
1430
1514
|
* Resolver for secure uploads signature.
|
|
1431
1515
|
*/
|
|
1432
1516
|
secureUploadsSignatureResolver: SecureUploadsSignatureResolver | null;
|
|
1517
|
+
/**
|
|
1518
|
+
* JWT for the Upload API `Authorization: Bearer <token>` scheme. Accepts a plain token or a resolver function; the
|
|
1519
|
+
* resolver is called before every request, so long-running uploads can supply a fresh token mid-flight. Takes
|
|
1520
|
+
* precedence over `secureSignature`/`secureExpire` and `secureUploadsSignatureResolver`.
|
|
1521
|
+
*/
|
|
1522
|
+
authToken: AuthToken | null;
|
|
1433
1523
|
/**
|
|
1434
1524
|
* Resolver for secure delivery proxy URL.
|
|
1435
1525
|
*/
|
|
@@ -1506,12 +1596,12 @@ type ConfigType = {
|
|
|
1506
1596
|
dynamicButtonViewMode: DynamicButtonMode;
|
|
1507
1597
|
dynamicButtonShowFirstIcon: boolean;
|
|
1508
1598
|
};
|
|
1509
|
-
|
|
1510
|
-
type
|
|
1599
|
+
/** Options settable via an attribute (as well as as a property). */
|
|
1600
|
+
type AttributeConfigType = Omit<ConfigType, PropertyOnlyConfigKey>;
|
|
1511
1601
|
type OutputFileStatus = 'idle' | 'uploading' | 'success' | 'failed' | 'removed';
|
|
1512
1602
|
type OutputCustomErrorType = 'CUSTOM_ERROR';
|
|
1513
|
-
type OutputFileErrorType = OutputCustomErrorType | 'NOT_AN_IMAGE' | 'FORBIDDEN_FILE_TYPE' | 'FILE_SIZE_EXCEEDED' | 'UPLOAD_ERROR' | 'NETWORK_ERROR' | 'UNKNOWN_ERROR';
|
|
1514
|
-
type OutputCollectionErrorType = OutputCustomErrorType | 'SOME_FILES_HAS_ERRORS' | 'TOO_MANY_FILES' | 'TOO_FEW_FILES';
|
|
1603
|
+
type OutputFileErrorType = OutputCustomErrorType | 'NOT_AN_IMAGE' | 'FORBIDDEN_FILE_TYPE' | 'FILE_SIZE_EXCEEDED' | 'UPLOAD_ERROR' | 'AUTH_TOKEN_ERROR' | 'NETWORK_ERROR' | 'UNKNOWN_ERROR';
|
|
1604
|
+
type OutputCollectionErrorType = OutputCustomErrorType | 'SOME_FILES_HAS_ERRORS' | 'GROUP_ERROR' | 'TOO_MANY_FILES' | 'TOO_FEW_FILES';
|
|
1515
1605
|
type OutputFileErrorPayload = {
|
|
1516
1606
|
entry: OutputFileEntry;
|
|
1517
1607
|
};
|
|
@@ -1522,6 +1612,9 @@ type OutputErrorTypePayload = {
|
|
|
1522
1612
|
SOME_FILES_HAS_ERRORS: {
|
|
1523
1613
|
[k: string]: never;
|
|
1524
1614
|
};
|
|
1615
|
+
GROUP_ERROR: {
|
|
1616
|
+
error: Error;
|
|
1617
|
+
};
|
|
1525
1618
|
TOO_MANY_FILES: {
|
|
1526
1619
|
min: number;
|
|
1527
1620
|
max: number;
|
|
@@ -1535,6 +1628,9 @@ type OutputErrorTypePayload = {
|
|
|
1535
1628
|
UPLOAD_ERROR: OutputFileErrorPayload & {
|
|
1536
1629
|
error: UploadError;
|
|
1537
1630
|
};
|
|
1631
|
+
AUTH_TOKEN_ERROR: OutputFileErrorPayload & {
|
|
1632
|
+
error: AuthTokenResolverError;
|
|
1633
|
+
};
|
|
1538
1634
|
NETWORK_ERROR: OutputFileErrorPayload & {
|
|
1539
1635
|
error: NetworkError;
|
|
1540
1636
|
};
|
|
@@ -1834,6 +1930,34 @@ type PluginRegistrySnapshot = {
|
|
|
1834
1930
|
l10n: Owned<PluginL10nRegistration>[];
|
|
1835
1931
|
};
|
|
1836
1932
|
|
|
1933
|
+
/**
|
|
1934
|
+
* Owns the one long-lived token cache for this uploader context.
|
|
1935
|
+
*
|
|
1936
|
+
* `authToken` may be a resolver, and `@uploadcare/upload-client` calls it
|
|
1937
|
+
* before every authenticated request — so without a cache each upload, each
|
|
1938
|
+
* readiness poll and each multipart start/complete would hit the app's token
|
|
1939
|
+
* endpoint again. (Multipart chunks go to presigned storage URLs and carry no
|
|
1940
|
+
* token, so they are not part of that count.)
|
|
1941
|
+
*/
|
|
1942
|
+
declare class AuthTokenManager extends SharedInstance {
|
|
1943
|
+
private _cache;
|
|
1944
|
+
/**
|
|
1945
|
+
* One function, the same one for the life of this manager, that reads the
|
|
1946
|
+
* configured resolver when it is called rather than capturing it.
|
|
1947
|
+
*
|
|
1948
|
+
* That stability is the point: whoever we hand this to can keep it, and it
|
|
1949
|
+
* still follows later changes to `authToken`. Returning the cache's own
|
|
1950
|
+
* `getToken` instead would mean re-reading it after every config change to
|
|
1951
|
+
* stay current, which is a rule nothing enforces.
|
|
1952
|
+
*/
|
|
1953
|
+
private readonly _resolveAuthToken;
|
|
1954
|
+
/** The value to hand `@uploadcare/upload-client` as `authToken`. */
|
|
1955
|
+
getAuthToken(): AuthToken | undefined;
|
|
1956
|
+
/** Drop the cached token, e.g. once the signed-in user changes. */
|
|
1957
|
+
invalidate(): void;
|
|
1958
|
+
destroy(): void;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1837
1961
|
declare class SecureUploadsManager extends SharedInstance {
|
|
1838
1962
|
private _secureToken;
|
|
1839
1963
|
getSecureToken(): Promise<SecureUploadsSignatureAndExpire | null>;
|
|
@@ -1854,6 +1978,7 @@ declare class LitUploaderBlock extends LitActivityBlock {
|
|
|
1854
1978
|
'*collectionErrors': OutputErrorCollection[];
|
|
1855
1979
|
'*collectionState': OutputCollectionState | null;
|
|
1856
1980
|
'*groupInfo': _uploadcare_upload_client.UploadcareGroup | null;
|
|
1981
|
+
'*groupError': Error | null;
|
|
1857
1982
|
'*uploadTrigger': Set<string>;
|
|
1858
1983
|
'*currentActivity': null;
|
|
1859
1984
|
'*currentActivityParams': {};
|
|
@@ -1868,11 +1993,26 @@ declare class LitUploaderBlock extends LitActivityBlock {
|
|
|
1868
1993
|
get api(): UploaderPublicApi;
|
|
1869
1994
|
get uploadCollection(): TypedCollection<UploadEntryData>;
|
|
1870
1995
|
get secureUploadsManager(): SecureUploadsManager;
|
|
1996
|
+
get authTokenManager(): AuthTokenManager;
|
|
1871
1997
|
disconnectedCallback(): void;
|
|
1872
1998
|
connectedCallback(): void;
|
|
1873
1999
|
private _initCtxOwner;
|
|
1874
2000
|
private _observeUploadCollection;
|
|
1875
2001
|
private _unobserveUploadCollection;
|
|
2002
|
+
/** Bumped whenever the collection changes; see `_flushOutputItems`. */
|
|
2003
|
+
private _groupGeneration;
|
|
2004
|
+
/**
|
|
2005
|
+
* Creates the group for `collectionState` and reports the outcome, whichever
|
|
2006
|
+
* it is. Never rejects: the caller does not wait for the group, so a
|
|
2007
|
+
* rejection would have nowhere to go.
|
|
2008
|
+
*
|
|
2009
|
+
* A request cannot be cancelled once the API has it, so both outcomes are
|
|
2010
|
+
* dropped when the collection has moved on — a group of files that are no
|
|
2011
|
+
* longer the collection is neither its group nor its error. That is what the
|
|
2012
|
+
* generation tracks; `*collectionState` cannot, since it is republished on a
|
|
2013
|
+
* flush rather than on every change, and is still the same object at the
|
|
2014
|
+
* moment a mid-flight response lands.
|
|
2015
|
+
*/
|
|
1876
2016
|
private _createGroup;
|
|
1877
2017
|
private _flushOutputItems;
|
|
1878
2018
|
private _handleCollectionUpdate;
|
|
@@ -2152,6 +2292,7 @@ declare class LitSolutionBlock extends LitBlock {
|
|
|
2152
2292
|
'*collectionErrors': OutputErrorCollection[];
|
|
2153
2293
|
'*collectionState': OutputCollectionState | null;
|
|
2154
2294
|
'*groupInfo': _uploadcare_upload_client.UploadcareGroup | null;
|
|
2295
|
+
'*groupError': Error | null;
|
|
2155
2296
|
'*uploadTrigger': Set<string>;
|
|
2156
2297
|
'*currentActivity': null;
|
|
2157
2298
|
'*currentActivityParams': {};
|
|
@@ -2566,6 +2707,7 @@ declare const instanceKeyMap: {
|
|
|
2566
2707
|
eventEmitter: "*eventEmitter";
|
|
2567
2708
|
uploadCollection: "*uploadCollection";
|
|
2568
2709
|
secureUploadsManager: "*secureUploadsManager";
|
|
2710
|
+
authTokenManager: "*authTokenManager";
|
|
2569
2711
|
api: "*publicApi";
|
|
2570
2712
|
validationManager: "*validationManager";
|
|
2571
2713
|
};
|
|
@@ -2587,6 +2729,7 @@ declare const createSharedInstancesBag: (getCtx: () => PubSub<SharedState>) => {
|
|
|
2587
2729
|
readonly eventEmitter: EventEmitter;
|
|
2588
2730
|
readonly uploadCollection: TypedCollection<UploadEntryData>;
|
|
2589
2731
|
readonly secureUploadsManager: SecureUploadsManager;
|
|
2732
|
+
readonly authTokenManager: AuthTokenManager;
|
|
2590
2733
|
readonly api: UploaderPublicApi;
|
|
2591
2734
|
readonly validationManager: ValidationManager;
|
|
2592
2735
|
when<TName extends InstanceName>(name: TName, callback: (instance: NonNullable<InstanceTypeMap[TName]>) => void): () => void;
|
|
@@ -2696,6 +2839,8 @@ type UploaderBlockCtxState = ActivityBlockCtxState & {
|
|
|
2696
2839
|
'*collectionErrors': OutputErrorCollection[];
|
|
2697
2840
|
'*collectionState': OutputCollectionState | null;
|
|
2698
2841
|
'*groupInfo': UploadcareGroup | null;
|
|
2842
|
+
/** The failure of the last group creation, if it failed. */
|
|
2843
|
+
'*groupError': Error | null;
|
|
2699
2844
|
'*uploadTrigger': Set<Uid>;
|
|
2700
2845
|
};
|
|
2701
2846
|
type SolutionBlockCtxState = UploaderBlockCtxState & {
|
|
@@ -2769,6 +2914,7 @@ type DynamicUploaderBlockState = {
|
|
|
2769
2914
|
'*publicApi': UploaderPublicApi;
|
|
2770
2915
|
'*validationManager': ValidationManager;
|
|
2771
2916
|
'*secureUploadsManager': SecureUploadsManager;
|
|
2917
|
+
'*authTokenManager': AuthTokenManager;
|
|
2772
2918
|
};
|
|
2773
2919
|
type LocaleState = {
|
|
2774
2920
|
[K in keyof LocaleDefinition as `*l10n/${K}`]: string;
|
|
@@ -2802,9 +2948,10 @@ declare class LitBlock extends LitBlockBase {
|
|
|
2802
2948
|
readonly eventEmitter: EventEmitter;
|
|
2803
2949
|
readonly uploadCollection: TypedCollection<UploadEntryData>;
|
|
2804
2950
|
readonly secureUploadsManager: SecureUploadsManager;
|
|
2951
|
+
readonly authTokenManager: AuthTokenManager;
|
|
2805
2952
|
readonly api: UploaderPublicApi;
|
|
2806
2953
|
readonly validationManager: ValidationManager;
|
|
2807
|
-
when<TName extends "modalManager" | "pluginManager" | "telemetryManager" | "localeManager" | "a11y" | "clipboard" | "routerLayer" | "blocksRegistry" | "eventEmitter" | "uploadCollection" | "secureUploadsManager" | "api" | "validationManager">(name: TName, callback: (instance: NonNullable<{
|
|
2954
|
+
when<TName extends "modalManager" | "pluginManager" | "telemetryManager" | "localeManager" | "a11y" | "clipboard" | "routerLayer" | "blocksRegistry" | "eventEmitter" | "uploadCollection" | "secureUploadsManager" | "authTokenManager" | "api" | "validationManager">(name: TName, callback: (instance: NonNullable<{
|
|
2808
2955
|
modalManager: ModalManager | null;
|
|
2809
2956
|
pluginManager: PluginManager;
|
|
2810
2957
|
telemetryManager: TelemetryManager;
|
|
@@ -2816,10 +2963,11 @@ declare class LitBlock extends LitBlockBase {
|
|
|
2816
2963
|
eventEmitter: EventEmitter;
|
|
2817
2964
|
uploadCollection: TypedCollection<UploadEntryData>;
|
|
2818
2965
|
secureUploadsManager: SecureUploadsManager;
|
|
2966
|
+
authTokenManager: AuthTokenManager;
|
|
2819
2967
|
api: UploaderPublicApi;
|
|
2820
2968
|
validationManager: ValidationManager;
|
|
2821
2969
|
}[TName]>) => void): () => void;
|
|
2822
|
-
wait<TName extends "modalManager" | "pluginManager" | "telemetryManager" | "localeManager" | "a11y" | "clipboard" | "routerLayer" | "blocksRegistry" | "eventEmitter" | "uploadCollection" | "secureUploadsManager" | "api" | "validationManager">(name: TName): Promise<NonNullable<{
|
|
2970
|
+
wait<TName extends "modalManager" | "pluginManager" | "telemetryManager" | "localeManager" | "a11y" | "clipboard" | "routerLayer" | "blocksRegistry" | "eventEmitter" | "uploadCollection" | "secureUploadsManager" | "authTokenManager" | "api" | "validationManager">(name: TName): Promise<NonNullable<{
|
|
2823
2971
|
modalManager: ModalManager | null;
|
|
2824
2972
|
pluginManager: PluginManager;
|
|
2825
2973
|
telemetryManager: TelemetryManager;
|
|
@@ -2831,6 +2979,7 @@ declare class LitBlock extends LitBlockBase {
|
|
|
2831
2979
|
eventEmitter: EventEmitter;
|
|
2832
2980
|
uploadCollection: TypedCollection<UploadEntryData>;
|
|
2833
2981
|
secureUploadsManager: SecureUploadsManager;
|
|
2982
|
+
authTokenManager: AuthTokenManager;
|
|
2834
2983
|
api: UploaderPublicApi;
|
|
2835
2984
|
validationManager: ValidationManager;
|
|
2836
2985
|
}[TName]>>;
|