textmode.export.js 1.6.0 → 1.7.1

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 -26
  14. package/dist/types/exporters/gif/GIFRecorder.d.ts +2 -3
  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 +4 -4
  35. package/dist/types/exporters/video/VideoFrameDriver.d.ts +3 -3
  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 +34 -6
  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/SelectInput.d.ts +0 -1
  61. package/dist/types/overlay/components/inputs/TextInput.d.ts +0 -1
  62. package/dist/types/overlay/config/DefaultsStore.d.ts +0 -1
  63. package/dist/types/overlay/config/ExportDefaults.d.ts +0 -1
  64. package/dist/types/overlay/core/EventBus.d.ts +0 -1
  65. package/dist/types/overlay/core/OverlayController.d.ts +0 -1
  66. package/dist/types/overlay/core/StateManager.d.ts +0 -1
  67. package/dist/types/overlay/formatRegistry.d.ts +0 -1
  68. package/dist/types/overlay/index.d.ts +0 -1
  69. package/dist/types/overlay/models/FormatDefinition.d.ts +0 -1
  70. package/dist/types/overlay/models/OverlayEvents.d.ts +0 -1
  71. package/dist/types/overlay/models/OverlayState.d.ts +0 -1
  72. package/dist/types/overlay/services/ClipboardService.d.ts +0 -1
  73. package/dist/types/overlay/services/ExportService.d.ts +0 -1
  74. package/dist/types/overlay/services/OverlayPositionStorage.d.ts +0 -1
  75. package/dist/types/overlay/services/PositionService.d.ts +0 -1
  76. package/dist/types/overlay/types.d.ts +0 -1
  77. package/dist/types/overlay/utils/classes.d.ts +0 -1
  78. package/dist/types/types.d.ts +109 -23
  79. package/dist/types/utils/pixels.d.ts +0 -1
  80. package/package.json +47 -61
  81. package/dist/types/augmentations/index.d.ts.map +0 -1
  82. package/dist/types/augmentations/textmode.d.ts.map +0 -1
  83. package/dist/types/augmentations/textmode.test.d.ts +0 -2
  84. package/dist/types/augmentations/textmode.test.d.ts.map +0 -1
  85. package/dist/types/exporters/base/CharacterResolver.d.ts.map +0 -1
  86. package/dist/types/exporters/base/DataExtractor.d.ts.map +0 -1
  87. package/dist/types/exporters/base/FileHandler.d.ts.map +0 -1
  88. package/dist/types/exporters/base/LayerTarget.d.ts.map +0 -1
  89. package/dist/types/exporters/base/index.d.ts.map +0 -1
  90. package/dist/types/exporters/gif/GIFExporter.d.ts.map +0 -1
  91. package/dist/types/exporters/gif/GIFRecorder.d.ts.map +0 -1
  92. package/dist/types/exporters/gif/index.d.ts.map +0 -1
  93. package/dist/types/exporters/gif/types.d.ts.map +0 -1
  94. package/dist/types/exporters/image/ImageExporter.d.ts.map +0 -1
  95. package/dist/types/exporters/image/index.d.ts.map +0 -1
  96. package/dist/types/exporters/image/types.d.ts.map +0 -1
  97. package/dist/types/exporters/json/JSONDataExtractor.d.ts.map +0 -1
  98. package/dist/types/exporters/json/JSONExporter.d.ts.map +0 -1
  99. package/dist/types/exporters/json/JSONExporter.test.d.ts +0 -2
  100. package/dist/types/exporters/json/JSONExporter.test.d.ts.map +0 -1
  101. package/dist/types/exporters/json/index.d.ts.map +0 -1
  102. package/dist/types/exporters/json/types.d.ts.map +0 -1
  103. package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +0 -1
  104. package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +0 -1
  105. package/dist/types/exporters/svg/SVGExporter.d.ts.map +0 -1
  106. package/dist/types/exporters/svg/SVGExporter.test.d.ts +0 -2
  107. package/dist/types/exporters/svg/SVGExporter.test.d.ts.map +0 -1
  108. package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +0 -1
  109. package/dist/types/exporters/svg/index.d.ts.map +0 -1
  110. package/dist/types/exporters/svg/types.d.ts.map +0 -1
  111. package/dist/types/exporters/txt/TXTExporter.d.ts.map +0 -1
  112. package/dist/types/exporters/txt/TXTExporter.test.d.ts +0 -2
  113. package/dist/types/exporters/txt/TXTExporter.test.d.ts.map +0 -1
  114. package/dist/types/exporters/txt/index.d.ts.map +0 -1
  115. package/dist/types/exporters/txt/types.d.ts.map +0 -1
  116. package/dist/types/exporters/video/VideoExporter.d.ts.map +0 -1
  117. package/dist/types/exporters/video/VideoExporter.test.d.ts +0 -2
  118. package/dist/types/exporters/video/VideoExporter.test.d.ts.map +0 -1
  119. package/dist/types/exporters/video/VideoFrameDriver.d.ts.map +0 -1
  120. package/dist/types/exporters/video/VideoFrameDriver.test.d.ts +0 -2
  121. package/dist/types/exporters/video/VideoFrameDriver.test.d.ts.map +0 -1
  122. package/dist/types/exporters/video/VideoRecorder.d.ts.map +0 -1
  123. package/dist/types/exporters/video/VideoRecorder.test.d.ts +0 -2
  124. package/dist/types/exporters/video/VideoRecorder.test.d.ts.map +0 -1
  125. package/dist/types/exporters/video/errors.d.ts.map +0 -1
  126. package/dist/types/exporters/video/index.d.ts.map +0 -1
  127. package/dist/types/exporters/video/types.d.ts.map +0 -1
  128. package/dist/types/exporters/video/withAbortableTimeout.d.ts.map +0 -1
  129. package/dist/types/index.d.ts.map +0 -1
  130. package/dist/types/overlay/blades/Blade.d.ts.map +0 -1
  131. package/dist/types/overlay/blades/GIFBlade.d.ts.map +0 -1
  132. package/dist/types/overlay/blades/ImageBlade.d.ts.map +0 -1
  133. package/dist/types/overlay/blades/JSONBlade.d.ts.map +0 -1
  134. package/dist/types/overlay/blades/RecordingBlade.d.ts.map +0 -1
  135. package/dist/types/overlay/blades/SVGBlade.d.ts.map +0 -1
  136. package/dist/types/overlay/blades/TextBlade.d.ts.map +0 -1
  137. package/dist/types/overlay/blades/VideoBlade.d.ts.map +0 -1
  138. package/dist/types/overlay/blades/index.d.ts.map +0 -1
  139. package/dist/types/overlay/components/actions/Button.d.ts.map +0 -1
  140. package/dist/types/overlay/components/base/Component.d.ts.map +0 -1
  141. package/dist/types/overlay/components/base/Container.d.ts.map +0 -1
  142. package/dist/types/overlay/components/base/Field.d.ts.map +0 -1
  143. package/dist/types/overlay/components/display/Header.d.ts.map +0 -1
  144. package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +0 -1
  145. package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +0 -1
  146. package/dist/types/overlay/components/inputs/LayerTargetSelect.d.ts.map +0 -1
  147. package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +0 -1
  148. package/dist/types/overlay/components/inputs/RangeInput.d.ts +0 -35
  149. package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +0 -1
  150. package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +0 -1
  151. package/dist/types/overlay/components/inputs/TextInput.d.ts.map +0 -1
  152. package/dist/types/overlay/config/DefaultsStore.d.ts.map +0 -1
  153. package/dist/types/overlay/config/DefaultsStore.test.d.ts +0 -2
  154. package/dist/types/overlay/config/DefaultsStore.test.d.ts.map +0 -1
  155. package/dist/types/overlay/config/ExportDefaults.d.ts.map +0 -1
  156. package/dist/types/overlay/config/ExportDefaults.test.d.ts +0 -2
  157. package/dist/types/overlay/config/ExportDefaults.test.d.ts.map +0 -1
  158. package/dist/types/overlay/core/EventBus.d.ts.map +0 -1
  159. package/dist/types/overlay/core/OverlayController.d.ts.map +0 -1
  160. package/dist/types/overlay/core/OverlayController.test.d.ts +0 -2
  161. package/dist/types/overlay/core/OverlayController.test.d.ts.map +0 -1
  162. package/dist/types/overlay/core/StateManager.d.ts.map +0 -1
  163. package/dist/types/overlay/formatRegistry.d.ts.map +0 -1
  164. package/dist/types/overlay/formatRegistry.test.d.ts +0 -2
  165. package/dist/types/overlay/formatRegistry.test.d.ts.map +0 -1
  166. package/dist/types/overlay/index.d.ts.map +0 -1
  167. package/dist/types/overlay/models/FormatDefinition.d.ts.map +0 -1
  168. package/dist/types/overlay/models/OverlayEvents.d.ts.map +0 -1
  169. package/dist/types/overlay/models/OverlayState.d.ts.map +0 -1
  170. package/dist/types/overlay/services/ClipboardService.d.ts.map +0 -1
  171. package/dist/types/overlay/services/ExportService.d.ts.map +0 -1
  172. package/dist/types/overlay/services/OverlayPositionStorage.d.ts.map +0 -1
  173. package/dist/types/overlay/services/PositionService.d.ts.map +0 -1
  174. package/dist/types/overlay/services/PositionService.test.d.ts +0 -2
  175. package/dist/types/overlay/services/PositionService.test.d.ts.map +0 -1
  176. package/dist/types/overlay/types.d.ts.map +0 -1
  177. package/dist/types/overlay/utils/classes.d.ts.map +0 -1
  178. package/dist/types/types.d.ts.map +0 -1
  179. package/dist/types/utils/pixels.d.ts.map +0 -1
  180. package/dist/types/version.d.ts +0 -2
  181. package/dist/types/version.d.ts.map +0 -1
@@ -1,50 +1,35 @@
1
1
  /**
2
2
  * @packageDocumentation
3
3
  *
4
- * Export plugin for textmode.js - save artworks as images, videos, SVG, JSON, and text.
4
+ * Export finished textmode.js artworks without leaving the sketch.
5
5
  *
6
- * This plugin adds comprehensive export capabilities to textmode.js instances,
7
- * allowing you to save your generative artworks in multiple formats with a
8
- * convenient overlay UI for quick access to all export options.
6
+ * ## Choose an output
9
7
  *
10
- * ## Available export formats
8
+ * Use **canvas capture** for the exact image on screen: PNG, JPEG, WebP, GIF,
9
+ * or video preserve compositing, filters, shaders, and post-processing. Use
10
+ * **layer data export** when the artwork should stay editable or machine
11
+ * readable: TXT, SVG, and JSON read from the selected layer, while JSON can
12
+ * also describe the full layer stack.
11
13
  *
12
- * ### Image formats
13
- * - {@link ImageExportOptions | PNG/JPEG/WebP} - Save canvas as raster image
14
- *
15
- * ### Vector formats
16
- * - {@link SVGExportOptions | SVG} - Save as scalable vector graphics
17
- *
18
- * ### Text formats
19
- * - {@link TXTExportOptions | TXT} - Save text content as plain text
20
- * - {@link JSONExportOptions | JSON} - Save document data as structured JSON
21
- *
22
- * ### Animation formats
23
- * - {@link GIFExportOptions | GIF} - Save as animated GIF
24
- * - {@link VideoExportOptions | Video} - Save as WebM or MP4 video
25
- *
26
- * @module textmode.export.js
14
+ * Start with {@link ExportPlugin}, then call the helpers added to your sketch
15
+ * or use the built-in export overlay. For recipes and format trade-offs, read
16
+ * the [Exporting guide](/docs/exporting).
27
17
  */
28
18
  import type { TextmodePlugin } from 'textmode.js';
29
19
  import './augmentations';
30
- export type { ExportDefaults, ExportDefaultsPatch, ExportOverlayPosition, ExportOverlayPositionInput } from './types';
20
+ export type { ExportDefaults, ExportDefaultsPatch, ExportOverlayPosition, ExportOverlayPositionInput, GIFOverlayDefaults, ImageOverlayDefaults, JSONOverlayDefaults, SVGOverlayDefaults, TXTOverlayDefaults, VideoOverlayDefaults, } from './types';
31
21
  export type { TextmodeExportAPI, ExportOverlayController } from './types';
32
22
  export type { ImageExportOptions } from './exporters/image';
33
23
  export type { SVGExportOptions } from './exporters/svg';
34
24
  export type { TXTExportOptions } from './exporters/txt';
35
- export type { JSONCellCollection, JSONCellTransform, JSONColorValue, JSONDocumentFormat, JSONDocumentVersion, JSONExportColorMode, JSONExportMetadata, JSONExportOptions, JSONExportTarget, JSONLayerGrid, JSONObjectRowCell, JSONObjectRowsCellCollection, JSONRGBAColor, TextmodeAllDocumentJSON, TextmodeDocumentJSON, TextmodeDocumentLayer, TextmodeSelectedDocumentJSON, TextmodeSelectedDocumentLayer, } from './exporters/json';
25
+ export type { JSONExportColorMode, JSONExportOptions, JSONExportTarget, TextmodeDocumentJSON } from './exporters/json';
36
26
  export type { GIFExportOptions, GIFExportProgress } from './exporters/gif';
37
- export type { VideoBitrateMode, VideoBitratePreset, VideoExportErrorCode, VideoExportFormat, VideoExportOptions, VideoExportPhase, VideoExportProgress, VideoHardwareAcceleration, VideoLatencyMode, VideoRecordingState, } from './exporters/video';
27
+ export type { VideoBitrateMode, VideoBitratePreset, VideoExportFormat, VideoExportOptions, VideoExportPhase, VideoExportProgress, VideoHardwareAcceleration, VideoLatencyMode, VideoRecordingState, } from './exporters/video';
38
28
  export type { LayerExportOptions } from './exporters/base';
39
29
  /**
40
- * Export plugin for textmode.js.
41
- *
42
- * Add this plugin to your textmode.js instance to enable exporting artworks
43
- * as images, videos, SVG, JSON, and text files. Includes an overlay UI for quick
44
- * access to all export options, which can be controlled at runtime.
30
+ * Default export plugin instance for the standard textmode.js workflow.
45
31
  *
46
- * @example
47
- * {@includeCode ../examples/ExportPlugin/init/sketch.js}
32
+ * @category Workflow
48
33
  *
49
34
  * @see {@link https://code.textmode.art/api/textmode.export.js/variables/ExportPlugin | ExportPlugin API reference}
50
35
  */
@@ -54,4 +39,3 @@ declare global {
54
39
  ExportPlugin?: TextmodePlugin;
55
40
  }
56
41
  }
57
- //# sourceMappingURL=index.d.ts.map
@@ -31,4 +31,3 @@ export declare abstract class Blade<TOptions> extends Component<void> {
31
31
  protected _onDestroy(): void;
32
32
  }
33
33
  export {};
34
- //# sourceMappingURL=Blade.d.ts.map
@@ -21,4 +21,3 @@ export declare class GIFBlade extends Blade<GIFExportOptions> {
21
21
  private safeParseInt;
22
22
  private safeParseFloat;
23
23
  }
24
- //# sourceMappingURL=GIFBlade.d.ts.map
@@ -12,4 +12,3 @@ export declare class ImageBlade extends Blade<ImageExportOptions> {
12
12
  validate(): boolean;
13
13
  private applyDefaults;
14
14
  }
15
- //# sourceMappingURL=ImageBlade.d.ts.map
@@ -18,4 +18,3 @@ export declare class JSONBlade extends Blade<JSONExportOptions> {
18
18
  private applyDefaults;
19
19
  private updateLayerTargetVisibility;
20
20
  }
21
- //# sourceMappingURL=JSONBlade.d.ts.map
@@ -5,4 +5,3 @@ export interface RecordingBladeLike {
5
5
  handleProgress(progress: unknown): void;
6
6
  }
7
7
  export declare function isRecordingBlade(blade: Blade<unknown>): blade is Blade<unknown> & RecordingBladeLike;
8
- //# sourceMappingURL=RecordingBlade.d.ts.map
@@ -16,4 +16,3 @@ export declare class SVGBlade extends Blade<SVGExportOptions> {
16
16
  private updateStrokeControls;
17
17
  private applyDefaults;
18
18
  }
19
- //# sourceMappingURL=SVGBlade.d.ts.map
@@ -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
@@ -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