unlayer-types 1.386.0 → 1.388.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 (2) hide show
  1. package/embed.d.ts +943 -98
  2. package/package.json +1 -1
package/embed.d.ts CHANGED
@@ -1391,8 +1391,10 @@ declare module "packages/editor/src/state/types/types" {
1391
1391
  import { z } from 'zod';
1392
1392
  import type { AICopilotDataType } from '@libs/ai/types/types';
1393
1393
  import { DisplayConditionZodSchema } from '@libs/schemas/common/schemas';
1394
- import { ContentValues } from '@libs/schemas/options/containers/contents';
1395
- import { State as Design } from '../reducer/design';
1394
+ import type { BodyValues } from '@libs/schemas/options/containers/bodies';
1395
+ import type { ColumnValues } from '@libs/schemas/options/containers/columns';
1396
+ import type { ContentValues } from '@libs/schemas/options/containers/contents';
1397
+ import type { RowValues } from '@libs/schemas/options/containers/rows';
1396
1398
  import { CollaborationThread } from "packages/editor/src/editor/components/editors/types";
1397
1399
  import { RootState } from "packages/editor/src/state/types/RootState";
1398
1400
  import { ThemeExtension, ThemeNamePlusLightDark } from "packages/editor/src/editor/themes/types";
@@ -1489,7 +1491,7 @@ declare module "packages/editor/src/state/types/types" {
1489
1491
  attrs?: {
1490
1492
  href?: string;
1491
1493
  target?: string;
1492
- onClick?: string | Function;
1494
+ onClick?: string | ((...args: any[]) => void);
1493
1495
  class?: string;
1494
1496
  download?: boolean;
1495
1497
  [key: string]: any;
@@ -1596,34 +1598,7 @@ declare module "packages/editor/src/state/types/types" {
1596
1598
  optimistic?: boolean;
1597
1599
  }
1598
1600
  export type ArrayItem<T> = T extends (infer I)[] ? I : T extends readonly (infer I)[] ? I : unknown;
1599
- export type BodyItem = {
1600
- id: string;
1601
- cells: number[];
1602
- columns: Array<{
1603
- id: string;
1604
- contents: Array<Design['contents']['0']>;
1605
- values: Record<string, any>;
1606
- }>;
1607
- values: {
1608
- sync?: {
1609
- id: string;
1610
- enabled?: boolean;
1611
- updatedAt?: string;
1612
- dirty?: boolean;
1613
- };
1614
- } & Record<string, any>;
1615
- };
1616
- export type JSONTemplate = {
1617
- counters: Record<string, number>;
1618
- body: {
1619
- id: string | undefined;
1620
- rows: BodyItem[];
1621
- headers: BodyItem[];
1622
- footers: BodyItem[];
1623
- values: {};
1624
- };
1625
- schemaVersion?: number;
1626
- };
1601
+ export type { DesignBody, DesignContentItem, DesignContentType, DesignColumn, DesignRow, JSONTemplate, } from '@libs/schemas/design/exported-types';
1627
1602
  export type { OptionGroup, OptionItem } from "packages/editor/src/engine/config/optionGroups";
1628
1603
  export type FontGroup = import("packages/editor/src/engine/config/optionGroups").OptionGroup<CustomFont>;
1629
1604
  export type FontItem = import("packages/editor/src/engine/config/optionGroups").OptionItem<CustomFont>;
@@ -1769,18 +1744,18 @@ declare module "packages/editor/src/state/types/types" {
1769
1744
  export type ExporterName = DisplayMode | 'ampWeb' | 'ampEmail' | 'classic';
1770
1745
  export type BodyContainerExporter = (innerHTML: string, bodyValues: Record<string, any>, // @deprecated use last param instead
1771
1746
  meta: {
1772
- bodyValues: RootState['design']['bodies'][string]['values'];
1747
+ bodyValues: BodyValues;
1773
1748
  type: string;
1774
1749
  variant: Variant;
1775
1750
  }) => string;
1776
1751
  export type BodyContainerExporters = Partial<Record<ExporterName, BodyContainerExporter>>;
1777
- export type RowContainerExporter = (innerHTML: string, rowValues: RootState['design']['rows'][string]['values'], // @deprecated use last param instead
1778
- bodyValues: RootState['design']['bodies'][string]['values'], // @deprecated use last param instead
1752
+ export type RowContainerExporter = (innerHTML: string, rowValues: RowValues, // @deprecated use last param instead
1753
+ bodyValues: BodyValues, // @deprecated use last param instead
1779
1754
  meta: {
1780
1755
  rowIndex: number;
1781
1756
  rowCells: number[];
1782
- rowValues: RootState['design']['rows'][string]['values'];
1783
- bodyValues: RootState['design']['bodies'][string]['values'];
1757
+ rowValues: RowValues;
1758
+ bodyValues: BodyValues;
1784
1759
  variant: Variant | undefined;
1785
1760
  language: string | undefined;
1786
1761
  collection: Collection;
@@ -1789,29 +1764,29 @@ declare module "packages/editor/src/state/types/types" {
1789
1764
  export type ColumnContainerExporter = (innerHTML: string, columnValues: Record<string, any>, // @deprecated use last param instead
1790
1765
  columnIndex: number, // @deprecated use last param instead
1791
1766
  rowCells: number[], // @deprecated use last param instead
1792
- bodyValues: RootState['design']['bodies'][string]['values'], // @deprecated use last param instead
1793
- rowValues: RootState['design']['rows'][string]['values'], // @deprecated use last param instead
1767
+ bodyValues: BodyValues, // @deprecated use last param instead
1768
+ rowValues: RowValues, // @deprecated use last param instead
1794
1769
  meta: {
1795
1770
  columnIndex: number;
1796
- columnValues: RootState['design']['columns'][string]['values'];
1771
+ columnValues: ColumnValues;
1797
1772
  rowIndex: number;
1798
1773
  rowCells: number[];
1799
- rowValues: RootState['design']['rows'][string]['values'];
1800
- bodyValues: RootState['design']['bodies'][string]['values'];
1774
+ rowValues: RowValues;
1775
+ bodyValues: BodyValues;
1801
1776
  variant: Variant;
1802
1777
  language: string;
1803
1778
  }) => string;
1804
1779
  export type ColumnContainerExporters = Partial<Record<ExporterName, ColumnContainerExporter>>;
1805
1780
  export type ContentContainerExporter = (innerHTML: string, contentValues: Record<string, any>, // @deprecated use last param instead
1806
- bodyValues: RootState['design']['bodies'][string]['values'], // @deprecated use last param instead
1781
+ bodyValues: BodyValues, // @deprecated use last param instead
1807
1782
  meta: {
1808
1783
  index: number;
1809
1784
  columnIndex: number;
1810
- columnValues: RootState['design']['columns'][string]['values'];
1785
+ columnValues: ColumnValues;
1811
1786
  rowIndex: number;
1812
1787
  rowCells: number[];
1813
- rowValues: RootState['design']['rows'][string]['values'];
1814
- bodyValues: RootState['design']['bodies'][string]['values'];
1788
+ rowValues: RowValues;
1789
+ bodyValues: BodyValues;
1815
1790
  variant: Variant | undefined;
1816
1791
  language: string | undefined;
1817
1792
  embeddedValues: Record<string, unknown>;
@@ -1825,17 +1800,17 @@ declare module "packages/editor/src/state/types/types" {
1825
1800
  export type ItemExporter<TValues extends Record<string, unknown>> = (renderValues: TValues, index: number, // @deprecated use last param instead
1826
1801
  columnIndex: number, // @deprecated use last param instead
1827
1802
  rowCells: number[], // @deprecated use last param instead
1828
- bodyValues: RootState['design']['bodies'][string]['values'], // @deprecated use last param instead
1829
- rowValues: RootState['design']['rows'][string]['values'], // @deprecated use last param instead
1803
+ bodyValues: BodyValues, // @deprecated use last param instead
1804
+ rowValues: RowValues, // @deprecated use last param instead
1830
1805
  embeddedValues: Record<string, unknown>, // @deprecated use last param instead
1831
1806
  meta: {
1832
1807
  index: number;
1833
1808
  columnIndex: number;
1834
- columnValues: RootState['design']['columns'][string]['values'];
1809
+ columnValues: ColumnValues;
1835
1810
  rowIndex: number;
1836
1811
  rowCells: number[];
1837
- rowValues: RootState['design']['rows'][string]['values'];
1838
- bodyValues: RootState['design']['bodies'][string]['values'];
1812
+ rowValues: RowValues;
1813
+ bodyValues: BodyValues;
1839
1814
  embeddedValues: Record<string, unknown>;
1840
1815
  mergeTagState: {
1841
1816
  mergeTagGroup: string;
@@ -2050,9 +2025,9 @@ declare module "packages/editor/src/engine/config/fonts" {
2050
2025
  export function getGroupedFonts(options?: FontOptions): FontGroup[] | null;
2051
2026
  }
2052
2027
  declare module "packages/editor/src/engine/config/safeHtml" {
2053
- import { Config } from 'dompurify';
2028
+ import { Config as DOMPurifyConfig } from 'dompurify';
2054
2029
  export interface SafeHtmlOptions {
2055
- domPurifyOptions?: Config;
2030
+ domPurifyOptions?: DOMPurifyConfig;
2056
2031
  }
2057
2032
  export function isSafeHtmlEnabled(): boolean;
2058
2033
  export function enableSafeHtml(): void;
@@ -2088,14 +2063,14 @@ declare module "packages/editor/src/engine/config/intl" {
2088
2063
  export function isRTL(locale: Locale): boolean;
2089
2064
  }
2090
2065
  declare module "packages/editor/src/embed/Config" {
2091
- import { ValidationResult } from 'amphtml-validator';
2092
- import { EditorSettings } from "packages/editor/src/engine/config/editorSettings";
2093
- import { Features } from "packages/editor/src/engine/config/features";
2094
- import { FontList } from "packages/editor/src/engine/config/fonts";
2095
- import { SafeHtmlOptions } from "packages/editor/src/engine/config/safeHtml";
2096
- import { TextDirection } from "packages/editor/src/engine/config/intl";
2097
- import { AppearanceConfig, Audit, DesignTags, DesignTagsConfig, Device, DisplayConditions, DisplayMode, Fonts, JSONTemplate, LinkTypes, LinkTypesSharedConfig, MergeTags, MergeTagsConfig, MergeTagsValues, SpecialLinks, Tabs, ToolsConfig, User } from "packages/editor/src/state/types/types";
2098
- import { DeepPartial } from "packages/editor/src/editor/components/editors/types";
2066
+ import type { ValidationResult } from 'amphtml-validator';
2067
+ import type { EditorSettings } from "packages/editor/src/engine/config/editorSettings";
2068
+ import type { Features } from "packages/editor/src/engine/config/features";
2069
+ import type { FontList } from "packages/editor/src/engine/config/fonts";
2070
+ import type { SafeHtmlOptions } from "packages/editor/src/engine/config/safeHtml";
2071
+ import type { TextDirection } from "packages/editor/src/engine/config/intl";
2072
+ import type { AppearanceConfig, Audit, DesignTags, DesignTagsConfig, Device, DisplayConditions, DisplayMode, Fonts, JSONTemplate, LinkTypes, LinkTypesSharedConfig, MergeTags, MergeTagsConfig, MergeTagsValues, SpecialLinks, Tabs, ToolsConfig, User } from "packages/editor/src/state/types/types";
2073
+ import type { DeepPartial } from "packages/editor/src/editor/components/editors/types";
2099
2074
  export interface Config {
2100
2075
  id?: string;
2101
2076
  className?: string;
@@ -2167,7 +2142,7 @@ declare module "packages/editor/src/embed/Config" {
2167
2142
  onlyHeader?: boolean;
2168
2143
  onlyFooter?: boolean;
2169
2144
  }
2170
- export interface ExportHtmlResult {
2145
+ export interface ExportHtmlResult<TDisplayMode extends DisplayMode | undefined = undefined> {
2171
2146
  html: string;
2172
2147
  amp: {
2173
2148
  enabled: boolean;
@@ -2176,18 +2151,18 @@ declare module "packages/editor/src/embed/Config" {
2176
2151
  validation: ValidationResult;
2177
2152
  };
2178
2153
  chunks: ExportChunksResult;
2179
- design: JSONTemplate;
2154
+ design: JSONTemplate<TDisplayMode>;
2180
2155
  }
2181
2156
  export interface ExportLiveHtmlOptions extends Omit<ExportHtmlOptions, 'live'> {
2182
2157
  }
2183
- export interface ExportLiveHtmlResult extends ExportHtmlResult {
2158
+ export interface ExportLiveHtmlResult<TDisplayMode extends DisplayMode | undefined = undefined> extends ExportHtmlResult<TDisplayMode> {
2184
2159
  }
2185
2160
  export interface ExportPlainTextOptions extends Omit<ExportHtmlOptions, 'cleanup' | 'minify'> {
2186
2161
  ignorePreheader?: boolean;
2187
2162
  }
2188
- export interface ExportPlainTextResult {
2163
+ export interface ExportPlainTextResult<TDisplayMode extends DisplayMode | undefined = undefined> {
2189
2164
  text: string;
2190
- design: JSONTemplate;
2165
+ design: JSONTemplate<TDisplayMode>;
2191
2166
  }
2192
2167
  export interface HtmlToPlainTextOptions {
2193
2168
  ignoreLinks?: boolean;
@@ -2206,8 +2181,8 @@ declare module "packages/editor/src/embed/Config" {
2206
2181
  ignorePreheader?: boolean;
2207
2182
  mergeTags?: Record<string, string>;
2208
2183
  }
2209
- export interface ExportFromApiResult {
2210
- design: JSONTemplate;
2184
+ export interface ExportFromApiResult<TDisplayMode extends DisplayMode | undefined = undefined> {
2185
+ design: JSONTemplate<TDisplayMode>;
2211
2186
  url: string | null;
2212
2187
  error?: string;
2213
2188
  }
@@ -2248,7 +2223,7 @@ declare module "packages/editor/src/embed/Frame" {
2248
2223
  messages: any[];
2249
2224
  callbackId: number;
2250
2225
  callbacks: {
2251
- [key: number]: Function | undefined;
2226
+ [key: number]: ((...args: any[]) => any) | undefined;
2252
2227
  };
2253
2228
  constructor(src: string);
2254
2229
  createIframe(src: string): HTMLIFrameElement;
@@ -2256,7 +2231,7 @@ declare module "packages/editor/src/embed/Frame" {
2256
2231
  appendTo(el: Element): void;
2257
2232
  onWindowMessage: (event: MessageEvent<any>) => void;
2258
2233
  postMessage(action: string, message: Message): void;
2259
- withMessage(action: string, message: Message | undefined, callback?: Function): void;
2234
+ withMessage(action: string, message: Message | undefined, callback?: (...args: any[]) => any): void;
2260
2235
  _preprocessMessageFunctions(message: Message): Message;
2261
2236
  preprocessMessage(message: Message): Message;
2262
2237
  scheduleMessage(message: Message): void;
@@ -2274,6 +2249,688 @@ declare module "packages/editor/src/embed/Frame" {
2274
2249
  }
2275
2250
  }
2276
2251
  }
2252
+ declare module "packages/editor/src/engine/config/exporters" {
2253
+ import { Container } from "packages/editor/src/state/types/types";
2254
+ export type ExporterFn = () => void;
2255
+ export function getCustomContainerExporter(name: Container): ExporterFn | undefined;
2256
+ export function registerCustomContainerExporter(name: Container, exporter: ExporterFn | null | undefined): void;
2257
+ export function unregisterCustomContainerExporter(name: Container): void;
2258
+ export function getCustomItemExporter(name: string): ExporterFn | undefined;
2259
+ export function registerCustomItemExporter(name: string, exporter: ExporterFn | null | undefined): void;
2260
+ export function unregisterCustomItemExporter(name: string): void;
2261
+ }
2262
+ declare module "packages/editor/src/engine/utils/auditUtils" {
2263
+ import { Audit, Validator } from "packages/editor/src/state/types/types";
2264
+ export function getPlainTextAndHtml(value: string): {
2265
+ html: string;
2266
+ text: string;
2267
+ };
2268
+ export function parseValidatorFunction(validatorFn: Validator | string): Validator;
2269
+ export function removeFunctionsFromAudit(rule: Audit): Audit;
2270
+ }
2271
+ declare module "packages/editor/src/editor/helpers/multiLanguage" {
2272
+ import { ValueMap } from '../../engine/config';
2273
+ export function getValuesForLanguage(values: ValueMap | undefined, language: string | undefined): any;
2274
+ }
2275
+ declare module "packages/editor/src/engine/config/env" {
2276
+ export const env: {
2277
+ API_V1_BASE_URL: string;
2278
+ API_V2_BASE_URL: string;
2279
+ API_V3_BASE_URL: string;
2280
+ EVENTS_API_BASE_URL: string;
2281
+ TOOLS_API_V1_BASE_URL: string;
2282
+ TOOLS_CDN_BASE_URL: string;
2283
+ CONSOLE_BASE_URL: string;
2284
+ };
2285
+ export function setIsTest(isTest: boolean): void;
2286
+ export function isTest(): boolean;
2287
+ global {
2288
+ interface Window {
2289
+ Cypress?: unknown;
2290
+ }
2291
+ }
2292
+ }
2293
+ declare module "packages/editor/src/engine/config/entitlements" {
2294
+ import { Entitlements } from '@libs/entitlements';
2295
+ export function setEntitlements(newEntitlements: Entitlements): void;
2296
+ export function getEntitlements(): Entitlements;
2297
+ }
2298
+ declare module "packages/editor/src/engine/config/amp" {
2299
+ export function enableAMP(): void;
2300
+ export function isAMP(): boolean;
2301
+ }
2302
+ declare module "packages/editor/src/editor/helpers/sortArrayByPosition" {
2303
+ export function sortArrayByPosition<T extends {
2304
+ position?: number;
2305
+ }>(arr: T[]): T[];
2306
+ }
2307
+ declare module "packages/editor/src/engine/config/tools" {
2308
+ import Mustache from 'mustache';
2309
+ import { Entitlements } from '@libs/entitlements';
2310
+ import type { PropertyEditorJSONSchemas, PropertyEditorZodSchemas } from '@libs/schemas/types/property_editor';
2311
+ import type { OptionConfig } from '@libs/schemas/types/options';
2312
+ import type { Option } from '@libs/schemas/types/options';
2313
+ import { DisplayMode, DesignTags, Collection, Location, Device, Variant, DesignMode, Validator, DisplayConditions, Container, ItemExporter, ContentContainerExporter, BodyContainerExporter, ColumnContainerExporter, RowContainerExporter } from "packages/editor/src/state/types/types";
2314
+ import { RootState } from "packages/editor/src/state/types/RootState";
2315
+ import { DeepPartial, EditorProps, LanguagesValue } from "packages/editor/src/editor/components/editors/types";
2316
+ export interface PropertyEditorConfig<Props extends EditorProps<any> = any> {
2317
+ id?: string;
2318
+ name: string;
2319
+ Widget: React.ComponentType<Props>;
2320
+ description?: string;
2321
+ schemas: Partial<PropertyEditorJSONSchemas> | undefined;
2322
+ zodSchemas: Partial<PropertyEditorZodSchemas> | undefined;
2323
+ layout?: 'right' | 'bottom';
2324
+ styleGuideLock?: boolean;
2325
+ renderValue?: (value: any) => any;
2326
+ deviceStyles?: (value: Props['value'], extra: {
2327
+ collection: Collection;
2328
+ device: Device;
2329
+ displayMode: DisplayMode;
2330
+ getDefaultSelectorForCSSProperty: (cssProperty: string | undefined) => string | undefined;
2331
+ htmlID: string;
2332
+ optionName: string;
2333
+ bodyValues: {
2334
+ [name: string]: any;
2335
+ };
2336
+ rootValue: Props['value'];
2337
+ }) => {
2338
+ _css?: string;
2339
+ [key: string]: string | undefined;
2340
+ };
2341
+ }
2342
+ export type PropertyEditorConfigMap = {
2343
+ [id: string]: PropertyEditorConfig;
2344
+ };
2345
+ export type OptionConfigMap<Values extends ValueMap = ValueMap> = {
2346
+ [K in keyof Values]: Option;
2347
+ };
2348
+ export type OptionGroupEmbeddedConfig<Values extends ValueMap = ValueMap> = {
2349
+ collection: Collection;
2350
+ type: string;
2351
+ source: string;
2352
+ tabLabel: string;
2353
+ insertCount?: number;
2354
+ optionGroups?: Record<string, {
2355
+ optionsOverride?: OptionConfigMap<Partial<Values>>;
2356
+ }>;
2357
+ };
2358
+ export type OptionGroupConfig<Values extends ValueMap = ValueMap> = {
2359
+ rightLabel?: string;
2360
+ title: string | null;
2361
+ icon?: string | string[];
2362
+ position?: number;
2363
+ supportedDesignModes?: DesignMode[];
2364
+ supportedByAI?: boolean;
2365
+ enabled?: boolean;
2366
+ hideOnOfflineMode?: boolean;
2367
+ noContentPadding?: boolean;
2368
+ ai?: boolean;
2369
+ widgetParams?: {
2370
+ [id: string]: unknown;
2371
+ };
2372
+ } & {
2373
+ embedded?: OptionGroupEmbeddedConfig<Values>;
2374
+ options?: OptionConfigMap<Partial<Values>>;
2375
+ };
2376
+ export type OptionGroupConfigMap<Values extends ValueMap = ValueMap> = {
2377
+ [id: string]: OptionGroupConfig<Values>;
2378
+ };
2379
+ export type ToolOptionGroupConfigMap = {
2380
+ [id: string]: OptionGroupConfigMap;
2381
+ };
2382
+ export type ValueMap = {
2383
+ [id: string]: unknown;
2384
+ } & LanguagesValue;
2385
+ export interface ToolOverride<Values extends ValueMap = ValueMap> extends DeepPartial<ToolConfig<Values>> {
2386
+ sections?: Record<string, {
2387
+ editor: Pick<OptionGroupConfig<Values>, 'enabled'>;
2388
+ }>;
2389
+ properties?: Record<string, {
2390
+ editor?: OptionConfigMap<Partial<Values>>;
2391
+ value?: unknown;
2392
+ }>;
2393
+ }
2394
+ export interface ToolConfig<Values extends ValueMap = ValueMap, T = Validator> {
2395
+ id?: string;
2396
+ name?: string;
2397
+ type?: string;
2398
+ slug?: string;
2399
+ label?: string;
2400
+ icon?: string | string[];
2401
+ classicIcon?: string | string[];
2402
+ category?: Collection;
2403
+ cells?: number[];
2404
+ options: OptionGroupConfigMap;
2405
+ data?: Partial<Values>;
2406
+ values?: Partial<Values>;
2407
+ css?: string;
2408
+ renderer?: object | ((...args: any[]) => any);
2409
+ supportedByAI?: boolean;
2410
+ supportedDisplayModes?: DisplayMode[];
2411
+ supportedVariants?: Variant[];
2412
+ usageLimit?: number;
2413
+ transformer?: (values: Partial<Values>, source: {
2414
+ name: string;
2415
+ value: unknown;
2416
+ }) => Partial<Values>;
2417
+ hasDeprecatedFontControls?: boolean;
2418
+ syncMetadata?: {
2419
+ id: string | number;
2420
+ lastUpdatedAt: string | number;
2421
+ enabled?: boolean;
2422
+ };
2423
+ applyDesignTags?: (values: Values, designTags: DesignTags, template: typeof Mustache.render) => Values;
2424
+ propertyStates?: (values: Partial<Values>, context: {
2425
+ type: string;
2426
+ hasDeprecatedFontControls?: boolean;
2427
+ }) => Record<string, object> | undefined;
2428
+ isSupported?: (context: {
2429
+ displayMode: DisplayMode;
2430
+ variant: string | null;
2431
+ }) => boolean;
2432
+ premium?: boolean;
2433
+ editable?: boolean;
2434
+ classic?: boolean;
2435
+ enabled?: boolean;
2436
+ position?: number;
2437
+ location?: Location;
2438
+ validator?: T;
2439
+ hidden?: boolean;
2440
+ }
2441
+ export type ToolConfigMap<T = Validator> = {
2442
+ [id: string]: ToolConfig<ValueMap, T>;
2443
+ };
2444
+ export interface PremiumToolConfig {
2445
+ enabled?: boolean;
2446
+ }
2447
+ export type PremiumToolConfigMap = {
2448
+ [id: string]: PremiumToolConfig;
2449
+ };
2450
+ export type ViewerMap = {
2451
+ [id: string]: unknown;
2452
+ };
2453
+ export type ExportersMap = {
2454
+ [id: string]: Record<string, Function> | undefined;
2455
+ };
2456
+ export type HeadsMap = {
2457
+ [id: string]: unknown;
2458
+ };
2459
+ export type ValidatorsMap = {
2460
+ [id: string]: Validator;
2461
+ };
2462
+ export function loadOptions(newOptions: ToolOptionGroupConfigMap): void;
2463
+ export function overrideOptions(newOverrideOptions: ToolOptionGroupConfigMap): void;
2464
+ export function getOptionOverrides(): {
2465
+ [x: string]: {
2466
+ [x: string]: {
2467
+ rightLabel?: string;
2468
+ title?: string | null;
2469
+ icon?: string | string[];
2470
+ position?: number;
2471
+ supportedDesignModes?: DesignMode[];
2472
+ supportedByAI?: boolean;
2473
+ enabled?: boolean;
2474
+ hideOnOfflineMode?: boolean;
2475
+ noContentPadding?: boolean;
2476
+ ai?: boolean;
2477
+ widgetParams?: {
2478
+ [x: string]: unknown;
2479
+ };
2480
+ embedded?: {
2481
+ collection?: Collection;
2482
+ type?: string;
2483
+ source?: string;
2484
+ tabLabel?: string;
2485
+ insertCount?: number;
2486
+ optionGroups?: {
2487
+ [x: string]: {
2488
+ optionsOverride?: {
2489
+ [x: string]: any;
2490
+ _languages?: any;
2491
+ };
2492
+ };
2493
+ };
2494
+ };
2495
+ options?: {
2496
+ [x: string]: any;
2497
+ _languages?: any;
2498
+ };
2499
+ };
2500
+ };
2501
+ };
2502
+ export function getOptionGroups(collection: Collection, config?: Parameters<typeof getOptionId>[0], device?: Device | undefined, { designMode }?: {
2503
+ designMode?: DesignMode;
2504
+ }): OptionGroupConfigMap;
2505
+ export function getOptions(collection: Collection | undefined, config?: OptionConfig | undefined, device?: Device | undefined): OptionConfigMap;
2506
+ export function getInitialValues(collection: Collection, config?: Parameters<typeof getOptionGroups>[1], device?: Device | undefined): {
2507
+ [id: string]: unknown;
2508
+ };
2509
+ export function getInitialValuesFromOptionGroup(optionGroup: {
2510
+ options?: OptionConfigMap;
2511
+ } | undefined): Record<string, unknown>;
2512
+ export function loadTools(newTools: ToolConfigMap): void;
2513
+ export function overrideTools(newOverrideTools: Record<string, ToolOverride>): void;
2514
+ export function getOverrideToolById(id: string): {
2515
+ id?: string;
2516
+ name?: string;
2517
+ type?: string;
2518
+ slug?: string;
2519
+ label?: string;
2520
+ icon?: string | string[];
2521
+ classicIcon?: string | string[];
2522
+ category?: Collection;
2523
+ cells?: number[];
2524
+ options?: {
2525
+ [x: string]: {
2526
+ rightLabel?: string;
2527
+ title?: string | null;
2528
+ icon?: string | string[];
2529
+ position?: number;
2530
+ supportedDesignModes?: DesignMode[];
2531
+ supportedByAI?: boolean;
2532
+ enabled?: boolean;
2533
+ hideOnOfflineMode?: boolean;
2534
+ noContentPadding?: boolean;
2535
+ ai?: boolean;
2536
+ widgetParams?: {
2537
+ [x: string]: unknown;
2538
+ };
2539
+ embedded?: {
2540
+ collection?: Collection;
2541
+ type?: string;
2542
+ source?: string;
2543
+ tabLabel?: string;
2544
+ insertCount?: number;
2545
+ optionGroups?: {
2546
+ [x: string]: {
2547
+ optionsOverride?: {
2548
+ [x: string]: any;
2549
+ _languages?: any;
2550
+ };
2551
+ };
2552
+ };
2553
+ };
2554
+ options?: {
2555
+ [x: string]: any;
2556
+ _languages?: any;
2557
+ };
2558
+ };
2559
+ };
2560
+ data?: {
2561
+ [x: string]: unknown;
2562
+ _languages?: {
2563
+ [x: string]: {
2564
+ [x: string]: string;
2565
+ };
2566
+ };
2567
+ };
2568
+ values?: {
2569
+ [x: string]: unknown;
2570
+ _languages?: {
2571
+ [x: string]: {
2572
+ [x: string]: string;
2573
+ };
2574
+ };
2575
+ };
2576
+ css?: string;
2577
+ renderer?: object | {};
2578
+ supportedByAI?: boolean;
2579
+ supportedDisplayModes?: any;
2580
+ supportedVariants?: Variant[];
2581
+ usageLimit?: number;
2582
+ transformer?: {};
2583
+ hasDeprecatedFontControls?: boolean;
2584
+ syncMetadata?: {
2585
+ id?: string | number;
2586
+ lastUpdatedAt?: string | number;
2587
+ enabled?: boolean;
2588
+ };
2589
+ applyDesignTags?: {};
2590
+ propertyStates?: {};
2591
+ isSupported?: {};
2592
+ premium?: boolean;
2593
+ editable?: boolean;
2594
+ classic?: boolean;
2595
+ enabled?: boolean;
2596
+ position?: number;
2597
+ location?: {
2598
+ collection?: Collection;
2599
+ id?: number | string;
2600
+ };
2601
+ validator?: string;
2602
+ hidden?: boolean;
2603
+ };
2604
+ export function isRowToolEnabled(): boolean;
2605
+ export function getTool(toolItem: ToolItem): ToolConfig<ValueMap, Validator>;
2606
+ export function getAllTools(): any[];
2607
+ export function getTools(collection?: Collection): any[];
2608
+ export function getCustomToolsCount(): number;
2609
+ export function getToolsCSS(category: string, items: ToolConfig[]): string;
2610
+ export function excludeTools(types: string[]): void;
2611
+ export function registerTool<Values extends ValueMap>(config: ToolConfig<Values, Validator>): void;
2612
+ export function clearValidator(toolName: string): void;
2613
+ export function clearValidators(): void;
2614
+ export function setValidator(toolName: string, validator: Validator | null): void;
2615
+ export function setDefaultDesignValidator(validator: Validator): void;
2616
+ export function setDesignValidator(validator: Validator): void;
2617
+ export function enablePremiumTool(config: ToolConfig): void;
2618
+ export function disablePremiumTool(config: ToolConfig): void;
2619
+ export function registerOptions(config: OptionConfig & {
2620
+ category?: string;
2621
+ }): void;
2622
+ export function registerPropertyEditor<Props extends EditorProps<any>>(config: PropertyEditorConfig<Props>): void;
2623
+ export function getPropertyEditor(config: {
2624
+ id: PropertyEditorConfig['id'];
2625
+ name?: PropertyEditorConfig['name'];
2626
+ } | {
2627
+ id?: PropertyEditorConfig['id'];
2628
+ name: PropertyEditorConfig['name'];
2629
+ }): PropertyEditorConfig | undefined;
2630
+ export function getViewer(config: ToolConfig): any;
2631
+ export function getHead(config: ToolConfig): any;
2632
+ export function getDefaultValidator(config: ToolConfig | string): Validator | undefined;
2633
+ export function getValidator(config: ToolConfig | string, { fallbackToDefault }?: {
2634
+ fallbackToDefault?: boolean;
2635
+ }): Validator | undefined;
2636
+ export function getToolData(config: ToolConfig): any;
2637
+ export function getToolTransformer(config: Pick<ToolConfig, 'slug' | 'type'>): {};
2638
+ export function getToolPropertyStates(config: ToolConfig): {};
2639
+ export function rowPropertyStates(values: object, snapshot: {
2640
+ designMode: DesignMode;
2641
+ displayConditions: DisplayConditions | undefined;
2642
+ entitlements: any;
2643
+ }): {
2644
+ columns: {
2645
+ enabled: boolean;
2646
+ };
2647
+ displayCondition: {
2648
+ enabled: boolean;
2649
+ };
2650
+ } | {
2651
+ columns: {
2652
+ enabled: boolean;
2653
+ };
2654
+ displayCondition?: undefined;
2655
+ };
2656
+ export function columnPropertyStates(_values: any, snapshot: {
2657
+ designMode: DesignMode;
2658
+ displayConditions: DisplayConditions | undefined;
2659
+ entitlements: any;
2660
+ }, { rowValues, }?: {
2661
+ rowValues?: {
2662
+ deletable?: boolean;
2663
+ };
2664
+ }): {
2665
+ deletable: {
2666
+ disabled: boolean;
2667
+ enabled: boolean;
2668
+ };
2669
+ };
2670
+ export function contentPropertyStates(_values: any, snapshot: {
2671
+ displayConditions: DisplayConditions | undefined;
2672
+ entitlements: any;
2673
+ }): {
2674
+ displayCondition: {
2675
+ enabled: boolean;
2676
+ };
2677
+ } | {
2678
+ displayCondition?: undefined;
2679
+ };
2680
+ export function isToolEditable(config: ToolConfig): boolean;
2681
+ export function getToolSupportedDisplayModes(config: Parameters<typeof getToolId>[0]): any[];
2682
+ export function isToolSupportedAtThisDisplayMode(config: Parameters<typeof getToolSupportedDisplayModes>[0], displayMode: DisplayMode): boolean | null;
2683
+ export function getToolApplyDesignTags(config: ToolConfig): (values: ValueMap, designTags: DesignTags, template: typeof Mustache.render) => ValueMap;
2684
+ export type ToolItem = Pick<ToolConfig, 'location' | 'type' | 'values'> & {
2685
+ [key: string]: any;
2686
+ };
2687
+ export function getRenderValues(toolItem: ToolItem, values?: object, { device, }?: {
2688
+ device?: Device | undefined;
2689
+ }): Record<string, object>;
2690
+ export function getEmbeddedValues(design: RootState['design'], toolItem: ToolItem, { device, language, renderValues, }?: {
2691
+ device?: Device;
2692
+ language?: string;
2693
+ renderValues?: boolean;
2694
+ }): {};
2695
+ export function getEmbeddedInitialValues(toolItem: ToolItem, { designMode, deviceName, }: {
2696
+ designMode: DesignMode;
2697
+ deviceName: Device;
2698
+ }): Record<string, Record<string, unknown>>;
2699
+ export function getEmbeddedOptionsConfig(toolItem: ToolItem): Record<string, OptionGroupEmbeddedConfig<ValueMap>>;
2700
+ export function getEmbeddedOptionGroups(embedded: OptionGroupEmbeddedConfig, { designMode, deviceName }: {
2701
+ designMode: DesignMode;
2702
+ deviceName: Device;
2703
+ }): OptionGroupConfigMap<ValueMap>;
2704
+ export function getMergedEmbeddedOptionGroup(embedded: OptionGroupEmbeddedConfig, { designMode, deviceName }: {
2705
+ designMode: DesignMode;
2706
+ deviceName: Device;
2707
+ }): Partial<Pick<OptionGroupConfig<ValueMap>, "title" | "options">>;
2708
+ export function getItemExporter(config: ToolConfig, displayMode: DisplayMode, variant?: Variant): ItemExporter;
2709
+ export function getContainerExporter<C extends Container>(type: C, displayMode: DisplayMode, variant?: Variant): C extends 'content' ? ContentContainerExporter : C extends 'column' ? ColumnContainerExporter : C extends 'row' ? RowContainerExporter : C extends 'body' ? BodyContainerExporter : Function;
2710
+ export function getToolId<Values extends ValueMap>(config: Pick<ToolConfig<Values>, 'slug' | 'type'> | string): string;
2711
+ export function getToolIdForStyleGuide(item: Parameters<typeof getToolId>[0] & Pick<ToolConfig<Values>, 'location'>): string | undefined;
2712
+ export function getOptionId(config: Pick<ToolConfig, 'slug' | 'type'> | string | undefined): string | undefined;
2713
+ export function getPropertyEditorId(config: {
2714
+ name?: PropertyEditorConfig['name'];
2715
+ } | string): string;
2716
+ export function registerColumns(cells: number[]): void;
2717
+ export function getEmptyRow(type: string): {
2718
+ type: string;
2719
+ slug: any;
2720
+ cells: number[];
2721
+ values: {
2722
+ [id: string]: unknown;
2723
+ };
2724
+ columns: {
2725
+ contents: any[];
2726
+ values: {
2727
+ [id: string]: unknown;
2728
+ };
2729
+ }[];
2730
+ };
2731
+ export function supportedDisplayModesFilter<Object extends {
2732
+ supportedDisplayModes?: DisplayMode[];
2733
+ }>(item: Object, { displayMode }: {
2734
+ displayMode: DisplayMode;
2735
+ }): boolean;
2736
+ export function isSupportedFilter(tool: ToolConfig, { displayMode }: {
2737
+ displayMode: DisplayMode;
2738
+ }): boolean;
2739
+ export function hiddenFilter(tool: ToolConfig): boolean;
2740
+ export function variantFilter(tool: ToolConfig): boolean;
2741
+ export function getAvailableTools({ displayMode, entitlements, }: {
2742
+ displayMode: DisplayMode;
2743
+ entitlements: Entitlements;
2744
+ }): {
2745
+ availableTools: any[];
2746
+ availableToolsWithDefaultRow: any[];
2747
+ classicTools: any[];
2748
+ };
2749
+ }
2750
+ declare module "packages/editor/src/engine/config/tabs" {
2751
+ import { DisplayMode, Location, Tabs, Variant } from "packages/editor/src/state/types/types";
2752
+ type ValueMap = {
2753
+ [id: string]: unknown;
2754
+ };
2755
+ export interface TabConfig<Values extends ValueMap = ValueMap> {
2756
+ id?: string;
2757
+ name: string;
2758
+ type?: string;
2759
+ slug?: string;
2760
+ label?: string;
2761
+ icon?: string | string[];
2762
+ renderer?: {
2763
+ Panel: any;
2764
+ };
2765
+ supportedDisplayModes?: DisplayMode[];
2766
+ supportedVariants?: Variant[];
2767
+ classic?: boolean;
2768
+ enabled?: boolean;
2769
+ position?: number;
2770
+ location?: Location;
2771
+ }
2772
+ export type TabConfigMap = {
2773
+ [id: string]: TabConfig;
2774
+ };
2775
+ export type PanelMap = {
2776
+ [id: string]: unknown;
2777
+ };
2778
+ export function getTabs(): TabConfig<ValueMap>[];
2779
+ export function registerTab<Values extends ValueMap>(config: TabConfig<Values>): void;
2780
+ export function getTabId<Values extends ValueMap>(config: TabConfig<Values> | string): string;
2781
+ export function getCustomTabsCount(): number;
2782
+ export function updateTabs(_tabs: Tabs): void;
2783
+ }
2784
+ declare module "packages/editor/src/engine/config/createPanel" {
2785
+ import React, { RefObject } from 'react';
2786
+ export type PanelMountFn = (node: RefObject<HTMLDivElement> | null) => void;
2787
+ export type PanelRenderFn = () => string;
2788
+ export interface PanelConfig {
2789
+ mount: PanelMountFn;
2790
+ render: PanelRenderFn;
2791
+ }
2792
+ export interface PanelProps {
2793
+ values: unknown;
2794
+ bodyValues: unknown;
2795
+ }
2796
+ export function createPanel(config: PanelConfig): () => React.JSX.Element;
2797
+ }
2798
+ declare module "packages/editor/src/engine/config/createViewer" {
2799
+ import React from 'react';
2800
+ export type ViewerMountFn = (node: HTMLDivElement | null, values: unknown) => void;
2801
+ export type ViewerRenderFn = (values: object, bodyValues: object, info: {
2802
+ columnIndex: number;
2803
+ rowCells: number[];
2804
+ }) => string;
2805
+ export interface ViewerConfig {
2806
+ mount: ViewerMountFn;
2807
+ render: ViewerRenderFn;
2808
+ }
2809
+ export interface ViewerProps {
2810
+ bodyValues: object;
2811
+ columnIndex: number;
2812
+ rowCells: number[];
2813
+ values: object;
2814
+ }
2815
+ export function createViewer(config: ViewerConfig): {
2816
+ new (props: ViewerProps): {
2817
+ ref: HTMLDivElement | null;
2818
+ componentDidMount(): void;
2819
+ shouldComponentUpdate(nextProps: ViewerProps): boolean;
2820
+ componentDidUpdate(prevProps: ViewerProps): void;
2821
+ getRenderArgs(props?: ViewerProps): Parameters<ViewerRenderFn>;
2822
+ render(): React.JSX.Element;
2823
+ context: unknown;
2824
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ViewerProps>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
2825
+ forceUpdate(callback?: () => void): void;
2826
+ readonly props: Readonly<ViewerProps>;
2827
+ state: Readonly<{}>;
2828
+ refs: {
2829
+ [key: string]: React.ReactInstance;
2830
+ };
2831
+ componentWillUnmount?(): void;
2832
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
2833
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ViewerProps>, prevState: Readonly<{}>): any;
2834
+ componentWillMount?(): void;
2835
+ UNSAFE_componentWillMount?(): void;
2836
+ componentWillReceiveProps?(nextProps: Readonly<ViewerProps>, nextContext: any): void;
2837
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ViewerProps>, nextContext: any): void;
2838
+ componentWillUpdate?(nextProps: Readonly<ViewerProps>, nextState: Readonly<{}>, nextContext: any): void;
2839
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ViewerProps>, nextState: Readonly<{}>, nextContext: any): void;
2840
+ };
2841
+ new (props: ViewerProps, context: any): {
2842
+ ref: HTMLDivElement | null;
2843
+ componentDidMount(): void;
2844
+ shouldComponentUpdate(nextProps: ViewerProps): boolean;
2845
+ componentDidUpdate(prevProps: ViewerProps): void;
2846
+ getRenderArgs(props?: ViewerProps): Parameters<ViewerRenderFn>;
2847
+ render(): React.JSX.Element;
2848
+ context: unknown;
2849
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ViewerProps>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
2850
+ forceUpdate(callback?: () => void): void;
2851
+ readonly props: Readonly<ViewerProps>;
2852
+ state: Readonly<{}>;
2853
+ refs: {
2854
+ [key: string]: React.ReactInstance;
2855
+ };
2856
+ componentWillUnmount?(): void;
2857
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
2858
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ViewerProps>, prevState: Readonly<{}>): any;
2859
+ componentWillMount?(): void;
2860
+ UNSAFE_componentWillMount?(): void;
2861
+ componentWillReceiveProps?(nextProps: Readonly<ViewerProps>, nextContext: any): void;
2862
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ViewerProps>, nextContext: any): void;
2863
+ componentWillUpdate?(nextProps: Readonly<ViewerProps>, nextState: Readonly<{}>, nextContext: any): void;
2864
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ViewerProps>, nextState: Readonly<{}>, nextContext: any): void;
2865
+ };
2866
+ contextType?: React.Context<any> | undefined;
2867
+ };
2868
+ }
2869
+ declare module "packages/editor/src/engine/config/createWidget" {
2870
+ import React from 'react';
2871
+ export type WidgetMountFn = (node: HTMLDivElement | null, value: unknown, updateValue: unknown, data: unknown) => void;
2872
+ export type WidgetRenderFn = (value: unknown, updateValue: unknown, data: unknown) => string;
2873
+ export interface WidgetConfig {
2874
+ mount: WidgetMountFn;
2875
+ render: WidgetRenderFn;
2876
+ }
2877
+ export interface WidgetProps {
2878
+ value: unknown;
2879
+ updateValue: unknown;
2880
+ data: unknown;
2881
+ }
2882
+ export function createWidget(config: WidgetConfig): {
2883
+ new (props: WidgetProps): {
2884
+ ref: HTMLDivElement | null;
2885
+ componentDidMount(): void;
2886
+ shouldComponentUpdate(nextProps: WidgetProps): boolean;
2887
+ componentDidUpdate(prevProps: WidgetProps): void;
2888
+ render(): React.JSX.Element;
2889
+ context: unknown;
2890
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<WidgetProps>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
2891
+ forceUpdate(callback?: () => void): void;
2892
+ readonly props: Readonly<WidgetProps>;
2893
+ state: Readonly<{}>;
2894
+ refs: {
2895
+ [key: string]: React.ReactInstance;
2896
+ };
2897
+ componentWillUnmount?(): void;
2898
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
2899
+ getSnapshotBeforeUpdate?(prevProps: Readonly<WidgetProps>, prevState: Readonly<{}>): any;
2900
+ componentWillMount?(): void;
2901
+ UNSAFE_componentWillMount?(): void;
2902
+ componentWillReceiveProps?(nextProps: Readonly<WidgetProps>, nextContext: any): void;
2903
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<WidgetProps>, nextContext: any): void;
2904
+ componentWillUpdate?(nextProps: Readonly<WidgetProps>, nextState: Readonly<{}>, nextContext: any): void;
2905
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<WidgetProps>, nextState: Readonly<{}>, nextContext: any): void;
2906
+ };
2907
+ new (props: WidgetProps, context: any): {
2908
+ ref: HTMLDivElement | null;
2909
+ componentDidMount(): void;
2910
+ shouldComponentUpdate(nextProps: WidgetProps): boolean;
2911
+ componentDidUpdate(prevProps: WidgetProps): void;
2912
+ render(): React.JSX.Element;
2913
+ context: unknown;
2914
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<WidgetProps>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
2915
+ forceUpdate(callback?: () => void): void;
2916
+ readonly props: Readonly<WidgetProps>;
2917
+ state: Readonly<{}>;
2918
+ refs: {
2919
+ [key: string]: React.ReactInstance;
2920
+ };
2921
+ componentWillUnmount?(): void;
2922
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
2923
+ getSnapshotBeforeUpdate?(prevProps: Readonly<WidgetProps>, prevState: Readonly<{}>): any;
2924
+ componentWillMount?(): void;
2925
+ UNSAFE_componentWillMount?(): void;
2926
+ componentWillReceiveProps?(nextProps: Readonly<WidgetProps>, nextContext: any): void;
2927
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<WidgetProps>, nextContext: any): void;
2928
+ componentWillUpdate?(nextProps: Readonly<WidgetProps>, nextState: Readonly<{}>, nextContext: any): void;
2929
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<WidgetProps>, nextState: Readonly<{}>, nextContext: any): void;
2930
+ };
2931
+ contextType?: React.Context<any> | undefined;
2932
+ };
2933
+ }
2277
2934
  declare module "packages/editor/src/engine/options/bodies" {
2278
2935
  export type { BodyValues } from '@libs/schemas/options/containers/bodies';
2279
2936
  }
@@ -2299,18 +2956,196 @@ declare module "packages/editor/src/engine/utils/makeClassMethodsEnumerable" {
2299
2956
  declare module "packages/editor/src/embed/helpers" {
2300
2957
  export function convertReturnFunctionToDoneCallback<Fn extends (...args: [any]) => any>(fn: Fn): (info: Parameters<Fn>[0], done: Function) => void;
2301
2958
  }
2959
+ declare module "packages/editor/src/state/types/callbacks" {
2960
+ import type { DisplayMode, JSONTemplate, MergeTags } from "packages/editor/src/state/types/types";
2961
+ export interface CallbackContext {
2962
+ item: {
2963
+ type: string;
2964
+ id: string | number;
2965
+ };
2966
+ column?: {
2967
+ id: string | number;
2968
+ };
2969
+ row?: {
2970
+ id: string | number;
2971
+ };
2972
+ }
2973
+ export interface CallbackTypeMap<TDisplayMode extends DisplayMode | undefined = undefined> {
2974
+ 'editor:ready': () => void;
2975
+ 'textEditor:ready': () => void;
2976
+ 'design:loaded': (data: {
2977
+ design: JSONTemplate<TDisplayMode>;
2978
+ }) => void;
2979
+ /** @deprecated Use design:loaded instead */
2980
+ onDesignLoad: (data: {
2981
+ design: JSONTemplate<TDisplayMode>;
2982
+ }) => void;
2983
+ 'design:updated': (data: {
2984
+ type: string;
2985
+ item?: Record<string, any>;
2986
+ changes?: Record<string, any>;
2987
+ }) => void;
2988
+ 'image:uploaded': (data: {
2989
+ image: {
2990
+ url: string;
2991
+ width?: number;
2992
+ height?: number;
2993
+ };
2994
+ }) => void;
2995
+ /** @deprecated Use image:uploaded instead */
2996
+ onImageUpload: (data: {
2997
+ image: {
2998
+ url: string;
2999
+ width?: number;
3000
+ height?: number;
3001
+ };
3002
+ }) => void;
3003
+ 'item:selected': (data: {
3004
+ item: Record<string, any>;
3005
+ active: boolean;
3006
+ }) => void;
3007
+ 'page:added': (data: {
3008
+ page: Record<string, any>;
3009
+ }) => void;
3010
+ 'page:removed': (data: {
3011
+ page: Record<string, any>;
3012
+ }) => void;
3013
+ 'body:added': (data: {
3014
+ body: Record<string, any>;
3015
+ }) => void;
3016
+ 'body:removed': (data: {
3017
+ body: Record<string, any>;
3018
+ }) => void;
3019
+ 'row:added': (data: {
3020
+ row: Record<string, any>;
3021
+ }) => void;
3022
+ 'row:removed': (data: {
3023
+ row: Record<string, any>;
3024
+ }) => void;
3025
+ 'row:moved': (data: {
3026
+ row: Record<string, any>;
3027
+ }) => void;
3028
+ 'header:added': (data: {
3029
+ header: Record<string, any>;
3030
+ }) => void;
3031
+ 'header:removed': (data: {
3032
+ header: Record<string, any>;
3033
+ }) => void;
3034
+ 'footer:added': (data: {
3035
+ footer: Record<string, any>;
3036
+ }) => void;
3037
+ 'footer:removed': (data: {
3038
+ footer: Record<string, any>;
3039
+ }) => void;
3040
+ 'column:added': (data: {
3041
+ column: Record<string, any>;
3042
+ }) => void;
3043
+ 'column:removed': (data: {
3044
+ column: Record<string, any>;
3045
+ }) => void;
3046
+ 'content:added': (data: {
3047
+ content: Record<string, any>;
3048
+ }) => void;
3049
+ 'content:removed': (data: {
3050
+ content: Record<string, any>;
3051
+ }) => void;
3052
+ 'content:moved': (data: {
3053
+ content: Record<string, any>;
3054
+ }) => void;
3055
+ image: (data: {
3056
+ accepted: File[];
3057
+ attachments: File[];
3058
+ }, done: (result: {
3059
+ progress?: number;
3060
+ url?: string;
3061
+ width?: number;
3062
+ height?: number;
3063
+ id?: number | string;
3064
+ filename?: string;
3065
+ }) => void) => void;
3066
+ selectImage: (data: Record<string, any>, done: (result: {
3067
+ url: string;
3068
+ width?: number;
3069
+ height?: number;
3070
+ size?: number;
3071
+ id?: string | number;
3072
+ }) => void) => void;
3073
+ displayCondition: (data: Record<string, any> & {
3074
+ context: CallbackContext;
3075
+ }, done: (result: {
3076
+ type: string;
3077
+ label: string;
3078
+ description: string;
3079
+ before: string;
3080
+ after: string;
3081
+ } | null) => void) => void;
3082
+ mergeTag: (data: {
3083
+ mergeTags: MergeTags;
3084
+ mergeTagGroup?: string;
3085
+ mergeTagRule?: string;
3086
+ context: CallbackContext;
3087
+ }, done: (result: {
3088
+ name?: string;
3089
+ value: string;
3090
+ }) => void) => void;
3091
+ mergeTagRule: (data: {
3092
+ mergeTags: MergeTags;
3093
+ mergeTagGroup?: string;
3094
+ mergeTagRule?: string;
3095
+ context: CallbackContext;
3096
+ }, done: (result: {
3097
+ mergeTagGroup: string;
3098
+ mergeTagRule: string;
3099
+ }) => void) => void;
3100
+ previewHtml: (data: {
3101
+ html: string;
3102
+ }, done: (result: {
3103
+ html: string;
3104
+ }) => void) => void;
3105
+ fetchImage: (data: {
3106
+ url: string;
3107
+ }, done: (result: {
3108
+ blob: Blob;
3109
+ url?: string;
3110
+ }) => void) => void;
3111
+ 'image:removed': (params: {
3112
+ id: string | number;
3113
+ projectId?: number | null;
3114
+ userId?: string | number;
3115
+ }, done: () => void) => void;
3116
+ itemAdded: (data: {
3117
+ item: Record<string, any>;
3118
+ }, done: (result: any) => void) => void;
3119
+ itemRemoved: (data: {
3120
+ item: Record<string, any>;
3121
+ }, done: (result: boolean) => void) => void;
3122
+ itemMoved: (data: {
3123
+ item: Record<string, any>;
3124
+ }, done: (result: any) => void) => void;
3125
+ 'block:added': (data: Record<string, any>, done: (result: any) => void) => void;
3126
+ 'block:modified': (data: Record<string, any>, done: (result: any) => void) => void;
3127
+ 'block:removed': (data: Record<string, any>, done: (result: any) => void) => void;
3128
+ }
3129
+ }
2302
3130
  declare module "packages/editor/src/embed/Editor" {
2303
3131
  import { Frame } from "packages/editor/src/embed/Frame";
2304
- import { Config, ExportFromApiResult, ExportHtmlOptions, ExportHtmlResult, ExportPlainTextResult, ExportImageFromApiOptions, ExportLiveHtmlOptions, ExportPdfFromApiOptions, ExportPlainTextOptions, ExportZipFromApiOptions, SaveDesignOptions, ExportLiveHtmlResult } from "packages/editor/src/embed/Config";
2305
- import { AppearanceConfig, Audit, DesignMode, DesignTagsConfig, Device, DisplayConditions, DisplayMode, JSONTemplate, Language, LinkTypes, LinkTypesSharedConfig, MergeTags, MergeTagsConfig, SpecialLink, StyleGuideConfig, Tabs, Translations, User, Validator } from "packages/editor/src/state/types/types";
2306
- import { BodyValues } from "packages/editor/src/engine/options/bodies";
2307
- import { Locale, TextDirection } from "packages/editor/src/engine/config/intl";
2308
- import { DeepPartial } from "packages/editor/src/editor/components/editors/types";
2309
- import { ColorPicker } from "packages/editor/src/engine/config/features";
3132
+ import type { Config, ExportFromApiResult, ExportHtmlOptions, ExportHtmlResult, ExportPlainTextResult, ExportImageFromApiOptions, ExportLiveHtmlOptions, ExportPdfFromApiOptions, ExportPlainTextOptions, ExportZipFromApiOptions, SaveDesignOptions, ExportLiveHtmlResult } from "packages/editor/src/embed/Config";
3133
+ import type { ToolConfig as ToolDefinition } from "packages/editor/src/engine/config/tools";
3134
+ import type { PropertyEditorConfig } from "packages/editor/src/engine/config/tools";
3135
+ import type { TabConfig } from "packages/editor/src/engine/config/tabs";
3136
+ import type { PanelConfig } from "packages/editor/src/engine/config/createPanel";
3137
+ import type { ViewerConfig } from "packages/editor/src/engine/config/createViewer";
3138
+ import type { WidgetConfig } from "packages/editor/src/engine/config/createWidget";
3139
+ import type { AppearanceConfig, Audit, DesignMode, DesignTagsConfig, Device, DisplayConditions, DisplayMode, JSONTemplate, Language, LinkTypes, LinkTypesSharedConfig, MergeTags, MergeTagsConfig, SpecialLink, StyleGuideConfig, Tabs, Translations, User, Validator, Container, BodyContainerExporter, RowContainerExporter, ColumnContainerExporter, ContentContainerExporter, ItemExporter } from "packages/editor/src/state/types/types";
3140
+ import type { BodyValues } from "packages/editor/src/engine/options/bodies";
3141
+ import type { Locale, TextDirection } from "packages/editor/src/engine/config/intl";
3142
+ import type { DeepPartial } from "packages/editor/src/editor/components/editors/types";
3143
+ import type { ColorPicker } from "packages/editor/src/engine/config/features";
3144
+ import type { CallbackTypeMap } from "packages/editor/src/state/types/callbacks";
2310
3145
  export const LATEST_VERSION: string;
2311
3146
  export const STABLE_VERSION: string;
2312
3147
  export const ENV_VERSION: string;
2313
- export class Editor {
3148
+ export class Editor<TClassDisplayMode extends DisplayMode | undefined = undefined> {
2314
3149
  frame: Frame | null;
2315
3150
  constructor(config?: Config);
2316
3151
  init(config?: Config): void;
@@ -2325,12 +3160,16 @@ declare module "packages/editor/src/embed/Editor" {
2325
3160
  renderEditor(config: Config): void;
2326
3161
  initEditor(config: Config): void;
2327
3162
  registerColumns(cells: number[]): void;
2328
- registerCallback(type: string, callback: Function): void;
3163
+ registerCallback<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T, callback: CallbackTypeMap<TClassDisplayMode>[T]): void;
3164
+ registerCallback(type: string, callback: (...args: any[]) => void): void;
3165
+ unregisterCallback<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T): void;
2329
3166
  unregisterCallback(type: string): void;
2330
- registerProvider(type: string, callback: Function): void;
3167
+ registerProvider(type: string, callback: (...args: any[]) => any): void;
2331
3168
  unregisterProvider(type: string): void;
2332
3169
  reloadProvider(type: string): void;
2333
- addEventListener(type: string, callback: Function): void;
3170
+ addEventListener<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T, callback: CallbackTypeMap<TClassDisplayMode>[T]): void;
3171
+ addEventListener(type: string, callback: (...args: any[]) => void): void;
3172
+ removeEventListener<T extends keyof CallbackTypeMap<TClassDisplayMode>>(type: T): void;
2334
3173
  removeEventListener(type: string): void;
2335
3174
  setDesignId(id: string | null): void;
2336
3175
  setDesignMode(designMode: DesignMode | null): void;
@@ -2348,14 +3187,14 @@ declare module "packages/editor/src/embed/Editor" {
2348
3187
  setTextDirection(textDirection: TextDirection | null): void;
2349
3188
  setTranslations(translations: Translations): void;
2350
3189
  loadBlank(bodyValues?: object): void;
2351
- loadDesign(design: JSONTemplate): void;
2352
- saveDesign(callback: Function, options?: SaveDesignOptions): void;
2353
- exportHtml(callback: (data: ExportHtmlResult) => void, options?: ExportHtmlOptions): void;
2354
- exportLiveHtml(callback: (data: ExportLiveHtmlResult) => void, options?: ExportLiveHtmlOptions): void;
2355
- exportPlainText(callback: (data: ExportPlainTextResult) => void, options?: ExportPlainTextOptions): void;
2356
- exportImage(callback: (data: ExportFromApiResult) => void, options?: ExportImageFromApiOptions): void;
2357
- exportPdf(callback: (data: ExportFromApiResult) => void, options?: ExportPdfFromApiOptions): void;
2358
- exportZip(callback: (data: ExportFromApiResult) => void, options?: ExportZipFromApiOptions): void;
3190
+ loadDesign<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(design: JSONTemplate<TDisplayMode>): void;
3191
+ saveDesign<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: JSONTemplate<TDisplayMode>) => void, options?: SaveDesignOptions): void;
3192
+ exportHtml<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportHtmlResult<TDisplayMode>) => void, options?: ExportHtmlOptions): void;
3193
+ exportLiveHtml<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportLiveHtmlResult<TDisplayMode>) => void, options?: ExportLiveHtmlOptions): void;
3194
+ exportPlainText<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportPlainTextResult<TDisplayMode>) => void, options?: ExportPlainTextOptions): void;
3195
+ exportImage<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportImageFromApiOptions): void;
3196
+ exportPdf<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportPdfFromApiOptions): void;
3197
+ exportZip<TDisplayMode extends DisplayMode | undefined = TClassDisplayMode>(callback: (data: ExportFromApiResult<TDisplayMode>) => void, options?: ExportZipFromApiOptions): void;
2359
3198
  setAppearance(appearance: DeepPartial<AppearanceConfig>): void;
2360
3199
  setTheme(theme: AppearanceConfig['theme']): void;
2361
3200
  setBodyValues(bodyValues: Partial<BodyValues>, bodyId?: number): void;
@@ -2365,7 +3204,7 @@ declare module "packages/editor/src/embed/Editor" {
2365
3204
  showPreview(payload: {
2366
3205
  device?: Device;
2367
3206
  resolution?: number;
2368
- }): void;
3207
+ } | Device): void;
2369
3208
  hidePreview(): void;
2370
3209
  canUndo(callback: (result: boolean) => void): void;
2371
3210
  canRedo(callback: (result: boolean) => void): void;
@@ -2382,22 +3221,28 @@ declare module "packages/editor/src/embed/Editor" {
2382
3221
  setCurrentLanguage(language: string): void;
2383
3222
  setLanguages(languages: Language[]): void;
2384
3223
  setColorPickerConfig(colorPickerConfig: ColorPicker): void;
2385
- registerContainerExporter(): void;
2386
- registerItemExporter(): void;
2387
- registerTool(): void;
2388
- registerPropertyEditor(): void;
2389
- registerTab(): void;
2390
- createPanel(): void;
2391
- createViewer(): void;
2392
- createWidget(): void;
3224
+ registerContainerExporter(_name: Container, _exporter: BodyContainerExporter | RowContainerExporter | ColumnContainerExporter | ContentContainerExporter | null | undefined): void;
3225
+ registerItemExporter(_name: string, _exporter: ItemExporter<Record<string, unknown>> | null | undefined): void;
3226
+ registerTool(_config: ToolDefinition): void;
3227
+ registerPropertyEditor(_config: PropertyEditorConfig): void;
3228
+ registerTab(_config: TabConfig): void;
3229
+ createPanel(_config: PanelConfig): void;
3230
+ createViewer(_config: ViewerConfig): void;
3231
+ createWidget(_config: WidgetConfig): void;
2393
3232
  }
2394
3233
  }
2395
3234
  declare module "packages/editor/src/embed/index" {
2396
3235
  import { Editor } from "packages/editor/src/embed/Editor";
2397
- import { Config } from "packages/editor/src/embed/Config";
3236
+ import type { Config } from "packages/editor/src/embed/Config";
3237
+ import type { DisplayMode } from "packages/editor/src/state/types/types";
2398
3238
  class Embed extends Editor {
2399
- createEditor(config: Config): Editor;
3239
+ createEditor<TDisplayMode extends DisplayMode | undefined = undefined>(config: Config): Editor<TDisplayMode>;
2400
3240
  }
2401
3241
  const _default: Embed;
2402
3242
  export default _default;
3243
+ export type UnlayerEditor<TDisplayMode extends DisplayMode | undefined = undefined> = Editor<TDisplayMode>;
3244
+ export type UnlayerEmbed<TDisplayMode extends DisplayMode | undefined = undefined> = Omit<Embed, keyof Editor> & Editor<TDisplayMode>;
3245
+ export type UnlayerOptions<TDisplayMode extends DisplayMode | undefined = undefined> = Omit<Config, 'displayMode'> & {
3246
+ displayMode?: TDisplayMode extends undefined ? DisplayMode : TDisplayMode;
3247
+ };
2403
3248
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "unlayer-types",
3
- "version": "1.386.0",
3
+ "version": "1.388.0",
4
4
  "license": "MIT"
5
5
  }