textmode.export.js 0.0.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 (118) hide show
  1. package/README.md +166 -0
  2. package/dist/textmode.export.esm.js +2061 -0
  3. package/dist/textmode.export.umd.js +3 -0
  4. package/dist/types/exporters/base/DataExtractor.d.ts +23 -0
  5. package/dist/types/exporters/base/DataExtractor.d.ts.map +1 -0
  6. package/dist/types/exporters/base/FileHandler.d.ts +24 -0
  7. package/dist/types/exporters/base/FileHandler.d.ts.map +1 -0
  8. package/dist/types/exporters/base/index.d.ts +3 -0
  9. package/dist/types/exporters/base/index.d.ts.map +1 -0
  10. package/dist/types/exporters/gif/GIFExporter.d.ts +30 -0
  11. package/dist/types/exporters/gif/GIFExporter.d.ts.map +1 -0
  12. package/dist/types/exporters/gif/GIFRecorder.d.ts +24 -0
  13. package/dist/types/exporters/gif/GIFRecorder.d.ts.map +1 -0
  14. package/dist/types/exporters/gif/index.d.ts +4 -0
  15. package/dist/types/exporters/gif/index.d.ts.map +1 -0
  16. package/dist/types/exporters/gif/types.d.ts +69 -0
  17. package/dist/types/exporters/gif/types.d.ts.map +1 -0
  18. package/dist/types/exporters/image/ImageExporter.d.ts +40 -0
  19. package/dist/types/exporters/image/ImageExporter.d.ts.map +1 -0
  20. package/dist/types/exporters/image/index.d.ts +4 -0
  21. package/dist/types/exporters/image/index.d.ts.map +1 -0
  22. package/dist/types/exporters/image/types.d.ts +45 -0
  23. package/dist/types/exporters/image/types.d.ts.map +1 -0
  24. package/dist/types/exporters/svg/SVGContentGenerator.d.ts +70 -0
  25. package/dist/types/exporters/svg/SVGContentGenerator.d.ts.map +1 -0
  26. package/dist/types/exporters/svg/SVGDataExtractor.d.ts +34 -0
  27. package/dist/types/exporters/svg/SVGDataExtractor.d.ts.map +1 -0
  28. package/dist/types/exporters/svg/SVGExporter.d.ts +29 -0
  29. package/dist/types/exporters/svg/SVGExporter.d.ts.map +1 -0
  30. package/dist/types/exporters/svg/SVGPathGenerator.d.ts +50 -0
  31. package/dist/types/exporters/svg/SVGPathGenerator.d.ts.map +1 -0
  32. package/dist/types/exporters/svg/index.d.ts +6 -0
  33. package/dist/types/exporters/svg/index.d.ts.map +1 -0
  34. package/dist/types/exporters/svg/types.d.ts +111 -0
  35. package/dist/types/exporters/svg/types.d.ts.map +1 -0
  36. package/dist/types/exporters/txt/TXTExporter.d.ts +36 -0
  37. package/dist/types/exporters/txt/TXTExporter.d.ts.map +1 -0
  38. package/dist/types/exporters/txt/index.d.ts +3 -0
  39. package/dist/types/exporters/txt/index.d.ts.map +1 -0
  40. package/dist/types/exporters/txt/types.d.ts +37 -0
  41. package/dist/types/exporters/txt/types.d.ts.map +1 -0
  42. package/dist/types/exporters/video/VideoExporter.d.ts +30 -0
  43. package/dist/types/exporters/video/VideoExporter.d.ts.map +1 -0
  44. package/dist/types/exporters/video/VideoRecorder.d.ts +28 -0
  45. package/dist/types/exporters/video/VideoRecorder.d.ts.map +1 -0
  46. package/dist/types/exporters/video/index.d.ts +4 -0
  47. package/dist/types/exporters/video/index.d.ts.map +1 -0
  48. package/dist/types/exporters/video/types.d.ts +64 -0
  49. package/dist/types/exporters/video/types.d.ts.map +1 -0
  50. package/dist/types/index.d.ts +35 -0
  51. package/dist/types/index.d.ts.map +1 -0
  52. package/dist/types/overlay/blades/Blade.d.ts +20 -0
  53. package/dist/types/overlay/blades/Blade.d.ts.map +1 -0
  54. package/dist/types/overlay/blades/GIFBlade.d.ts +23 -0
  55. package/dist/types/overlay/blades/GIFBlade.d.ts.map +1 -0
  56. package/dist/types/overlay/blades/ImageBlade.d.ts +14 -0
  57. package/dist/types/overlay/blades/ImageBlade.d.ts.map +1 -0
  58. package/dist/types/overlay/blades/SVGBlade.d.ts +16 -0
  59. package/dist/types/overlay/blades/SVGBlade.d.ts.map +1 -0
  60. package/dist/types/overlay/blades/TextBlade.d.ts +14 -0
  61. package/dist/types/overlay/blades/TextBlade.d.ts.map +1 -0
  62. package/dist/types/overlay/blades/VideoBlade.d.ts +22 -0
  63. package/dist/types/overlay/blades/VideoBlade.d.ts.map +1 -0
  64. package/dist/types/overlay/blades/index.d.ts +7 -0
  65. package/dist/types/overlay/blades/index.d.ts.map +1 -0
  66. package/dist/types/overlay/components/actions/Button.d.ts +19 -0
  67. package/dist/types/overlay/components/actions/Button.d.ts.map +1 -0
  68. package/dist/types/overlay/components/base/Component.d.ts +18 -0
  69. package/dist/types/overlay/components/base/Component.d.ts.map +1 -0
  70. package/dist/types/overlay/components/base/Container.d.ts +9 -0
  71. package/dist/types/overlay/components/base/Container.d.ts.map +1 -0
  72. package/dist/types/overlay/components/base/Field.d.ts +17 -0
  73. package/dist/types/overlay/components/base/Field.d.ts.map +1 -0
  74. package/dist/types/overlay/components/display/Header.d.ts +8 -0
  75. package/dist/types/overlay/components/display/Header.d.ts.map +1 -0
  76. package/dist/types/overlay/components/display/StatusDisplay.d.ts +19 -0
  77. package/dist/types/overlay/components/display/StatusDisplay.d.ts.map +1 -0
  78. package/dist/types/overlay/components/inputs/CheckboxInput.d.ts +20 -0
  79. package/dist/types/overlay/components/inputs/CheckboxInput.d.ts.map +1 -0
  80. package/dist/types/overlay/components/inputs/NumberInput.d.ts +32 -0
  81. package/dist/types/overlay/components/inputs/NumberInput.d.ts.map +1 -0
  82. package/dist/types/overlay/components/inputs/RangeInput.d.ts +35 -0
  83. package/dist/types/overlay/components/inputs/RangeInput.d.ts.map +1 -0
  84. package/dist/types/overlay/components/inputs/SelectInput.d.ts +25 -0
  85. package/dist/types/overlay/components/inputs/SelectInput.d.ts.map +1 -0
  86. package/dist/types/overlay/components/inputs/TextInput.d.ts +19 -0
  87. package/dist/types/overlay/components/inputs/TextInput.d.ts.map +1 -0
  88. package/dist/types/overlay/core/EventBus.d.ts +10 -0
  89. package/dist/types/overlay/core/EventBus.d.ts.map +1 -0
  90. package/dist/types/overlay/core/OverlayController.d.ts +46 -0
  91. package/dist/types/overlay/core/OverlayController.d.ts.map +1 -0
  92. package/dist/types/overlay/core/StateManager.d.ts +11 -0
  93. package/dist/types/overlay/core/StateManager.d.ts.map +1 -0
  94. package/dist/types/overlay/formatRegistry.d.ts +4 -0
  95. package/dist/types/overlay/formatRegistry.d.ts.map +1 -0
  96. package/dist/types/overlay/index.d.ts +13 -0
  97. package/dist/types/overlay/index.d.ts.map +1 -0
  98. package/dist/types/overlay/models/FormatDefinition.d.ts +9 -0
  99. package/dist/types/overlay/models/FormatDefinition.d.ts.map +1 -0
  100. package/dist/types/overlay/models/OverlayEvents.d.ts +26 -0
  101. package/dist/types/overlay/models/OverlayEvents.d.ts.map +1 -0
  102. package/dist/types/overlay/models/OverlayState.d.ts +16 -0
  103. package/dist/types/overlay/models/OverlayState.d.ts.map +1 -0
  104. package/dist/types/overlay/services/ClipboardService.d.ts +8 -0
  105. package/dist/types/overlay/services/ClipboardService.d.ts.map +1 -0
  106. package/dist/types/overlay/services/ExportService.d.ts +18 -0
  107. package/dist/types/overlay/services/ExportService.d.ts.map +1 -0
  108. package/dist/types/overlay/services/PositionService.d.ts +14 -0
  109. package/dist/types/overlay/services/PositionService.d.ts.map +1 -0
  110. package/dist/types/overlay/types.d.ts +14 -0
  111. package/dist/types/overlay/types.d.ts.map +1 -0
  112. package/dist/types/overlay/utils/classes.d.ts +35 -0
  113. package/dist/types/overlay/utils/classes.d.ts.map +1 -0
  114. package/dist/types/types.d.ts +63 -0
  115. package/dist/types/types.d.ts.map +1 -0
  116. package/dist/types/utils/pixels.d.ts +13 -0
  117. package/dist/types/utils/pixels.d.ts.map +1 -0
  118. package/package.json +72 -0
@@ -0,0 +1,35 @@
1
+ export declare const overlayClasses: {
2
+ readonly root: "textmode-export-overlay";
3
+ readonly stack: "textmode-export-overlay__stack";
4
+ readonly stackDense: "textmode-export-overlay__stack--dense";
5
+ readonly stackCompact: "textmode-export-overlay__stack--compact";
6
+ readonly section: "textmode-export-overlay__section";
7
+ readonly header: "textmode-export-overlay__header";
8
+ readonly headerTitleRow: "textmode-export-overlay__header-title-row";
9
+ readonly headerLinks: "textmode-export-overlay__header-links";
10
+ readonly row: "textmode-export-overlay__row";
11
+ readonly label: "textmode-export-overlay__label";
12
+ readonly field: "textmode-export-overlay__field";
13
+ readonly fieldCompact: "textmode-export-overlay__field--compact";
14
+ readonly fieldDense: "textmode-export-overlay__field--dense";
15
+ readonly fieldFull: "textmode-export-overlay__field--full";
16
+ readonly fieldChannel: "textmode-export-overlay__field--channel";
17
+ readonly input: "textmode-export-overlay__input";
18
+ readonly checkbox: "textmode-export-overlay__checkbox";
19
+ readonly muted: "textmode-export-overlay__muted";
20
+ readonly status: "textmode-export-overlay__status";
21
+ readonly statusGif: "textmode-export-overlay__status--gif";
22
+ readonly statusVideo: "textmode-export-overlay__status--video";
23
+ readonly statusTitle: "textmode-export-overlay__status-title";
24
+ readonly statusValue: "textmode-export-overlay__status-value";
25
+ readonly divider: "textmode-export-overlay__divider";
26
+ readonly title: "textmode-export-overlay__title";
27
+ readonly button: "textmode-export-overlay__button";
28
+ readonly buttonPrimary: "textmode-export-overlay__button--primary";
29
+ readonly buttonSecondary: "textmode-export-overlay__button--secondary";
30
+ readonly buttonFull: "textmode-export-overlay__button--full";
31
+ readonly supportLink: "textmode-export-overlay__support-link";
32
+ readonly supportIcon: "textmode-export-overlay__support-icon";
33
+ readonly linkIcon: "textmode-export-overlay__link-icon";
34
+ };
35
+ //# sourceMappingURL=classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../../src/overlay/utils/classes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjB,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { ImageExportOptions } from './exporters/image';
2
+ import type { TXTExportOptions } from './exporters/txt';
3
+ import type { SVGExportOptions } from './exporters/svg';
4
+ import type { GIFExportOptions } from './exporters/gif';
5
+ import type { VideoExportOptions } from './exporters/video';
6
+ /**
7
+ * Runtime export helpers that `createExportPlugin` attaches to the `Textmodifier` instance.
8
+ */
9
+ export interface TextmodeExportAPI {
10
+ /**
11
+ * Saves the current canvas content to an image file *(`'png'` by default)*.
12
+ * @param options Export options.
13
+ */
14
+ saveCanvas(options?: ImageExportOptions): Promise<void>;
15
+ /**
16
+ * Copies the current canvas to the user's clipboard as an image.
17
+ * @param options Export options.
18
+ */
19
+ copyCanvas(options?: ImageExportOptions): Promise<void>;
20
+ /**
21
+ * Downloads the current frame as an SVG file.
22
+ * @param options Export options.
23
+ */
24
+ saveSVG(options?: SVGExportOptions): void;
25
+ /**
26
+ * Downloads the current text content as a plain-text file.
27
+ * @param options Export options.
28
+ */
29
+ saveStrings(options?: TXTExportOptions): void;
30
+ /**
31
+ * Generates the SVG markup for the current frame.
32
+ * @param options Export options.
33
+ * @returns The SVG content representing the artwork.
34
+ */
35
+ toSVG(options?: SVGExportOptions): string;
36
+ /**
37
+ * Produces the current text content as a string.
38
+ * @param options Export options.
39
+ * @returns The textual representation of the artwork.
40
+ */
41
+ toString(options?: TXTExportOptions): string;
42
+ /**
43
+ * Records an animated GIF and saves it to disk.
44
+ * @param options Export options.
45
+ */
46
+ saveGIF(options?: GIFExportOptions): Promise<void>;
47
+ /**
48
+ * Captures a WEBM video and saves it to disk.
49
+ * @param options Export options.
50
+ */
51
+ saveWEBM(options?: VideoExportOptions): Promise<void>;
52
+ }
53
+ /**
54
+ * Options for configuring the export plugin.
55
+ */
56
+ export interface TextmodeExportPluginOptions {
57
+ /**
58
+ * Controls whether the export overlay UI should be created.
59
+ * Defaults to `true`.
60
+ */
61
+ overlay?: boolean;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE7C;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Convert a pixel array to an RGBA object.
3
+ * @param pixels Pixel array (Uint8Array)
4
+ * @param index Starting index in the pixel array
5
+ * @returns RGBA object
6
+ */
7
+ export declare function pixelsToRGBA(pixels: Uint8Array, index: number): {
8
+ r: number;
9
+ g: number;
10
+ b: number;
11
+ a: number;
12
+ };
13
+ //# sourceMappingURL=pixels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixels.d.ts","sourceRoot":"","sources":["../../../src/utils/pixels.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAO9G"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "textmode.export.js",
3
+ "version": "0.0.1",
4
+ "description": "Export plugin for textmode.js - Save your creations as images, GIFs, videos, SVG, and plain text.",
5
+ "type": "module",
6
+ "types": "./dist/types/index.d.ts",
7
+ "main": "./dist/textmode.export.umd.js",
8
+ "module": "./dist/textmode.export.esm.js",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/types/index.d.ts",
12
+ "import": "./dist/textmode.export.esm.js",
13
+ "require": "./dist/textmode.export.umd.js"
14
+ }
15
+ },
16
+ "scripts": {
17
+ "dev": "vite",
18
+ "build": "vite build && tsc",
19
+ "preview": "vite preview",
20
+ "build:docs": "typedoc",
21
+ "dev:docs": "typedoc --watch"
22
+ },
23
+ "devDependencies": {
24
+ "@rollup/plugin-terser": "^0.4.4",
25
+ "@types/node": "^24.5.2",
26
+ "terser": "^5.44.0",
27
+ "typedoc": "^0.28.13",
28
+ "typedoc-plugin-markdown": "^4.9.0",
29
+ "typescript": "~5.8.3",
30
+ "vite": "^7.1.7",
31
+ "vite-plugin-css-injected-by-js": "^3.5.2"
32
+ },
33
+ "dependencies": {
34
+ "gifenc": "^1.0.1",
35
+ "textmode.js": "^0.3.2-beta.2",
36
+ "webm-writer": "^1.0.0"
37
+ },
38
+ "peerDependencies": {
39
+ "textmode.js": ">=0.4.0"
40
+ },
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/humanbydefinition/textmode.export.js.git"
44
+ },
45
+ "keywords": [
46
+ "textmode",
47
+ "textmode.js",
48
+ "ascii",
49
+ "petscii",
50
+ "export",
51
+ "plugin",
52
+ "gif",
53
+ "video",
54
+ "webm",
55
+ "svg",
56
+ "image",
57
+ "png",
58
+ "jpg",
59
+ "webp",
60
+ "creative-coding",
61
+ "canvas"
62
+ ],
63
+ "author": "humanbydefinition",
64
+ "license": "MIT",
65
+ "bugs": {
66
+ "url": "https://github.com/humanbydefinition/textmode.export.js/issues"
67
+ },
68
+ "homepage": "https://code.textmode.art",
69
+ "files": [
70
+ "dist"
71
+ ]
72
+ }