@staticcanvas/typeflow 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +637 -0
  3. package/branding/dist/ico/typeflow-logo-16x16.ico +0 -0
  4. package/branding/dist/ico/typeflow-logo-256x256.ico +0 -0
  5. package/branding/dist/ico/typeflow-logo-32x32.ico +0 -0
  6. package/branding/dist/ico/typeflow-logo-48x48.ico +0 -0
  7. package/branding/dist/png/typeflow-logo-1024x1024.png +0 -0
  8. package/branding/dist/png/typeflow-logo-128x128.png +0 -0
  9. package/branding/dist/png/typeflow-logo-16x16.png +0 -0
  10. package/branding/dist/png/typeflow-logo-256x256.png +0 -0
  11. package/branding/dist/png/typeflow-logo-512x512.png +0 -0
  12. package/branding/dist/png/typeflow-logo-64x64.png +0 -0
  13. package/branding/dist/webp/typeflow-logo-1024x1024.webp +0 -0
  14. package/branding/dist/webp/typeflow-logo-128x128.webp +0 -0
  15. package/branding/dist/webp/typeflow-logo-16x16.webp +0 -0
  16. package/branding/dist/webp/typeflow-logo-256x256.webp +0 -0
  17. package/branding/dist/webp/typeflow-logo-32x32.webp +0 -0
  18. package/branding/dist/webp/typeflow-logo-48x48.webp +0 -0
  19. package/branding/dist/webp/typeflow-logo-512x512.webp +0 -0
  20. package/branding/dist/webp/typeflow-logo-64x64.webp +0 -0
  21. package/branding/gen-logo.ps1 +14 -0
  22. package/branding/typeflow-logo.svg +162 -0
  23. package/dist/typeflow/LICENSE +21 -0
  24. package/dist/typeflow/README.md +231 -0
  25. package/dist/typeflow/branding/dist/ico/typeflow-logo-16x16.ico +0 -0
  26. package/dist/typeflow/branding/dist/ico/typeflow-logo-256x256.ico +0 -0
  27. package/dist/typeflow/branding/dist/ico/typeflow-logo-32x32.ico +0 -0
  28. package/dist/typeflow/branding/dist/ico/typeflow-logo-48x48.ico +0 -0
  29. package/dist/typeflow/branding/dist/png/typeflow-logo-1024x1024.png +0 -0
  30. package/dist/typeflow/branding/dist/png/typeflow-logo-128x128.png +0 -0
  31. package/dist/typeflow/branding/dist/png/typeflow-logo-16x16.png +0 -0
  32. package/dist/typeflow/branding/dist/png/typeflow-logo-256x256.png +0 -0
  33. package/dist/typeflow/branding/dist/png/typeflow-logo-512x512.png +0 -0
  34. package/dist/typeflow/branding/dist/png/typeflow-logo-64x64.png +0 -0
  35. package/dist/typeflow/branding/dist/webp/typeflow-logo-1024x1024.webp +0 -0
  36. package/dist/typeflow/branding/dist/webp/typeflow-logo-128x128.webp +0 -0
  37. package/dist/typeflow/branding/dist/webp/typeflow-logo-16x16.webp +0 -0
  38. package/dist/typeflow/branding/dist/webp/typeflow-logo-256x256.webp +0 -0
  39. package/dist/typeflow/branding/dist/webp/typeflow-logo-32x32.webp +0 -0
  40. package/dist/typeflow/branding/dist/webp/typeflow-logo-48x48.webp +0 -0
  41. package/dist/typeflow/branding/dist/webp/typeflow-logo-512x512.webp +0 -0
  42. package/dist/typeflow/branding/dist/webp/typeflow-logo-64x64.webp +0 -0
  43. package/dist/typeflow/branding/gen-logo.ps1 +14 -0
  44. package/dist/typeflow/branding/typeflow-logo.svg +162 -0
  45. package/dist/typeflow/dist/typeflow-caret.cjs +47 -0
  46. package/dist/typeflow/dist/typeflow-caret.cjs.map +1 -0
  47. package/dist/typeflow/dist/typeflow-caret.esm.js +47 -0
  48. package/dist/typeflow/dist/typeflow-caret.esm.js.map +1 -0
  49. package/dist/typeflow/dist/typeflow-caret.esm.min.js +2 -0
  50. package/dist/typeflow/dist/typeflow-caret.esm.min.js.map +1 -0
  51. package/dist/typeflow/dist/typeflow-caret.js +47 -0
  52. package/dist/typeflow/dist/typeflow-caret.js.map +1 -0
  53. package/dist/typeflow/dist/typeflow-caret.min.js +2 -0
  54. package/dist/typeflow/dist/typeflow-caret.min.js.map +1 -0
  55. package/dist/typeflow/dist/typeflow-caret.mjs +47 -0
  56. package/dist/typeflow/dist/typeflow-caret.mjs.map +1 -0
  57. package/dist/typeflow/dist/typeflow-debug.cjs +109 -0
  58. package/dist/typeflow/dist/typeflow-debug.cjs.map +1 -0
  59. package/dist/typeflow/dist/typeflow-debug.esm.js +109 -0
  60. package/dist/typeflow/dist/typeflow-debug.esm.js.map +1 -0
  61. package/dist/typeflow/dist/typeflow-debug.esm.min.js +2 -0
  62. package/dist/typeflow/dist/typeflow-debug.esm.min.js.map +1 -0
  63. package/dist/typeflow/dist/typeflow-debug.js +109 -0
  64. package/dist/typeflow/dist/typeflow-debug.js.map +1 -0
  65. package/dist/typeflow/dist/typeflow-debug.min.js +2 -0
  66. package/dist/typeflow/dist/typeflow-debug.min.js.map +1 -0
  67. package/dist/typeflow/dist/typeflow-debug.mjs +109 -0
  68. package/dist/typeflow/dist/typeflow-debug.mjs.map +1 -0
  69. package/dist/typeflow/dist/typeflow-extchars.cjs +66 -0
  70. package/dist/typeflow/dist/typeflow-extchars.cjs.map +1 -0
  71. package/dist/typeflow/dist/typeflow-extchars.esm.js +66 -0
  72. package/dist/typeflow/dist/typeflow-extchars.esm.js.map +1 -0
  73. package/dist/typeflow/dist/typeflow-extchars.esm.min.js +2 -0
  74. package/dist/typeflow/dist/typeflow-extchars.esm.min.js.map +1 -0
  75. package/dist/typeflow/dist/typeflow-extchars.js +66 -0
  76. package/dist/typeflow/dist/typeflow-extchars.js.map +1 -0
  77. package/dist/typeflow/dist/typeflow-extchars.min.js +2 -0
  78. package/dist/typeflow/dist/typeflow-extchars.min.js.map +1 -0
  79. package/dist/typeflow/dist/typeflow-extchars.mjs +66 -0
  80. package/dist/typeflow/dist/typeflow-extchars.mjs.map +1 -0
  81. package/dist/typeflow/dist/typeflow-keystroke.cjs +47 -0
  82. package/dist/typeflow/dist/typeflow-keystroke.cjs.map +1 -0
  83. package/dist/typeflow/dist/typeflow-keystroke.esm.js +47 -0
  84. package/dist/typeflow/dist/typeflow-keystroke.esm.js.map +1 -0
  85. package/dist/typeflow/dist/typeflow-keystroke.esm.min.js +2 -0
  86. package/dist/typeflow/dist/typeflow-keystroke.esm.min.js.map +1 -0
  87. package/dist/typeflow/dist/typeflow-keystroke.js +47 -0
  88. package/dist/typeflow/dist/typeflow-keystroke.js.map +1 -0
  89. package/dist/typeflow/dist/typeflow-keystroke.min.js +2 -0
  90. package/dist/typeflow/dist/typeflow-keystroke.min.js.map +1 -0
  91. package/dist/typeflow/dist/typeflow-keystroke.mjs +47 -0
  92. package/dist/typeflow/dist/typeflow-keystroke.mjs.map +1 -0
  93. package/dist/typeflow/dist/typeflow-metrics.cjs +76 -0
  94. package/dist/typeflow/dist/typeflow-metrics.cjs.map +1 -0
  95. package/dist/typeflow/dist/typeflow-metrics.esm.js +76 -0
  96. package/dist/typeflow/dist/typeflow-metrics.esm.js.map +1 -0
  97. package/dist/typeflow/dist/typeflow-metrics.esm.min.js +2 -0
  98. package/dist/typeflow/dist/typeflow-metrics.esm.min.js.map +1 -0
  99. package/dist/typeflow/dist/typeflow-metrics.js +76 -0
  100. package/dist/typeflow/dist/typeflow-metrics.js.map +1 -0
  101. package/dist/typeflow/dist/typeflow-metrics.min.js +2 -0
  102. package/dist/typeflow/dist/typeflow-metrics.min.js.map +1 -0
  103. package/dist/typeflow/dist/typeflow-metrics.mjs +76 -0
  104. package/dist/typeflow/dist/typeflow-metrics.mjs.map +1 -0
  105. package/dist/typeflow/dist/typeflow-parallel.cjs +3 -0
  106. package/dist/typeflow/dist/typeflow-parallel.cjs.map +1 -0
  107. package/dist/typeflow/dist/typeflow-parallel.esm.js +3 -0
  108. package/dist/typeflow/dist/typeflow-parallel.esm.js.map +1 -0
  109. package/dist/typeflow/dist/typeflow-parallel.esm.min.js +2 -0
  110. package/dist/typeflow/dist/typeflow-parallel.esm.min.js.map +1 -0
  111. package/dist/typeflow/dist/typeflow-parallel.js +3 -0
  112. package/dist/typeflow/dist/typeflow-parallel.js.map +1 -0
  113. package/dist/typeflow/dist/typeflow-parallel.min.js +2 -0
  114. package/dist/typeflow/dist/typeflow-parallel.min.js.map +1 -0
  115. package/dist/typeflow/dist/typeflow-parallel.mjs +3 -0
  116. package/dist/typeflow/dist/typeflow-parallel.mjs.map +1 -0
  117. package/dist/typeflow/dist/typeflow-webaudio.cjs +81 -0
  118. package/dist/typeflow/dist/typeflow-webaudio.cjs.map +1 -0
  119. package/dist/typeflow/dist/typeflow-webaudio.esm.js +81 -0
  120. package/dist/typeflow/dist/typeflow-webaudio.esm.js.map +1 -0
  121. package/dist/typeflow/dist/typeflow-webaudio.esm.min.js +2 -0
  122. package/dist/typeflow/dist/typeflow-webaudio.esm.min.js.map +1 -0
  123. package/dist/typeflow/dist/typeflow-webaudio.js +81 -0
  124. package/dist/typeflow/dist/typeflow-webaudio.js.map +1 -0
  125. package/dist/typeflow/dist/typeflow-webaudio.min.js +2 -0
  126. package/dist/typeflow/dist/typeflow-webaudio.min.js.map +1 -0
  127. package/dist/typeflow/dist/typeflow-webaudio.mjs +81 -0
  128. package/dist/typeflow/dist/typeflow-webaudio.mjs.map +1 -0
  129. package/dist/typeflow/dist/typeflow.cjs +277 -0
  130. package/dist/typeflow/dist/typeflow.cjs.map +1 -0
  131. package/dist/typeflow/dist/typeflow.esm.js +277 -0
  132. package/dist/typeflow/dist/typeflow.esm.js.map +1 -0
  133. package/dist/typeflow/dist/typeflow.esm.min.js +2 -0
  134. package/dist/typeflow/dist/typeflow.esm.min.js.map +1 -0
  135. package/dist/typeflow/dist/typeflow.js +277 -0
  136. package/dist/typeflow/dist/typeflow.js.map +1 -0
  137. package/dist/typeflow/dist/typeflow.min.js +2 -0
  138. package/dist/typeflow/dist/typeflow.min.js.map +1 -0
  139. package/dist/typeflow/dist/typeflow.mjs +277 -0
  140. package/dist/typeflow/dist/typeflow.mjs.map +1 -0
  141. package/dist/typeflow/jsr.jsonc +27 -0
  142. package/dist/typeflow/package.json +79 -0
  143. package/dist/typeflow/src/typeflow-audio-presets.js +137 -0
  144. package/dist/typeflow/src/typeflow-caret.d.ts +65 -0
  145. package/dist/typeflow/src/typeflow-caret.js +303 -0
  146. package/dist/typeflow/src/typeflow-debug.d.ts +34 -0
  147. package/dist/typeflow/src/typeflow-debug.js +223 -0
  148. package/dist/typeflow/src/typeflow-extchars.d.ts +28 -0
  149. package/dist/typeflow/src/typeflow-extchars.js +132 -0
  150. package/dist/typeflow/src/typeflow-keystroke.d.ts +28 -0
  151. package/dist/typeflow/src/typeflow-keystroke.js +220 -0
  152. package/dist/typeflow/src/typeflow-metrics.d.ts +38 -0
  153. package/dist/typeflow/src/typeflow-metrics.js +556 -0
  154. package/dist/typeflow/src/typeflow-parallel.d.ts +36 -0
  155. package/dist/typeflow/src/typeflow-parallel.js +157 -0
  156. package/dist/typeflow/src/typeflow-webaudio.d.ts +83 -0
  157. package/dist/typeflow/src/typeflow-webaudio.js +517 -0
  158. package/dist/typeflow/src/typeflow.d.ts +328 -0
  159. package/dist/typeflow/src/typeflow.js +2119 -0
  160. package/jsr.jsonc +27 -0
  161. package/package.json +133 -0
  162. package/src/typeflow-audio-presets.js +137 -0
  163. package/src/typeflow-caret.d.ts +65 -0
  164. package/src/typeflow-caret.js +303 -0
  165. package/src/typeflow-debug.d.ts +34 -0
  166. package/src/typeflow-debug.js +223 -0
  167. package/src/typeflow-extchars.d.ts +28 -0
  168. package/src/typeflow-extchars.js +132 -0
  169. package/src/typeflow-keystroke.d.ts +28 -0
  170. package/src/typeflow-keystroke.js +220 -0
  171. package/src/typeflow-metrics.d.ts +38 -0
  172. package/src/typeflow-metrics.js +556 -0
  173. package/src/typeflow-parallel.d.ts +36 -0
  174. package/src/typeflow-parallel.js +157 -0
  175. package/src/typeflow-webaudio.d.ts +83 -0
  176. package/src/typeflow-webaudio.js +517 -0
  177. package/src/typeflow.d.ts +328 -0
  178. package/src/typeflow.js +2119 -0
@@ -0,0 +1,109 @@
1
+ /*! typeflow-debug | MIT */
2
+ var o=Object.defineProperty,e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,r=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(o,l)=>{for(var i in l||(l={}))t.call(l,i)&&r(o,i,l[i]);if(e)for(var i of e(l))n.call(l,i)&&r(o,i,l[i]);return o},i=(o,e,t)=>r(o,"symbol"!=typeof e?e+"":e,t);const a=class o{
3
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
4
+ * @description Enables diagnostic telemetry tracing across TypeFlow animation lifecycles.
5
+ * @param {Object} [opts={}] - Configuration options for the debug session.
6
+ * @returns {void}
7
+ *
8
+ * -------------
9
+ *
10
+ * @Properties
11
+ * @param {boolean} [opts.logcad=true] - Whether to route logs through @staticcanvas/logcad if available.
12
+ * @param {boolean} [opts.console=true] - Whether to output styled colored logs to the browser console.
13
+ * @param {number} [opts.maxHistory=200] - Maximum number of recent log entries to retain in memory.
14
+ * @param {boolean} [opts.traceFrames=false] - Whether to log every individual frame render tick.
15
+ *
16
+ * -------------
17
+ *
18
+ * @example
19
+ *
20
+ * // Enable debugging with default settings
21
+ * TypeFlowDebug.enable();
22
+ *
23
+ * // Enable with custom history size and disabled console output
24
+ * TypeFlowDebug.enable({
25
+ * logcad: true,
26
+ * console: false,
27
+ * maxHistory: 500,
28
+ * });
29
+ */
30
+ static enable(e={}){o.options=l(l({},o.options),e),o.enabled=!0,o.log("info","TypeFlowDebug enabled",{options:o.options})}
31
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
32
+ * @description Disables diagnostic tracing and halts active logging.
33
+ * @returns {void}
34
+ *
35
+ * -------------
36
+ *
37
+ * @example
38
+ * TypeFlowDebug.disable();
39
+ */static disable(){o.enabled=!1,o.log("info","TypeFlowDebug disabled")}
40
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
41
+ * @description Internal logging bridge supporting @staticcanvas/logcad and styled console messages.
42
+ * @param {'info' | 'warn' | 'error' | 'debug' | 'trace'} level - Severity level of the log entry.
43
+ * @param {string} message - Human-readable summary of the event.
44
+ * @param {Object} [data={}] - Contextual payload data to associate with the event.
45
+ * @returns {void}
46
+ *
47
+ * -------------
48
+ *
49
+ * @Properties
50
+ * @param {string} level - Severity level ('info', 'warn', 'error', 'debug', 'trace').
51
+ * @param {string} message - The message text to record.
52
+ * @param {Object} [data={}] - Arbitrary metadata object (timings, diffs, controllers).
53
+ *
54
+ * -------------
55
+ *
56
+ * @example
57
+ * TypeFlowDebug.log('info', 'Sequence step completed', { step: 1, duration: 45 });
58
+ * TypeFlowDebug.log('warn', 'Frame drop detected', { expectedMs: 16, actualMs: 34 });
59
+ */static log(e,t,n={}){var r,l;if(!o.enabled&&"error"!==e)return;const i={timestamp:(new Date).toISOString(),level:e,message:t,data:n};if(o.history.push(i),o.history.length>o.options.maxHistory&&o.history.shift(),o.options.logcad&&"undefined"!=typeof globalThis&&globalThis.logcad)try{const o=(null==(l=(r=globalThis.logcad).getLogger)?void 0:l.call(r,"TypeFlow"))||globalThis.logcad;if("function"==typeof o[e])return void o[e](t,n)}catch(o){}if(o.options.console&&"undefined"!=typeof console){const o={info:"color: #38bdf8; font-weight: bold;",warn:"color: #f59e0b; font-weight: bold;",error:"color: #ef4444; font-weight: bold;",debug:"color: #ff6b2b; font-weight: bold;",trace:"color: #94a3b8; font-weight: normal;"},r=`%c[TypeFlow:${e.toUpperCase()}]`,l=o[e]||o.info;Object.keys(n).length>0?console["trace"===e?"debug":e]||console.log(r,l,t,n):console["trace"===e?"debug":e]||console.log(r,l,t)}}
60
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
61
+ * @description Tracks a specific TypeFlow animation controller and logs lifecycle events upon resolution or rejection.
62
+ * @param {Object} controller - Active TypeFlow controller instance.
63
+ * @param {string} [label='Animation'] - Descriptive name for the tracked target.
64
+ * @returns {Object} The passed-in controller for chaining.
65
+ *
66
+ * -------------
67
+ *
68
+ * @Properties
69
+ * @param {Object} controller - The TypeFlow controller returned by TypeFlow.type() / TypeFlow.erase().
70
+ * @param {Promise} controller.promise - The underlying completion promise.
71
+ * @param {Function} controller.stop - Method to abort the animation.
72
+ * @param {string} [label='Animation'] - Label displayed in log output.
73
+ *
74
+ * -------------
75
+ *
76
+ * @example
77
+ * const ctrl = TypeFlow.type('#headline', 'Hello World');
78
+ * TypeFlowDebug.trace(ctrl, 'Hero Headline');
79
+ */static trace(e,t="Animation"){if(!o.enabled||!e)return e;const n=performance.now();return o.log("debug",`[${t}] Started animation`,{controller:e}),e.promise&&e.promise.then(e=>{const r=(performance.now()-n).toFixed(2);o.log("info",`[${t}] Resolved (${r}ms)`,e)},e=>{const r=(performance.now()-n).toFixed(2);o.log("error",`[${t}] Rejected (${r}ms)`,e)}),e}
80
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
81
+ * @description Returns a shallow copy of the recorded event history.
82
+ * @returns {Array<Object>} List of history entry objects.
83
+ *
84
+ * -------------
85
+ *
86
+ * @example
87
+ * const history = TypeFlowDebug.getHistory();
88
+ * console.log('Total recorded events:', history.length);
89
+ */static getHistory(){return[...o.history]}
90
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
91
+ * @description Clears the current event history ring buffer.
92
+ * @returns {void}
93
+ *
94
+ * -------------
95
+ *
96
+ * @example
97
+ * TypeFlowDebug.clearHistory();
98
+ */static clearHistory(){o.history=[]}
99
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
100
+ * @description Exports recorded telemetry event history as a formatted JSON string.
101
+ * @returns {string} Serialized JSON representation of debug history.
102
+ *
103
+ * -------------
104
+ *
105
+ * @example
106
+ * const jsonReport = TypeFlowDebug.exportLog();
107
+ * navigator.clipboard.writeText(jsonReport);
108
+ */static exportLog(){return JSON.stringify(o.history,null,2)}};i(a,"enabled",!1),i(a,"options",{logcad:!0,console:!0,maxHistory:200,traceFrames:!1}),i(a,"history",[]),i(a,"originalType",null),i(a,"originalErase",null);let s=a;"undefined"!=typeof window&&(window.TypeFlowDebug=s);export{s as TypeFlowDebug};
109
+ //# sourceMappingURL=typeflow-debug.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-debug.mjs","sources":["../../../src/typeflow-debug.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow Debug - Diagnostic Tracing and LogCAD Integration.\n * Provides lifecycle telemetry, animation step timings, event hooks, and structured\n * logger integration for TypeFlow applications.\n *\n * @module @staticcanvas/typeflow/debug\n */\n\nexport class TypeFlowDebug {\n static enabled = false;\n static options = {\n logcad: true,\n console: true,\n maxHistory: 200,\n traceFrames: false,\n };\n static history = [];\n static originalType = null;\n static originalErase = null;\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Enables diagnostic telemetry tracing across TypeFlow animation lifecycles.\n * @param {Object} [opts={}] - Configuration options for the debug session.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {boolean} [opts.logcad=true] - Whether to route logs through @staticcanvas/logcad if available.\n * @param {boolean} [opts.console=true] - Whether to output styled colored logs to the browser console.\n * @param {number} [opts.maxHistory=200] - Maximum number of recent log entries to retain in memory.\n * @param {boolean} [opts.traceFrames=false] - Whether to log every individual frame render tick.\n *\n * -------------\n *\n * @example\n *\n * // Enable debugging with default settings\n * TypeFlowDebug.enable();\n *\n * // Enable with custom history size and disabled console output\n * TypeFlowDebug.enable({\n * logcad: true,\n * console: false,\n * maxHistory: 500,\n * });\n */\n static enable(opts = {}) {\n TypeFlowDebug.options = { ...TypeFlowDebug.options, ...opts };\n TypeFlowDebug.enabled = true;\n TypeFlowDebug.log('info', 'TypeFlowDebug enabled', { options: TypeFlowDebug.options });\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Disables diagnostic tracing and halts active logging.\n * @returns {void}\n *\n * -------------\n *\n * @example\n * TypeFlowDebug.disable();\n */\n static disable() {\n TypeFlowDebug.enabled = false;\n TypeFlowDebug.log('info', 'TypeFlowDebug disabled');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Internal logging bridge supporting @staticcanvas/logcad and styled console messages.\n * @param {'info' | 'warn' | 'error' | 'debug' | 'trace'} level - Severity level of the log entry.\n * @param {string} message - Human-readable summary of the event.\n * @param {Object} [data={}] - Contextual payload data to associate with the event.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} level - Severity level ('info', 'warn', 'error', 'debug', 'trace').\n * @param {string} message - The message text to record.\n * @param {Object} [data={}] - Arbitrary metadata object (timings, diffs, controllers).\n *\n * -------------\n *\n * @example\n * TypeFlowDebug.log('info', 'Sequence step completed', { step: 1, duration: 45 });\n * TypeFlowDebug.log('warn', 'Frame drop detected', { expectedMs: 16, actualMs: 34 });\n */\n static log(level, message, data = {}) {\n if (!TypeFlowDebug.enabled && level !== 'error') return;\n\n const entry = {\n timestamp: new Date().toISOString(),\n level,\n message,\n data,\n };\n\n TypeFlowDebug.history.push(entry);\n if (TypeFlowDebug.history.length > TypeFlowDebug.options.maxHistory) {\n TypeFlowDebug.history.shift();\n }\n\n // 1. Integration with @staticcanvas/logcad if available globally or via module\n if (TypeFlowDebug.options.logcad && typeof globalThis !== 'undefined' && globalThis.logcad) {\n try {\n const logger = globalThis.logcad.getLogger?.('TypeFlow') || globalThis.logcad;\n if (typeof logger[level] === 'function') {\n logger[level](message, data);\n return;\n }\n } catch {\n // Fallback to console\n }\n }\n\n // 2. Structured fallback console output with CSS colors\n if (TypeFlowDebug.options.console && typeof console !== 'undefined') {\n const colors = {\n info: 'color: #38bdf8; font-weight: bold;',\n warn: 'color: #f59e0b; font-weight: bold;',\n error: 'color: #ef4444; font-weight: bold;',\n debug: 'color: #ff6b2b; font-weight: bold;',\n trace: 'color: #94a3b8; font-weight: normal;',\n };\n\n const tag = `%c[TypeFlow:${level.toUpperCase()}]`;\n const style = colors[level] || colors.info;\n\n if (Object.keys(data).length > 0) {\n console[level === 'trace' ? 'debug' : level] || console.log(tag, style, message, data);\n } else {\n console[level === 'trace' ? 'debug' : level] || console.log(tag, style, message);\n }\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Tracks a specific TypeFlow animation controller and logs lifecycle events upon resolution or rejection.\n * @param {Object} controller - Active TypeFlow controller instance.\n * @param {string} [label='Animation'] - Descriptive name for the tracked target.\n * @returns {Object} The passed-in controller for chaining.\n *\n * -------------\n *\n * @Properties\n * @param {Object} controller - The TypeFlow controller returned by TypeFlow.type() / TypeFlow.erase().\n * @param {Promise} controller.promise - The underlying completion promise.\n * @param {Function} controller.stop - Method to abort the animation.\n * @param {string} [label='Animation'] - Label displayed in log output.\n *\n * -------------\n *\n * @example\n * const ctrl = TypeFlow.type('#headline', 'Hello World');\n * TypeFlowDebug.trace(ctrl, 'Hero Headline');\n */\n static trace(controller, label = 'Animation') {\n if (!TypeFlowDebug.enabled || !controller) return controller;\n\n const start = performance.now();\n TypeFlowDebug.log('debug', `[${label}] Started animation`, { controller });\n\n if (controller.promise) {\n controller.promise.then(\n (res) => {\n const duration = (performance.now() - start).toFixed(2);\n TypeFlowDebug.log('info', `[${label}] Resolved (${duration}ms)`, res);\n },\n (err) => {\n const duration = (performance.now() - start).toFixed(2);\n TypeFlowDebug.log('error', `[${label}] Rejected (${duration}ms)`, err);\n }\n );\n }\n\n return controller;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Returns a shallow copy of the recorded event history.\n * @returns {Array<Object>} List of history entry objects.\n *\n * -------------\n *\n * @example\n * const history = TypeFlowDebug.getHistory();\n * console.log('Total recorded events:', history.length);\n */\n static getHistory() {\n return [...TypeFlowDebug.history];\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Clears the current event history ring buffer.\n * @returns {void}\n *\n * -------------\n *\n * @example\n * TypeFlowDebug.clearHistory();\n */\n static clearHistory() {\n TypeFlowDebug.history = [];\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Exports recorded telemetry event history as a formatted JSON string.\n * @returns {string} Serialized JSON representation of debug history.\n *\n * -------------\n *\n * @example\n * const jsonReport = TypeFlowDebug.exportLog();\n * navigator.clipboard.writeText(jsonReport);\n */\n static exportLog() {\n return JSON.stringify(TypeFlowDebug.history, null, 2);\n }\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowDebug = TypeFlowDebug;\n}\n"],"names":["_TypeFlowDebug","enable","opts","options","__spreadValues","enabled","log","disable","level","message","data","_a","_b","entry","timestamp","Date","toISOString","history","push","length","maxHistory","shift","logcad","globalThis","logger","getLogger","call","e","console","colors","info","warn","error","debug","trace","tag","toUpperCase","style","Object","keys","controller","label","start","performance","now","promise","then","res","duration","toFixed","err","getHistory","clearHistory","exportLog","JSON","stringify","__publicField","traceFrames","TypeFlowDebug","window"],"mappings":";yXAQO,MAAMA,EAAN,MAAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCX,aAAOC,CAAOC,EAAO,IACnBF,EAAcG,QAAUC,EAAAA,EAAA,CAAA,EAAKJ,EAAcG,SAAYD,GACvDF,EAAcK,SAAU,EACxBL,EAAcM,IAAI,OAAQ,wBAAyB,CAAEH,QAASH,EAAcG,SAC9E;;;;;;;;;KAWA,cAAOI,GACLP,EAAcK,SAAU,EACxBL,EAAcM,IAAI,OAAQ,yBAC5B;;;;;;;;;;;;;;;;;;;;KAsBA,UAAOA,CAAIE,EAAOC,EAASC,EAAO,CAAA,GAvFpC,IAAAC,EAAAC,EAwFI,IAAKZ,EAAcK,SAAqB,UAAVG,EAAmB,OAEjD,MAAMK,EAAQ,CACZC,WAAA,IAAeC,MAAOC,cACtBR,QACAC,UACAC,QASF,GANAV,EAAciB,QAAQC,KAAKL,GACvBb,EAAciB,QAAQE,OAASnB,EAAcG,QAAQiB,YACvDpB,EAAciB,QAAQI,QAIpBrB,EAAcG,QAAQmB,QAAgC,oBAAfC,YAA8BA,WAAWD,OAClF,IACE,MAAME,GAAS,OAAAZ,GAAAD,EAAAY,WAAWD,QAAOG,gBAAlB,EAAAb,EAAAc,KAAAf,EAA8B,cAAeY,WAAWD,OACvE,GAA6B,mBAAlBE,EAAOhB,GAEhB,YADAgB,EAAOhB,GAAOC,EAASC,EAG3B,CAAA,MAAQiB,GAER,CAIF,GAAI3B,EAAcG,QAAQyB,SAA8B,oBAAZA,QAAyB,CACnE,MAAMC,EAAS,CACbC,KAAM,qCACNC,KAAM,qCACNC,MAAO,qCACPC,MAAO,qCACPC,MAAO,wCAGHC,EAAM,eAAe3B,EAAM4B,iBAC3BC,EAAQR,EAAOrB,IAAUqB,EAAOC,KAElCQ,OAAOC,KAAK7B,GAAMS,OAAS,EAC7BS,QAAkB,UAAVpB,EAAoB,QAAUA,IAAUoB,QAAQtB,IAAI6B,EAAKE,EAAO5B,EAASC,GAEjFkB,QAAkB,UAAVpB,EAAoB,QAAUA,IAAUoB,QAAQtB,IAAI6B,EAAKE,EAAO5B,EAE5E,CACF;;;;;;;;;;;;;;;;;;;;KAsBA,YAAOyB,CAAMM,EAAYC,EAAQ,aAC/B,IAAKzC,EAAcK,UAAYmC,EAAY,OAAOA,EAElD,MAAME,EAAQC,YAAYC,MAgB1B,OAfA5C,EAAcM,IAAI,QAAS,IAAImC,uBAA4B,CAAED,eAEzDA,EAAWK,SACbL,EAAWK,QAAQC,KAChBC,IACC,MAAMC,GAAYL,YAAYC,MAAQF,GAAOO,QAAQ,GACrDjD,EAAcM,IAAI,OAAQ,IAAImC,gBAAoBO,OAAeD,IAElEG,IACC,MAAMF,GAAYL,YAAYC,MAAQF,GAAOO,QAAQ,GACrDjD,EAAcM,IAAI,QAAS,IAAImC,gBAAoBO,OAAeE,KAKjEV,CACT;;;;;;;;;;KAYA,iBAAOW,GACL,MAAO,IAAInD,EAAciB,QAC3B;;;;;;;;;KAWA,mBAAOmC,GACLpD,EAAciB,QAAU,EAC1B;;;;;;;;;;KAYA,gBAAOoC,GACL,OAAOC,KAAKC,UAAUvD,EAAciB,QAAS,KAAM,EACrD,GAhNAuC,EADWxD,EACJ,WAAU,GACjBwD,EAFWxD,EAEJ,UAAU,CACfsB,QAAQ,EACRM,SAAS,EACTR,WAAY,IACZqC,aAAa,IAEfD,EARWxD,EAQJ,UAAU,IACjBwD,EATWxD,EASJ,eAAe,MACtBwD,EAVWxD,EAUJ,gBAAgB,MAVlB,IAAM0D,EAAN1D,EAoNe,oBAAX2D,SACTA,OAAOD,cAAgBA"}
@@ -0,0 +1,66 @@
1
+ /*! typeflow-extchars | MIT */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TypeflowExtChars={})}(this,function(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,n=(e,r,o)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[r]=o;const s={
3
+ // Ancient & Sacred Scripts
4
+ hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",
5
+ // Cyber & Terminal
6
+ katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",
7
+ // Mathematical & Technical
8
+ mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",
9
+ // Glitch
10
+ glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},i=class e{
11
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
12
+ * @description Retrieves a character set string by preset name.
13
+ * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').
14
+ * @returns {string} String of glyph characters.
15
+ *
16
+ * -------------
17
+ *
18
+ * @Properties
19
+ * @param {string} name - Name of the charset.
20
+ *
21
+ * -------------
22
+ *
23
+ * @example
24
+ * const runes = TypeFlowExtChars.getCharset('runic');
25
+ * console.log('Runic runes:', runes);
26
+ */
27
+ static getCharset(t){return e.charsets[String(t).toLowerCase()]||s.cyberMatrix}
28
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
29
+ * @description Registers a new custom charset preset globally.
30
+ * @param {string} name - Unique identifier for the custom charset.
31
+ * @param {string} glyphs - Pool of characters to associate with this preset.
32
+ * @returns {void}
33
+ *
34
+ * -------------
35
+ *
36
+ * @Properties
37
+ * @param {string} name - Identifier name.
38
+ * @param {string} glyphs - String of characters.
39
+ *
40
+ * -------------
41
+ *
42
+ * @example
43
+ * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');
44
+ * const alchemy = TypeFlowExtChars.getCharset('alchemy');
45
+ */static registerCharset(t,r){"string"==typeof t&&"string"==typeof r&&(e.charsets[t.toLowerCase()]=r)}
46
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
47
+ * @description Combines multiple charsets into a single merged pool.
48
+ * @param {...string} names - Charset names to concatenate.
49
+ * @returns {string} Merged character string.
50
+ *
51
+ * -------------
52
+ *
53
+ * @example
54
+ * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');
55
+ */static combineCharsets(...t){return t.map(t=>e.getCharset(t)).join("")}
56
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
57
+ * @description Selects a random single glyph from a charset string or preset name.
58
+ * @param {string} charsetOrName - Charset string or registered name.
59
+ * @returns {string} Random single character glyph.
60
+ *
61
+ * -------------
62
+ *
63
+ * @example
64
+ * const rune = TypeFlowExtChars.randomGlyph('runic');
65
+ */static randomGlyph(t){const r=e.charsets[t]||t||s.cyberMatrix,o=Array.from(r);return o[Math.floor(Math.random()*o.length)]||"#"}};var c,l,f;c=i,l="charsets",f=((e,t)=>{for(var s in t||(t={}))o.call(t,s)&&n(e,s,t[s]);if(r)for(var s of r(t))a.call(t,s)&&n(e,s,t[s]);return e})({},s),n(c,"symbol"!=typeof l?l+"":l,f);let h=i;function p(e){return h.getCharset(e)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=p),e.EXT_CHARSETS=s,e.TypeFlowExtChars=h,e.getExtendedCharset=p,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
66
+ //# sourceMappingURL=typeflow-extchars.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.cjs","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":";gdAQY,MAACA,EAAe;;AAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ;;AAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE;;AAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW;;AAGXC,OAAQ,+CAGGC,EAAN,MAAMA;;;;;;;;;;;;;;;;;AAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E;;;;;;;;;;;;;;;;;;OAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD;;;;;;;;;;OAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D;;;;;;;;;;OAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}
@@ -0,0 +1,66 @@
1
+ /*! typeflow-extchars | MIT */
2
+ var t=Object.defineProperty,r=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,o=(r,e,a)=>e in r?t(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;const s={
3
+ // Ancient & Sacred Scripts
4
+ hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",
5
+ // Cyber & Terminal
6
+ katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",
7
+ // Mathematical & Technical
8
+ mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",
9
+ // Glitch
10
+ glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},n=class t{
11
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
12
+ * @description Retrieves a character set string by preset name.
13
+ * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').
14
+ * @returns {string} String of glyph characters.
15
+ *
16
+ * -------------
17
+ *
18
+ * @Properties
19
+ * @param {string} name - Name of the charset.
20
+ *
21
+ * -------------
22
+ *
23
+ * @example
24
+ * const runes = TypeFlowExtChars.getCharset('runic');
25
+ * console.log('Runic runes:', runes);
26
+ */
27
+ static getCharset(r){return t.charsets[String(r).toLowerCase()]||s.cyberMatrix}
28
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
29
+ * @description Registers a new custom charset preset globally.
30
+ * @param {string} name - Unique identifier for the custom charset.
31
+ * @param {string} glyphs - Pool of characters to associate with this preset.
32
+ * @returns {void}
33
+ *
34
+ * -------------
35
+ *
36
+ * @Properties
37
+ * @param {string} name - Identifier name.
38
+ * @param {string} glyphs - String of characters.
39
+ *
40
+ * -------------
41
+ *
42
+ * @example
43
+ * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');
44
+ * const alchemy = TypeFlowExtChars.getCharset('alchemy');
45
+ */static registerCharset(r,e){"string"==typeof r&&"string"==typeof e&&(t.charsets[r.toLowerCase()]=e)}
46
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
47
+ * @description Combines multiple charsets into a single merged pool.
48
+ * @param {...string} names - Charset names to concatenate.
49
+ * @returns {string} Merged character string.
50
+ *
51
+ * -------------
52
+ *
53
+ * @example
54
+ * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');
55
+ */static combineCharsets(...r){return r.map(r=>t.getCharset(r)).join("")}
56
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
57
+ * @description Selects a random single glyph from a charset string or preset name.
58
+ * @param {string} charsetOrName - Charset string or registered name.
59
+ * @returns {string} Random single character glyph.
60
+ *
61
+ * -------------
62
+ *
63
+ * @example
64
+ * const rune = TypeFlowExtChars.randomGlyph('runic');
65
+ */static randomGlyph(r){const e=t.charsets[r]||r||s.cyberMatrix,a=Array.from(e);return a[Math.floor(Math.random()*a.length)]||"#"}};var i,c,l;i=n,c="charsets",l=((t,s)=>{for(var n in s||(s={}))e.call(s,n)&&o(t,n,s[n]);if(r)for(var n of r(s))a.call(s,n)&&o(t,n,s[n]);return t})({},s),o(i,"symbol"!=typeof c?c+"":c,l);let h=n;function y(t){return h.getCharset(t)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=y);export{s as EXT_CHARSETS,h as TypeFlowExtChars,y as getExtendedCharset};
66
+ //# sourceMappingURL=typeflow-extchars.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.esm.js","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":";yNAQY,MAACA,EAAe;;AAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ;;AAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE;;AAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW;;AAGXC,OAAQ,+CAGGC,EAAN,MAAMA;;;;;;;;;;;;;;;;;AAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E;;;;;;;;;;;;;;;;;;KAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD;;;;;;;;;;KAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D;;;;;;;;;;KAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}
@@ -0,0 +1,2 @@
1
+ var t=Object.defineProperty,r=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,o=(r,e,a)=>e in r?t(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;const s={hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},n=class t{static getCharset(r){return t.charsets[String(r).toLowerCase()]||s.cyberMatrix}static registerCharset(r,e){"string"==typeof r&&"string"==typeof e&&(t.charsets[r.toLowerCase()]=e)}static combineCharsets(...r){return r.map(r=>t.getCharset(r)).join("")}static randomGlyph(r){const e=t.charsets[r]||r||s.cyberMatrix,a=Array.from(e);return a[Math.floor(Math.random()*a.length)]||"#"}};var i,c,l;i=n,c="charsets",l=((t,s)=>{for(var n in s||(s={}))e.call(s,n)&&o(t,n,s[n]);if(r)for(var n of r(s))a.call(s,n)&&o(t,n,s[n]);return t})({},s),o(i,"symbol"!=typeof c?c+"":c,l);let h=n;function y(t){return h.getCharset(t)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=y);export{s as EXT_CHARSETS,h as TypeFlowExtChars,y as getExtendedCharset};
2
+ //# sourceMappingURL=typeflow-extchars.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.esm.min.js","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":"yNAQY,MAACA,EAAe,CAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ,qCAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE,0FAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW,uCAGXC,OAAQ,+CAGGC,EAAN,MAAMA,EAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E,CAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD,CAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D,CAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}
@@ -0,0 +1,66 @@
1
+ /*! typeflow-extchars | MIT */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TypeflowExtChars={})}(this,function(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,n=(e,r,o)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[r]=o;const s={
3
+ // Ancient & Sacred Scripts
4
+ hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",
5
+ // Cyber & Terminal
6
+ katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",
7
+ // Mathematical & Technical
8
+ mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",
9
+ // Glitch
10
+ glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},i=class e{
11
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
12
+ * @description Retrieves a character set string by preset name.
13
+ * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').
14
+ * @returns {string} String of glyph characters.
15
+ *
16
+ * -------------
17
+ *
18
+ * @Properties
19
+ * @param {string} name - Name of the charset.
20
+ *
21
+ * -------------
22
+ *
23
+ * @example
24
+ * const runes = TypeFlowExtChars.getCharset('runic');
25
+ * console.log('Runic runes:', runes);
26
+ */
27
+ static getCharset(t){return e.charsets[String(t).toLowerCase()]||s.cyberMatrix}
28
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
29
+ * @description Registers a new custom charset preset globally.
30
+ * @param {string} name - Unique identifier for the custom charset.
31
+ * @param {string} glyphs - Pool of characters to associate with this preset.
32
+ * @returns {void}
33
+ *
34
+ * -------------
35
+ *
36
+ * @Properties
37
+ * @param {string} name - Identifier name.
38
+ * @param {string} glyphs - String of characters.
39
+ *
40
+ * -------------
41
+ *
42
+ * @example
43
+ * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');
44
+ * const alchemy = TypeFlowExtChars.getCharset('alchemy');
45
+ */static registerCharset(t,r){"string"==typeof t&&"string"==typeof r&&(e.charsets[t.toLowerCase()]=r)}
46
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
47
+ * @description Combines multiple charsets into a single merged pool.
48
+ * @param {...string} names - Charset names to concatenate.
49
+ * @returns {string} Merged character string.
50
+ *
51
+ * -------------
52
+ *
53
+ * @example
54
+ * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');
55
+ */static combineCharsets(...t){return t.map(t=>e.getCharset(t)).join("")}
56
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
57
+ * @description Selects a random single glyph from a charset string or preset name.
58
+ * @param {string} charsetOrName - Charset string or registered name.
59
+ * @returns {string} Random single character glyph.
60
+ *
61
+ * -------------
62
+ *
63
+ * @example
64
+ * const rune = TypeFlowExtChars.randomGlyph('runic');
65
+ */static randomGlyph(t){const r=e.charsets[t]||t||s.cyberMatrix,o=Array.from(r);return o[Math.floor(Math.random()*o.length)]||"#"}};var c,l,f;c=i,l="charsets",f=((e,t)=>{for(var s in t||(t={}))o.call(t,s)&&n(e,s,t[s]);if(r)for(var s of r(t))a.call(t,s)&&n(e,s,t[s]);return e})({},s),n(c,"symbol"!=typeof l?l+"":l,f);let h=i;function p(e){return h.getCharset(e)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=p),e.EXT_CHARSETS=s,e.TypeFlowExtChars=h,e.getExtendedCharset=p,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
66
+ //# sourceMappingURL=typeflow-extchars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.js","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":";gdAQY,MAACA,EAAe;;AAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ;;AAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE;;AAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW;;AAGXC,OAAQ,+CAGGC,EAAN,MAAMA;;;;;;;;;;;;;;;;;AAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E;;;;;;;;;;;;;;;;;;OAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD;;;;;;;;;;OAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D;;;;;;;;;;OAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TypeflowExtChars={})}(this,function(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,n=(e,r,o)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[r]=o;const s={hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},i=class e{static getCharset(t){return e.charsets[String(t).toLowerCase()]||s.cyberMatrix}static registerCharset(t,r){"string"==typeof t&&"string"==typeof r&&(e.charsets[t.toLowerCase()]=r)}static combineCharsets(...t){return t.map(t=>e.getCharset(t)).join("")}static randomGlyph(t){const r=e.charsets[t]||t||s.cyberMatrix,o=Array.from(r);return o[Math.floor(Math.random()*o.length)]||"#"}};var c,l,f;c=i,l="charsets",f=((e,t)=>{for(var s in t||(t={}))o.call(t,s)&&n(e,s,t[s]);if(r)for(var s of r(t))a.call(t,s)&&n(e,s,t[s]);return e})({},s),n(c,"symbol"!=typeof l?l+"":l,f);let h=i;function p(e){return h.getCharset(e)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=p),e.EXT_CHARSETS=s,e.TypeFlowExtChars=h,e.getExtendedCharset=p,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=typeflow-extchars.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.min.js","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":"gdAQY,MAACA,EAAe,CAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ,qCAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE,0FAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW,uCAGXC,OAAQ,+CAGGC,EAAN,MAAMA,EAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E,CAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD,CAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D,CAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}
@@ -0,0 +1,66 @@
1
+ /*! typeflow-extchars | MIT */
2
+ var t=Object.defineProperty,r=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,o=(r,e,a)=>e in r?t(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;const s={
3
+ // Ancient & Sacred Scripts
4
+ hieroglyphs:"𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻",runic:"ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ",ogham:"ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ",coptic:"ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ",
5
+ // Cyber & Terminal
6
+ katakana:"ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン",cyberMatrix:"01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01",blocks:"█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩",boxDrawing:"─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬",
7
+ // Mathematical & Technical
8
+ mathSymbols:"∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯",braille:"⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿",astronomical:"☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡",geometric:"▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥",
9
+ // Glitch
10
+ glitch:"!<>-_\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠"},n=class t{
11
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
12
+ * @description Retrieves a character set string by preset name.
13
+ * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').
14
+ * @returns {string} String of glyph characters.
15
+ *
16
+ * -------------
17
+ *
18
+ * @Properties
19
+ * @param {string} name - Name of the charset.
20
+ *
21
+ * -------------
22
+ *
23
+ * @example
24
+ * const runes = TypeFlowExtChars.getCharset('runic');
25
+ * console.log('Runic runes:', runes);
26
+ */
27
+ static getCharset(r){return t.charsets[String(r).toLowerCase()]||s.cyberMatrix}
28
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
29
+ * @description Registers a new custom charset preset globally.
30
+ * @param {string} name - Unique identifier for the custom charset.
31
+ * @param {string} glyphs - Pool of characters to associate with this preset.
32
+ * @returns {void}
33
+ *
34
+ * -------------
35
+ *
36
+ * @Properties
37
+ * @param {string} name - Identifier name.
38
+ * @param {string} glyphs - String of characters.
39
+ *
40
+ * -------------
41
+ *
42
+ * @example
43
+ * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');
44
+ * const alchemy = TypeFlowExtChars.getCharset('alchemy');
45
+ */static registerCharset(r,e){"string"==typeof r&&"string"==typeof e&&(t.charsets[r.toLowerCase()]=e)}
46
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
47
+ * @description Combines multiple charsets into a single merged pool.
48
+ * @param {...string} names - Charset names to concatenate.
49
+ * @returns {string} Merged character string.
50
+ *
51
+ * -------------
52
+ *
53
+ * @example
54
+ * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');
55
+ */static combineCharsets(...r){return r.map(r=>t.getCharset(r)).join("")}
56
+ /** * * * * * * * * * * * * * * * * * * * * * * * * * * **
57
+ * @description Selects a random single glyph from a charset string or preset name.
58
+ * @param {string} charsetOrName - Charset string or registered name.
59
+ * @returns {string} Random single character glyph.
60
+ *
61
+ * -------------
62
+ *
63
+ * @example
64
+ * const rune = TypeFlowExtChars.randomGlyph('runic');
65
+ */static randomGlyph(r){const e=t.charsets[r]||r||s.cyberMatrix,a=Array.from(e);return a[Math.floor(Math.random()*a.length)]||"#"}};var i,c,l;i=n,c="charsets",l=((t,s)=>{for(var n in s||(s={}))e.call(s,n)&&o(t,n,s[n]);if(r)for(var n of r(s))a.call(s,n)&&o(t,n,s[n]);return t})({},s),o(i,"symbol"!=typeof c?c+"":c,l);let h=n;function y(t){return h.getCharset(t)}"undefined"!=typeof window&&(window.TypeFlowExtChars=h,window.EXT_CHARSETS=s,window.getExtendedCharset=y);export{s as EXT_CHARSETS,h as TypeFlowExtChars,y as getExtendedCharset};
66
+ //# sourceMappingURL=typeflow-extchars.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeflow-extchars.mjs","sources":["../../../src/typeflow-extchars.js"],"sourcesContent":["/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description TypeFlow ExtChars - Extended Unicode Glyph Presets & Scramble Pools.\n * Provides specialized ancient alphabets, mathematical operators, Katakana,\n * box-drawing frames, astrological runes, and cyber glitch character sets.\n *\n * @module @staticcanvas/typeflow/extchars\n */\n\nexport const EXT_CHARSETS = {\n // Ancient & Sacred Scripts\n hieroglyphs: '𓀀𓀁𓀂𓀃𓀄𓀅𓀆𓀇𓀈𓀉𓀊𓀋𓀌𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀘𓀙𓀚𓀛𓀜𓀝𓀞𓀟𓀠𓀡𓀢𓀣𓀤𓀥𓀦𓀧𓀨𓀩𓀪𓀫𓀬𓀭𓀮𓀯𓀰𓀱𓀲𓀳𓀴𓀵𓀶𓀷𓀸𓀹𓀺𓀻',\n runic: 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ',\n ogham: 'ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ',\n coptic: 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨPhiⲬⲮⲰϢϤϦϨϪϬϮ',\n\n // Cyber & Terminal\n katakana: 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン',\n cyberMatrix: '01010101_#@!<>[]{}/*+=~-アイウエオカキクケコサシスセソタチツテト01',\n blocks: '█▓▒░▀▄▌▐■□▢▣▤▥▦▧▨▩',\n boxDrawing:\n '─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋═║╔╗╚╝╠╣╦╩╬',\n\n // Mathematical & Technical\n mathSymbols:\n '∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯',\n braille: '⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿',\n astronomical: '☉☽☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓☄★☆⚡',\n geometric: '▲▼◀▶▲▼◀▶◆◇◈◉◊○●◎◐◑◒◓◔◕◖◗◘◙◜◝◞◟◠◡◢◣◤◥',\n\n // Glitch\n glitch: '!<>-_\\\\/[]{}—=+*^?#________̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠',\n};\n\nexport class TypeFlowExtChars {\n static charsets = { ...EXT_CHARSETS };\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Retrieves a character set string by preset name.\n * @param {string} name - The charset identifier ('hieroglyphs', 'runic', 'ogham', 'coptic', 'katakana', 'boxDrawing', 'mathSymbols', 'braille', 'astronomical', 'geometric', 'glitch').\n * @returns {string} String of glyph characters.\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Name of the charset.\n *\n * -------------\n *\n * @example\n * const runes = TypeFlowExtChars.getCharset('runic');\n * console.log('Runic runes:', runes);\n */\n static getCharset(name) {\n return TypeFlowExtChars.charsets[String(name).toLowerCase()] || EXT_CHARSETS.cyberMatrix;\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Registers a new custom charset preset globally.\n * @param {string} name - Unique identifier for the custom charset.\n * @param {string} glyphs - Pool of characters to associate with this preset.\n * @returns {void}\n *\n * -------------\n *\n * @Properties\n * @param {string} name - Identifier name.\n * @param {string} glyphs - String of characters.\n *\n * -------------\n *\n * @example\n * TypeFlowExtChars.registerCharset('alchemy', '🜁🜂🜃🜄🜅🜆🜇🜈🜉🜊');\n * const alchemy = TypeFlowExtChars.getCharset('alchemy');\n */\n static registerCharset(name, glyphs) {\n if (typeof name === 'string' && typeof glyphs === 'string') {\n TypeFlowExtChars.charsets[name.toLowerCase()] = glyphs;\n }\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Combines multiple charsets into a single merged pool.\n * @param {...string} names - Charset names to concatenate.\n * @returns {string} Merged character string.\n *\n * -------------\n *\n * @example\n * const cyberRunes = TypeFlowExtChars.combineCharsets('cyberMatrix', 'runic', 'katakana');\n */\n static combineCharsets(...names) {\n return names.map((n) => TypeFlowExtChars.getCharset(n)).join('');\n }\n\n /** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Selects a random single glyph from a charset string or preset name.\n * @param {string} charsetOrName - Charset string or registered name.\n * @returns {string} Random single character glyph.\n *\n * -------------\n *\n * @example\n * const rune = TypeFlowExtChars.randomGlyph('runic');\n */\n static randomGlyph(charsetOrName) {\n const pool =\n TypeFlowExtChars.charsets[charsetOrName] || charsetOrName || EXT_CHARSETS.cyberMatrix;\n const chars = Array.from(pool);\n return chars[Math.floor(Math.random() * chars.length)] || '#';\n }\n}\n\n/** * * * * * * * * * * * * * * * * * * * * * * * * * * **\n * @description Helper function returning an extended charset string by name.\n * @param {string} name - Charset identifier.\n * @returns {string}\n *\n * -------------\n *\n * @example\n * import { getExtendedCharset } from '@staticcanvas/typeflow/extchars';\n * const hieroglyphs = getExtendedCharset('hieroglyphs');\n */\nexport function getExtendedCharset(name) {\n return TypeFlowExtChars.getCharset(name);\n}\n\nif (typeof window !== 'undefined') {\n window.TypeFlowExtChars = TypeFlowExtChars;\n window.EXT_CHARSETS = EXT_CHARSETS;\n window.getExtendedCharset = getExtendedCharset;\n}\n"],"names":["EXT_CHARSETS","hieroglyphs","runic","ogham","coptic","katakana","cyberMatrix","blocks","boxDrawing","mathSymbols","braille","astronomical","geometric","glitch","_TypeFlowExtChars","getCharset","name","charsets","String","toLowerCase","registerCharset","glyphs","combineCharsets","names","map","n","join","randomGlyph","charsetOrName","pool","chars","Array","from","Math","floor","random","length","__spreadValues","TypeFlowExtChars","getExtendedCharset","window"],"mappings":";yNAQY,MAACA,EAAe;;AAE1BC,YAAa,2HACbC,MAAO,8EACPC,MAAO,6BACPC,OAAQ;;AAGRC,SAAU,2DACVC,YAAa,iDACbC,OAAQ,qBACRC,WACE;;AAGFC,YACE,mHACFC,QAAS,kEACTC,aAAc,8BACdC,UAAW;;AAGXC,OAAQ,+CAGGC,EAAN,MAAMA;;;;;;;;;;;;;;;;;AAmBX,iBAAOC,CAAWC,GAChB,OAAOF,EAAiBG,SAASC,OAAOF,GAAMG,gBAAkBnB,EAAaM,WAC/E;;;;;;;;;;;;;;;;;;KAoBA,sBAAOc,CAAgBJ,EAAMK,GACP,iBAATL,GAAuC,iBAAXK,IACrCP,EAAiBG,SAASD,EAAKG,eAAiBE,EAEpD;;;;;;;;;;KAYA,sBAAOC,IAAmBC,GACxB,OAAOA,EAAMC,IAAKC,GAAMX,EAAiBC,WAAWU,IAAIC,KAAK,GAC/D;;;;;;;;;;KAYA,kBAAOC,CAAYC,GACjB,MAAMC,EACJf,EAAiBG,SAASW,IAAkBA,GAAiB5B,EAAaM,YACtEwB,EAAQC,MAAMC,KAAKH,GACzB,OAAOC,EAAMG,KAAKC,MAAMD,KAAKE,SAAWL,EAAMM,UAAY,GAC5D,eA5EWtB,IACJ,gIAAWuB,CAAA,CAAA,EAAKrC,oCADlB,IAAMsC,EAANxB,EA0FA,SAASyB,EAAmBvB,GACjC,OAAOsB,EAAiBvB,WAAWC,EACrC,CAEsB,oBAAXwB,SACTA,OAAOF,iBAAmBA,EAC1BE,OAAOxC,aAAeA,EACtBwC,OAAOD,mBAAqBA"}