useblocks 1.1.81 → 1.1.84

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 (41) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +17 -6
  3. package/iframe/css/sandbox-dark.css +1 -1
  4. package/iframe/css/sandbox-darktheme.css +3 -3
  5. package/iframe/css/sandbox-light.css +1 -1
  6. package/iframe/css/sandbox.css +2 -2
  7. package/iframe/js/amp.D1dkO3ub.js +1 -0
  8. package/iframe/js/iframe-eblock.js +1 -1
  9. package/iframe/js/iframe.js +1 -1
  10. package/iframe/js/rules.4N5s3OV-.js +1 -1
  11. package/package.json +1 -1
  12. package/static/core/{dfbad00e.js → 16c7408a.js} +4 -4
  13. package/static/core/{909c874d2.js → 278c19282.js} +982 -974
  14. package/static/core/{87de8255.js → 27b7d154.js} +3 -3
  15. package/static/core/{cc4c61c42.js → 7877b5712.js} +135 -135
  16. package/static/core/{ace7c2d1.js → 86acf537.js} +7 -7
  17. package/static/core/{6fc5508e2.js → 95074b4e2.js} +53 -53
  18. package/static/core/{f2b0c97b2.js → 9a1229572.js} +849 -836
  19. package/static/core/{6a3ea43c.js → ab3c035c.js} +6 -6
  20. package/static/core/{496a28e52.js → b8fa83f82.js} +562 -562
  21. package/static/core/{7cff1d56.js → bb8665a8.js} +77 -4
  22. package/static/core/{fc514220.js → c013e7cc.js} +73 -73
  23. package/static/core/{5cc21a00.js → c871702e.js} +608 -603
  24. package/static/core/{4296ff4b.js → cf26b064.js} +240 -240
  25. package/static/core/{d2293148.js → d15a988b.js} +7 -7
  26. package/static/core/{f7e3905a.js → d4962564.js} +3 -3
  27. package/static/core/{1ab52017.js → dc948de7.js} +7 -7
  28. package/static/core/{c287f8b6.js → e9b6fbb9.js} +36 -36
  29. package/static/core/{d70b5c31.js → ec6e74e5.js} +12965 -12545
  30. package/static/umd-runtime/{n8zqoGYh.js → D80ABE1O.js} +7 -1
  31. package/static/umd-runtime/runtime.js +2 -2
  32. package/static/umd-runtime/ui-kit.js +1742 -1734
  33. package/ui-kit/index.js +1859 -1851
  34. package/{useblocks-core.0a682f7d.js → useblocks-core.2fa005e8.js} +6 -6
  35. package/useblocks-esm.js +4 -4
  36. package/{useblocks-po.0a682f7d.js → useblocks-po.2fa005e8.js} +1 -1
  37. package/useblocks.d.ts +51 -24
  38. package/useblocks.js +3 -3
  39. package/iframe/js/amp.Da_6yDxX.js +0 -1
  40. /package/iframe/{iframe-eblock.0a682f7d.html → iframe-eblock.2fa005e8.html} +0 -0
  41. /package/iframe/{iframe.0a682f7d.html → iframe.2fa005e8.html} +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,41 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [1.1.83] - 2026-09-22
10
+
11
+ ### Added
12
+
13
+ - Email and block folders: several emails or blocks can be dragged into a folder or the trash at
14
+ once; a collapsed folder with subfolders is marked with a plus on its icon
15
+ - AI email generation on the create page respects the plan: a lock on the card shows up front that
16
+ the feature is not in the plan or the limit is used up
17
+ - Empty email list: dedicated messages for a search with no results and for an empty trash, a
18
+ "Create a new email" button in an empty folder; the "no emails" screen no longer flashes while the
19
+ list is loading
20
+ - File Manager: `fileManager.availableImageExtensions` is declared in the public types. It sets the
21
+ supported formats hint under the upload area and does not restrict what can be uploaded
22
+
23
+ ### Fixed
24
+
25
+ - Video and countdown settings: fields keep the cursor while typing, the preview is rebuilt after a
26
+ pause in typing
27
+ - Expanding a folder no longer collapses its siblings, and row buttons in the folder tree line up
28
+ with their folders
29
+ - The button settings panel shows the button's actual alignment instead of always "center"
30
+ - Tooltips on the right panel tabs no longer go off screen; buttons on an image in the canvas now
31
+ have hover titles
32
+ - File Manager: files with commas, percent signs, ampersands and other symbols in the name upload
33
+ fine — such symbols are replaced with underscores, Ukrainian letters are transliterated
34
+ - Plugin types: `compressMaxSize` is documented in megabytes (default `0.48`), the way the editor
35
+ reads it, not in bytes — a `5 * 1024 * 1024` value written by the old description effectively
36
+ turned compression off. The docs now say that compression settings in `fileManager` override the
37
+ top-level ones only inside the file manager; defaults of `cacheStrategy` and `autosaveTimeout`
38
+ are corrected
39
+ - Translations: "Discount with promo code" on the billing page, email list messages, "Stock" in
40
+ Spanish and Portuguese now means a stock photo library, not warehouse stock
41
+
42
+ ---
43
+
9
44
  ## [1.1.81] - 2026-09-17
10
45
 
11
46
  ### Added
package/README.md CHANGED
@@ -285,7 +285,9 @@ Editor UI tuning. Use **`instance.setConfig`**, **`instance.updateConfig`**, **`
285
285
  | optimizeSpamAssassinEnabled | Show SpamAssassin check. | true |
286
286
  | optimizeCheckCodeEnabled | Show code check. | true |
287
287
  | settingsEnabled | Show “Settings” button. | true |
288
+ | settingsTabEnabled | Show the “Settings” tab in the settings panel. The UTM tags and Annotations tabs do not depend on it. | true |
288
289
  | UTMEnabled | Show UTM tags tab. | true |
290
+ | annotationsEnabled | Show the Gmail annotations tab. Enabled only in `pro` mode. | false |
289
291
  | descriptionEnabled | Show “Description” field in settings. | true |
290
292
  | tagsEnabled | Show “Tags” field in settings. | true |
291
293
  | switchDesktopMobilePropsEnabled | Show mobile properties toggle. | true |
@@ -353,8 +355,8 @@ Editor UI tuning. Use **`instance.setConfig`**, **`instance.updateConfig`**, **`
353
355
  | imageCenterStockEnabled | Stock photos tab. | true |
354
356
  | imageCenterGifEnabled | Stock GIFs tab. | true |
355
357
  | imageCenterEditorEnabled | Image editor tab. | true |
356
- | compressMaxSize | Client-side compression max bytes in file manager (~5 MiB default). | see types |
357
- | compressMaxWidthOrHeight | Resize max width/height, px (2000 default). | see types |
358
+ | compressMaxSize | Target image weight after client-side compression, **megabytes** (not bytes). `0` disables compression. Default 0.48. | see types |
359
+ | compressMaxWidthOrHeight | Resize max width/height, px. `0` disables compression. Default 2000. | see types |
358
360
 
359
361
  ### Event wiring
360
362
 
@@ -445,6 +447,8 @@ useblocks.init({
445
447
 
446
448
  The `fileManager` section controls feature flags; every field is optional — default **true** when omitted unless noted in typings.
447
449
 
450
+ The section also accepts `compressMaxSize` and `compressMaxWidthOrHeight` — the same fields as at config root. Set here, they override the root ones **inside the file manager only**: an image dropped straight onto the canvas, uploaded through the image modal or pulled in by HTML import still uses the root value.
451
+
448
452
  #### Basic Operations
449
453
 
450
454
  - **enableTrash** — enables trash functionality for deleted files. When enabled, files are moved to trash instead of permanent deletion. Default: true
@@ -459,11 +463,18 @@ The `fileManager` section controls feature flags; every field is optional — de
459
463
  - **enableDelete** — allows deleting files and folders. When the recycle bin is enabled, files are moved there instead of being permanently deleted. Default is true
460
464
  - **multiSelect** — allows multiple selection of files and folders for batch operations. Default is true
461
465
  - **defaultFolderName** — default folder name
466
+ - **availableImageExtensions** — extensions shown in the "Supported files" hint under the empty-folder upload area, rendered with a leading dot (`['jpg', 'png']` → `.jpg, .png`). A caption only: it does not restrict what can be uploaded. Default: `['jpeg', 'svg', 'png']`
467
+ - **dedupeUploadNamesOnClient** — the client picks a free name before uploading: a taken `photo.png` is sent as `photo_1.png`, then `photo_2.png`. Covers image-editor copies, upload by URL, copy and move as well; creating a folder with a taken name is rejected with an error. Costs one extra folder listing per upload, so enable it when your backend does not resolve name collisions itself. Default: false
468
+ - **saveCopyToCurrentFolder** — "Save copy" in the image editor stores the file in the current folder. By default (false) the copy goes to the default folder regardless of where the editor was opened
469
+ - **showNotifications** — file manager toast notifications. Default: true
462
470
  - **sortOptions** — whitelist of sort dropdown values (`'date-desc' \| 'date-asc' \| 'size-desc' \| 'size-asc' \| 'name-asc' \| 'name-desc' \| 'type-asc'`). If omitted or empty, all options supported by the file-manager package are shown. Use a non-empty array to hide sorts your platform does not implement (e.g. size or type).
463
471
 
464
472
  #### Pagination & Display
465
473
 
466
474
  - **enablePagination** — enables paginated navigation. If disabled, all items are loaded at once. Default: true
475
+ - **unifiedCatalogFetch** — applies only together with `enablePagination: false`. Folder and file list requests are merged into a single whole-catalog request and the needed type is filtered client-side: one `getItems` call instead of two. Ignored when server-side pagination is on. Set `false` if your backend needs separate folder vs file requests. Default: true
476
+ - **expandRootFolderOnInit** — expands the root node of the folder tree on open; nested folders stay collapsed. Default: true
477
+ - **previewFallbackToFileUrl** — when a file has no `thumbnail` and no `thumbnailUrl`, `file.url` is used for the table and grid preview (images only). Default: true
467
478
 
468
479
  #### Client-Side Processing
469
480
 
@@ -482,10 +493,10 @@ The `fileManager` section controls feature flags; every field is optional — de
482
493
  #### Cache Strategy
483
494
 
484
495
  - **cacheStrategy** — caching strategy for performance optimization.
485
- - **ttl** — cache time-to-live in milliseconds. Default: 300000 (5 minutes)
486
- - **errorTtl** — cache TTL for errors in milliseconds. Default: 60000 (1 minute)
487
- - **allowSortedInsert** — allows inserting elements into sorted arrays without full cache invalidation. Default: false
488
- - **allowSearchInsert** — allows inserting elements into filtered arrays without full cache invalidation. Default: false
496
+ - **ttl** — cache time-to-live in milliseconds. Default: 1800000 (30 minutes)
497
+ - **errorTtl** — cache TTL for errors in milliseconds. Defaults to `ttl` when omitted
498
+ - **allowSortedInsert** — allows inserting elements into sorted arrays without full cache invalidation. Default: true
499
+ - **allowSearchInsert** — allows inserting elements into filtered arrays without full cache invalidation. Default: true
489
500
  - **invalidateOnPaginationFull** — marks cache as stale when inserting into a full paginated page. Default: true
490
501
  - **comparator** — comparison function for sorting two files. Default: name-based comparison
491
502
  - **filterMatch** — function to check if a file passes current filters. Default: name-based search
@@ -12,7 +12,7 @@
12
12
  }
13
13
 
14
14
  .of-atom .em-element-editor-widget {
15
- background: #d0ebff;
15
+ background: var(--ub-colorPrimaryBg, #d0ebff);
16
16
  }
17
17
 
18
18
  [class^='em-element-editor-widget-'] {
@@ -42,7 +42,7 @@
42
42
 
43
43
  .of-atom .em-element-editor-widget {
44
44
  width: 82px;
45
- background: #d0ebff;
45
+ background: var(--ub-colorPrimaryBg, #d0ebff);
46
46
  top: -1px;
47
47
  left: 0;
48
48
  border-radius: 6px 6px 0 0;
@@ -69,7 +69,7 @@
69
69
  width: 20px;
70
70
  height: 20px;
71
71
  font-size: 16px;
72
- color: #344966;
72
+ color: var(--ub-colorAtomToolbarIcon, #344966);
73
73
  }
74
74
 
75
75
  [class^='em-element-editor-widget-']:hover {
@@ -79,7 +79,7 @@
79
79
  }
80
80
 
81
81
  .of-atom [class^='em-element-editor-widget-']:hover {
82
- background: #b8d4e9;
82
+ background: var(--ub-colorPrimaryBgHover, #b8d4e9);
83
83
  }
84
84
 
85
85
  .em-element-editor-widget.sticky {
@@ -16,7 +16,7 @@
16
16
  }
17
17
 
18
18
  .of-atom .em-element-editor-widget {
19
- background: #d0ebff;
19
+ background: var(--ub-colorPrimaryBg, #d0ebff);
20
20
  }
21
21
 
22
22
  [class^='em-element-editor-widget-'] {
@@ -575,7 +575,7 @@ tinymce *.em-code[em-edit='active'] {
575
575
  width: 20px;
576
576
  height: 20px;
577
577
  font-size: 16px;
578
- color: #344966;
578
+ color: var(--ub-colorAtomToolbarIcon, #344966);
579
579
  }
580
580
 
581
581
  [class^='em-element-editor-widget-']:hover {
@@ -591,7 +591,7 @@ tinymce *.em-code[em-edit='active'] {
591
591
  }
592
592
 
593
593
  .of-atom [class^='em-element-editor-widget-']:hover {
594
- background: #b8d4e9;
594
+ background: var(--ub-colorPrimaryBgHover, #b8d4e9);
595
595
  }
596
596
 
597
597
  .em-element-editor-widget.sticky {