textmode.export.js 1.2.2 → 1.3.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.
- package/README.md +1 -0
- package/dist/textmode.export.esm.js +1274 -1149
- package/dist/textmode.export.umd.js +2 -2
- package/dist/types/exporters/base/CharacterResolver.d.ts +29 -0
- package/dist/types/exporters/base/CharacterResolver.d.ts.map +1 -0
- package/dist/types/exporters/base/DataExtractor.d.ts +23 -2
- package/dist/types/exporters/base/DataExtractor.d.ts.map +1 -1
- package/dist/types/exporters/base/index.d.ts +1 -0
- package/dist/types/exporters/base/index.d.ts.map +1 -1
- package/dist/types/exporters/json/JSONDataExtractor.d.ts +16 -0
- package/dist/types/exporters/json/JSONDataExtractor.d.ts.map +1 -0
- package/dist/types/exporters/json/JSONExporter.d.ts +56 -0
- package/dist/types/exporters/json/JSONExporter.d.ts.map +1 -0
- package/dist/types/exporters/json/JSONExporter.test.d.ts +2 -0
- package/dist/types/exporters/json/JSONExporter.test.d.ts.map +1 -0
- package/dist/types/exporters/json/index.d.ts +4 -0
- package/dist/types/exporters/json/index.d.ts.map +1 -0
- package/dist/types/exporters/json/types.d.ts +135 -0
- package/dist/types/exporters/json/types.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +1 -1
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts +0 -8
- package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +1 -1
- package/dist/types/exporters/svg/SVGExporter.test.d.ts +2 -0
- package/dist/types/exporters/svg/SVGExporter.test.d.ts.map +1 -0
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts +6 -14
- package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +1 -1
- package/dist/types/exporters/svg/types.d.ts +1 -1
- package/dist/types/exporters/svg/types.d.ts.map +1 -1
- package/dist/types/exporters/txt/TXTExporter.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/overlay/blades/JSONBlade.d.ts +15 -0
- package/dist/types/overlay/blades/JSONBlade.d.ts.map +1 -0
- package/dist/types/overlay/blades/index.d.ts +1 -0
- package/dist/types/overlay/blades/index.d.ts.map +1 -1
- package/dist/types/overlay/core/OverlayController.d.ts.map +1 -1
- package/dist/types/overlay/formatRegistry.d.ts.map +1 -1
- package/dist/types/overlay/services/ClipboardService.d.ts +2 -1
- package/dist/types/overlay/services/ClipboardService.d.ts.map +1 -1
- package/dist/types/overlay/services/ExportService.d.ts.map +1 -1
- package/dist/types/overlay/types.d.ts +3 -1
- package/dist/types/overlay/types.d.ts.map +1 -1
- package/dist/types/types.d.ts +36 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +32 -29
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Textmodifier } from 'textmode.js';
|
|
2
|
+
import type { JSONExportOptions, TextmodeLayerJSON } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Main JSON exporter for the textmode.js library.
|
|
5
|
+
* Orchestrates structured base-layer export and file download.
|
|
6
|
+
*/
|
|
7
|
+
export declare class JSONExporter {
|
|
8
|
+
/**
|
|
9
|
+
* Applies default values to JSON export options.
|
|
10
|
+
*
|
|
11
|
+
* @param options User-provided options
|
|
12
|
+
* @returns Complete options with defaults applied
|
|
13
|
+
*/
|
|
14
|
+
private _applyDefaultOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Converts an RGBA color to the configured JSON representation.
|
|
17
|
+
*
|
|
18
|
+
* @param color Source color
|
|
19
|
+
* @param colorMode Output color mode
|
|
20
|
+
* @returns JSON-ready color value
|
|
21
|
+
*/
|
|
22
|
+
private _formatColor;
|
|
23
|
+
/**
|
|
24
|
+
* Creates the row-based cell encoding.
|
|
25
|
+
*
|
|
26
|
+
* @param cells Extracted cell data
|
|
27
|
+
* @param textmodifier The Textmodifier instance for grid dimensions
|
|
28
|
+
* @param colorMode Configured color mode
|
|
29
|
+
* @returns Readable row-based cell structure
|
|
30
|
+
*/
|
|
31
|
+
private _createObjectRowsCells;
|
|
32
|
+
/**
|
|
33
|
+
* Generates structured JSON layer data without serializing it.
|
|
34
|
+
*
|
|
35
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
36
|
+
* @param options Export options
|
|
37
|
+
* @returns Structured JSON document for the base layer
|
|
38
|
+
*/
|
|
39
|
+
$generateJSONData(textmodifier: Textmodifier, options?: JSONExportOptions): TextmodeLayerJSON;
|
|
40
|
+
/**
|
|
41
|
+
* Generates the serialized JSON string for the current base layer.
|
|
42
|
+
*
|
|
43
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
44
|
+
* @param options Export options
|
|
45
|
+
* @returns Serialized JSON string
|
|
46
|
+
*/
|
|
47
|
+
$generateJSONString(textmodifier: Textmodifier, options?: JSONExportOptions): string;
|
|
48
|
+
/**
|
|
49
|
+
* Exports the generated JSON to a downloadable file.
|
|
50
|
+
*
|
|
51
|
+
* @param textmodifier The Textmodifier instance to extract data from
|
|
52
|
+
* @param options Export options
|
|
53
|
+
*/
|
|
54
|
+
$saveJSON(textmodifier: Textmodifier, options?: JSONExportOptions): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=JSONExporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/JSONExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,KAAK,EAGX,iBAAiB,EAGjB,iBAAiB,EACjB,MAAM,SAAS,CAAC;AAIjB;;;GAGG;AACH,qBAAa,YAAY;IACxB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;;;;OAMG;IACI,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,iBAAiB;IAqCxG;;;;;;OAMG;IACI,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM;IAQ/F;;;;;OAKG;IACI,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI;CASnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONExporter.test.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/JSONExporter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { JSONExporter } from './JSONExporter';
|
|
2
|
+
export { JSONDataExtractor } from './JSONDataExtractor';
|
|
3
|
+
export type { JSONCellCollection, JSONCellData, JSONCellTransform, JSONColorValue, JSONExportColorMode, JSONExportMetadata, JSONExportOptions, JSONGenerationOptions, JSONObjectRowCell, JSONObjectRowsCellCollection, JSONRGBAColor, TextmodeLayerJSON, } from './types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EACX,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported JSON color output modes.
|
|
3
|
+
*/
|
|
4
|
+
export type JSONExportColorMode = 'hex' | 'rgba';
|
|
5
|
+
/**
|
|
6
|
+
* RGBA color representation used in JSON exports.
|
|
7
|
+
*/
|
|
8
|
+
export interface JSONRGBAColor {
|
|
9
|
+
r: number;
|
|
10
|
+
g: number;
|
|
11
|
+
b: number;
|
|
12
|
+
a: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Color value used in the exported JSON document.
|
|
16
|
+
*/
|
|
17
|
+
export type JSONColorValue = string | JSONRGBAColor;
|
|
18
|
+
/**
|
|
19
|
+
* Cell transform data for JSON exports.
|
|
20
|
+
*/
|
|
21
|
+
export interface JSONCellTransform {
|
|
22
|
+
invert: boolean;
|
|
23
|
+
flipX: boolean;
|
|
24
|
+
flipY: boolean;
|
|
25
|
+
rotation: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Rich per-cell representation for readable JSON exports.
|
|
29
|
+
*/
|
|
30
|
+
export interface JSONObjectRowCell {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
character: string;
|
|
34
|
+
foreground: JSONColorValue;
|
|
35
|
+
background: JSONColorValue;
|
|
36
|
+
transform: JSONCellTransform;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Row-based cell encoding.
|
|
40
|
+
*/
|
|
41
|
+
export interface JSONObjectRowsCellCollection {
|
|
42
|
+
encoding: 'object-rows-v1';
|
|
43
|
+
rows: JSONObjectRowCell[][];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Supported JSON cell collection variants.
|
|
47
|
+
*/
|
|
48
|
+
export type JSONCellCollection = JSONObjectRowsCellCollection;
|
|
49
|
+
/**
|
|
50
|
+
* Optional export metadata.
|
|
51
|
+
*/
|
|
52
|
+
export interface JSONExportMetadata {
|
|
53
|
+
createdAt: string;
|
|
54
|
+
generator: {
|
|
55
|
+
name: 'textmode.export.js';
|
|
56
|
+
version: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Layer document exported by the JSON exporter.
|
|
61
|
+
*/
|
|
62
|
+
export interface TextmodeLayerJSON {
|
|
63
|
+
$schema: string;
|
|
64
|
+
format: 'textmode.layer';
|
|
65
|
+
formatVersion: '1.0.0';
|
|
66
|
+
metadata?: JSONExportMetadata;
|
|
67
|
+
canvas: {
|
|
68
|
+
width: number;
|
|
69
|
+
height: number;
|
|
70
|
+
};
|
|
71
|
+
grid: {
|
|
72
|
+
cols: number;
|
|
73
|
+
rows: number;
|
|
74
|
+
cellWidth: number;
|
|
75
|
+
cellHeight: number;
|
|
76
|
+
};
|
|
77
|
+
layer: {
|
|
78
|
+
id: 'base';
|
|
79
|
+
cells: JSONCellCollection;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Options for exporting the textmode content to JSON format.
|
|
84
|
+
*/
|
|
85
|
+
export type JSONExportOptions = {
|
|
86
|
+
/**
|
|
87
|
+
* The filename to save the JSON file as.
|
|
88
|
+
*
|
|
89
|
+
* If not provided, a default filename is used.
|
|
90
|
+
*/
|
|
91
|
+
filename?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Pretty-print the generated JSON.
|
|
94
|
+
*
|
|
95
|
+
* When set to `true`, output uses two-space indentation.
|
|
96
|
+
* When set to a number, that value is used as indentation width.
|
|
97
|
+
* When `false`, the output is minified.
|
|
98
|
+
*
|
|
99
|
+
* Defaults to `true`.
|
|
100
|
+
*/
|
|
101
|
+
pretty?: boolean | number;
|
|
102
|
+
/**
|
|
103
|
+
* Color representation used for foreground and background values.
|
|
104
|
+
*
|
|
105
|
+
* Defaults to `'hex'`.
|
|
106
|
+
*/
|
|
107
|
+
colorMode?: JSONExportColorMode;
|
|
108
|
+
/**
|
|
109
|
+
* Whether to include export metadata such as timestamp and generator details.
|
|
110
|
+
*
|
|
111
|
+
* Defaults to `true`.
|
|
112
|
+
*/
|
|
113
|
+
includeMetadata?: boolean;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Internal options used by JSON generation (with all defaults applied).
|
|
117
|
+
*/
|
|
118
|
+
export interface JSONGenerationOptions {
|
|
119
|
+
pretty: boolean | number;
|
|
120
|
+
colorMode: JSONExportColorMode;
|
|
121
|
+
includeMetadata: boolean;
|
|
122
|
+
filename?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Internal extracted cell data used while building the JSON document.
|
|
126
|
+
*/
|
|
127
|
+
export interface JSONCellData {
|
|
128
|
+
x: number;
|
|
129
|
+
y: number;
|
|
130
|
+
character: string;
|
|
131
|
+
foreground: JSONRGBAColor;
|
|
132
|
+
background: JSONRGBAColor;
|
|
133
|
+
transform: JSONCellTransform;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QACV,IAAI,EAAE,oBAAoB,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,kBAAkB,CAAC;KAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,iBAAiB,CAAC;CAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGContentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGContentGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SVGContentGenerator.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGContentGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,cAAc,CAAmB;;IAMzC;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAKzD;;;;OAIG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;;;;OAQG;IACI,oBAAoB,CAC1B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,oBAAoB,GAC3B,MAAM;IAiBT;;;;;;;;OAQG;IACI,mBAAmB,CACzB,aAAa,EAAE,WAAW,EAAE,EAC5B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,oBAAoB,GAC3B,MAAM;IAYT;;;;;OAKG;IACI,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAKtD"}
|
|
@@ -6,14 +6,6 @@ import type { TextmodeGrid } from 'textmode.js';
|
|
|
6
6
|
* This class handles the conversion of raw pixel data into structured data objects.
|
|
7
7
|
*/
|
|
8
8
|
export declare class SVGDataExtractor extends DataExtractor {
|
|
9
|
-
/**
|
|
10
|
-
* Extracts transform data from character pixels
|
|
11
|
-
*
|
|
12
|
-
* @param characterPixels Character framebuffer pixels
|
|
13
|
-
* @param pixelIndex Pixel index in the array
|
|
14
|
-
* @returns Transform data object
|
|
15
|
-
*/
|
|
16
|
-
private _extractTransformData;
|
|
17
9
|
/**
|
|
18
10
|
* Calculates cell position information
|
|
19
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGDataExtractor.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGDataExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAA+B,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD
|
|
1
|
+
{"version":3,"file":"SVGDataExtractor.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGDataExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAA+B,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;;;OAMG;IACI,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE;CA6C/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGExporter.test.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGExporter.test.ts"],"names":[],"mappings":""}
|
|
@@ -51,30 +51,22 @@ export declare class SVGPathGenerator {
|
|
|
51
51
|
*/
|
|
52
52
|
private _glyphToSVGPath;
|
|
53
53
|
/**
|
|
54
|
-
* Generates
|
|
54
|
+
* Generates SVG path data for a character with positioning calculations.
|
|
55
55
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* @param x X position
|
|
59
|
-
* @param y Y position
|
|
60
|
-
* @param fontSize Font size
|
|
61
|
-
* @returns Path object with SVG generation methods
|
|
62
|
-
*/
|
|
63
|
-
private _generateCharacterPath;
|
|
64
|
-
/**
|
|
65
|
-
* Generates SVG path data for a character with positioning calculations
|
|
56
|
+
* Uses the same baseline math as the canvas texture atlas renderer
|
|
57
|
+
* (TextureAtlas._renderCharacters) for consistent vertical placement.
|
|
66
58
|
*
|
|
67
|
-
* @param
|
|
59
|
+
* @param _character The character to render
|
|
68
60
|
* @param font The font data
|
|
69
61
|
* @param cellX Cell X position
|
|
70
62
|
* @param cellY Cell Y position
|
|
71
63
|
* @param cellWidth Cell width
|
|
72
|
-
* @param
|
|
64
|
+
* @param _cellHeight Cell height
|
|
73
65
|
* @param fontSize Font size
|
|
74
66
|
* @param glyphData Character glyph data
|
|
75
67
|
* @returns SVG path data string or null if generation fails
|
|
76
68
|
*/
|
|
77
|
-
$generatePositionedCharacterPath(
|
|
69
|
+
$generatePositionedCharacterPath(_character: string, font: TextmodeFont, cellX: number, cellY: number, cellWidth: number, _cellHeight: number, fontSize: number, glyphData: GlyphData | null): string | null;
|
|
78
70
|
}
|
|
79
71
|
export {};
|
|
80
72
|
//# sourceMappingURL=SVGPathGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGPathGenerator.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGPathGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,UAAU,SAAS;IAClB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,kCAAkC;IAClC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"SVGPathGenerator.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/SVGPathGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,UAAU,SAAS;IAClB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kCAAkC;IAClC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,kCAAkC;IAClC,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACrB;AAeD;;;GAGG;AACH,qBAAa,gBAAgB;IAC5B;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;;;;;;;;;;;;;OAeG;IACI,gCAAgC,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAAG,IAAI,GACzB,MAAM,GAAG,IAAI;CAwBhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,UAAU,CAAC;IAC5B,kBAAkB,EAAE,UAAU,CAAC;IAC/B,oBAAoB,EAAE,UAAU,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,cAAc,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,KAAK,IAAI,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,2BAA2B,EAAE,OAAO,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TXTExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/TXTExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,SAAS,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,WAAW;IACvB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"TXTExporter.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/TXTExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,SAAS,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,qBAAa,WAAW;IACvB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;;;OAMG;IACI,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM;IAIvF;;;;;OAKG;IACI,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;CAOjF"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
*
|
|
4
|
-
* Export plugin for textmode.js - save artworks as images, videos, SVG, and text.
|
|
4
|
+
* Export plugin for textmode.js - save artworks as images, videos, SVG, JSON, and text.
|
|
5
5
|
*
|
|
6
6
|
* This plugin adds comprehensive export capabilities to textmode.js instances,
|
|
7
7
|
* allowing you to save your generative artworks in multiple formats with a
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* ### Text formats
|
|
19
19
|
* - {@link TXTExportOptions | TXT} - Save text content as plain text
|
|
20
|
+
* - {@link JSONExportOptions | JSON} - Save base-layer data as structured JSON
|
|
20
21
|
*
|
|
21
22
|
* ### Animation formats
|
|
22
23
|
* - {@link GIFExportOptions | GIF} - Save as animated GIF
|
|
@@ -30,13 +31,14 @@ export type { TextmodeExportAPI, TextmodeExportPluginOptions, ExportOverlayContr
|
|
|
30
31
|
export type { ImageExportOptions } from './exporters/image';
|
|
31
32
|
export type { SVGExportOptions } from './exporters/svg';
|
|
32
33
|
export type { TXTExportOptions } from './exporters/txt';
|
|
34
|
+
export type { JSONExportOptions, TextmodeLayerJSON } from './exporters/json';
|
|
33
35
|
export type { GIFExportOptions, GIFExportProgress } from './exporters/gif';
|
|
34
36
|
export type { VideoExportOptions, VideoExportProgress } from './exporters/video';
|
|
35
37
|
/**
|
|
36
38
|
* Export plugin for textmode.js.
|
|
37
39
|
*
|
|
38
40
|
* Add this plugin to your textmode.js instance to enable exporting artworks
|
|
39
|
-
* as images, videos, SVG, and text files. Includes an overlay UI for quick
|
|
41
|
+
* as images, videos, SVG, JSON, and text files. Includes an overlay UI for quick
|
|
40
42
|
* access to all export options, which can be controlled at runtime.
|
|
41
43
|
*
|
|
42
44
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,qBAAqB,CAAC;AAQjF,OAAO,KAAK,EAAqB,2BAA2B,EAA2B,MAAM,SAAS,CAAC;AAIvG,YAAY,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,YAAY,EAAE,cA4K1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAS,2BAAgC,KAAG,cAkBtF,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,cAAc,CAAC;QAC9B,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;KAC/D;CACD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { JSONExportOptions } from '../../exporters/json';
|
|
2
|
+
import type { BladeConfig } from './Blade';
|
|
3
|
+
import { Blade } from './Blade';
|
|
4
|
+
export declare class JSONBlade extends Blade<JSONExportOptions> {
|
|
5
|
+
private prettyPrint;
|
|
6
|
+
private includeMetadata;
|
|
7
|
+
private colorMode;
|
|
8
|
+
constructor(config: BladeConfig<JSONExportOptions>);
|
|
9
|
+
render(): HTMLElement;
|
|
10
|
+
getOptions(): JSONExportOptions;
|
|
11
|
+
reset(): void;
|
|
12
|
+
validate(): boolean;
|
|
13
|
+
private applyDefaults;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=JSONBlade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONBlade.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/JSONBlade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,SAAU,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IACtD,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,eAAe,CAMrB;IAEF,OAAO,CAAC,SAAS,CASf;gBAEU,MAAM,EAAE,WAAW,CAAC,iBAAiB,CAAC;IAIlD,MAAM,IAAI,WAAW;IAkBrB,UAAU,IAAI,iBAAiB;IAQ/B,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,OAAO;IAInB,OAAO,CAAC,aAAa;CAOrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blades/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayController.d.ts","sourceRoot":"","sources":["../../../../src/overlay/core/OverlayController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAiBnE,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyB;IAE7D,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAA8F;IAClH,OAAO,CAAC,aAAa,CAGlB;IACH,OAAO,CAAC,aAAa,CAA+E;IACpG,OAAO,CAAC,WAAW,CAAmF;IAEtG,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAExC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAIrC;IAEF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAInC;gBAGD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,EACjC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC;IAatC,MAAM,IAAI,IAAI;IAQd,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAQd,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,IAAI;IA0BvB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,sBAAsB;YAMhB,kBAAkB;YAqElB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"OverlayController.d.ts","sourceRoot":"","sources":["../../../../src/overlay/core/OverlayController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAiBnE,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyB;IAE7D,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAA8F;IAClH,OAAO,CAAC,aAAa,CAGlB;IACH,OAAO,CAAC,aAAa,CAA+E;IACpG,OAAO,CAAC,WAAW,CAAmF;IAEtG,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAExC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAIrC;IAEF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAInC;gBAGD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,EACjC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC;IAatC,MAAM,IAAI,IAAI;IAQd,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAQd,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,IAAI;IA0BvB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,sBAAsB;YAMhB,kBAAkB;YAqElB,gBAAgB;IAwC9B,OAAO,CAAC,mBAAmB;CAgD3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatRegistry.d.ts","sourceRoot":"","sources":["../../../src/overlay/formatRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"formatRegistry.d.ts","sourceRoot":"","sources":["../../../src/overlay/formatRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA8FlE,wBAAgB,0BAA0B,IAAI,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAE1F"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { ExportFormat, ExportOptionsMap } from '../types';
|
|
2
2
|
import type { TextmodeExportAPI } from '../../types';
|
|
3
|
-
type ClipboardExportFormat = Extract<ExportFormat, 'txt' | 'svg' | 'image'>;
|
|
3
|
+
type ClipboardExportFormat = Extract<ExportFormat, 'txt' | 'json' | 'svg' | 'image'>;
|
|
4
4
|
export declare class ClipboardService {
|
|
5
5
|
private readonly api;
|
|
6
6
|
constructor(api: TextmodeExportAPI);
|
|
7
7
|
$copy(format: 'txt', options: ExportOptionsMap['txt']): Promise<void>;
|
|
8
|
+
$copy(format: 'json', options: ExportOptionsMap['json']): Promise<void>;
|
|
8
9
|
$copy(format: 'svg', options: ExportOptionsMap['svg']): Promise<void>;
|
|
9
10
|
$copy(format: 'image', options: ExportOptionsMap['image']): Promise<void>;
|
|
10
11
|
$copy(format: ClipboardExportFormat, options: ExportOptionsMap[ClipboardExportFormat]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardService.d.ts","sourceRoot":"","sources":["../../../../src/overlay/services/ClipboardService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,KAAK,qBAAqB,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ClipboardService.d.ts","sourceRoot":"","sources":["../../../../src/overlay/services/ClipboardService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,KAAK,qBAAqB,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAErF,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;gBAE5B,GAAG,EAAE,iBAAiB;IAI5B,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACrE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACvE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACrE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACzE,KAAK,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B3G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportService.d.ts","sourceRoot":"","sources":["../../../../src/overlay/services/ExportService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExportService.d.ts","sourceRoot":"","sources":["../../../../src/overlay/services/ExportService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC3B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC1D;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC;IAKtD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3G,OAAO,CAAC,QAAQ;CA0BhB"}
|
|
@@ -3,9 +3,11 @@ import type { TXTExportOptions } from '../exporters/txt';
|
|
|
3
3
|
import type { SVGExportOptions } from '../exporters/svg';
|
|
4
4
|
import type { GIFExportOptions } from '../exporters/gif';
|
|
5
5
|
import type { VideoExportOptions } from '../exporters/video';
|
|
6
|
-
|
|
6
|
+
import type { JSONExportOptions } from '../exporters/json';
|
|
7
|
+
export type ExportFormat = 'txt' | 'json' | 'image' | 'gif' | 'video' | 'svg';
|
|
7
8
|
export type ExportOptionsMap = {
|
|
8
9
|
txt: TXTExportOptions;
|
|
10
|
+
json: JSONExportOptions;
|
|
9
11
|
image: ImageExportOptions;
|
|
10
12
|
gif: GIFExportOptions;
|
|
11
13
|
video: VideoExportOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/overlay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/overlay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,gBAAgB,CAAC;CACtB,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { TXTExportOptions } from './exporters/txt';
|
|
|
3
3
|
import type { SVGExportOptions } from './exporters/svg';
|
|
4
4
|
import type { GIFExportOptions } from './exporters/gif';
|
|
5
5
|
import type { VideoExportOptions } from './exporters/video';
|
|
6
|
+
import type { JSONExportOptions, TextmodeLayerJSON } from './exporters/json';
|
|
6
7
|
/**
|
|
7
8
|
* Controller for managing the export overlay UI visibility at runtime.
|
|
8
9
|
*/
|
|
@@ -120,6 +121,41 @@ export interface TextmodeExportAPI {
|
|
|
120
121
|
* ```
|
|
121
122
|
*/
|
|
122
123
|
toString(options?: TXTExportOptions): string;
|
|
124
|
+
/**
|
|
125
|
+
* Produces the current base layer as structured JSON data.
|
|
126
|
+
*
|
|
127
|
+
* @param options Export options.
|
|
128
|
+
* @returns The JSON document representing the current base layer.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```ts
|
|
132
|
+
* const layer = t.toJSON({ colorMode: 'hex', includeMetadata: true });
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
toJSON(options?: JSONExportOptions): TextmodeLayerJSON;
|
|
136
|
+
/**
|
|
137
|
+
* Produces the current base layer as a JSON string.
|
|
138
|
+
*
|
|
139
|
+
* @param options Export options.
|
|
140
|
+
* @returns Serialized JSON string for the current base layer.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```ts
|
|
144
|
+
* const json = t.toJSONString({ pretty: false, colorMode: 'hex' });
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
toJSONString(options?: JSONExportOptions): string;
|
|
148
|
+
/**
|
|
149
|
+
* Downloads the current base layer as a JSON file.
|
|
150
|
+
*
|
|
151
|
+
* @param options Export options.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* t.saveJSON({ filename: 'frame', pretty: true });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
saveJSON(options?: JSONExportOptions): void;
|
|
123
159
|
/**
|
|
124
160
|
* Records an animated GIF and saves it to disk.
|
|
125
161
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;OAOG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;;;;;;OAOG;IACH,SAAS,IAAI,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,aAAa,EAAE,uBAAuB,CAAC;IAEvC;;;;;;;;;OASG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;OASG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE1C;;;;;;;;;OASG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE1C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE7C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IAEvD;;;;;;;;;;OAUG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAElD;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE5C;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,UAAU,CAAC"}
|