@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.
Files changed (67) hide show
  1. package/dist/abstract/loadFileUploaderFrom.js +2 -2
  2. package/dist/env.js +3 -3
  3. package/dist/index.css +2 -2
  4. package/dist/index.d.ts +277 -105
  5. package/dist/index.js +5 -5
  6. package/dist/index.layered.css +2 -2
  7. package/dist/index.ssr.js +3 -1
  8. package/dist/locales/file-uploader/ar.js +2 -2
  9. package/dist/locales/file-uploader/az.js +2 -2
  10. package/dist/locales/file-uploader/ca.js +2 -2
  11. package/dist/locales/file-uploader/cs.js +2 -2
  12. package/dist/locales/file-uploader/da.js +2 -2
  13. package/dist/locales/file-uploader/de.js +2 -2
  14. package/dist/locales/file-uploader/el.js +2 -2
  15. package/dist/locales/file-uploader/en.js +2 -2
  16. package/dist/locales/file-uploader/es.js +2 -2
  17. package/dist/locales/file-uploader/et.js +2 -2
  18. package/dist/locales/file-uploader/fi.js +2 -2
  19. package/dist/locales/file-uploader/fr.js +2 -2
  20. package/dist/locales/file-uploader/he.js +2 -2
  21. package/dist/locales/file-uploader/hy.js +2 -2
  22. package/dist/locales/file-uploader/is.js +2 -2
  23. package/dist/locales/file-uploader/it.js +2 -2
  24. package/dist/locales/file-uploader/ja.js +2 -2
  25. package/dist/locales/file-uploader/ka.js +2 -2
  26. package/dist/locales/file-uploader/kk.js +2 -2
  27. package/dist/locales/file-uploader/ko.js +2 -2
  28. package/dist/locales/file-uploader/lv.js +2 -2
  29. package/dist/locales/file-uploader/nb.js +2 -2
  30. package/dist/locales/file-uploader/nl.js +2 -2
  31. package/dist/locales/file-uploader/pl.js +2 -2
  32. package/dist/locales/file-uploader/pt.js +2 -2
  33. package/dist/locales/file-uploader/ro.js +2 -2
  34. package/dist/locales/file-uploader/ru.js +2 -2
  35. package/dist/locales/file-uploader/sk.js +2 -2
  36. package/dist/locales/file-uploader/sr.js +2 -2
  37. package/dist/locales/file-uploader/sv.js +2 -2
  38. package/dist/locales/file-uploader/tr.js +2 -2
  39. package/dist/locales/file-uploader/uk.js +2 -2
  40. package/dist/locales/file-uploader/vi.js +2 -2
  41. package/dist/locales/file-uploader/zh-TW.js +2 -2
  42. package/dist/locales/file-uploader/zh.js +2 -2
  43. package/package.json +8 -7
  44. package/types/jsx.d.ts +29 -1
  45. package/web/file-uploader.iife.min.d.ts +277 -105
  46. package/web/file-uploader.iife.min.js +4 -4
  47. package/web/file-uploader.min.d.ts +277 -105
  48. package/web/file-uploader.min.js +4 -4
  49. package/web/uc-basic.layered.min.css +2 -2
  50. package/web/uc-basic.min.css +2 -2
  51. package/web/uc-cloud-image-editor.layered.min.css +2 -2
  52. package/web/uc-cloud-image-editor.min.css +2 -2
  53. package/web/uc-cloud-image-editor.min.d.ts +159 -10
  54. package/web/uc-cloud-image-editor.min.js +4 -4
  55. package/web/uc-file-uploader-inline.layered.min.css +2 -2
  56. package/web/uc-file-uploader-inline.min.css +2 -2
  57. package/web/uc-file-uploader-inline.min.d.ts +277 -105
  58. package/web/uc-file-uploader-inline.min.js +4 -4
  59. package/web/uc-file-uploader-minimal.layered.min.css +2 -2
  60. package/web/uc-file-uploader-minimal.min.css +2 -2
  61. package/web/uc-file-uploader-minimal.min.d.ts +277 -105
  62. package/web/uc-file-uploader-minimal.min.js +4 -4
  63. package/web/uc-file-uploader-regular.layered.min.css +2 -2
  64. package/web/uc-file-uploader-regular.min.css +2 -2
  65. package/web/uc-file-uploader-regular.min.d.ts +277 -105
  66. package/web/uc-file-uploader-regular.min.js +4 -4
  67. package/web/uc-img.min.js +3 -3
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Package: @uploadcare/file-uploader@1.33.1 (MIT)
3
+ * Package: @uploadcare/file-uploader@1.34.0 (MIT)
4
4
  * License: https://github.com/uploadcare/blob/main/LICENSE
5
- * Built: 2026-07-29T16:02:55.749Z
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
- * Config keys that can't be passed as attribute (because they are object or function)
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
- declare const complexConfigKeys: readonly ["metadata", "tags", "plugins", "localeDefinitionOverride", "secureUploadsSignatureResolver", "secureDeliveryProxyUrlResolver", "iconHrefResolver", "fileValidators", "collectionValidators", "mediaRecorderOptions"];
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<ConfigPlainType> & {
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
- type ConfigComplexType = Pick<ConfigType, (typeof complexConfigKeys)[number]>;
1510
- type ConfigPlainType = Omit<ConfigType, keyof ConfigComplexType>;
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]>>;