textmode.export.js 1.6.0 → 1.7.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 (181) hide show
  1. package/README.md +88 -159
  2. package/dist/textmode.export.esm.js +1 -6090
  3. package/dist/textmode.export.umd.js +1 -68
  4. package/dist/types/augmentations/index.d.ts +0 -1
  5. package/dist/types/augmentations/textmode.d.ts +0 -1
  6. package/dist/types/exporters/base/CharacterResolver.d.ts +0 -1
  7. package/dist/types/exporters/base/DataExtractor.d.ts +0 -1
  8. package/dist/types/exporters/base/FileHandler.d.ts +0 -1
  9. package/dist/types/exporters/base/FramePreparation.d.ts +10 -0
  10. package/dist/types/exporters/base/LayerTarget.d.ts +4 -3
  11. package/dist/types/exporters/base/index.d.ts +1 -1
  12. package/dist/types/exporters/gif/GIFEncoderWorker.d.ts +1 -0
  13. package/dist/types/exporters/gif/GIFExporter.d.ts +7 -27
  14. package/dist/types/exporters/gif/GIFRecorder.d.ts +0 -1
  15. package/dist/types/exporters/gif/GIFWorkerClient.d.ts +15 -0
  16. package/dist/types/exporters/gif/index.d.ts +0 -1
  17. package/dist/types/exporters/gif/types.d.ts +19 -1
  18. package/dist/types/exporters/image/ImageExporter.d.ts +2 -1
  19. package/dist/types/exporters/image/index.d.ts +0 -1
  20. package/dist/types/exporters/image/types.d.ts +2 -1
  21. package/dist/types/exporters/json/JSONDataExtractor.d.ts +0 -1
  22. package/dist/types/exporters/json/JSONExporter.d.ts +0 -1
  23. package/dist/types/exporters/json/index.d.ts +0 -1
  24. package/dist/types/exporters/json/types.d.ts +8 -1
  25. package/dist/types/exporters/svg/SVGContentGenerator.d.ts +0 -1
  26. package/dist/types/exporters/svg/SVGDataExtractor.d.ts +0 -1
  27. package/dist/types/exporters/svg/SVGExporter.d.ts +0 -1
  28. package/dist/types/exporters/svg/SVGPathGenerator.d.ts +0 -1
  29. package/dist/types/exporters/svg/index.d.ts +0 -1
  30. package/dist/types/exporters/svg/types.d.ts +2 -1
  31. package/dist/types/exporters/txt/TXTExporter.d.ts +0 -1
  32. package/dist/types/exporters/txt/index.d.ts +0 -1
  33. package/dist/types/exporters/txt/types.d.ts +2 -1
  34. package/dist/types/exporters/video/VideoExporter.d.ts +2 -2
  35. package/dist/types/exporters/video/VideoFrameDriver.d.ts +0 -1
  36. package/dist/types/exporters/video/VideoRecorder.d.ts +0 -1
  37. package/dist/types/exporters/video/errors.d.ts +0 -1
  38. package/dist/types/exporters/video/index.d.ts +0 -1
  39. package/dist/types/exporters/video/types.d.ts +27 -1
  40. package/dist/types/exporters/video/withAbortableTimeout.d.ts +0 -1
  41. package/dist/types/index.d.ts +15 -31
  42. package/dist/types/overlay/blades/Blade.d.ts +0 -1
  43. package/dist/types/overlay/blades/GIFBlade.d.ts +0 -1
  44. package/dist/types/overlay/blades/ImageBlade.d.ts +0 -1
  45. package/dist/types/overlay/blades/JSONBlade.d.ts +0 -1
  46. package/dist/types/overlay/blades/RecordingBlade.d.ts +0 -1
  47. package/dist/types/overlay/blades/SVGBlade.d.ts +0 -1
  48. package/dist/types/overlay/blades/TextBlade.d.ts +0 -1
  49. package/dist/types/overlay/blades/VideoBlade.d.ts +0 -1
  50. package/dist/types/overlay/blades/index.d.ts +0 -1
  51. package/dist/types/overlay/components/actions/Button.d.ts +0 -1
  52. package/dist/types/overlay/components/base/Component.d.ts +0 -1
  53. package/dist/types/overlay/components/base/Container.d.ts +0 -1
  54. package/dist/types/overlay/components/base/Field.d.ts +0 -1
  55. package/dist/types/overlay/components/display/Header.d.ts +0 -1
  56. package/dist/types/overlay/components/display/StatusDisplay.d.ts +0 -1
  57. package/dist/types/overlay/components/inputs/CheckboxInput.d.ts +0 -1
  58. package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts +0 -1
  59. package/dist/types/overlay/components/inputs/NumberInput.d.ts +0 -1
  60. package/dist/types/overlay/components/inputs/RangeInput.d.ts +0 -1
  61. package/dist/types/overlay/components/inputs/SelectInput.d.ts +0 -1
  62. package/dist/types/overlay/components/inputs/TextInput.d.ts +0 -1
  63. package/dist/types/overlay/config/DefaultsStore.d.ts +0 -1
  64. package/dist/types/overlay/config/ExportDefaults.d.ts +0 -1
  65. package/dist/types/overlay/core/EventBus.d.ts +0 -1
  66. package/dist/types/overlay/core/OverlayController.d.ts +0 -1
  67. package/dist/types/overlay/core/StateManager.d.ts +0 -1
  68. package/dist/types/overlay/formatRegistry.d.ts +0 -1
  69. package/dist/types/overlay/index.d.ts +0 -1
  70. package/dist/types/overlay/models/FormatDefinition.d.ts +0 -1
  71. package/dist/types/overlay/models/OverlayEvents.d.ts +0 -1
  72. package/dist/types/overlay/models/OverlayState.d.ts +0 -1
  73. package/dist/types/overlay/services/ClipboardService.d.ts +0 -1
  74. package/dist/types/overlay/services/ExportService.d.ts +0 -1
  75. package/dist/types/overlay/services/OverlayPositionStorage.d.ts +0 -1
  76. package/dist/types/overlay/services/PositionService.d.ts +0 -1
  77. package/dist/types/overlay/types.d.ts +0 -1
  78. package/dist/types/overlay/utils/classes.d.ts +0 -1
  79. package/dist/types/types.d.ts +109 -23
  80. package/dist/types/utils/pixels.d.ts +0 -1
  81. package/dist/types/version.d.ts +0 -1
  82. package/package.json +77 -45
  83. package/dist/types/augmentations/index.d.ts.map +0 -1
  84. package/dist/types/augmentations/textmode.d.ts.map +0 -1
  85. package/dist/types/augmentations/textmode.test.d.ts +0 -2
  86. package/dist/types/augmentations/textmode.test.d.ts.map +0 -1
  87. package/dist/types/exporters/base/CharacterResolver.d.ts.map +0 -1
  88. package/dist/types/exporters/base/DataExtractor.d.ts.map +0 -1
  89. package/dist/types/exporters/base/FileHandler.d.ts.map +0 -1
  90. package/dist/types/exporters/base/LayerTarget.d.ts.map +0 -1
  91. package/dist/types/exporters/base/index.d.ts.map +0 -1
  92. package/dist/types/exporters/gif/GIFExporter.d.ts.map +0 -1
  93. package/dist/types/exporters/gif/GIFRecorder.d.ts.map +0 -1
  94. package/dist/types/exporters/gif/index.d.ts.map +0 -1
  95. package/dist/types/exporters/gif/types.d.ts.map +0 -1
  96. package/dist/types/exporters/image/ImageExporter.d.ts.map +0 -1
  97. package/dist/types/exporters/image/index.d.ts.map +0 -1
  98. package/dist/types/exporters/image/types.d.ts.map +0 -1
  99. package/dist/types/exporters/json/JSONDataExtractor.d.ts.map +0 -1
  100. package/dist/types/exporters/json/JSONExporter.d.ts.map +0 -1
  101. package/dist/types/exporters/json/JSONExporter.test.d.ts +0 -2
  102. package/dist/types/exporters/json/JSONExporter.test.d.ts.map +0 -1
  103. package/dist/types/exporters/json/index.d.ts.map +0 -1
  104. package/dist/types/exporters/json/types.d.ts.map +0 -1
  105. package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +0 -1
  106. package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +0 -1
  107. package/dist/types/exporters/svg/SVGExporter.d.ts.map +0 -1
  108. package/dist/types/exporters/svg/SVGExporter.test.d.ts +0 -2
  109. package/dist/types/exporters/svg/SVGExporter.test.d.ts.map +0 -1
  110. package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +0 -1
  111. package/dist/types/exporters/svg/index.d.ts.map +0 -1
  112. package/dist/types/exporters/svg/types.d.ts.map +0 -1
  113. package/dist/types/exporters/txt/TXTExporter.d.ts.map +0 -1
  114. package/dist/types/exporters/txt/TXTExporter.test.d.ts +0 -2
  115. package/dist/types/exporters/txt/TXTExporter.test.d.ts.map +0 -1
  116. package/dist/types/exporters/txt/index.d.ts.map +0 -1
  117. package/dist/types/exporters/txt/types.d.ts.map +0 -1
  118. package/dist/types/exporters/video/VideoExporter.d.ts.map +0 -1
  119. package/dist/types/exporters/video/VideoExporter.test.d.ts +0 -2
  120. package/dist/types/exporters/video/VideoExporter.test.d.ts.map +0 -1
  121. package/dist/types/exporters/video/VideoFrameDriver.d.ts.map +0 -1
  122. package/dist/types/exporters/video/VideoFrameDriver.test.d.ts +0 -2
  123. package/dist/types/exporters/video/VideoFrameDriver.test.d.ts.map +0 -1
  124. package/dist/types/exporters/video/VideoRecorder.d.ts.map +0 -1
  125. package/dist/types/exporters/video/VideoRecorder.test.d.ts +0 -2
  126. package/dist/types/exporters/video/VideoRecorder.test.d.ts.map +0 -1
  127. package/dist/types/exporters/video/errors.d.ts.map +0 -1
  128. package/dist/types/exporters/video/index.d.ts.map +0 -1
  129. package/dist/types/exporters/video/types.d.ts.map +0 -1
  130. package/dist/types/exporters/video/withAbortableTimeout.d.ts.map +0 -1
  131. package/dist/types/index.d.ts.map +0 -1
  132. package/dist/types/overlay/blades/Blade.d.ts.map +0 -1
  133. package/dist/types/overlay/blades/GIFBlade.d.ts.map +0 -1
  134. package/dist/types/overlay/blades/ImageBlade.d.ts.map +0 -1
  135. package/dist/types/overlay/blades/JSONBlade.d.ts.map +0 -1
  136. package/dist/types/overlay/blades/RecordingBlade.d.ts.map +0 -1
  137. package/dist/types/overlay/blades/SVGBlade.d.ts.map +0 -1
  138. package/dist/types/overlay/blades/TextBlade.d.ts.map +0 -1
  139. package/dist/types/overlay/blades/VideoBlade.d.ts.map +0 -1
  140. package/dist/types/overlay/blades/index.d.ts.map +0 -1
  141. package/dist/types/overlay/components/actions/Button.d.ts.map +0 -1
  142. package/dist/types/overlay/components/base/Component.d.ts.map +0 -1
  143. package/dist/types/overlay/components/base/Container.d.ts.map +0 -1
  144. package/dist/types/overlay/components/base/Field.d.ts.map +0 -1
  145. package/dist/types/overlay/components/display/Header.d.ts.map +0 -1
  146. package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +0 -1
  147. package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +0 -1
  148. package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts.map +0 -1
  149. package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +0 -1
  150. package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +0 -1
  151. package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +0 -1
  152. package/dist/types/overlay/components/inputs/TextInput.d.ts.map +0 -1
  153. package/dist/types/overlay/config/DefaultsStore.d.ts.map +0 -1
  154. package/dist/types/overlay/config/DefaultsStore.test.d.ts +0 -2
  155. package/dist/types/overlay/config/DefaultsStore.test.d.ts.map +0 -1
  156. package/dist/types/overlay/config/ExportDefaults.d.ts.map +0 -1
  157. package/dist/types/overlay/config/ExportDefaults.test.d.ts +0 -2
  158. package/dist/types/overlay/config/ExportDefaults.test.d.ts.map +0 -1
  159. package/dist/types/overlay/core/EventBus.d.ts.map +0 -1
  160. package/dist/types/overlay/core/OverlayController.d.ts.map +0 -1
  161. package/dist/types/overlay/core/OverlayController.test.d.ts +0 -2
  162. package/dist/types/overlay/core/OverlayController.test.d.ts.map +0 -1
  163. package/dist/types/overlay/core/StateManager.d.ts.map +0 -1
  164. package/dist/types/overlay/formatRegistry.d.ts.map +0 -1
  165. package/dist/types/overlay/formatRegistry.test.d.ts +0 -2
  166. package/dist/types/overlay/formatRegistry.test.d.ts.map +0 -1
  167. package/dist/types/overlay/index.d.ts.map +0 -1
  168. package/dist/types/overlay/models/FormatDefinition.d.ts.map +0 -1
  169. package/dist/types/overlay/models/OverlayEvents.d.ts.map +0 -1
  170. package/dist/types/overlay/models/OverlayState.d.ts.map +0 -1
  171. package/dist/types/overlay/services/ClipboardService.d.ts.map +0 -1
  172. package/dist/types/overlay/services/ExportService.d.ts.map +0 -1
  173. package/dist/types/overlay/services/OverlayPositionStorage.d.ts.map +0 -1
  174. package/dist/types/overlay/services/PositionService.d.ts.map +0 -1
  175. package/dist/types/overlay/services/PositionService.test.d.ts +0 -2
  176. package/dist/types/overlay/services/PositionService.test.d.ts.map +0 -1
  177. package/dist/types/overlay/types.d.ts.map +0 -1
  178. package/dist/types/overlay/utils/classes.d.ts.map +0 -1
  179. package/dist/types/types.d.ts.map +0 -1
  180. package/dist/types/utils/pixels.d.ts.map +0 -1
  181. package/dist/types/version.d.ts.map +0 -1
@@ -14,4 +14,3 @@ export declare class TextBlade extends Blade<TXTExportOptions> {
14
14
  refreshLayerTargets(): void;
15
15
  private applyDefaults;
16
16
  }
17
- //# sourceMappingURL=TextBlade.d.ts.map
@@ -29,4 +29,3 @@ export declare class VideoBlade extends Blade<VideoExportOptions> {
29
29
  private readonly handleFormatChange;
30
30
  private syncTransparencyAvailability;
31
31
  }
32
- //# sourceMappingURL=VideoBlade.d.ts.map
@@ -8,4 +8,3 @@ export { GIFBlade } from './GIFBlade';
8
8
  export { VideoBlade } from './VideoBlade';
9
9
  export { isRecordingBlade } from './RecordingBlade';
10
10
  export type { RecordingBladeLike } from './RecordingBlade';
11
- //# sourceMappingURL=index.d.ts.map
@@ -16,4 +16,3 @@ export declare class Button extends Component<ButtonProps> {
16
16
  setDisabled(disabled: boolean): void;
17
17
  protected onUpdate(props: ButtonProps): void;
18
18
  }
19
- //# sourceMappingURL=Button.d.ts.map
@@ -15,4 +15,3 @@ export declare abstract class Component<TProps = void> {
15
15
  get root(): HTMLElement;
16
16
  isMounted(): boolean;
17
17
  }
18
- //# sourceMappingURL=Component.d.ts.map
@@ -6,4 +6,3 @@ export declare class Container extends Component<void> {
6
6
  constructor(variant?: ContainerVariant, additionalClasses?: string[]);
7
7
  render(): HTMLElement;
8
8
  }
9
- //# sourceMappingURL=Container.d.ts.map
@@ -14,4 +14,3 @@ export declare class Field extends Component<FieldProps> {
14
14
  protected onUpdate(props: FieldProps): void;
15
15
  private applyVariant;
16
16
  }
17
- //# sourceMappingURL=Field.d.ts.map
@@ -8,4 +8,3 @@ export declare class Header extends Component<void> {
8
8
  private _createLink;
9
9
  private _createIcon;
10
10
  }
11
- //# sourceMappingURL=Header.d.ts.map
@@ -16,4 +16,3 @@ export declare class StatusDisplay extends Component<StatusDisplayProps> {
16
16
  protected onUpdate(props: StatusDisplayProps): void;
17
17
  private applyVariant;
18
18
  }
19
- //# sourceMappingURL=StatusDisplay.d.ts.map
@@ -17,4 +17,3 @@ export declare class CheckboxInput extends Component<CheckboxInputProps> {
17
17
  protected _onUnmount(): void;
18
18
  protected onUpdate(props: CheckboxInputProps): void;
19
19
  }
20
- //# sourceMappingURL=CheckboxInput.d.ts.map
@@ -17,4 +17,3 @@ export declare class LayerTargetSelect extends Component<void> {
17
17
  protected _onUnmount(): void;
18
18
  protected _onDestroy(): void;
19
19
  }
20
- //# sourceMappingURL=LayerTargetSelect.d.ts.map
@@ -29,4 +29,3 @@ export declare class NumberInput extends Component<NumberInputProps> {
29
29
  private updateDisplay;
30
30
  private clearHoldTimers;
31
31
  }
32
- //# sourceMappingURL=NumberInput.d.ts.map
@@ -32,4 +32,3 @@ export declare class RangeInput extends Component<RangeInputProps> {
32
32
  private getMax;
33
33
  private getCurrentValue;
34
34
  }
35
- //# sourceMappingURL=RangeInput.d.ts.map
@@ -22,4 +22,3 @@ export declare class SelectInput<TValue extends string = string> extends Compone
22
22
  update(partial: Partial<SelectInputProps<TValue>>): void;
23
23
  private populateOptions;
24
24
  }
25
- //# sourceMappingURL=SelectInput.d.ts.map
@@ -16,4 +16,3 @@ export declare class TextInput extends Component<TextInputProps> {
16
16
  protected _onUnmount(): void;
17
17
  protected onUpdate(props: TextInputProps): void;
18
18
  }
19
- //# sourceMappingURL=TextInput.d.ts.map
@@ -9,4 +9,3 @@ export declare class DefaultsStore {
9
9
  merge(patch: ExportDefaultsPatch): void;
10
10
  reset(target?: ExportDefaultsResetTarget): void;
11
11
  }
12
- //# sourceMappingURL=DefaultsStore.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { ExportDefaults } from '../types';
2
2
  export declare const CURATED_DEFAULTS: Readonly<ExportDefaults>;
3
3
  export declare function createExportDefaults(): ExportDefaults;
4
- //# sourceMappingURL=ExportDefaults.d.ts.map
@@ -8,4 +8,3 @@ export declare class EventBus<TEvents extends EventMap> {
8
8
  $clear(): void;
9
9
  }
10
10
  export {};
11
- //# sourceMappingURL=EventBus.d.ts.map
@@ -74,4 +74,3 @@ export declare class OverlayController {
74
74
  private _handleCopyClick;
75
75
  private _updateExportButton;
76
76
  }
77
- //# sourceMappingURL=OverlayController.d.ts.map
@@ -8,4 +8,3 @@ export declare class StateManager<TState extends object> {
8
8
  $subscribe(listener: StateListener<TState>): () => void;
9
9
  $reset(state: TState): void;
10
10
  }
11
- //# sourceMappingURL=StateManager.d.ts.map
@@ -4,4 +4,3 @@ import type { LayerTargetProvider } from '../exporters/base';
4
4
  import type { ExportDefaults } from './types';
5
5
  export type ExportDefaultsProvider = <TFormat extends ExportFormat>(format: TFormat) => ExportDefaults[TFormat];
6
6
  export declare function getExportFormatDefinitions(layerTargetProvider?: LayerTargetProvider, getDefaults?: ExportDefaultsProvider): ReadonlyArray<FormatDefinition<ExportFormat>>;
7
- //# sourceMappingURL=formatRegistry.d.ts.map
@@ -11,4 +11,3 @@ import { OverlayController } from './core/OverlayController';
11
11
  * @returns The overlay controller instance.
12
12
  */
13
13
  export declare function createExportOverlay(textmodifier: Textmodifier, exportAPI: TextmodeExportAPI, layerTargetProvider?: LayerTargetProvider): OverlayController;
14
- //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,3 @@ export interface FormatDefinition<TFormat extends ExportFormat = ExportFormat> {
6
6
  readonly supportsClipboard: boolean;
7
7
  createBlade(): Blade<ExportOptionsMap[TFormat]>;
8
8
  }
9
- //# sourceMappingURL=FormatDefinition.d.ts.map
@@ -23,4 +23,3 @@ export interface OverlayEvents extends Record<string, unknown> {
23
23
  format: ExportFormat;
24
24
  };
25
25
  }
26
- //# sourceMappingURL=OverlayEvents.d.ts.map
@@ -13,4 +13,3 @@ export interface OverlayState {
13
13
  error?: Error;
14
14
  }
15
15
  export declare const createInitialOverlayState: (initialFormat: ExportFormat) => OverlayState;
16
- //# sourceMappingURL=OverlayState.d.ts.map
@@ -8,4 +8,3 @@ export declare class ClipboardService {
8
8
  static isClipboardFormat(format: ExportFormat): format is ClipboardExportFormat;
9
9
  }
10
10
  export {};
11
- //# sourceMappingURL=ClipboardService.d.ts.map
@@ -14,4 +14,3 @@ export declare class ExportService {
14
14
  constructor(api: TextmodeExportAPI, events: EventBus<OverlayEvents>);
15
15
  $requestExport(format: ExportFormat, options: unknown, hooks?: ExportHooks): Promise<void>;
16
16
  }
17
- //# sourceMappingURL=ExportService.d.ts.map
@@ -10,4 +10,3 @@ export declare class OverlayPositionStorage {
10
10
  save(offsetX: number, offsetY: number): void;
11
11
  clear(): void;
12
12
  }
13
- //# sourceMappingURL=OverlayPositionStorage.d.ts.map
@@ -42,4 +42,3 @@ export declare class PositionService {
42
42
  dispose(): void;
43
43
  }
44
44
  export {};
45
- //# sourceMappingURL=PositionService.d.ts.map
@@ -48,4 +48,3 @@ export type ExportDefaultsPatch = {
48
48
  } & {
49
49
  [K in ExportFormat]?: Partial<ExportDefaults[K]>;
50
50
  };
51
- //# sourceMappingURL=types.d.ts.map
@@ -35,4 +35,3 @@ export declare const overlayClasses: {
35
35
  readonly supportIcon: "textmode-export-overlay__support-icon";
36
36
  readonly linkIcon: "textmode-export-overlay__link-icon";
37
37
  };
38
- //# sourceMappingURL=classes.d.ts.map
@@ -4,11 +4,53 @@ import type { SVGExportOptions } from './exporters/svg';
4
4
  import type { GIFExportOptions } from './exporters/gif';
5
5
  import type { VideoBitratePreset, VideoExportOptions } from './exporters/video';
6
6
  import type { JSONExportOptions, TextmodeDocumentJSON } from './exporters/json';
7
+ /**
8
+ * Default TXT export fields controlled by the export overlay.
9
+ *
10
+ * @category Overlay
11
+ *
12
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TXTOverlayDefaults | TXTOverlayDefaults API reference}
13
+ */
7
14
  export type TXTOverlayDefaults = Pick<TXTExportOptions, 'preserveTrailingSpaces' | 'emptyCharacter'>;
15
+ /**
16
+ * Default JSON export fields controlled by the export overlay.
17
+ *
18
+ * @category Overlay
19
+ *
20
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONOverlayDefaults | JSONOverlayDefaults API reference}
21
+ */
8
22
  export type JSONOverlayDefaults = Pick<JSONExportOptions, 'target' | 'pretty' | 'includeMetadata' | 'colorMode'>;
23
+ /**
24
+ * Default image export fields controlled by the export overlay.
25
+ *
26
+ * @category Overlay
27
+ *
28
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageOverlayDefaults | ImageOverlayDefaults API reference}
29
+ */
9
30
  export type ImageOverlayDefaults = Pick<ImageExportOptions, 'format' | 'scale'>;
31
+ /**
32
+ * Default SVG export fields controlled by the export overlay.
33
+ *
34
+ * @category Overlay
35
+ *
36
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/SVGOverlayDefaults | SVGOverlayDefaults API reference}
37
+ */
10
38
  export type SVGOverlayDefaults = Pick<SVGExportOptions, 'includeBackgroundRectangles' | 'drawMode' | 'strokeWidth'>;
39
+ /**
40
+ * Default GIF export fields controlled by the export overlay.
41
+ *
42
+ * @category Overlay
43
+ *
44
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFOverlayDefaults | GIFOverlayDefaults API reference}
45
+ */
11
46
  export type GIFOverlayDefaults = Pick<GIFExportOptions, 'frameCount' | 'frameRate' | 'scale' | 'repeat'>;
47
+ /**
48
+ * Default video export fields controlled by the export overlay.
49
+ *
50
+ * @category Overlay
51
+ *
52
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoOverlayDefaults | VideoOverlayDefaults API reference}
53
+ */
12
54
  export type VideoOverlayDefaults = Pick<VideoExportOptions, 'format' | 'frameCount' | 'frameRate' | 'bitrateMode' | 'latencyMode' | 'hardwareAcceleration' | 'keyFrameInterval' | 'transparent'> & {
13
55
  bitrate?: VideoBitratePreset;
14
56
  };
@@ -22,13 +64,15 @@ export type VideoOverlayDefaults = Pick<VideoExportOptions, 'format' | 'frameCou
22
64
  * {@link ExportOverlayController.getDefaults} and
23
65
  * {@link ExportOverlayController.setDefaults}.
24
66
  *
67
+ * @category Overlay
68
+ *
25
69
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaults | ExportDefaults API reference}
26
70
  */
27
71
  export type ExportDefaults = {
28
72
  /**
29
73
  * Export format selected by default in the overlay.
30
74
  *
31
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaults | ExportDefaults API reference}
75
+ * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ExportDefaults#format | ExportDefaults.format API reference}
32
76
  */
33
77
  format: 'txt' | 'json' | 'image' | 'gif' | 'video' | 'svg';
34
78
  txt: TXTOverlayDefaults;
@@ -45,6 +89,8 @@ export type ExportDefaults = {
45
89
  * format's curated defaults. Top-level `format` changes the overlay's selected
46
90
  * format. Omitted keys keep their current value.
47
91
  *
92
+ * @category Overlay
93
+ *
48
94
  * @example
49
95
  * ```ts
50
96
  * t.exportOverlay.setDefaults({ format: 'image', image: { scale: 2 }, gif: { frameRate: 30 } });
@@ -63,6 +109,8 @@ export type ExportDefaultsPatch = {
63
109
  * `auto` means the overlay is using the library default offset from the
64
110
  * textmode canvas. `custom` means the user or runtime API has moved it.
65
111
  *
112
+ * @category Overlay
113
+ *
66
114
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayPosition | ExportOverlayPosition API reference}
67
115
  */
68
116
  export interface ExportOverlayPosition {
@@ -73,6 +121,8 @@ export interface ExportOverlayPosition {
73
121
  /**
74
122
  * Canvas-relative placement coordinates for the export overlay UI.
75
123
  *
124
+ * @category Overlay
125
+ *
76
126
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayPositionInput | ExportOverlayPositionInput API reference}
77
127
  */
78
128
  export interface ExportOverlayPositionInput {
@@ -82,6 +132,8 @@ export interface ExportOverlayPositionInput {
82
132
  /**
83
133
  * Controller for managing the export overlay UI visibility at runtime.
84
134
  *
135
+ * @category Overlay
136
+ *
85
137
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController | ExportOverlayController API reference}
86
138
  */
87
139
  export interface ExportOverlayController {
@@ -93,7 +145,7 @@ export interface ExportOverlayController {
93
145
  * t.exportOverlay.show();
94
146
  * ```
95
147
  *
96
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/show | ExportOverlayController.show API reference}
148
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#show | ExportOverlayController.show API reference}
97
149
  */
98
150
  show(): void;
99
151
  /**
@@ -104,7 +156,7 @@ export interface ExportOverlayController {
104
156
  * t.exportOverlay.hide();
105
157
  * ```
106
158
  *
107
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/hide | ExportOverlayController.hide API reference}
159
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#hide | ExportOverlayController.hide API reference}
108
160
  */
109
161
  hide(): void;
110
162
  /**
@@ -115,7 +167,7 @@ export interface ExportOverlayController {
115
167
  * t.exportOverlay.toggle();
116
168
  * ```
117
169
  *
118
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/toggle | ExportOverlayController.toggle API reference}
170
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#toggle | ExportOverlayController.toggle API reference}
119
171
  */
120
172
  toggle(): void;
121
173
  /**
@@ -126,7 +178,7 @@ export interface ExportOverlayController {
126
178
  * const visible = t.exportOverlay.isVisible();
127
179
  * ```
128
180
  *
129
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/isVisible | ExportOverlayController.isVisible API reference}
181
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#isvisible | ExportOverlayController.isVisible API reference}
130
182
  */
131
183
  isVisible(): boolean;
132
184
  /**
@@ -138,7 +190,7 @@ export interface ExportOverlayController {
138
190
  * t.exportOverlay.resetPosition();
139
191
  * ```
140
192
  *
141
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/resetPosition | ExportOverlayController.resetPosition API reference}
193
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#resetposition | ExportOverlayController.resetPosition API reference}
142
194
  */
143
195
  resetPosition(): void;
144
196
  /**
@@ -152,7 +204,7 @@ export interface ExportOverlayController {
152
204
  * console.log(position.mode, position.offsetX, position.offsetY);
153
205
  * ```
154
206
  *
155
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/getPosition | ExportOverlayController.getPosition API reference}
207
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#getposition | ExportOverlayController.getPosition API reference}
156
208
  */
157
209
  getPosition(): Readonly<ExportOverlayPosition>;
158
210
  /**
@@ -166,7 +218,7 @@ export interface ExportOverlayController {
166
218
  * t.exportOverlay.setPosition({ offsetX: 24, offsetY: 24 });
167
219
  * ```
168
220
  *
169
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/setPosition | ExportOverlayController.setPosition API reference}
221
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#setposition | ExportOverlayController.setPosition API reference}
170
222
  */
171
223
  setPosition(position: ExportOverlayPositionInput): void;
172
224
  /**
@@ -184,7 +236,7 @@ export interface ExportOverlayController {
184
236
  * t.exportOverlay.setDefaults({ format: 'image', image: { scale: 2 }, gif: { frameRate: 30 } });
185
237
  * ```
186
238
  *
187
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/setDefaults | ExportOverlayController.setDefaults API reference}
239
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#setdefaults | ExportOverlayController.setDefaults API reference}
188
240
  */
189
241
  setDefaults(patch: ExportDefaultsPatch): void;
190
242
  /**
@@ -201,7 +253,7 @@ export interface ExportOverlayController {
201
253
  * console.log(defaults.image.scale); // 1 (or whatever was set)
202
254
  * ```
203
255
  *
204
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/getDefaults | ExportOverlayController.getDefaults API reference}
256
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#getdefaults | ExportOverlayController.getDefaults API reference}
205
257
  */
206
258
  getDefaults(): Readonly<ExportDefaults>;
207
259
  /**
@@ -224,13 +276,15 @@ export interface ExportOverlayController {
224
276
  * t.exportOverlay.resetDefaults();
225
277
  * ```
226
278
  *
227
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/resetDefaults | ExportOverlayController.resetDefaults API reference}
279
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController#resetdefaults | ExportOverlayController.resetDefaults API reference}
228
280
  */
229
281
  resetDefaults(format?: keyof ExportDefaults): void;
230
282
  }
231
283
  /**
232
284
  * Runtime export helpers that `ExportPlugin` attaches to the `Textmodifier` instance.
233
285
  *
286
+ * @category Workflow
287
+ *
234
288
  * @example
235
289
  * {@includeCode ../examples/ExportPlugin/layerTargets/sketch.js}
236
290
  *
@@ -253,9 +307,20 @@ export interface TextmodeExportAPI {
253
307
  * await t.saveCanvas({ format: 'png', filename: 'frame-001' });
254
308
  * ```
255
309
  *
256
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveCanvas | TextmodeExportAPI.saveCanvas API reference}
310
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savecanvas | TextmodeExportAPI.saveCanvas API reference}
257
311
  */
258
312
  saveCanvas(options?: ImageExportOptions): Promise<void>;
313
+ /**
314
+ * Generates the current canvas as an image blob without downloading it.
315
+ *
316
+ * @example
317
+ * ```ts
318
+ * const blob = await t.toImageBlob({ format: 'webp', scale: 2 });
319
+ * ```
320
+ *
321
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#toimageblob | TextmodeExportAPI.toImageBlob API reference}
322
+ */
323
+ toImageBlob(options?: ImageExportOptions): Promise<Blob>;
259
324
  /**
260
325
  * Copies the current canvas to the user's clipboard as an image.
261
326
  *
@@ -266,7 +331,7 @@ export interface TextmodeExportAPI {
266
331
  * await t.copyCanvas({ format: 'png' });
267
332
  * ```
268
333
  *
269
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/copyCanvas | TextmodeExportAPI.copyCanvas API reference}
334
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#copycanvas | TextmodeExportAPI.copyCanvas API reference}
270
335
  */
271
336
  copyCanvas(options?: ImageExportOptions): Promise<void>;
272
337
  /**
@@ -279,7 +344,7 @@ export interface TextmodeExportAPI {
279
344
  * t.saveSVG({ filename: 'poster', layer: t.layers.base, includeBackgroundRectangles: true });
280
345
  * ```
281
346
  *
282
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveSVG | TextmodeExportAPI.saveSVG API reference}
347
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savesvg | TextmodeExportAPI.saveSVG API reference}
283
348
  */
284
349
  saveSVG(options?: SVGExportOptions): void;
285
350
  /**
@@ -292,7 +357,7 @@ export interface TextmodeExportAPI {
292
357
  * t.saveStrings({ filename: 'frame', layer: t.layers.base, preserveTrailingSpaces: true });
293
358
  * ```
294
359
  *
295
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveStrings | TextmodeExportAPI.saveStrings API reference}
360
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savestrings | TextmodeExportAPI.saveStrings API reference}
296
361
  */
297
362
  saveStrings(options?: TXTExportOptions): void;
298
363
  /**
@@ -306,7 +371,7 @@ export interface TextmodeExportAPI {
306
371
  * const svg = t.toSVG({ layer: t.layers.base, drawMode: 'stroke', strokeWidth: 1.5 });
307
372
  * ```
308
373
  *
309
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toSVG | TextmodeExportAPI.toSVG API reference}
374
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#tosvg | TextmodeExportAPI.toSVG API reference}
310
375
  */
311
376
  toSVG(options?: SVGExportOptions): string;
312
377
  /**
@@ -320,7 +385,7 @@ export interface TextmodeExportAPI {
320
385
  * const text = t.toString({ layer: t.layers.base, preserveTrailingSpaces: false });
321
386
  * ```
322
387
  *
323
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toString | TextmodeExportAPI.toString API reference}
388
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#tostring | TextmodeExportAPI.toString API reference}
324
389
  */
325
390
  toString(options?: TXTExportOptions): string;
326
391
  /**
@@ -335,7 +400,7 @@ export interface TextmodeExportAPI {
335
400
  * const stack = t.toJSON({ target: 'all' });
336
401
  * ```
337
402
  *
338
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toJSON | TextmodeExportAPI.toJSON API reference}
403
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#tojson | TextmodeExportAPI.toJSON API reference}
339
404
  */
340
405
  toJSON(options?: JSONExportOptions): TextmodeDocumentJSON;
341
406
  /**
@@ -350,7 +415,7 @@ export interface TextmodeExportAPI {
350
415
  * const stackJson = t.toJSONString({ target: 'all' });
351
416
  * ```
352
417
  *
353
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toJSONString | TextmodeExportAPI.toJSONString API reference}
418
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#tojsonstring | TextmodeExportAPI.toJSONString API reference}
354
419
  */
355
420
  toJSONString(options?: JSONExportOptions): string;
356
421
  /**
@@ -364,7 +429,7 @@ export interface TextmodeExportAPI {
364
429
  * t.saveJSON({ filename: 'stack', target: 'all' });
365
430
  * ```
366
431
  *
367
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveJSON | TextmodeExportAPI.saveJSON API reference}
432
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savejson | TextmodeExportAPI.saveJSON API reference}
368
433
  */
369
434
  saveJSON(options?: JSONExportOptions): void;
370
435
  /**
@@ -377,9 +442,20 @@ export interface TextmodeExportAPI {
377
442
  * await t.saveGIF({ frameCount: 120, frameRate: 30, filename: 'loop' });
378
443
  * ```
379
444
  *
380
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveGIF | TextmodeExportAPI.saveGIF API reference}
445
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savegif | TextmodeExportAPI.saveGIF API reference}
381
446
  */
382
447
  saveGIF(options?: GIFExportOptions): Promise<void>;
448
+ /**
449
+ * Generates an animated GIF blob without downloading it.
450
+ *
451
+ * @example
452
+ * ```ts
453
+ * const blob = await t.toGIFBlob({ frameCount: 90, frameRate: 30 });
454
+ * ```
455
+ *
456
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#togifblob | TextmodeExportAPI.toGIFBlob API reference}
457
+ */
458
+ toGIFBlob(options?: GIFExportOptions): Promise<Blob>;
383
459
  /**
384
460
  * Captures a video and saves it to disk *(`'mp4'` by default)*.
385
461
  *
@@ -399,8 +475,18 @@ export interface TextmodeExportAPI {
399
475
  * });
400
476
  * ```
401
477
  *
402
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveVideo | TextmodeExportAPI.saveVideo API reference}
478
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#savevideo | TextmodeExportAPI.saveVideo API reference}
403
479
  */
404
480
  saveVideo(options?: VideoExportOptions): Promise<void>;
481
+ /**
482
+ * Generates a video blob without downloading it.
483
+ *
484
+ * @example
485
+ * ```ts
486
+ * const blob = await t.toVideoBlob({ format: 'webm', frameCount: 120, frameRate: 30 });
487
+ * ```
488
+ *
489
+ * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#tovideoblob | TextmodeExportAPI.toVideoBlob API reference}
490
+ */
491
+ toVideoBlob(options?: VideoExportOptions): Promise<Blob>;
405
492
  }
406
- //# sourceMappingURL=types.d.ts.map
@@ -11,4 +11,3 @@ export declare function pixelsToRGBA(pixels: Uint8Array, index: number): {
11
11
  b: number;
12
12
  a: number;
13
13
  };
14
- //# sourceMappingURL=pixels.d.ts.map
@@ -1,2 +1 @@
1
1
  export declare const TEXTMODE_EXPORT_VERSION = "1.2.1";
2
- //# sourceMappingURL=version.d.ts.map