@salesforce/ui-design-mode 10.9.1 → 10.10.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 (35) hide show
  1. package/dist/authoring/core/DesignPropertyPanelRoot.d.cts +31 -1
  2. package/dist/authoring/core/DesignPropertyPanelRoot.d.ts +31 -1
  3. package/dist/authoring/core/DesignPropertyPanelRoot.d.ts.map +1 -1
  4. package/dist/authoring/core/editors/ImageEditor.d.cts +110 -0
  5. package/dist/authoring/core/editors/ImageEditor.d.ts +110 -0
  6. package/dist/authoring/core/editors/ImageEditor.d.ts.map +1 -0
  7. package/dist/authoring/core/history/historyService.d.cts +3 -1
  8. package/dist/authoring/core/history/historyService.d.ts +3 -1
  9. package/dist/authoring/core/history/historyService.d.ts.map +1 -1
  10. package/dist/authoring/core/history/iframeCommandExecutor.d.cts +1 -1
  11. package/dist/authoring/core/history/iframeCommandExecutor.d.ts +1 -1
  12. package/dist/authoring/core/history/iframeCommandExecutor.d.ts.map +1 -1
  13. package/dist/authoring/core/labels/labels.d.cts +106 -0
  14. package/dist/authoring/core/labels/labels.d.ts +106 -0
  15. package/dist/authoring/core/labels/labels.d.ts.map +1 -1
  16. package/dist/authoring/host/index.cjs +111 -0
  17. package/dist/authoring/host/index.d.cts +86 -0
  18. package/dist/authoring/host/index.d.ts +86 -0
  19. package/dist/authoring/host/index.d.ts.map +1 -0
  20. package/dist/authoring/host/index.js +111 -0
  21. package/dist/authoring/react/index.d.cts +2 -1
  22. package/dist/authoring/react/index.d.ts +2 -1
  23. package/dist/authoring/react/index.d.ts.map +1 -1
  24. package/dist/authoring/react/index.js +4 -4
  25. package/dist/authoring/react/styles.css +1 -1
  26. package/dist/authoring/web-component/index.d.cts +8 -1
  27. package/dist/authoring/web-component/index.d.ts +8 -1
  28. package/dist/authoring/web-component/index.d.ts.map +1 -1
  29. package/dist/authoring/web-component/index.js +430 -21
  30. package/dist/protocol/messageTypes.d.cts +13 -1
  31. package/dist/protocol/messageTypes.d.ts +13 -1
  32. package/dist/protocol/messageTypes.d.ts.map +1 -1
  33. package/dist/runtime/design-mode-interactions.js +4 -0
  34. package/dist/runtime/interactions/interactionsController.d.ts.map +1 -1
  35. package/package.json +12 -1
@@ -1,9 +1,10 @@
1
1
  import { default as React } from 'react';
2
2
  import { ComponentData, ComponentStyleValue, SourceLocation } from '../../protocol.cjs';
3
+ import { CmsSpace, CmsImage, CmsFolderItemsResult, CmsContentDetailResult, CmsThumbnailResult, ImageImportResult, LocalFilePreview } from './editors/ImageEditor.cjs';
3
4
  import { ChangeContext } from './history/historyService.cjs';
4
5
  import { PanelLabels } from './labels/labels.cjs';
5
6
  /** Selected-component subset the panel renders. Mirrors the protocol payload. */
6
- export type DesignPanelComponent = Pick<ComponentData, "name" | "tagName" | "debugSource" | "hasNonEditableText">;
7
+ export type DesignPanelComponent = Pick<ComponentData, "name" | "tagName" | "debugSource" | "hasNonEditableText" | "media">;
7
8
  /** Per-property inline + computed style values pushed from the host. */
8
9
  export type StylesEntryMap = Record<string, ComponentStyleValue>;
9
10
  /** The selected element's source context, sent to the host's AI chat as context info. */
@@ -33,6 +34,12 @@ export interface DesignPropertyPanelProps {
33
34
  onAddToChatContext?: (context: SelectedComponentContext) => void;
34
35
  /** User clicked the selected component's source-file link. */
35
36
  onOpenSourceFile?: (payload: OpenSourceFilePayload) => void;
37
+ /**
38
+ * Apply a media-element change (e.g. `<img src>`/`alt`/`width`/`height`) to the
39
+ * surface. The host posts a `media-change` to the preview iframe. Present only
40
+ * when the selected component is a media element (`component.media`).
41
+ */
42
+ onMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void;
36
43
  /**
37
44
  * Whether to render the panel's "add selected element to chat as context"
38
45
  * button. Defaults to `true`. A surface with no AI-chat integration sets this
@@ -54,6 +61,29 @@ export interface DesignPropertyPanelProps {
54
61
  * `core/labels/labels.ts`.
55
62
  */
56
63
  labels?: PanelLabels;
64
+ /** CMS image-source host bindings + latest data, forwarded to the ImageEditor. */
65
+ imageSource?: ImageSourceBindings;
66
+ }
67
+ /**
68
+ * Host bindings for the ImageEditor's CMS and local-file acquisition. Grouped
69
+ * into one optional prop so a surface opts into image acquisition wholesale; the
70
+ * panel forwards each field straight to the `ImageEditor`. See the matching
71
+ * props on `ImageEditorProps`.
72
+ */
73
+ export interface ImageSourceBindings {
74
+ cmsSpaces?: CmsSpace[];
75
+ cmsSpacesLoading?: boolean;
76
+ onFetchCmsSpaces?: () => void;
77
+ cmsFolderItemsResult?: CmsFolderItemsResult;
78
+ onFetchCmsFolderItems?: (folderId: string, page: number, pageSize: number) => void;
79
+ cmsContentDetail?: CmsContentDetailResult;
80
+ onFetchCmsContentDetail?: (contentKey: string) => void;
81
+ cmsThumbnailResult?: CmsThumbnailResult;
82
+ onFetchCmsThumbnail?: (contentKey: string, url: string, mimeType: string) => void;
83
+ onImportCmsImage?: (img: CmsImage) => void;
84
+ cmsImportResult?: ImageImportResult;
85
+ onPickLocalFile?: () => void;
86
+ localPreview?: LocalFilePreview;
57
87
  }
58
88
  /** Imperative handle exposed via ref for toolbar-driven history control. */
59
89
  export interface DesignPropertyPanelHandle {
@@ -1,9 +1,10 @@
1
1
  import { default as React } from 'react';
2
2
  import { ComponentData, ComponentStyleValue, SourceLocation } from '../../protocol.js';
3
+ import { CmsSpace, CmsImage, CmsFolderItemsResult, CmsContentDetailResult, CmsThumbnailResult, ImageImportResult, LocalFilePreview } from './editors/ImageEditor.js';
3
4
  import { ChangeContext } from './history/historyService.js';
4
5
  import { PanelLabels } from './labels/labels.js';
5
6
  /** Selected-component subset the panel renders. Mirrors the protocol payload. */
6
- export type DesignPanelComponent = Pick<ComponentData, "name" | "tagName" | "debugSource" | "hasNonEditableText">;
7
+ export type DesignPanelComponent = Pick<ComponentData, "name" | "tagName" | "debugSource" | "hasNonEditableText" | "media">;
7
8
  /** Per-property inline + computed style values pushed from the host. */
8
9
  export type StylesEntryMap = Record<string, ComponentStyleValue>;
9
10
  /** The selected element's source context, sent to the host's AI chat as context info. */
@@ -33,6 +34,12 @@ export interface DesignPropertyPanelProps {
33
34
  onAddToChatContext?: (context: SelectedComponentContext) => void;
34
35
  /** User clicked the selected component's source-file link. */
35
36
  onOpenSourceFile?: (payload: OpenSourceFilePayload) => void;
37
+ /**
38
+ * Apply a media-element change (e.g. `<img src>`/`alt`/`width`/`height`) to the
39
+ * surface. The host posts a `media-change` to the preview iframe. Present only
40
+ * when the selected component is a media element (`component.media`).
41
+ */
42
+ onMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void;
36
43
  /**
37
44
  * Whether to render the panel's "add selected element to chat as context"
38
45
  * button. Defaults to `true`. A surface with no AI-chat integration sets this
@@ -54,6 +61,29 @@ export interface DesignPropertyPanelProps {
54
61
  * `core/labels/labels.ts`.
55
62
  */
56
63
  labels?: PanelLabels;
64
+ /** CMS image-source host bindings + latest data, forwarded to the ImageEditor. */
65
+ imageSource?: ImageSourceBindings;
66
+ }
67
+ /**
68
+ * Host bindings for the ImageEditor's CMS and local-file acquisition. Grouped
69
+ * into one optional prop so a surface opts into image acquisition wholesale; the
70
+ * panel forwards each field straight to the `ImageEditor`. See the matching
71
+ * props on `ImageEditorProps`.
72
+ */
73
+ export interface ImageSourceBindings {
74
+ cmsSpaces?: CmsSpace[];
75
+ cmsSpacesLoading?: boolean;
76
+ onFetchCmsSpaces?: () => void;
77
+ cmsFolderItemsResult?: CmsFolderItemsResult;
78
+ onFetchCmsFolderItems?: (folderId: string, page: number, pageSize: number) => void;
79
+ cmsContentDetail?: CmsContentDetailResult;
80
+ onFetchCmsContentDetail?: (contentKey: string) => void;
81
+ cmsThumbnailResult?: CmsThumbnailResult;
82
+ onFetchCmsThumbnail?: (contentKey: string, url: string, mimeType: string) => void;
83
+ onImportCmsImage?: (img: CmsImage) => void;
84
+ cmsImportResult?: ImageImportResult;
85
+ onPickLocalFile?: () => void;
86
+ localPreview?: LocalFilePreview;
57
87
  }
58
88
  /** Imperative handle exposed via ref for toolbar-driven history control. */
59
89
  export interface DesignPropertyPanelHandle {
@@ -1 +1 @@
1
- {"version":3,"file":"DesignPropertyPanelRoot.d.ts","sourceRoot":"","sources":["../../../src/authoring/core/DesignPropertyPanelRoot.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAazF,OAAO,EAEN,KAAK,aAAa,EAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkElE,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,aAAa,EACb,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,oBAAoB,CACzD,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAEjE,yFAAyF;AACzF,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAErD,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,qFAAqF;AACrF,MAAM,WAAW,wBAAwB;IACxC,4DAA4D;IAC5D,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,iEAAiE;IACjE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,iFAAiF;IACjF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1F,+EAA+E;IAC/E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACvE,sCAAsC;IACtC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/E,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACjE,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACzC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,YAAY,IAAI,IAAI,CAAC;IACrB,eAAe,IAAI,OAAO,EAAE,CAAC;IAC7B,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACvF,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;CACnB;AA4XD,eAAO,MAAM,mBAAmB,4GA8N9B,CAAC;AAEH;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,KAAK,EAAE,wBAAwB,EAC/B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,QAK1C"}
1
+ {"version":3,"file":"DesignPropertyPanelRoot.d.ts","sourceRoot":"","sources":["../../../src/authoring/core/DesignPropertyPanelRoot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { PanelLabels } from '../labels/labels.cjs';
2
+ /** Localized strings for the ImageEditor (the `editors.image` slice of `PanelLabels`). */
3
+ type ImageLabels = PanelLabels["editors"]["image"];
4
+ export interface CmsSpace {
5
+ id: string;
6
+ apiName: string;
7
+ name: string;
8
+ rootFolderId: string;
9
+ }
10
+ export interface CmsFolderItem {
11
+ contentKey: string;
12
+ title: string;
13
+ mimeType: string;
14
+ }
15
+ export interface CmsImage {
16
+ id: string;
17
+ title: string;
18
+ url: string;
19
+ thumbnailUrl: string;
20
+ altText?: string;
21
+ contentType?: string;
22
+ }
23
+ /** Editable `<img>` attributes other than `src`, mirroring what the iframe honors. */
24
+ export interface ImageAttributes {
25
+ alt: string;
26
+ width: string;
27
+ height: string;
28
+ }
29
+ /**
30
+ * A page of CMS folder items pushed from the host in response to
31
+ * {@link ImageEditorProps.onFetchCmsFolderItems}. The picker replaces its grid
32
+ * when `page === 0` and appends for later pages, mirroring infinite scroll.
33
+ */
34
+ export interface CmsFolderItemsResult {
35
+ items: CmsFolderItem[];
36
+ hasMore: boolean;
37
+ page: number;
38
+ error?: string;
39
+ }
40
+ /** A single content's resolved binary URL + metadata, pushed from the host. */
41
+ export interface CmsContentDetailResult {
42
+ contentKey: string;
43
+ url: string;
44
+ mimeType: string;
45
+ title?: string;
46
+ error?: string;
47
+ }
48
+ /** An authenticated, base64-encoded thumbnail for a content key, pushed from the host. */
49
+ export interface CmsThumbnailResult {
50
+ imageId: string;
51
+ thumbnailUrl: string;
52
+ }
53
+ /** Preview metadata for a locally-picked file, pushed from the host. */
54
+ export interface LocalFilePreview {
55
+ webviewUri: string;
56
+ fileName: string;
57
+ devUrl?: string;
58
+ }
59
+ /** Outcome of importing a CMS image (download + save to the app's assets). */
60
+ export interface ImageImportResult {
61
+ success: boolean;
62
+ devUrl?: string;
63
+ }
64
+ export interface ImageEditorProps {
65
+ label: string;
66
+ value: string;
67
+ onChange: (value: string) => void;
68
+ id?: string;
69
+ /** Current alt/width/height values; shown as editable fields below the source tabs. */
70
+ attributes?: ImageAttributes;
71
+ /** Apply a non-`src` attribute change (alt/width/height). */
72
+ onAttributeChange?: (attribute: keyof ImageAttributes, value: string) => void;
73
+ /** Available CMS workspaces, pushed from the host after {@link onFetchCmsSpaces}. */
74
+ cmsSpaces?: CmsSpace[];
75
+ /** Whether a workspace fetch is in flight. */
76
+ cmsSpacesLoading?: boolean;
77
+ /** Request the org's CMS workspaces. */
78
+ onFetchCmsSpaces?: () => void;
79
+ /** Latest page of folder items, pushed from the host. */
80
+ cmsFolderItemsResult?: CmsFolderItemsResult;
81
+ /** Request a page of image items within a folder. */
82
+ onFetchCmsFolderItems?: (folderId: string, page: number, pageSize: number) => void;
83
+ /** Latest resolved content detail, pushed from the host. */
84
+ cmsContentDetail?: CmsContentDetailResult;
85
+ /** Request a single content's binary URL + metadata. */
86
+ onFetchCmsContentDetail?: (contentKey: string) => void;
87
+ /** Latest downloaded thumbnail, pushed from the host. */
88
+ cmsThumbnailResult?: CmsThumbnailResult;
89
+ /** Request an authenticated thumbnail for a content key. */
90
+ onFetchCmsThumbnail?: (contentKey: string, url: string, mimeType: string) => void;
91
+ /** Import (download + save) the chosen CMS image; the result arrives via {@link cmsImportResult}. */
92
+ onImportCmsImage?: (img: CmsImage) => void;
93
+ /** Outcome of the most recent import, pushed from the host. */
94
+ cmsImportResult?: ImageImportResult;
95
+ /** Open the host's native file picker; the result arrives via {@link localPreview}. */
96
+ onPickLocalFile?: () => void;
97
+ /** Preview of the most recently picked local file, pushed from the host. */
98
+ localPreview?: LocalFilePreview;
99
+ /** Localized strings; optional/partial, merged over {@link DEFAULT_IMAGE_LABELS}. */
100
+ imageLabels?: ImageLabels;
101
+ }
102
+ /**
103
+ * Image-source editor: pick an `<img>` source via CMS browse, local file, or a
104
+ * direct URL, plus edit alt/width/height. All host I/O (CMS fetches, local file
105
+ * picking, importing) is supplied via optional callback + data props so the
106
+ * shared panel stays host-agnostic; absent callbacks make that action inert.
107
+ */
108
+ export declare function ImageEditor({ label, value, onChange, id, attributes, onAttributeChange, cmsSpaces, cmsSpacesLoading, onFetchCmsSpaces, cmsFolderItemsResult, onFetchCmsFolderItems, cmsContentDetail, onFetchCmsContentDetail, cmsThumbnailResult, onFetchCmsThumbnail, onImportCmsImage, cmsImportResult, onPickLocalFile, localPreview, imageLabels, }: ImageEditorProps): import("react/jsx-runtime").JSX.Element;
109
+ export {};
110
+ //# sourceMappingURL=ImageEditor.d.ts.map
@@ -0,0 +1,110 @@
1
+ import { PanelLabels } from '../labels/labels.js';
2
+ /** Localized strings for the ImageEditor (the `editors.image` slice of `PanelLabels`). */
3
+ type ImageLabels = PanelLabels["editors"]["image"];
4
+ export interface CmsSpace {
5
+ id: string;
6
+ apiName: string;
7
+ name: string;
8
+ rootFolderId: string;
9
+ }
10
+ export interface CmsFolderItem {
11
+ contentKey: string;
12
+ title: string;
13
+ mimeType: string;
14
+ }
15
+ export interface CmsImage {
16
+ id: string;
17
+ title: string;
18
+ url: string;
19
+ thumbnailUrl: string;
20
+ altText?: string;
21
+ contentType?: string;
22
+ }
23
+ /** Editable `<img>` attributes other than `src`, mirroring what the iframe honors. */
24
+ export interface ImageAttributes {
25
+ alt: string;
26
+ width: string;
27
+ height: string;
28
+ }
29
+ /**
30
+ * A page of CMS folder items pushed from the host in response to
31
+ * {@link ImageEditorProps.onFetchCmsFolderItems}. The picker replaces its grid
32
+ * when `page === 0` and appends for later pages, mirroring infinite scroll.
33
+ */
34
+ export interface CmsFolderItemsResult {
35
+ items: CmsFolderItem[];
36
+ hasMore: boolean;
37
+ page: number;
38
+ error?: string;
39
+ }
40
+ /** A single content's resolved binary URL + metadata, pushed from the host. */
41
+ export interface CmsContentDetailResult {
42
+ contentKey: string;
43
+ url: string;
44
+ mimeType: string;
45
+ title?: string;
46
+ error?: string;
47
+ }
48
+ /** An authenticated, base64-encoded thumbnail for a content key, pushed from the host. */
49
+ export interface CmsThumbnailResult {
50
+ imageId: string;
51
+ thumbnailUrl: string;
52
+ }
53
+ /** Preview metadata for a locally-picked file, pushed from the host. */
54
+ export interface LocalFilePreview {
55
+ webviewUri: string;
56
+ fileName: string;
57
+ devUrl?: string;
58
+ }
59
+ /** Outcome of importing a CMS image (download + save to the app's assets). */
60
+ export interface ImageImportResult {
61
+ success: boolean;
62
+ devUrl?: string;
63
+ }
64
+ export interface ImageEditorProps {
65
+ label: string;
66
+ value: string;
67
+ onChange: (value: string) => void;
68
+ id?: string;
69
+ /** Current alt/width/height values; shown as editable fields below the source tabs. */
70
+ attributes?: ImageAttributes;
71
+ /** Apply a non-`src` attribute change (alt/width/height). */
72
+ onAttributeChange?: (attribute: keyof ImageAttributes, value: string) => void;
73
+ /** Available CMS workspaces, pushed from the host after {@link onFetchCmsSpaces}. */
74
+ cmsSpaces?: CmsSpace[];
75
+ /** Whether a workspace fetch is in flight. */
76
+ cmsSpacesLoading?: boolean;
77
+ /** Request the org's CMS workspaces. */
78
+ onFetchCmsSpaces?: () => void;
79
+ /** Latest page of folder items, pushed from the host. */
80
+ cmsFolderItemsResult?: CmsFolderItemsResult;
81
+ /** Request a page of image items within a folder. */
82
+ onFetchCmsFolderItems?: (folderId: string, page: number, pageSize: number) => void;
83
+ /** Latest resolved content detail, pushed from the host. */
84
+ cmsContentDetail?: CmsContentDetailResult;
85
+ /** Request a single content's binary URL + metadata. */
86
+ onFetchCmsContentDetail?: (contentKey: string) => void;
87
+ /** Latest downloaded thumbnail, pushed from the host. */
88
+ cmsThumbnailResult?: CmsThumbnailResult;
89
+ /** Request an authenticated thumbnail for a content key. */
90
+ onFetchCmsThumbnail?: (contentKey: string, url: string, mimeType: string) => void;
91
+ /** Import (download + save) the chosen CMS image; the result arrives via {@link cmsImportResult}. */
92
+ onImportCmsImage?: (img: CmsImage) => void;
93
+ /** Outcome of the most recent import, pushed from the host. */
94
+ cmsImportResult?: ImageImportResult;
95
+ /** Open the host's native file picker; the result arrives via {@link localPreview}. */
96
+ onPickLocalFile?: () => void;
97
+ /** Preview of the most recently picked local file, pushed from the host. */
98
+ localPreview?: LocalFilePreview;
99
+ /** Localized strings; optional/partial, merged over {@link DEFAULT_IMAGE_LABELS}. */
100
+ imageLabels?: ImageLabels;
101
+ }
102
+ /**
103
+ * Image-source editor: pick an `<img>` source via CMS browse, local file, or a
104
+ * direct URL, plus edit alt/width/height. All host I/O (CMS fetches, local file
105
+ * picking, importing) is supplied via optional callback + data props so the
106
+ * shared panel stays host-agnostic; absent callbacks make that action inert.
107
+ */
108
+ export declare function ImageEditor({ label, value, onChange, id, attributes, onAttributeChange, cmsSpaces, cmsSpacesLoading, onFetchCmsSpaces, cmsFolderItemsResult, onFetchCmsFolderItems, cmsContentDetail, onFetchCmsContentDetail, cmsThumbnailResult, onFetchCmsThumbnail, onImportCmsImage, cmsImportResult, onPickLocalFile, localPreview, imageLabels, }: ImageEditorProps): import("react/jsx-runtime").JSX.Element;
109
+ export {};
110
+ //# sourceMappingURL=ImageEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageEditor.d.ts","sourceRoot":"","sources":["../../../../src/authoring/core/editors/ImageEditor.tsx"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export interface ChangeContext {
19
19
  export interface HistoryService {
20
20
  recordStyleChange(property: string, oldValue: string, newValue: string, context?: ChangeContext): void;
21
21
  recordTextChange(originalText: string, newText: string, context?: ChangeContext): void;
22
+ /** Record an `<img>` attribute change (src/alt/width/height) into the history stack. */
23
+ recordMediaChange(tag: string, attribute: string, oldValue: string, newValue: string, context?: ChangeContext): void;
22
24
  undo(): void;
23
25
  redo(): void;
24
26
  canUndo(): boolean;
@@ -33,5 +35,5 @@ export interface HistoryService {
33
35
  * @param sendTextChange - Send (text, sourceLocation?) to the iframe
34
36
  * @returns Service with recordStyleChange, recordTextChange, undo(), redo(), subscribe(listener)
35
37
  */
36
- export declare function createHistoryService(sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void): HistoryService;
38
+ export declare function createHistoryService(sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void, sendMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void): HistoryService;
37
39
  //# sourceMappingURL=historyService.d.ts.map
@@ -19,6 +19,8 @@ export interface ChangeContext {
19
19
  export interface HistoryService {
20
20
  recordStyleChange(property: string, oldValue: string, newValue: string, context?: ChangeContext): void;
21
21
  recordTextChange(originalText: string, newText: string, context?: ChangeContext): void;
22
+ /** Record an `<img>` attribute change (src/alt/width/height) into the history stack. */
23
+ recordMediaChange(tag: string, attribute: string, oldValue: string, newValue: string, context?: ChangeContext): void;
22
24
  undo(): void;
23
25
  redo(): void;
24
26
  canUndo(): boolean;
@@ -33,5 +35,5 @@ export interface HistoryService {
33
35
  * @param sendTextChange - Send (text, sourceLocation?) to the iframe
34
36
  * @returns Service with recordStyleChange, recordTextChange, undo(), redo(), subscribe(listener)
35
37
  */
36
- export declare function createHistoryService(sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void): HistoryService;
38
+ export declare function createHistoryService(sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void, sendMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void): HistoryService;
37
39
  //# sourceMappingURL=historyService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"historyService.d.ts","sourceRoot":"","sources":["../../../../src/authoring/core/history/historyService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;GAGG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,iBAAiB,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACrB,IAAI,CAAC;IACR,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACvF,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,eAAe,IAAI,OAAO,EAAE,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EAC3F,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,GACrE,cAAc,CAgChB"}
1
+ {"version":3,"file":"historyService.d.ts","sourceRoot":"","sources":["../../../../src/authoring/core/history/historyService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;GAGG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,iBAAiB,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACrB,IAAI,CAAC;IACR,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACvF,wFAAwF;IACxF,iBAAiB,CAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACrB,IAAI,CAAC;IACR,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,eAAe,IAAI,OAAO,EAAE,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EAC3F,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EACvE,eAAe,CAAC,EAAE,CACjB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC9C,cAAc,CAAC,EAAE,cAAc,KAC3B,IAAI,GACP,cAAc,CAiDhB"}
@@ -6,5 +6,5 @@ import { SourceLocation } from '../../../protocol.cjs';
6
6
  * @param sendTextChange - Called to apply a text change in the iframe
7
7
  * @returns Executor implementing CommandExecutor interface
8
8
  */
9
- export declare const createIframeCommandExecutor: (sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void) => CommandExecutor;
9
+ export declare const createIframeCommandExecutor: (sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void, sendMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void) => CommandExecutor;
10
10
  //# sourceMappingURL=iframeCommandExecutor.d.ts.map
@@ -6,5 +6,5 @@ import { SourceLocation } from '../../../protocol.js';
6
6
  * @param sendTextChange - Called to apply a text change in the iframe
7
7
  * @returns Executor implementing CommandExecutor interface
8
8
  */
9
- export declare const createIframeCommandExecutor: (sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void) => CommandExecutor;
9
+ export declare const createIframeCommandExecutor: (sendStyleChange: (property: string, value: string, sourceLocation?: SourceLocation) => void, sendTextChange: (text: string, sourceLocation?: SourceLocation) => void, sendMediaChange?: (tag: string, attributes: Record<string, string | undefined>, sourceLocation?: SourceLocation) => void) => CommandExecutor;
10
10
  //# sourceMappingURL=iframeCommandExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iframeCommandExecutor.d.ts","sourceRoot":"","sources":["../../../../src/authoring/core/history/iframeCommandExecutor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA0CxD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACvC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EAC3F,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,KACrE,eA6BF,CAAC"}
1
+ {"version":3,"file":"iframeCommandExecutor.d.ts","sourceRoot":"","sources":["../../../../src/authoring/core/history/iframeCommandExecutor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4DxD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACvC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EAC3F,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,EACvE,kBAAkB,CACjB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC9C,cAAc,CAAC,EAAE,cAAc,KAC3B,IAAI,KACP,eAsCF,CAAC"}
@@ -53,6 +53,7 @@ export interface PanelLabels {
53
53
  ariaElementStyling: string;
54
54
  };
55
55
  sections: {
56
+ imageSource: string;
56
57
  background: string;
57
58
  spacing: string;
58
59
  border: string;
@@ -60,6 +61,7 @@ export interface PanelLabels {
60
61
  elementDimensions: string;
61
62
  };
62
63
  instances: {
64
+ imageSource: string;
63
65
  backgroundColor: string;
64
66
  padding: string;
65
67
  margin: string;
@@ -86,6 +88,40 @@ export interface PanelLabels {
86
88
  overflow: string;
87
89
  };
88
90
  editors: {
91
+ image: {
92
+ tabCms: string;
93
+ tabLocal: string;
94
+ tabUrl: string;
95
+ ariaTablist: string;
96
+ clearImage: string;
97
+ chooseFile: string;
98
+ ariaChooseFile: string;
99
+ useThisImage: string;
100
+ ariaImageUrl: string;
101
+ urlPlaceholder: string;
102
+ previewAlt: string;
103
+ altText: string;
104
+ altPlaceholder: string;
105
+ width: string;
106
+ height: string;
107
+ autoPlaceholder: string;
108
+ workspace: string;
109
+ selectWorkspace: string;
110
+ selectImage: string;
111
+ loadingWorkspaces: string;
112
+ noWorkspaces: string;
113
+ loadingImages: string;
114
+ noImages: string;
115
+ loadingMore: string;
116
+ untitled: string;
117
+ downloadingImage: string;
118
+ downloadFailed: string;
119
+ closePicker: string;
120
+ cancel: string;
121
+ done: string;
122
+ pickerTitle: string;
123
+ pickerError: string;
124
+ };
89
125
  boxDimension: {
90
126
  sides: {
91
127
  top: string;
@@ -239,6 +275,8 @@ export declare const REQUIRED_LABEL_KEYS: readonly [{
239
275
  readonly path: "general.ariaSelectedComponent";
240
276
  }, {
241
277
  readonly path: "general.ariaElementStyling";
278
+ }, {
279
+ readonly path: "sections.imageSource";
242
280
  }, {
243
281
  readonly path: "sections.background";
244
282
  }, {
@@ -249,6 +287,8 @@ export declare const REQUIRED_LABEL_KEYS: readonly [{
249
287
  readonly path: "sections.typography";
250
288
  }, {
251
289
  readonly path: "sections.elementDimensions";
290
+ }, {
291
+ readonly path: "instances.imageSource";
252
292
  }, {
253
293
  readonly path: "instances.backgroundColor";
254
294
  }, {
@@ -297,6 +337,72 @@ export declare const REQUIRED_LABEL_KEYS: readonly [{
297
337
  readonly path: "instances.maxHeight";
298
338
  }, {
299
339
  readonly path: "instances.overflow";
340
+ }, {
341
+ readonly path: "editors.image.tabCms";
342
+ }, {
343
+ readonly path: "editors.image.tabLocal";
344
+ }, {
345
+ readonly path: "editors.image.tabUrl";
346
+ }, {
347
+ readonly path: "editors.image.ariaTablist";
348
+ }, {
349
+ readonly path: "editors.image.clearImage";
350
+ }, {
351
+ readonly path: "editors.image.chooseFile";
352
+ }, {
353
+ readonly path: "editors.image.ariaChooseFile";
354
+ }, {
355
+ readonly path: "editors.image.useThisImage";
356
+ }, {
357
+ readonly path: "editors.image.ariaImageUrl";
358
+ }, {
359
+ readonly path: "editors.image.urlPlaceholder";
360
+ }, {
361
+ readonly path: "editors.image.previewAlt";
362
+ }, {
363
+ readonly path: "editors.image.altText";
364
+ }, {
365
+ readonly path: "editors.image.altPlaceholder";
366
+ }, {
367
+ readonly path: "editors.image.width";
368
+ }, {
369
+ readonly path: "editors.image.height";
370
+ }, {
371
+ readonly path: "editors.image.autoPlaceholder";
372
+ }, {
373
+ readonly path: "editors.image.workspace";
374
+ }, {
375
+ readonly path: "editors.image.selectWorkspace";
376
+ }, {
377
+ readonly path: "editors.image.selectImage";
378
+ }, {
379
+ readonly path: "editors.image.loadingWorkspaces";
380
+ }, {
381
+ readonly path: "editors.image.noWorkspaces";
382
+ }, {
383
+ readonly path: "editors.image.loadingImages";
384
+ }, {
385
+ readonly path: "editors.image.noImages";
386
+ }, {
387
+ readonly path: "editors.image.loadingMore";
388
+ }, {
389
+ readonly path: "editors.image.untitled";
390
+ }, {
391
+ readonly path: "editors.image.downloadingImage";
392
+ }, {
393
+ readonly path: "editors.image.downloadFailed";
394
+ }, {
395
+ readonly path: "editors.image.closePicker";
396
+ }, {
397
+ readonly path: "editors.image.cancel";
398
+ }, {
399
+ readonly path: "editors.image.done";
400
+ }, {
401
+ readonly path: "editors.image.pickerTitle";
402
+ readonly placeholders: readonly [0];
403
+ }, {
404
+ readonly path: "editors.image.pickerError";
405
+ readonly placeholders: readonly [0];
300
406
  }, {
301
407
  readonly path: "editors.boxDimension.sides.top";
302
408
  }, {