@orangelogic/design-system 2.95.0 → 2.97.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 (173) hide show
  1. package/library/chunks/asset.B3vySOI-.js +431 -0
  2. package/library/chunks/{asset.types.6DCzTOQm.js → asset.types.KXRZEtBr.js} +127 -126
  3. package/library/chunks/{button.BZjbVq8t.js → button.CAa1kvwe.js} +2 -2
  4. package/library/chunks/{color-swatch-group.Q8ybVS0A.js → color-swatch-group.ChcPlkPU.js} +5 -5
  5. package/library/chunks/{color-swatch.CbL_TpRZ.js → color-swatch.DJ1kUnBQ.js} +1 -1
  6. package/library/chunks/{confirm-popover.bBo9aPlX.js → confirm-popover.D4x0nO5g.js} +3 -3
  7. package/library/chunks/content-builder.CcgZciZN.js +58 -0
  8. package/library/chunks/{cropper.uKGcvnPk.js → cropper.Bib8Abm3.js} +4937 -4932
  9. package/library/chunks/{dialog.DRW8iwh-.js → dialog.BLaxLMSc.js} +2 -2
  10. package/library/chunks/{dom.DURaLV1d.js → dom.0RpWet6y.js} +1 -1
  11. package/library/chunks/{dot-pagination.CvUr6R4S.js → dot-pagination.-nDdQxJN.js} +1 -1
  12. package/library/chunks/{file-on-demand.KQlA1JFF.js → file-on-demand.AzwoUvwB.js} +10 -10
  13. package/library/chunks/{folder-select.DxBOSyvo.js → folder-select.XpkOFzAW.js} +5 -5
  14. package/library/chunks/{form.nRqYei4e.js → form.Ch1cwYzO.js} +1 -1
  15. package/library/chunks/{header.ClxEkQPZ.js → header.BZxyeLPK.js} +1 -1
  16. package/library/chunks/{i18n.W6czbRms.js → i18n.BABe9hN4.js} +6 -0
  17. package/library/chunks/{icon-button.MqA-pNw8.js → icon-button.C2s3pHG4.js} +1 -1
  18. package/library/chunks/{iframe.PcSPtm_O.js → iframe.DPccxsnE.js} +1 -1
  19. package/library/chunks/{image.Dtdklw5q.js → image.9qwbjGNb.js} +1 -1
  20. package/library/chunks/{image.C-Covc0H.js → image.Cc4V85ID.js} +354 -311
  21. package/library/chunks/{list-editor.BnHKqD0O.js → list-editor.pVYc_70c.js} +183 -153
  22. package/library/chunks/{number.CCF6IxpN.js → number.B4PQLJIg.js} +32 -32
  23. package/library/chunks/{option.Cx54zrJq.js → option.DGXQzdtb.js} +1 -1
  24. package/library/chunks/{pagination.CG5odPWi.js → pagination.DZqKSA86.js} +4 -4
  25. package/library/chunks/{responsive.D9TUCX5p.js → responsive.Oz9HWjyQ.js} +1 -1
  26. package/library/chunks/{string.DfV21HEI.js → string.DUgD4c9f.js} +41 -34
  27. package/library/chunks/{tab-group.BLZ-qEpp.js → tab-group.BhCf9Smq.js} +4 -4
  28. package/library/chunks/{table.CYxWpvAC.js → table.V5PGGTfO.js} +13 -11
  29. package/library/chunks/{time.BNrE47-8.js → time.BiQnh9wt.js} +1 -1
  30. package/library/chunks/toast.D3AW3RWv.js +94 -0
  31. package/library/chunks/transformation.Cqz3hPaQ.js +144 -0
  32. package/library/chunks/{tree.CKi63r95.js → tree.DZa7k-4E.js} +1 -1
  33. package/library/components/alert.js +2 -2
  34. package/library/components/asset-link-format.js +767 -862
  35. package/library/components/atoms.js +12 -12
  36. package/library/components/border-input-group.js +1 -1
  37. package/library/components/breadcrumb.js +1 -1
  38. package/library/components/button.js +3 -3
  39. package/library/components/checkbox.js +1 -1
  40. package/library/components/color-picker.js +3 -3
  41. package/library/components/color-swatch-group.js +6 -6
  42. package/library/components/color-swatch.js +2 -2
  43. package/library/components/confirm-popover.js +4 -4
  44. package/library/components/copy-button.js +1 -1
  45. package/library/components/corner-position-input-group.js +2 -2
  46. package/library/components/cropper.js +1 -1
  47. package/library/components/details.js +4 -4
  48. package/library/components/dialog.js +3 -3
  49. package/library/components/dot-pagination.js +2 -2
  50. package/library/components/drawer.js +2 -2
  51. package/library/components/dropdown.js +1 -1
  52. package/library/components/dynamic-select.js +4 -4
  53. package/library/components/e-chart.js +1 -1
  54. package/library/components/element-clamp.js +2 -2
  55. package/library/components/file-on-demand.js +11 -11
  56. package/library/components/folder-select.js +4 -4
  57. package/library/components/format-bytes.js +1 -1
  58. package/library/components/format-date.js +1 -1
  59. package/library/components/format-number.js +1 -1
  60. package/library/components/format-time.js +2 -2
  61. package/library/components/header.js +2 -2
  62. package/library/components/icon-button.js +2 -2
  63. package/library/components/iframe.js +2 -2
  64. package/library/components/image-comparer.js +1 -1
  65. package/library/components/image.js +2 -2
  66. package/library/components/input.js +4 -7
  67. package/library/components/line-clamp.js +1 -1
  68. package/library/components/list-editor.js +6 -6
  69. package/library/components/masonry.js +2 -2
  70. package/library/components/menu-item.js +1 -1
  71. package/library/components/menu.js +1 -1
  72. package/library/components/molecules.js +5 -5
  73. package/library/components/option.js +2 -2
  74. package/library/components/organisms.js +2 -2
  75. package/library/components/pagination.js +5 -5
  76. package/library/components/popup.js +1 -1
  77. package/library/components/position-picker.js +1 -1
  78. package/library/components/progress-bar.js +1 -1
  79. package/library/components/progress-ring.js +1 -1
  80. package/library/components/radio-group.js +1 -1
  81. package/library/components/range.js +2 -2
  82. package/library/components/rating.js +1 -1
  83. package/library/components/relative-time.js +1 -1
  84. package/library/components/select.js +3 -3
  85. package/library/components/share-option-list.js +2 -2
  86. package/library/components/sidebar.js +1 -1
  87. package/library/components/size-input-group.js +2 -2
  88. package/library/components/spinner.js +1 -1
  89. package/library/components/split-panel.js +1 -1
  90. package/library/components/switch.js +1 -1
  91. package/library/components/tab-group.js +5 -5
  92. package/library/components/tab.js +2 -2
  93. package/library/components/table.js +5 -5
  94. package/library/components/tag.js +2 -2
  95. package/library/components/textarea.js +2 -2
  96. package/library/components/timecode.js +1 -1
  97. package/library/components/tooltip.js +1 -1
  98. package/library/components/tree-item.js +2 -2
  99. package/library/components/tree.js +2 -2
  100. package/library/components/typeface.js +2 -2
  101. package/library/components/types.js +31066 -29848
  102. package/library/components/video.js +554 -545
  103. package/library/package.json +1 -1
  104. package/library/packages/atoms/src/components/image/image.d.ts +15 -1
  105. package/library/packages/atoms/src/components/input/input.d.ts +1 -2
  106. package/library/packages/atoms/src/components/video/video.d.ts +3 -1
  107. package/library/packages/events/src/cx-asset-format-picker-delete.d.ts +6 -0
  108. package/library/packages/events/src/cx-asset-format-picker-select.d.ts +8 -0
  109. package/library/packages/events/src/cx-asset-transformation-dialog-cancel.d.ts +6 -0
  110. package/library/packages/events/src/cx-asset-transformation-dialog-confirm.d.ts +11 -0
  111. package/library/packages/events/src/cx-asset-transformation-dialog-delete.d.ts +6 -0
  112. package/library/packages/events/src/cx-bento-range-change.d.ts +9 -0
  113. package/library/packages/events/src/cx-content-builder-gallery-fetched.d.ts +10 -0
  114. package/library/packages/events/src/cx-lightbox-close.d.ts +6 -0
  115. package/library/packages/events/src/cx-lightbox-download.d.ts +11 -0
  116. package/library/packages/events/src/cx-timeline-data-resolved.d.ts +10 -0
  117. package/library/packages/events/src/cx-video-thumbnail-resolved.d.ts +8 -0
  118. package/library/packages/events/src/events.d.ts +12 -1
  119. package/library/packages/molecules/src/asset-data-display/asset-data-display.d.ts +1 -0
  120. package/library/packages/molecules/src/asset-format-picker/asset-format-picker.d.ts +56 -0
  121. package/library/packages/molecules/src/asset-format-picker/asset-format-picker.styles.d.ts +2 -0
  122. package/library/packages/molecules/src/asset-picker/asset-picker.d.ts +7 -0
  123. package/library/packages/molecules/src/cropper/cropper.d.ts +1 -0
  124. package/library/packages/molecules/src/cropper/react/Cropper.d.ts +1 -0
  125. package/library/packages/molecules/src/download-format-picker/download-format-picker.d.ts +5 -1
  126. package/library/packages/molecules/src/index.d.ts +1 -0
  127. package/library/packages/molecules/src/timeline/timeline.d.ts +18 -0
  128. package/library/packages/organisms/src/asset-link-format/asset-link-format.d.ts +12 -0
  129. package/library/packages/organisms/src/asset-link-format/components/asset-link-format-rotation/asset-link-format-rotation.d.ts +7 -7
  130. package/library/packages/organisms/src/asset-transformation-dialog/asset-transformation-dialog.d.ts +102 -0
  131. package/library/packages/organisms/src/asset-transformation-dialog/asset-transformation-dialog.styles.d.ts +2 -0
  132. package/library/packages/organisms/src/bento-grid/bento-grid.d.ts +57 -26
  133. package/library/packages/organisms/src/bento-grid/bento-layout.d.ts +44 -0
  134. package/library/packages/organisms/src/carousel/carousel.d.ts +3 -1
  135. package/library/packages/organisms/src/content-builder/components/block-picker/block-picker.d.ts +7 -0
  136. package/library/packages/organisms/src/content-builder/components/config-form/config-form-controller.d.ts +4 -0
  137. package/library/packages/organisms/src/content-builder/components/config-form/config-form.d.ts +11 -0
  138. package/library/packages/organisms/src/content-builder/components/config-manager/config-manager.d.ts +10 -0
  139. package/library/packages/organisms/src/content-builder/components/gallery-picker/gallery-picker.d.ts +6 -0
  140. package/library/packages/organisms/src/content-builder/configs/carousel.d.ts +6 -2
  141. package/library/packages/organisms/src/content-builder/configs/gallery.d.ts +6 -2
  142. package/library/packages/organisms/src/content-builder/configs/image.d.ts +7 -4
  143. package/library/packages/organisms/src/content-builder/configs/timeline.d.ts +5 -2
  144. package/library/packages/organisms/src/content-builder/configs/video.d.ts +11 -2
  145. package/library/packages/organisms/src/content-builder/configs-controller.d.ts +45 -4
  146. package/library/packages/organisms/src/content-builder/content-builder-constants.d.ts +2 -2
  147. package/library/packages/organisms/src/content-builder/content-builder.d.ts +13 -0
  148. package/library/packages/organisms/src/content-builder/plugins/gallery.d.ts +45 -1
  149. package/library/packages/organisms/src/content-builder/styleController.d.ts +26 -1
  150. package/library/packages/organisms/src/index.d.ts +2 -0
  151. package/library/packages/organisms/src/lightbox/lightbox.d.ts +79 -0
  152. package/library/packages/organisms/src/lightbox/lightbox.styles.d.ts +2 -0
  153. package/library/packages/services/src/api/asset/asset.d.ts +2 -2
  154. package/library/packages/services/src/api/asset/asset.types.d.ts +4 -0
  155. package/library/packages/tools/src/fetch-asset/fetch-asset.d.ts +2 -1
  156. package/library/packages/tools/src/fetch-image/fetch-image.d.ts +19 -5
  157. package/library/packages/types/src/asset-click-action.d.ts +3 -1
  158. package/library/packages/types/src/asset-format-picker.d.ts +11 -0
  159. package/library/packages/types/src/bento-grid.d.ts +37 -0
  160. package/library/packages/types/src/content-builder.d.ts +37 -1
  161. package/library/packages/types/src/gallery.d.ts +0 -6
  162. package/library/packages/utils/src/actions/asset-click.d.ts +1 -3
  163. package/library/packages/utils/src/custom-element/i18n.d.ts +6 -0
  164. package/library/packages/utils/src/index.d.ts +1 -0
  165. package/library/packages/utils/src/string/string.d.ts +1 -0
  166. package/library/packages/utils/src/transformation/index.d.ts +1 -0
  167. package/library/react-web-component.d.ts +236 -8
  168. package/library/utils.js +517 -192
  169. package/package.json +1 -1
  170. package/library/chunks/asset.Duzr3O3z.js +0 -370
  171. package/library/chunks/index.BgXEXk4m.js +0 -398
  172. package/library/chunks/toast.Bc4wpYJ1.js +0 -150
  173. /package/library/packages/{organisms/src/asset-link-format/asset-link-format.utils.d.ts → utils/src/transformation/transformation.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
- import { BlockType } from '../../../types/src/content-builder';
1
+ import { BlockType, ConfigsOptions } from '../../../types/src/content-builder';
2
2
  import { LocalizeController } from '../../../utils/src/custom-element/i18n';
3
3
 
4
4
  export default class ConfigsController {
5
5
  private readonly localize;
6
6
  constructor(localize: LocalizeController);
7
- getConfigs(type: BlockType): import('../../../types/src/content-builder').PropertyConfig<{
7
+ getConfigs(type: BlockType, options?: ConfigsOptions): import('../../../types/src/content-builder').PropertyConfig<{
8
8
  data: string;
9
9
  'data-constraints': boolean;
10
10
  'default-open-indexes': string;
@@ -46,8 +46,10 @@ export default class ConfigsController {
46
46
  'content-variant': import('../../../types/src/gallery-item').GalleryItemContentVariant;
47
47
  'data-constraints': boolean;
48
48
  'details-source-field': string;
49
+ 'download-format': string;
49
50
  easing: import('../../../types/src/index.ts').Easing;
50
51
  effect: import('../../../types/src/highlightable-element').HighlightableElementEffect;
52
+ format: string;
51
53
  'header-source-field': string;
52
54
  'highlight-border': boolean;
53
55
  'highlight-color-overlay': boolean;
@@ -63,6 +65,8 @@ export default class ConfigsController {
63
65
  'source-variant': import('../../../types/src/gallery').SourceVariant;
64
66
  src: string;
65
67
  'text-reveal-style': import('../../../types/src/highlightable-element').HighlightableElementTextRevealStyle;
68
+ 'transformation-record-id': string;
69
+ transformations: string;
66
70
  'transition-type': import('../../../types/src/index.ts').TransitionType;
67
71
  variant: string;
68
72
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
@@ -111,8 +115,10 @@ export default class ConfigsController {
111
115
  'content-type': import('../../../types/src/gallery').ContentType;
112
116
  'content-variant': import('../../../types/src/gallery-item').GalleryItemContentVariant;
113
117
  'details-source-field': string;
118
+ 'download-format': string;
114
119
  easing: import('../../../types/src/index.ts').Easing;
115
120
  effect: import('../../../types/src/highlightable-element').HighlightableElementEffect;
121
+ format: string;
116
122
  'header-source-field': string;
117
123
  'highlight-background': boolean;
118
124
  'highlight-border': boolean;
@@ -134,6 +140,8 @@ export default class ConfigsController {
134
140
  'source-variant': import('../../../types/src/gallery').SourceVariant;
135
141
  src: string;
136
142
  'text-reveal-style': import('../../../types/src/highlightable-element').HighlightableElementTextRevealStyle;
143
+ 'transformation-record-id': string;
144
+ transformations: string;
137
145
  variant: import('../../../types/src/gallery').GalleryVariant;
138
146
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
139
147
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
@@ -167,8 +175,10 @@ export default class ConfigsController {
167
175
  'download-id'?: import('./blocks/image/image').default["downloadId"];
168
176
  'download-names'?: import('./blocks/image/image').default["downloadNames"];
169
177
  'download-src'?: import('./blocks/image/image').default["downloadSrc"];
170
- easing?: import('./blocks/image/image').default["easing"];
171
- effect?: import('./blocks/image/image').default["effect"];
178
+ easing: import('./blocks/image/image').default["easing"];
179
+ effect: import('./blocks/image/image').default["effect"];
180
+ format: import('./blocks/image/image').default["format"];
181
+ 'format-dark-mode': import('./blocks/image/image').default["formatDarkMode"];
172
182
  'header-source-field': import('./blocks/image/image').default["headerSourceField"];
173
183
  height: import('./blocks/image/image').default["height"];
174
184
  'height-mode': import('./blocks/image/image').default["heightMode"];
@@ -187,6 +197,7 @@ export default class ConfigsController {
187
197
  src: import('./blocks/image/image').default["src"];
188
198
  'src-dark-mode': import('./blocks/image/image').default["srcDarkMode"];
189
199
  'text-reveal-style'?: import('./blocks/image/image').default["textRevealStyle"];
200
+ transformations: string;
190
201
  'transition-type'?: string;
191
202
  width: import('./blocks/image/image').default["width"];
192
203
  'zoom-style'?: import('./blocks/image/image').default["zoomStyle"];
@@ -207,13 +218,17 @@ export default class ConfigsController {
207
218
  'data-constraints': boolean;
208
219
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
209
220
  data: string;
221
+ format: string;
210
222
  'min-tab-width': string;
211
223
  'multi-language': boolean;
212
224
  'navigation-arrows': boolean;
213
225
  'show-thumbnails': boolean;
214
226
  'tabs-per-page': number;
227
+ 'transformation-record-id': string;
228
+ transformations: string;
215
229
  }>[] | import('../../../types/src/content-builder').PropertyConfig<{
216
230
  'additional-fields': string;
231
+ 'asset-version': import('../../../types/src/asset-format-picker').AssetVersion;
217
232
  autoplay: import('./blocks/video/video').default["autoplay"];
218
233
  'click-action': import('../../../types/src/asset-click-action').ClickAction;
219
234
  'click-link'?: import('./blocks/video/video').default["clickLink"];
@@ -231,6 +246,9 @@ export default class ConfigsController {
231
246
  'download-id'?: import('./blocks/video/video').default["downloadId"];
232
247
  'download-names'?: import('./blocks/video/video').default["downloadNames"];
233
248
  'download-src'?: import('./blocks/video/video').default["downloadSrc"];
249
+ format: string;
250
+ 'format-label'?: string;
251
+ 'format-src': string;
234
252
  'header-source-field': import('./blocks/video/video').default["headerSourceField"];
235
253
  height: import('./blocks/video/video').default["height"];
236
254
  'height-mode': import('./blocks/video/video').default["heightMode"];
@@ -247,6 +265,10 @@ export default class ConfigsController {
247
265
  'share-src'?: import('./blocks/video/video').default["shareSrc"];
248
266
  'show-controls': import('./blocks/video/video').default["showControls"];
249
267
  src: import('./blocks/video/video').default["src"];
268
+ 'thumbnail-format'?: string;
269
+ 'thumbnail-record-id'?: string;
270
+ 'thumbnail-transformations'?: string;
271
+ 'version-label'?: string;
250
272
  width: import('./blocks/video/video').default["width"];
251
273
  }>[];
252
274
  getName(type: BlockType): string;
@@ -287,8 +309,10 @@ export default class ConfigsController {
287
309
  'content-variant': import('../../../types/src/gallery-item').GalleryItemContentVariant;
288
310
  'data-constraints': boolean;
289
311
  'details-source-field': string;
312
+ 'download-format': string;
290
313
  easing: import('../../../types/src/index.ts').Easing;
291
314
  effect: import('../../../types/src/highlightable-element').HighlightableElementEffect;
315
+ format: string;
292
316
  'header-source-field': string;
293
317
  'highlight-border': boolean;
294
318
  'highlight-color-overlay': boolean;
@@ -304,6 +328,8 @@ export default class ConfigsController {
304
328
  'source-variant': import('../../../types/src/gallery').SourceVariant;
305
329
  src: string;
306
330
  'text-reveal-style': import('../../../types/src/highlightable-element').HighlightableElementTextRevealStyle;
331
+ 'transformation-record-id': string;
332
+ transformations: string;
307
333
  'transition-type': import('../../../types/src/index.ts').TransitionType;
308
334
  variant: string;
309
335
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
@@ -349,8 +375,10 @@ export default class ConfigsController {
349
375
  'content-type': import('../../../types/src/gallery').ContentType;
350
376
  'content-variant': import('../../../types/src/gallery-item').GalleryItemContentVariant;
351
377
  'details-source-field': string;
378
+ 'download-format': string;
352
379
  easing: import('../../../types/src/index.ts').Easing;
353
380
  effect: import('../../../types/src/highlightable-element').HighlightableElementEffect;
381
+ format: string;
354
382
  'header-source-field': string;
355
383
  'highlight-background': boolean;
356
384
  'highlight-border': boolean;
@@ -372,6 +400,8 @@ export default class ConfigsController {
372
400
  'source-variant': import('../../../types/src/gallery').SourceVariant;
373
401
  src: string;
374
402
  'text-reveal-style': import('../../../types/src/highlightable-element').HighlightableElementTextRevealStyle;
403
+ 'transformation-record-id': string;
404
+ transformations: string;
375
405
  variant: import('../../../types/src/gallery').GalleryVariant;
376
406
  'zoom-style': import('../../../types/src/highlightable-element').HighlightableElementZoomStyle;
377
407
  }> | {
@@ -387,13 +417,17 @@ export default class ConfigsController {
387
417
  'data-constraints': boolean;
388
418
  } | {
389
419
  data: string;
420
+ format: string;
390
421
  'min-tab-width': string;
391
422
  'multi-language': boolean;
392
423
  'navigation-arrows': boolean;
393
424
  'show-thumbnails': boolean;
394
425
  'tabs-per-page': number;
426
+ 'transformation-record-id': string;
427
+ transformations: string;
395
428
  } | Partial<{
396
429
  'additional-fields': string;
430
+ 'asset-version': import('../../../types/src/asset-format-picker').AssetVersion;
397
431
  autoplay: import('./blocks/video/video').default["autoplay"];
398
432
  'click-action': import('../../../types/src/asset-click-action').ClickAction;
399
433
  'click-link'?: import('./blocks/video/video').default["clickLink"];
@@ -411,6 +445,9 @@ export default class ConfigsController {
411
445
  'download-id'?: import('./blocks/video/video').default["downloadId"];
412
446
  'download-names'?: import('./blocks/video/video').default["downloadNames"];
413
447
  'download-src'?: import('./blocks/video/video').default["downloadSrc"];
448
+ format: string;
449
+ 'format-label'?: string;
450
+ 'format-src': string;
414
451
  'header-source-field': import('./blocks/video/video').default["headerSourceField"];
415
452
  height: import('./blocks/video/video').default["height"];
416
453
  'height-mode': import('./blocks/video/video').default["heightMode"];
@@ -427,6 +464,10 @@ export default class ConfigsController {
427
464
  'share-src'?: import('./blocks/video/video').default["shareSrc"];
428
465
  'show-controls': import('./blocks/video/video').default["showControls"];
429
466
  src: import('./blocks/video/video').default["src"];
467
+ 'thumbnail-format'?: string;
468
+ 'thumbnail-record-id'?: string;
469
+ 'thumbnail-transformations'?: string;
470
+ 'version-label'?: string;
430
471
  width: import('./blocks/video/video').default["width"];
431
472
  }>;
432
473
  getStylable(type: BlockType): string[];
@@ -30,5 +30,5 @@ export declare const OMITTED_ATTRIBUTES: string[];
30
30
  export declare const OMITTED_PROPERTIES: never[];
31
31
  export declare const BLOCK_CAROUSEL_LIMITED_BLOCKS: BlockType[];
32
32
  export declare const NEWLY_ADDED_COMPONENT_DELAY = 500;
33
- export declare const OPEN_ON_NEWLY_ADDED_COMPONENT: BlockType[];
34
- export declare const MULTI_LANGUAGE_BLOCKS: BlockType[];
33
+ export declare const OPEN_ON_NEWLY_ADDED_COMPONENT: Set<BlockType>;
34
+ export declare const MULTI_LANGUAGE_BLOCKS: Set<BlockType>;
@@ -3,6 +3,7 @@ import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
3
3
  import { default as CxPopup } from '../../../atoms/src/components/popup/popup.ts';
4
4
  import { default as CxSpinner } from '../../../atoms/src/components/spinner/spinner.ts';
5
5
  import { default as CortexElement } from '../../../base/src/cortex-element.ts';
6
+ import { AssetFormatValue } from '../../../types/src/asset-format-picker';
6
7
  import { Asset, AssetTypeString, Device, EditorMode, TeamSpaceRole } from '../../../types/src/content-builder';
7
8
  import { Component, Editor, StyleProps } from 'grapesjs';
8
9
  import { TemplateResult } from 'lit';
@@ -13,6 +14,10 @@ import { CxRTEBubbleMenu, CxRTETableGenerator } from './plugins';
13
14
  /**
14
15
  * @summary The `cx-content-builder` component is used to create and manage content blocks in a CMS.
15
16
  *
17
+ * Set `enable-asset-format-controls` to expose the asset format, transformation,
18
+ * download-format, and asset-format-picker controls on image, video, gallery,
19
+ * carousel, and timeline blocks. Off by default.
20
+ *
16
21
  * @event cx-change - Emitted when the content builder changes.
17
22
  */
18
23
  export default class CxContentBuilder extends CortexElement {
@@ -93,6 +98,13 @@ export default class CxContentBuilder extends CortexElement {
93
98
  * @default false
94
99
  */
95
100
  allowDuplicateBlocks: boolean;
101
+ /**
102
+ * Whether to expose the asset format / transformation / download-format /
103
+ * asset-format-picker controls in the per-block config sidebar for
104
+ * image, video, gallery, carousel, and timeline blocks.
105
+ * @default false
106
+ */
107
+ enableAssetFormatControls: boolean;
96
108
  /**
97
109
  * The default language of the content builder.
98
110
  * This is the language that will be used to store the translatable texts.
@@ -248,6 +260,7 @@ export default class CxContentBuilder extends CortexElement {
248
260
  handleBuilderPropsChange(): void;
249
261
  onRequestAsset(type: AssetTypeString): Promise<Asset>;
250
262
  onRequestDownloadFormat(assetIds: string[], formats?: Record<string, string[]>): Promise<{}>;
263
+ onRequestAssetFormat(_assetId: string, _value?: AssetFormatValue): Promise<AssetFormatValue | null | undefined>;
251
264
  /**
252
265
  * This method retrieves all the components of the specified component.
253
266
  * It recursively traverses the component's children and adds them to the list.
@@ -1,5 +1,49 @@
1
- import { Editor } from 'grapesjs';
1
+ import { Component, ComponentDefinition, ComponentView, ComponentViewDefinition, Editor } from 'grapesjs';
2
+ import { default as _delay } from 'lodash-es/delay';
2
3
  import { EditorPluginOptions } from './plugin-factory';
3
4
 
5
+ export declare const GALLERY_TAG_NAME = "cx-gallery";
6
+ export type GalleryTimerMap = WeakMap<Component, ReturnType<typeof _delay>>;
7
+ type GalleryViewThis = ComponentViewDefinition & ComponentView<Component>;
8
+ /**
9
+ * `clearHover` defaults to clearing grapesjs's hovered model. The carousel
10
+ * plugin passes a DOM mouseleave dispatch instead, because its lightbox
11
+ * interaction needs a different cleanup path.
12
+ */
13
+ export declare function createBlockHoverEvent(editor: Editor, clearHover?: () => void): (event: MouseEvent) => void;
14
+ export declare function handleOnRequestAsset(model: Component): void;
15
+ export declare function createHandleComponentChange(timerId: GalleryTimerMap, options?: {
16
+ columnStyle?: ComponentDefinition['style'];
17
+ }): (model: Component) => void;
18
+ export declare function createInit({ editor, handleComponentChange, timerId, }: {
19
+ editor: Editor;
20
+ handleComponentChange: (model: Component) => void;
21
+ timerId: GalleryTimerMap;
22
+ }): (model: Component) => void;
23
+ export declare function createRemoved({ handleComponentChange, timerId, }: {
24
+ handleComponentChange: (model: Component) => void;
25
+ timerId: GalleryTimerMap;
26
+ }): (model: Component) => void;
27
+ /**
28
+ * Move a record one position. `wrap: true` makes the first/last item swap
29
+ * with the last/first (used by the carousel in loop mode); `wrap: false`
30
+ * leaves the boundary item in place (used by the gallery, which hides the
31
+ * arrow button in that case).
32
+ */
33
+ export declare function performMoveItem(model: Component, itemDetail: {
34
+ id?: string;
35
+ rawId?: string;
36
+ }, direction: 'left' | 'right', options?: {
37
+ wrap?: boolean;
38
+ }): void;
39
+ /**
40
+ * View methods that the gallery and carousel plugins share verbatim. Move,
41
+ * config-hide/show, and the events() list stay in the caller because they
42
+ * differ between plugins.
43
+ */
44
+ export declare function createSharedViewMethods({ editor, handleComponentChange, }: {
45
+ editor: Editor;
46
+ handleComponentChange: (model: Component) => void;
47
+ }): Partial<ComponentViewDefinition> & ThisType<GalleryViewThis>;
4
48
  declare const GalleryPlugin: (editor: Editor, editorOptions: EditorPluginOptions) => void;
5
49
  export default GalleryPlugin;
@@ -45,6 +45,25 @@ export default class StyleController {
45
45
  full?: boolean | undefined;
46
46
  accept?: string;
47
47
  api?: () => Promise<import('../../../types/src/content-builder').Option[]> | import('../../../types/src/folder-select').FolderSelectApi;
48
+ assetFormatPickerConfigs?: {
49
+ assetIdKey?: string;
50
+ assetVersionKey?: string;
51
+ formatLabelKey?: string;
52
+ formatSrcKey?: string;
53
+ versionLabelKey?: string;
54
+ };
55
+ assetTransformationConfigs?: {
56
+ assetIdKey?: string;
57
+ defaultFormat?: string;
58
+ dialogLabel?: string;
59
+ formatKey?: string;
60
+ multiple?: boolean;
61
+ noCrop?: boolean;
62
+ noResize?: boolean;
63
+ noRotate?: boolean;
64
+ recordsKey?: string;
65
+ srcKey?: string;
66
+ };
48
67
  callback?: ((params: {
49
68
  extraValue?: Record<string, unknown>;
50
69
  record: Record<string, any>;
@@ -53,7 +72,7 @@ export default class StyleController {
53
72
  checkedValue?: string | boolean;
54
73
  children?: import('../../../types/src/content-builder').PropertyConfig[];
55
74
  clearable?: boolean;
56
- controlType: "bicolor-picker" | "border-input-group" | "button-group" | "checkbox" | "checkbox-group" | "color-swatch-picker" | "corner-position-input-group" | "download-format-picker" | "file" | "folder-picker" | "gallery-picker" | "group" | "group-heading" | "icon-picker" | "image-picker" | "input" | "list-editor" | "all-picker" | "other-picker" | "padding-input-group" | "page-picker" | "placeholder" | "position-picker" | "radio-card-group" | "radio-group" | "select" | "shadow-input-group" | "size-input-group" | "switch" | "table" | "text" | "video-picker";
75
+ controlType: "asset-transformation" | "bicolor-picker" | "border-input-group" | "button-group" | "checkbox" | "checkbox-group" | "color-swatch-picker" | "corner-position-input-group" | "download-format-picker" | "file" | "folder-picker" | "gallery-picker" | "group" | "group-heading" | "icon-picker" | "image-picker" | "input" | "list-editor" | "all-picker" | "other-picker" | "padding-input-group" | "page-picker" | "placeholder" | "position-picker" | "radio-card-group" | "radio-group" | "select" | "shadow-input-group" | "size-input-group" | "switch" | "table" | "text" | "asset-format-picker" | "video-picker";
57
76
  cornerStyleKey?: {
58
77
  offsetX: string;
59
78
  offsetY: string;
@@ -62,13 +81,19 @@ export default class StyleController {
62
81
  disabled?: boolean | ((record: Record<string, unknown>) => boolean);
63
82
  disabledTooltip?: string;
64
83
  downloadFormatPickerConfigs?: {
84
+ allowDocTypes?: string[];
65
85
  assetIdsKey?: string;
86
+ isObjectFormat?: boolean;
87
+ objectIdKey?: string;
66
88
  };
67
89
  folderPickerConfigs?: {
68
90
  useFullPath: boolean;
69
91
  };
70
92
  galleryPickerConfigs?: {
71
93
  dialog: import('../../../types/src/content-builder').DialogType;
94
+ formatKey?: string;
95
+ transformationRecordIdKey?: string;
96
+ transformationsKey?: string;
72
97
  };
73
98
  groupConfigs?: {
74
99
  columnGap?: string;
@@ -1,4 +1,5 @@
1
1
  export { default as CxAssetLinkFormat } from './asset-link-format/asset-link-format';
2
+ export { default as CxAssetTransformationDialog } from './asset-transformation-dialog/asset-transformation-dialog';
2
3
  export { default as CxDashboardFilter } from './dashboard-filter/dashboard-filter';
3
4
  export { default as CxDashboardTable } from './dashboard-table/dashboard-table';
4
5
  export { default as CxBentoGrid } from './bento-grid/bento-grid';
@@ -12,6 +13,7 @@ export { default as CxContentBuilder } from './content-builder/content-builder';
12
13
  export { default as CxDownloader } from './downloader/downloader';
13
14
  export { default as CxFileOnDemand } from './file-on-demand/file-on-demand';
14
15
  export { default as CxFindAndReplace } from './find-and-replace/find-and-replace';
16
+ export { default as CxLightbox } from './lightbox/lightbox';
15
17
  export { default as CxMultiSelect } from './multi-select/multi-select';
16
18
  export { default as CxSpecialCharactersDialog } from './special-characters-dialog/special-characters-dialog';
17
19
  export { default as CxTemplateSwitcher } from './template-switcher/template-switcher';
@@ -0,0 +1,79 @@
1
+ import { default as CxButton } from '../../../atoms/src/components/button/button.ts';
2
+ import { default as CxDialog } from '../../../atoms/src/components/dialog/dialog.ts';
3
+ import { default as CxIcon } from '../../../atoms/src/components/icon/icon.ts';
4
+ import { default as CxTooltip } from '../../../atoms/src/components/tooltip/tooltip.ts';
5
+ import { default as CortexElement } from '../../../base/src/cortex-element.ts';
6
+ import { default as CxCarousel } from '../carousel/carousel.ts';
7
+ import { GalleryItem } from '../../../types/src/gallery-item';
8
+ import { TemplateResult } from 'lit';
9
+
10
+ /**
11
+ * @summary A fullscreen lightbox that wraps a dialog and carousel for browsing gallery items.
12
+ * Supports download, keyboard/click-to-close, and lazy loading via chunk-based data fetching.
13
+ *
14
+ * @csspart base - The outer lightbox wrapper inside the dialog body.
15
+ * @csspart toolbar - The top-right action toolbar.
16
+ * @csspart counter - The slide counter label.
17
+ *
18
+ * @event cx-lightbox-close - Emitted when the lightbox is closed. Detail: `{ index: number }`
19
+ * @event cx-lightbox-download - Emitted when the download button is clicked. Detail: `{ index: number; item: GalleryItem }`
20
+ * @event cx-slide-change - Re-emitted from the internal carousel when the active slide changes.
21
+ * @event cx-gallery-chunk-request - Re-emitted from the internal carousel when more data is needed.
22
+ */
23
+ export default class CxLightbox extends CortexElement {
24
+ static readonly styles: import('lit').CSSResult[];
25
+ static readonly dependencies: {
26
+ 'cx-button': typeof CxButton;
27
+ 'cx-carousel': typeof CxCarousel;
28
+ 'cx-dialog': typeof CxDialog;
29
+ 'cx-icon': typeof CxIcon;
30
+ 'cx-tooltip': typeof CxTooltip;
31
+ };
32
+ private readonly localize;
33
+ private readonly carouselEl?;
34
+ /**
35
+ * Controls visibility of the lightbox.
36
+ */
37
+ open: boolean;
38
+ /**
39
+ * Array of slide items to display.
40
+ */
41
+ data: GalleryItem[];
42
+ /**
43
+ * Total number of items (used for the counter and carousel chunking).
44
+ */
45
+ totalData: number;
46
+ /**
47
+ * Loaded data range passed through to the carousel for lazy loading.
48
+ */
49
+ chunk: [number, number];
50
+ /**
51
+ * The slide index to jump to when the lightbox opens.
52
+ */
53
+ startIndex: number;
54
+ /**
55
+ * Whether the carousel loops back to the start after the last slide.
56
+ */
57
+ loop: boolean;
58
+ /**
59
+ * Show the download button in the toolbar.
60
+ */
61
+ canDownload: boolean;
62
+ /**
63
+ * Current active slide index, synced from internal carousel.
64
+ */
65
+ private activeIndex;
66
+ mappedData: GalleryItem[];
67
+ handleOpenChange(): Promise<void>;
68
+ handleDataChange(): void;
69
+ private handleRequestClose;
70
+ private handleSlideChange;
71
+ private handleDownload;
72
+ private renderToolbar;
73
+ render(): TemplateResult;
74
+ }
75
+ declare global {
76
+ interface HTMLElementTagNameMap {
77
+ 'cx-lightbox': CxLightbox;
78
+ }
79
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -37,8 +37,8 @@ export declare function apiGetTransformAssetLink({ assetId, extension, format, s
37
37
  transformations?: string;
38
38
  useSession?: string;
39
39
  }): Promise<GetTransformAssetLinkResponse | null>;
40
- export declare function apiGetAssets({ extraFields, recordIds, }: GetAssetsRequest): Promise<GetAssetsResponse>;
41
- export declare function apiGetAssetsInFolder({ countPerPage, extraFields, limitedDocTypes, pageNumber, parentFolderIdentifier, searchTerm, sortOrder, }: GetAssetsInFolderRequest): Promise<GetAssetsInFolderResponse>;
40
+ export declare function apiGetAssets({ extraFields, getPermanentAssetsPaths, recordIds, token, }: GetAssetsRequest): Promise<GetAssetsResponse>;
41
+ export declare function apiGetAssetsInFolder({ countPerPage, extraFields, getPermanentAssetsPaths, limitedDocTypes, pageNumber, parentFolderIdentifier, searchTerm, sortOrder, token, }: GetAssetsInFolderRequest): Promise<GetAssetsInFolderResponse>;
42
42
  export declare function apiGetCropFocusMode({ autoCropMode, cropHeight, cropWidth, imageUrl, useSession, }: GetCropZoneSuggestionRequest): Promise<GetCropZoneSuggestionResponse | null>;
43
43
  export declare function apiGetAvailableProxies({ assetRecordId, siteUrl, token, useSession, }: {
44
44
  assetRecordId: string;
@@ -38,11 +38,13 @@ export type Facet = {
38
38
  export type GetAssetsInFolderRequest = {
39
39
  countPerPage: number;
40
40
  extraFields?: string[];
41
+ getPermanentAssetsPaths?: boolean;
41
42
  limitedDocTypes: string[];
42
43
  pageNumber: number;
43
44
  parentFolderIdentifier: string;
44
45
  searchTerm: string;
45
46
  sortOrder: string;
47
+ token?: string;
46
48
  };
47
49
  export type GetAssetsInFolderResponse = {
48
50
  facets: Facet[];
@@ -64,7 +66,9 @@ export type GetTransformAssetLinkResponse = {
64
66
  };
65
67
  export type GetAssetsRequest = {
66
68
  extraFields?: string[];
69
+ getPermanentAssetsPaths?: boolean;
67
70
  recordIds: string[];
71
+ token?: string;
68
72
  };
69
73
  export type GetAssetsResponse = {
70
74
  facets: Facet[];
@@ -4,9 +4,10 @@ export declare class FetchAssetController implements ReactiveController {
4
4
  private readonly host;
5
5
  private data;
6
6
  constructor(host: ReactiveElement);
7
- fetchAssetByID({ extraFields, recordId, }: {
7
+ fetchAssetByID({ extraFields, recordId, token, }: {
8
8
  extraFields?: string[];
9
9
  recordId: string;
10
+ token?: string;
10
11
  }): Promise<Record<string, string>>;
11
12
  hostConnected?(): void;
12
13
  hostDisconnected?(): void;
@@ -1,3 +1,4 @@
1
+ import { Transformation } from '../../../types/src/asset-link-format';
1
2
  import { GalleryItem } from '../../../types/src/gallery-item';
2
3
  import { ReactiveController, ReactiveElement } from 'lit';
3
4
 
@@ -7,7 +8,9 @@ export type ExtendedGalleryItem = GalleryItem & {
7
8
  type FetchImageControllerOptions = {
8
9
  maxEnd?: number;
9
10
  pageSize?: number;
11
+ token?: string;
10
12
  };
13
+ export declare function isSupportedImageExtension(extension: string): boolean;
11
14
  export declare class FetchImageController implements ReactiveController {
12
15
  private readonly host;
13
16
  private data;
@@ -17,40 +20,51 @@ export declare class FetchImageController implements ReactiveController {
17
20
  private totalCount;
18
21
  private maxEnd;
19
22
  private pageSize;
23
+ private readonly authToken;
20
24
  constructor(host: ReactiveElement, options?: FetchImageControllerOptions);
21
25
  get totalDataCount(): number;
22
- fetchImages({ end, extraFields, start, }: {
26
+ fetchImages({ end, extraFields, format, start, transformations, }: {
23
27
  end: number;
24
28
  extraFields: string[];
29
+ format?: string;
25
30
  start: number;
31
+ transformations?: Transformation[];
26
32
  }): Promise<ExtendedGalleryItem[] | undefined>;
27
- fetchImagesInFolderBySlide({ activeSlide, extraFields, folderId, forceRefetch, minLimit, noPlaceholders, }: {
33
+ fetchImagesInFolderBySlide({ activeSlide, extraFields, folderId, forceRefetch, format, minLimit, noPlaceholders, transformations, }: {
28
34
  activeSlide: number;
29
35
  extraFields?: string[];
30
36
  folderId: string;
31
37
  forceRefetch?: boolean;
38
+ format?: string;
32
39
  minLimit?: number;
33
40
  noPlaceholders?: boolean;
41
+ transformations?: Transformation[];
34
42
  }): Promise<ExtendedGalleryItem[]>;
35
- fetchImagesByIDs({ extraFields, recordIds, }: {
43
+ fetchImagesByIDs({ extraFields, format, recordIds, transformations, }: {
36
44
  extraFields?: string[];
45
+ format?: string;
37
46
  recordIds: string[];
47
+ transformations?: Transformation[];
38
48
  }): Promise<ExtendedGalleryItem[]>;
39
- fetchImagesInFolderByPage({ extraFields, folderId, forceRefetch, noPlaceholders, page, pageSize, }: {
49
+ fetchImagesInFolderByPage({ extraFields, folderId, forceRefetch, format, noPlaceholders, page, pageSize, transformations, }: {
40
50
  extraFields?: string[];
41
51
  folderId: string;
42
52
  forceRefetch?: boolean;
53
+ format?: string;
43
54
  noPlaceholders?: boolean;
44
55
  page: number;
45
56
  pageSize?: number;
57
+ transformations?: Transformation[];
46
58
  }): Promise<ExtendedGalleryItem[]>;
47
- fetchImagesInFolderByChunk({ chunkSize: rawChunkSize, end, extraFields, folderId, forceRefetch, start, }: {
59
+ fetchImagesInFolderByChunk({ chunkSize: rawChunkSize, end, extraFields, folderId, forceRefetch, format, start, transformations, }: {
48
60
  chunkSize?: number;
49
61
  end?: number;
50
62
  extraFields?: string[];
51
63
  folderId: string;
52
64
  forceRefetch?: boolean;
65
+ format?: string;
53
66
  start?: number;
67
+ transformations?: Transformation[];
54
68
  }): AsyncGenerator<ExtendedGalleryItem[], void, unknown>;
55
69
  hostConnected?(): void;
56
70
  hostDisconnected?(): void;
@@ -2,12 +2,14 @@ export declare enum ClickAction {
2
2
  DoNothing = "do-nothing",
3
3
  DownloadAsset = "download-asset",
4
4
  ExpandAssetInFullScreen = "expand-asset-in-full-screen",
5
+ OpenAssetInLibrary = "open-asset-in-library",
5
6
  OpenAssetOverview = "open-asset-overview",
6
7
  OpenLink = "open-link",
7
8
  OpenPage = "open-page",
8
9
  OpenSpace = "open-space",
9
10
  ShareAsset = "share-asset",
10
- ShowAssetInLibrary = "show-asset-in-library"
11
+ ShowAssetInLibrary = "show-asset-in-library",
12
+ Zoom = "zoom"
11
13
  }
12
14
  export type AssetFormat = {
13
15
  _3DFormats?: string[];
@@ -0,0 +1,11 @@
1
+ export declare enum AssetVersion {
2
+ Current = "current",
3
+ Latest = "latest"
4
+ }
5
+ export interface AssetFormatValue {
6
+ assetSrc?: string;
7
+ assetVersion: AssetVersion | string;
8
+ format: string;
9
+ formatLabel?: string;
10
+ versionLabel?: string;
11
+ }
@@ -16,3 +16,40 @@ export declare enum FillerMode {
16
16
  Fit = "fit",
17
17
  Full = "full"
18
18
  }
19
+ /** Pixel position of a single placed bento item (absolute coordinates). */
20
+ export interface BentoItemPosition {
21
+ /** 0-based exclusive column index where the item ends (used for data-column attribute). */
22
+ columnEnd: number;
23
+ /** 0-based column index where the item starts (used for data-column attribute). */
24
+ columnStart: number;
25
+ height: number;
26
+ left: number;
27
+ /** 0-based row index where the item starts (used for maxRows filtering and data-row attribute). */
28
+ rowStart: number;
29
+ top: number;
30
+ width: number;
31
+ }
32
+ /** Parameters passed to BentoLayout.compute(). */
33
+ export interface BentoLayoutParams {
34
+ columnGap: number;
35
+ columns: number;
36
+ containerWidth: number;
37
+ itemHeight: number;
38
+ /**
39
+ * Maximum number of rows to display. When finite, scroll height is capped at
40
+ * maxRows × (itemHeight + rowGap) − rowGap so hidden rows don't inflate the container.
41
+ */
42
+ maxRows?: number;
43
+ rowGap: number;
44
+ /**
45
+ * Total number of items including those not yet loaded.
46
+ * When provided and greater than items.length, the scroll height is extended
47
+ * to approximate the full dataset size (unloaded items assumed to be 1×1).
48
+ */
49
+ totalItems?: number;
50
+ }
51
+ /** Inclusive item index range returned by BentoLayout.getActiveRange(). */
52
+ export interface BentoActiveRange {
53
+ first: number;
54
+ last: number;
55
+ }