textmode.synth.js 1.0.0-beta.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 (54) hide show
  1. package/README.md +180 -0
  2. package/dist/textmode.synth.esm.js +967 -0
  3. package/dist/textmode.synth.umd.js +399 -0
  4. package/dist/types/SynthPlugin.d.ts +22 -0
  5. package/dist/types/SynthPlugin.d.ts.map +1 -0
  6. package/dist/types/compiler/GLSLGenerator.d.ts +44 -0
  7. package/dist/types/compiler/GLSLGenerator.d.ts.map +1 -0
  8. package/dist/types/compiler/SynthCompiler.d.ts +20 -0
  9. package/dist/types/compiler/SynthCompiler.d.ts.map +1 -0
  10. package/dist/types/compiler/UniformManager.d.ts +48 -0
  11. package/dist/types/compiler/UniformManager.d.ts.map +1 -0
  12. package/dist/types/compiler/index.d.ts +9 -0
  13. package/dist/types/compiler/index.d.ts.map +1 -0
  14. package/dist/types/compiler/types.d.ts +94 -0
  15. package/dist/types/compiler/types.d.ts.map +1 -0
  16. package/dist/types/core/ISynthSource.d.ts +718 -0
  17. package/dist/types/core/ISynthSource.d.ts.map +1 -0
  18. package/dist/types/core/SynthChain.d.ts +62 -0
  19. package/dist/types/core/SynthChain.d.ts.map +1 -0
  20. package/dist/types/core/SynthSource.d.ts +126 -0
  21. package/dist/types/core/SynthSource.d.ts.map +1 -0
  22. package/dist/types/core/index.d.ts +7 -0
  23. package/dist/types/core/index.d.ts.map +1 -0
  24. package/dist/types/core/types.d.ts +106 -0
  25. package/dist/types/core/types.d.ts.map +1 -0
  26. package/dist/types/index.d.ts +395 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/types/lib/ArrayUtils.d.ts +225 -0
  29. package/dist/types/lib/ArrayUtils.d.ts.map +1 -0
  30. package/dist/types/transforms/TransformDefinition.d.ts +54 -0
  31. package/dist/types/transforms/TransformDefinition.d.ts.map +1 -0
  32. package/dist/types/transforms/TransformFactory.d.ts +64 -0
  33. package/dist/types/transforms/TransformFactory.d.ts.map +1 -0
  34. package/dist/types/transforms/TransformRegistry.d.ts +72 -0
  35. package/dist/types/transforms/TransformRegistry.d.ts.map +1 -0
  36. package/dist/types/transforms/categories/charModifiers.d.ts +16 -0
  37. package/dist/types/transforms/categories/charModifiers.d.ts.map +1 -0
  38. package/dist/types/transforms/categories/colors.d.ts +29 -0
  39. package/dist/types/transforms/categories/colors.d.ts.map +1 -0
  40. package/dist/types/transforms/categories/combine.d.ts +19 -0
  41. package/dist/types/transforms/categories/combine.d.ts.map +1 -0
  42. package/dist/types/transforms/categories/combineCoord.d.ts +23 -0
  43. package/dist/types/transforms/categories/combineCoord.d.ts.map +1 -0
  44. package/dist/types/transforms/categories/coordinates.d.ts +22 -0
  45. package/dist/types/transforms/categories/coordinates.d.ts.map +1 -0
  46. package/dist/types/transforms/categories/index.d.ts +15 -0
  47. package/dist/types/transforms/categories/index.d.ts.map +1 -0
  48. package/dist/types/transforms/categories/sources.d.ts +19 -0
  49. package/dist/types/transforms/categories/sources.d.ts.map +1 -0
  50. package/dist/types/transforms/index.d.ts +8 -0
  51. package/dist/types/transforms/index.d.ts.map +1 -0
  52. package/dist/types/utils/CharacterResolver.d.ts +19 -0
  53. package/dist/types/utils/CharacterResolver.d.ts.map +1 -0
  54. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/ISynthSource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { SynthParameterValue } from './types';
2
+ /**
3
+ * A recorded transform in the synthesis chain.
4
+ */
5
+ export interface TransformRecord {
6
+ /** Transform function name */
7
+ name: string;
8
+ /** User-provided arguments */
9
+ userArgs: SynthParameterValue[];
10
+ }
11
+ /**
12
+ * A mutable chain of transform records for the fluent API.
13
+ * While the internal implementation is mutable for compatibility with the
14
+ * existing fluent API, the returned readonly arrays provide a consistent view.
15
+ */
16
+ export declare class SynthChain {
17
+ /** The transforms in this chain */
18
+ private _transforms;
19
+ /**
20
+ * Create a new SynthChain with the given transforms.
21
+ * @internal Use static factory methods instead.
22
+ */
23
+ private constructor();
24
+ /**
25
+ * Create an empty chain.
26
+ */
27
+ static empty(): SynthChain;
28
+ /**
29
+ * Create a chain from existing transforms.
30
+ */
31
+ static from(transforms: readonly TransformRecord[]): SynthChain;
32
+ /**
33
+ * Get all transforms in this chain (readonly view).
34
+ */
35
+ get transforms(): readonly TransformRecord[];
36
+ /**
37
+ * Push a transform to this chain (internal mutation).
38
+ * @internal
39
+ */
40
+ push(record: TransformRecord): void;
41
+ /**
42
+ * Get the number of transforms in this chain.
43
+ */
44
+ get length(): number;
45
+ /**
46
+ * Check if the chain is empty.
47
+ */
48
+ get isEmpty(): boolean;
49
+ /**
50
+ * Append a transform to this chain, returning a new chain.
51
+ */
52
+ append(record: TransformRecord): SynthChain;
53
+ /**
54
+ * Get a transform at a specific index.
55
+ */
56
+ get(index: number): TransformRecord | undefined;
57
+ /**
58
+ * Create an iterator over the transforms.
59
+ */
60
+ [Symbol.iterator](): Iterator<TransformRecord>;
61
+ }
62
+ //# sourceMappingURL=SynthChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SynthChain.d.ts","sourceRoot":"","sources":["../../../src/core/SynthChain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACtB,mCAAmC;IACnC,OAAO,CAAC,WAAW,CAAoB;IAEvC;;;OAGG;IACH,OAAO;IAIP;;OAEG;WACW,KAAK,IAAI,UAAU;IAIjC;;OAEG;WACW,IAAI,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,UAAU;IAItE;;OAEG;IACH,IAAW,UAAU,IAAI,SAAS,eAAe,EAAE,CAElD;IAED;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI1C;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU;IAIlD;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAItD;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC;CAGrD"}
@@ -0,0 +1,126 @@
1
+ import type { SynthParameterValue, CharacterMapping, ExternalLayerReference } from './types';
2
+ import { SynthChain, type TransformRecord } from './SynthChain';
3
+ import { ISynthSource } from './ISynthSource';
4
+ /**
5
+ * Options for creating a new SynthSource.
6
+ * @internal
7
+ */
8
+ interface SynthSourceCreateOptions {
9
+ chain?: SynthChain;
10
+ charMapping?: CharacterMapping;
11
+ colorSource?: SynthSource;
12
+ cellColorSource?: SynthSource;
13
+ charSource?: SynthSource;
14
+ charCount?: number;
15
+ nestedSources?: Map<number, SynthSource>;
16
+ externalLayerRefs?: Map<number, ExternalLayerReference>;
17
+ }
18
+ /**
19
+ * A chainable synthesis source that accumulates transforms to be compiled into a shader.
20
+ *
21
+ * This is the core class that enables hydra-like method chaining for
22
+ * generating procedural textmode visuals. Each method call adds a
23
+ * transform to the chain, which is later compiled into a GLSL shader.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * // Create a synth chain with procedural characters and colors
28
+ * const synth = noise(10)
29
+ * .rotate(0.1)
30
+ * .scroll(0.1, 0)
31
+ *
32
+ * .charColor(osc(5).kaleid(4))
33
+ * .cellColor(osc(5).kaleid(4).invert())
34
+ *
35
+ * .charMap('@#%*+=-:. ');
36
+ * ```
37
+ */
38
+ export declare class SynthSource implements ISynthSource {
39
+ /** The immutable chain of transforms */
40
+ private readonly _chain;
41
+ /** Character mapping for charMap transform */
42
+ private _charMapping?;
43
+ /** Nested sources for combine operations (indexed by transform position) */
44
+ private readonly _nestedSources;
45
+ /** External layer references for cross-layer sampling (indexed by transform position) */
46
+ private readonly _externalLayerRefs;
47
+ /** Reference to the color source chain (if any) */
48
+ private _colorSource?;
49
+ /** Reference to the cell color source chain (if any) */
50
+ private _cellColorSource?;
51
+ /** Reference to the character source chain (if any) - used by char() function */
52
+ private _charSource?;
53
+ /** Number of unique characters when using char() function */
54
+ private _charCount?;
55
+ /**
56
+ * Create a new SynthSource.
57
+ * @param options Optional initialization options
58
+ * @ignore Use generator functions like `osc()`, `noise()` instead
59
+ */
60
+ constructor(options?: SynthSourceCreateOptions);
61
+ /**
62
+ * Add a transform to the chain.
63
+ * This method is called by dynamically injected transform methods.
64
+ * @ignore
65
+ */
66
+ addTransform(name: string, userArgs: SynthParameterValue[]): this;
67
+ /**
68
+ * Add a combine transform that references another source.
69
+ * @ignore
70
+ */
71
+ addCombineTransform(name: string, source: SynthSource, userArgs: SynthParameterValue[]): this;
72
+ /**
73
+ * Add an external layer reference at the current transform index.
74
+ * Used by src(layer) to track cross-layer sampling.
75
+ * @ignore
76
+ */
77
+ addExternalLayerRef(ref: ExternalLayerReference): this;
78
+ charMap(chars: string): this;
79
+ charColor(source: SynthSource): this;
80
+ char(source: SynthSource, charCount: number): this;
81
+ cellColor(source: SynthSource): this;
82
+ paint(source: SynthSource): this;
83
+ clone(): SynthSource;
84
+ /**
85
+ * Get the transform records.
86
+ * @ignore
87
+ */
88
+ get transforms(): readonly TransformRecord[];
89
+ /**
90
+ * Get the character mapping if defined.
91
+ * @ignore
92
+ */
93
+ get charMapping(): CharacterMapping | undefined;
94
+ /**
95
+ * Get the color source if defined.
96
+ * @ignore
97
+ */
98
+ get colorSource(): SynthSource | undefined;
99
+ /**
100
+ * Get the cell color source if defined.
101
+ * @ignore
102
+ */
103
+ get cellColorSource(): SynthSource | undefined;
104
+ /**
105
+ * Get the character source if defined (from char() function).
106
+ * @ignore
107
+ */
108
+ get charSource(): SynthSource | undefined;
109
+ /**
110
+ * Get the character count if defined (from char() function).
111
+ * @ignore
112
+ */
113
+ get charCount(): number | undefined;
114
+ /**
115
+ * Get all nested sources for combine operations.
116
+ * @ignore
117
+ */
118
+ get nestedSources(): Map<number, SynthSource>;
119
+ /**
120
+ * Get all external layer references for cross-layer sampling.
121
+ * @ignore
122
+ */
123
+ get externalLayerRefs(): Map<number, ExternalLayerReference>;
124
+ }
125
+ export {};
126
+ //# sourceMappingURL=SynthSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SynthSource.d.ts","sourceRoot":"","sources":["../../../src/core/SynthSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,UAAU,wBAAwB;IACjC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC/C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,8CAA8C;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAmB;IAExC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsC;IAEzE,mDAAmD;IACnD,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC,wDAAwD;IACxD,OAAO,CAAC,gBAAgB,CAAC,CAAc;IAEvC,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,6DAA6D;IAC7D,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B;;;;OAIG;gBACS,OAAO,CAAC,EAAE,wBAAwB;IAe9C;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IASxE;;;OAGG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAMpG;;;;OAIG;IACI,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI;IAUtD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa5B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKpC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMlD,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKpC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMhC,KAAK,IAAI,WAAW;IA6B3B;;;OAGG;IACH,IAAW,UAAU,IAAI,SAAS,eAAe,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAErD;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,WAAW,GAAG,SAAS,CAEhD;IAED;;;OAGG;IACH,IAAW,eAAe,IAAI,WAAW,GAAG,SAAS,CAEpD;IAED;;;OAGG;IACH,IAAW,UAAU,IAAI,WAAW,GAAG,SAAS,CAE/C;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAEnD;IAED;;;OAGG;IACH,IAAW,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAElE;CACD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Core exports for the synth engine.
3
+ */
4
+ export * from './types';
5
+ export * from './SynthChain';
6
+ export * from './SynthSource';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Core types for the textmode.js synthesis system.
3
+ *
4
+ * This module contains foundational type definitions used throughout
5
+ * the synth engine, including transform types, parameter values,
6
+ * context interfaces, and shader compilation types.
7
+ */
8
+ import { SynthSource } from "./SynthSource";
9
+ /**
10
+ * Transform type categories determining how functions compose in the shader pipeline.
11
+ *
12
+ * Each type has specific input/output signatures:
13
+ * - `src`: Source generators that produce colors from UV coordinates
14
+ * - `coord`: Coordinate transforms that modify UV before sampling
15
+ * - `color`: Color transforms that modify existing color values
16
+ * - `combine`: Blending operations that combine two color sources
17
+ * - `combineCoord`: Modulation that uses one source to affect another's coordinates
18
+ * - `charModify`: Character property modifiers (flip, rotate, invert)
19
+ */
20
+ export type SynthTransformType = 'src' | 'coord' | 'color' | 'combine' | 'combineCoord' | 'charModify';
21
+ /**
22
+ * GLSL type for transform inputs.
23
+ */
24
+ export type GLSLType = 'float' | 'vec2' | 'vec3' | 'vec4' | 'int' | 'sampler2D';
25
+ /**
26
+ * Input parameter definition for a transform function.
27
+ */
28
+ export interface TransformInput {
29
+ /** Parameter name used in GLSL and JS API */
30
+ name: string;
31
+ /** GLSL type */
32
+ type: GLSLType;
33
+ /** Default value if not provided */
34
+ default: number | number[] | null;
35
+ }
36
+ /**
37
+ * Dynamic parameter value types supported by the synth system.
38
+ *
39
+ * - `number`: Static numeric value
40
+ * - `number[]`: Array of numbers for vector types or modulated arrays (Hydra-style)
41
+ * - `string`: String value (rarely used)
42
+ * - `function`: Evaluated each frame with context
43
+ * - `SynthSource`: Nested synth chain for combine/modulate operations
44
+ * - `null`: Use default value
45
+ */
46
+ export type SynthParameterValue = number | number[] | string | ((ctx: SynthContext) => number) | ((ctx: SynthContext) => number[]) | SynthSource | null;
47
+ /**
48
+ * Context passed to dynamic parameter functions during rendering.
49
+ */
50
+ export interface SynthContext {
51
+ /** Current time in seconds */
52
+ time: number;
53
+ /** Current frame count */
54
+ frameCount: number;
55
+ /** Grid width in pixels */
56
+ width: number;
57
+ /** Grid height in pixels */
58
+ height: number;
59
+ /** Grid columns */
60
+ cols: number;
61
+ /** Grid rows */
62
+ rows: number;
63
+ }
64
+ /**
65
+ * Character set mapping for charMap transform.
66
+ */
67
+ export interface CharacterMapping {
68
+ /** The character string to use */
69
+ chars: string;
70
+ /** Pre-computed character code points */
71
+ indices: number[];
72
+ }
73
+ /**
74
+ * Reference to an external layer for cross-layer sampling.
75
+ * Used by src(layer) to enable hydra-style output references.
76
+ */
77
+ export interface ExternalLayerReference {
78
+ /** Unique identifier for the layer (typically layer.id or generated) */
79
+ layerId: string;
80
+ /** The layer object reference (opaque to the compiler, used by plugin) */
81
+ layer: unknown;
82
+ }
83
+ /**
84
+ * Uniform definition for compiled shaders.
85
+ */
86
+ export interface SynthUniform {
87
+ /** Uniform name in GLSL */
88
+ name: string;
89
+ /** GLSL type */
90
+ type: GLSLType;
91
+ /** Current value */
92
+ value: number | number[];
93
+ /** Whether this uniform is dynamically updated each frame */
94
+ isDynamic: boolean;
95
+ }
96
+ /**
97
+ * Return type signature lookup for each transform type.
98
+ */
99
+ export declare const TRANSFORM_TYPE_INFO: Record<SynthTransformType, {
100
+ returnType: string;
101
+ args: Array<{
102
+ type: string;
103
+ name: string;
104
+ }>;
105
+ }>;
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAC3B,KAAK,GACL,OAAO,GACP,OAAO,GACP,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAC5B,MAAM,GACN,MAAM,EAAE,GACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,GAC/B,CAAC,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC,GACjC,WAAW,GACX,IAAI,CAAC;AAER;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,oBAAoB;IACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACvC,kBAAkB,EAClB;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5C,CAgCD,CAAC"}