@terrazzo/token-tools 2.0.0-beta.4 → 2.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +15 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { $ as StringToken, A as FontWeightValue, B as GroupNormalized, C as DurationValue, Ct as TypographyValue, D as FontFamilyValueNormalized, E as FontFamilyValue, F as GradientTokenNormalized, G as ModeMap, H as LinkToken, I as GradientValue, J as NumberValue, K as NumberToken, L as GradientValueNormalized, M as GradientStop, N as GradientStopNormalized, O as FontWeightToken, P as GradientToken, Q as ShadowValueNormalized, R as Group, S as DurationTokenNormalized, St as TypographyTokenNormalized, T as FontFamilyTokenNormalized, U as LinkTokenNormalized, V as GroupOrToken, W as LinkValue, X as ShadowTokenNormalized, Y as ShadowToken, Z as ShadowValue, _ as CubicBezierValue, _t as TransitionToken, a as BooleanValue, at as StrokeStyleValueExpanded, b as DimensionValue, bt as TransitionValueNormalized, c as BorderValue, ct as TokenMode, d as ColorToken, dt as TokenNormalizedSet, et as StringTokenNormalized, f as ColorTokenNormalized, ft as TokenTransformed, g as CubicBezierTokenNormalized, gt as TokensSet, h as CubicBezierToken, ht as TokenTransformedSingleValue, i as BooleanTokenNormalized, it as StrokeStyleValue, j as FontWeightValueNormalized, k as FontWeightTokenNormalized, l as BorderValueNormalized, lt as TokenNormalized, m as ColorValueNormalized, mt as TokenTransformedMultiValue, n as AliasValue, nt as StrokeStyleToken, o as BorderToken, ot as Token, p as ColorValue, pt as TokenTransformedBase, q as NumberTokenNormalized, r as BooleanToken, rt as StrokeStyleTokenNormalized, s as BorderTokenNormalized, st as TokenCore, t as AliasToken, tt as StringValue, u as ColorSpace, ut as TokenNormalizedCore, v as DimensionToken, vt as TransitionTokenNormalized, w as FontFamilyToken, wt as TypographyValueNormalized, x as DurationToken, xt as TypographyToken, y as DimensionTokenNormalized, yt as TransitionValue, z as GroupCore } from "./types-Cwbw-_yP.js";
|
|
2
2
|
import { n as parseColor, r as tokenToColor, t as COLOR_SPACE } from "./color-DoUasWha.js";
|
|
3
|
+
import wcmatch from "wildcard-match";
|
|
3
4
|
|
|
4
5
|
//#region src/border.d.ts
|
|
5
6
|
declare const BORDER_REQUIRED_PROPERTIES: readonly ["color", "width", "style"];
|
|
@@ -33,8 +34,19 @@ declare const GRADIENT_REQUIRED_STOP_PROPERTIES: readonly ["color", "position"];
|
|
|
33
34
|
//#region src/id.d.ts
|
|
34
35
|
/** Is this token an alias of another? */
|
|
35
36
|
declare function isAlias(value: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
declare
|
|
37
|
+
/** Only create unique wcmatch instances, and cache across the lifespan of a run */
|
|
38
|
+
declare class CachedWildcardMatcher {
|
|
39
|
+
cachedMatchers: Record<string, ReturnType<typeof wcmatch>>;
|
|
40
|
+
/** This is a separate cache because of the "." separator. */
|
|
41
|
+
cachedTokenIDMatchers: Record<string, ReturnType<typeof wcmatch>>;
|
|
42
|
+
constructor();
|
|
43
|
+
/** Generic wildcard matcher */
|
|
44
|
+
match(...params: Parameters<typeof wcmatch>): ReturnType<typeof wcmatch>;
|
|
45
|
+
/** Wildcard matcher specifically for Token IDs (provides "." as separator). */
|
|
46
|
+
tokenIDMatch(pattern: Parameters<typeof wcmatch>[0]): ReturnType<typeof wcmatch>;
|
|
47
|
+
/** Garbage collect all caches, reset to initial state */
|
|
48
|
+
reset(): void;
|
|
49
|
+
}
|
|
38
50
|
/** Make an alias */
|
|
39
51
|
declare function makeAlias(input: string): string;
|
|
40
52
|
/** Parse an alias */
|
|
@@ -77,5 +89,5 @@ declare const TRANSITION_REQUIRED_PROPERTIES: readonly ["duration", "delay", "ti
|
|
|
77
89
|
//#region src/typography.d.ts
|
|
78
90
|
declare const TYPOGRAPHY_REQUIRED_PROPERTIES: readonly ["fontFamily", "fontSize", "fontWeight", "letterSpacing", "lineHeight"];
|
|
79
91
|
//#endregion
|
|
80
|
-
export { AliasToken, AliasValue, BORDER_REQUIRED_PROPERTIES, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, COLOR_SPACE, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, CustomTransformOptions, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FONT_WEIGHTS, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GRADIENT_REQUIRED_STOP_PROPERTIES, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupNormalized, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, SHADOW_REQUIRED_PROPERTIES, STROKE_STYLE_LINE_CAP_VALUES, STROKE_STYLE_OBJECT_REQUIRED_PROPERTIES, STROKE_STYLE_STRING_VALUES, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, TRANSITION_REQUIRED_PROPERTIES, TYPOGRAPHY_REQUIRED_PROPERTIES, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokenTransformed, TokenTransformedBase, TokenTransformedMultiValue, TokenTransformedSingleValue, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized,
|
|
92
|
+
export { AliasToken, AliasValue, BORDER_REQUIRED_PROPERTIES, BooleanToken, BooleanTokenNormalized, BooleanValue, BorderToken, BorderTokenNormalized, BorderValue, BorderValueNormalized, COLOR_SPACE, CachedWildcardMatcher, ColorSpace, ColorToken, ColorTokenNormalized, ColorValue, ColorValueNormalized, CubicBezierToken, CubicBezierTokenNormalized, CubicBezierValue, CustomTransformOptions, DimensionToken, DimensionTokenNormalized, DimensionValue, DurationToken, DurationTokenNormalized, DurationValue, FONT_WEIGHTS, FontFamilyToken, FontFamilyTokenNormalized, FontFamilyValue, FontFamilyValueNormalized, FontWeightToken, FontWeightTokenNormalized, FontWeightValue, FontWeightValueNormalized, GRADIENT_REQUIRED_STOP_PROPERTIES, GradientStop, GradientStopNormalized, GradientToken, GradientTokenNormalized, GradientValue, GradientValueNormalized, Group, GroupCore, GroupNormalized, GroupOrToken, LinkToken, LinkTokenNormalized, LinkValue, ModeMap, NumberToken, NumberTokenNormalized, NumberValue, SHADOW_REQUIRED_PROPERTIES, STROKE_STYLE_LINE_CAP_VALUES, STROKE_STYLE_OBJECT_REQUIRED_PROPERTIES, STROKE_STYLE_STRING_VALUES, ShadowToken, ShadowTokenNormalized, ShadowValue, ShadowValueNormalized, StringToken, StringTokenNormalized, StringValue, StrokeStyleToken, StrokeStyleTokenNormalized, StrokeStyleValue, StrokeStyleValueExpanded, TRANSITION_REQUIRED_PROPERTIES, TYPOGRAPHY_REQUIRED_PROPERTIES, Token, TokenCore, TokenMode, TokenNormalized, TokenNormalizedCore, TokenNormalizedSet, TokenTransformed, TokenTransformedBase, TokenTransformedMultiValue, TokenTransformedSingleValue, TokensSet, TransitionToken, TransitionTokenNormalized, TransitionValue, TransitionValueNormalized, TypographyToken, TypographyTokenNormalized, TypographyValue, TypographyValueNormalized, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToColor, validateCustomTransform };
|
|
81
93
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/border.ts","../src/font-weight.ts","../src/gradient.ts","../src/id.ts","../src/shadow.ts","../src/string.ts","../src/stroke-style.ts","../src/transform.ts","../src/transition.ts","../src/typography.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/border.ts","../src/font-weight.ts","../src/gradient.ts","../src/id.ts","../src/shadow.ts","../src/string.ts","../src/stroke-style.ts","../src/transform.ts","../src/transition.ts","../src/typography.ts"],"mappings":";;;;;cAAa,0BAAA;;;;cCCA,YAAA;;;;;;;;;;;;;;;;;;;;;;cCDA,iCAAA;;;;iBCKG,OAAA,CAAQ,KAAA;;cAOX,qBAAA;EACX,cAAA,EAAgB,MAAA,SAAe,UAAA,QAAkB,OAAA;EHb2B;EGe5E,qBAAA,EAAuB,MAAA,SAAe,UAAA,QAAkB,OAAA;;EHfoB;EGsB5E,KAAA,CAAA,GAAS,MAAA,EAAQ,UAAA,QAAkB,OAAA,IAAW,UAAA,QAAkB,OAAA;;EAShE,YAAA,CAAa,OAAA,EAAS,UAAA,QAAkB,OAAA,OAAc,UAAA,QAAkB,OAAA;EF9B7D;EEuCX,KAAA,CAAA;AAAA;;iBAOc,SAAA,CAAU,KAAA;;iBAKV,UAAA,CAAW,KAAA;;iBAeX,OAAA,CAAQ,EAAA;EAAe,KAAA;EAAe,KAAA;AAAA;;;cCnEzC,0BAAA;;;;iBCCG,MAAA,CAAO,KAAA,UAAe,MAAA,UAAgB,SAAA;;iBAuBtC,SAAA,YAAA,CAAsB,KAAA,UAAe,QAAA,EAAU,CAAA,EAAG,MAAA,EAAQ,CAAA,GAAI,CAAA;;iBAK9D,SAAA,CAAU,GAAA;;;cC7Bb,0BAAA;AAAA,cAWA,uCAAA;AAAA,cAEA,4BAAA;;;UCbI,sBAAA;;EAEf,KAAA;AAAA;;iBAIc,uBAAA,CAAwB,KAAA;EAAkB;AAAA,GAAS,sBAAA;;;cCNtD,8BAAA;;;cCAA,8BAAA"}
|
package/dist/index.js
CHANGED
|
@@ -43,10 +43,41 @@ const ALIAS_RE = /^\{([^}]+)\}$/;
|
|
|
43
43
|
function isAlias(value) {
|
|
44
44
|
return ALIAS_RE.test(value);
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
46
|
+
const _CATCHALL_MATCHER = wcmatch(".*");
|
|
47
|
+
/** Only create unique wcmatch instances, and cache across the lifespan of a run */
|
|
48
|
+
var CachedWildcardMatcher = class {
|
|
49
|
+
cachedMatchers = {};
|
|
50
|
+
/** This is a separate cache because of the "." separator. */
|
|
51
|
+
cachedTokenIDMatchers = {};
|
|
52
|
+
constructor() {
|
|
53
|
+
this.reset();
|
|
54
|
+
}
|
|
55
|
+
/** Generic wildcard matcher */
|
|
56
|
+
match(...params) {
|
|
57
|
+
const key = JSON.stringify(params[0]);
|
|
58
|
+
if (!(key in this.cachedMatchers)) this.cachedMatchers[key] = wcmatch(params[0], params[1] ?? false);
|
|
59
|
+
return this.cachedMatchers[key];
|
|
60
|
+
}
|
|
61
|
+
/** Wildcard matcher specifically for Token IDs (provides "." as separator). */
|
|
62
|
+
tokenIDMatch(pattern) {
|
|
63
|
+
const key = JSON.stringify(pattern);
|
|
64
|
+
if (!(key in this.cachedTokenIDMatchers)) this.cachedTokenIDMatchers[key] = wcmatch(pattern, ".");
|
|
65
|
+
return this.cachedTokenIDMatchers[key];
|
|
66
|
+
}
|
|
67
|
+
/** Garbage collect all caches, reset to initial state */
|
|
68
|
+
reset() {
|
|
69
|
+
this.cachedMatchers = {
|
|
70
|
+
"": _CATCHALL_MATCHER,
|
|
71
|
+
"*": _CATCHALL_MATCHER,
|
|
72
|
+
"**": _CATCHALL_MATCHER
|
|
73
|
+
};
|
|
74
|
+
this.cachedTokenIDMatchers = {
|
|
75
|
+
"": _CATCHALL_MATCHER,
|
|
76
|
+
"*": _CATCHALL_MATCHER,
|
|
77
|
+
"**": _CATCHALL_MATCHER
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
};
|
|
50
81
|
/** Make an alias */
|
|
51
82
|
function makeAlias(input) {
|
|
52
83
|
return input.replace(/^\{?([^}]+)\}?$/, "{$1}");
|
|
@@ -130,5 +161,5 @@ const TYPOGRAPHY_REQUIRED_PROPERTIES = [
|
|
|
130
161
|
];
|
|
131
162
|
|
|
132
163
|
//#endregion
|
|
133
|
-
export { BORDER_REQUIRED_PROPERTIES, COLOR_SPACE, FONT_WEIGHTS, GRADIENT_REQUIRED_STOP_PROPERTIES, SHADOW_REQUIRED_PROPERTIES, STROKE_STYLE_LINE_CAP_VALUES, STROKE_STYLE_OBJECT_REQUIRED_PROPERTIES, STROKE_STYLE_STRING_VALUES, TRANSITION_REQUIRED_PROPERTIES, TYPOGRAPHY_REQUIRED_PROPERTIES,
|
|
164
|
+
export { BORDER_REQUIRED_PROPERTIES, COLOR_SPACE, CachedWildcardMatcher, FONT_WEIGHTS, GRADIENT_REQUIRED_STOP_PROPERTIES, SHADOW_REQUIRED_PROPERTIES, STROKE_STYLE_LINE_CAP_VALUES, STROKE_STYLE_OBJECT_REQUIRED_PROPERTIES, STROKE_STYLE_STRING_VALUES, TRANSITION_REQUIRED_PROPERTIES, TYPOGRAPHY_REQUIRED_PROPERTIES, isAlias, kebabCase, makeAlias, padStr, parseAlias, parseColor, pluralize, splitID, tokenToColor, validateCustomTransform };
|
|
134
165
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/border.ts","../src/font-weight.ts","../src/gradient.ts","../src/id.ts","../src/shadow.ts","../src/stroke-style.ts","../src/transform.ts","../src/transition.ts","../src/typography.ts"],"sourcesContent":["export const BORDER_REQUIRED_PROPERTIES = ['color', 'width', 'style'] as const;\n","/** Mapping of valid names to numeric weights */\nexport const FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n\n 'extra-light': 200,\n 'ultra-light': 200,\n\n light: 300,\n\n normal: 400,\n regular: 400,\n book: 400,\n\n medium: 500,\n\n 'semi-bold': 600,\n 'demi-bold': 600,\n\n bold: 700,\n\n 'extra-bold': 800,\n 'ultra-bold': 800,\n\n black: 900,\n heavy: 900,\n\n 'extra-black': 950,\n 'ultra-black': 950,\n};\n","export const GRADIENT_REQUIRED_STOP_PROPERTIES = ['color', 'position'] as const;\n","import wcmatch from 'wildcard-match';\n\nconst ALIAS_RE = /^\\{([^}]+)\\}$/;\n\n/** Is this token an alias of another? */\nexport function isAlias(value: string): boolean {\n return ALIAS_RE.test(value);\n}\n\n/**
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/border.ts","../src/font-weight.ts","../src/gradient.ts","../src/id.ts","../src/shadow.ts","../src/stroke-style.ts","../src/transform.ts","../src/transition.ts","../src/typography.ts"],"sourcesContent":["export const BORDER_REQUIRED_PROPERTIES = ['color', 'width', 'style'] as const;\n","/** Mapping of valid names to numeric weights */\nexport const FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n\n 'extra-light': 200,\n 'ultra-light': 200,\n\n light: 300,\n\n normal: 400,\n regular: 400,\n book: 400,\n\n medium: 500,\n\n 'semi-bold': 600,\n 'demi-bold': 600,\n\n bold: 700,\n\n 'extra-bold': 800,\n 'ultra-bold': 800,\n\n black: 900,\n heavy: 900,\n\n 'extra-black': 950,\n 'ultra-black': 950,\n};\n","export const GRADIENT_REQUIRED_STOP_PROPERTIES = ['color', 'position'] as const;\n","import wcmatch from 'wildcard-match';\n\nconst ALIAS_RE = /^\\{([^}]+)\\}$/;\n\n/** Is this token an alias of another? */\nexport function isAlias(value: string): boolean {\n return ALIAS_RE.test(value);\n}\n\nconst _CATCHALL_MATCHER = wcmatch('.*');\n\n/** Only create unique wcmatch instances, and cache across the lifespan of a run */\nexport class CachedWildcardMatcher {\n cachedMatchers: Record<string, ReturnType<typeof wcmatch>> = {};\n /** This is a separate cache because of the \".\" separator. */\n cachedTokenIDMatchers: Record<string, ReturnType<typeof wcmatch>> = {};\n\n constructor() {\n this.reset();\n }\n\n /** Generic wildcard matcher */\n match(...params: Parameters<typeof wcmatch>): ReturnType<typeof wcmatch> {\n const key = JSON.stringify(params[0]); // Note: believe-it-or-not, JSON.stringify() beats String() for coercion speed here\n if (!(key in this.cachedMatchers)) {\n this.cachedMatchers[key] = wcmatch(params[0], params[1] ?? false);\n }\n return this.cachedMatchers[key]!;\n }\n\n /** Wildcard matcher specifically for Token IDs (provides \".\" as separator). */\n tokenIDMatch(pattern: Parameters<typeof wcmatch>[0]): ReturnType<typeof wcmatch> {\n const key = JSON.stringify(pattern);\n if (!(key in this.cachedTokenIDMatchers)) {\n this.cachedTokenIDMatchers[key] = wcmatch(pattern, '.');\n }\n return this.cachedTokenIDMatchers[key]!;\n }\n\n /** Garbage collect all caches, reset to initial state */\n reset() {\n this.cachedMatchers = { '': _CATCHALL_MATCHER, '*': _CATCHALL_MATCHER, '**': _CATCHALL_MATCHER };\n this.cachedTokenIDMatchers = { '': _CATCHALL_MATCHER, '*': _CATCHALL_MATCHER, '**': _CATCHALL_MATCHER };\n }\n}\n\n/** Make an alias */\nexport function makeAlias(input: string): string {\n return input.replace(/^\\{?([^}]+)\\}?$/, '{$1}');\n}\n\n/** Parse an alias */\nexport function parseAlias(input: string): string {\n // TODO: deprecate in future\n if (input.includes('#')) {\n throw new Error(\n 'Mode aliases (# character) are no longer supported as of v0.6.0. Alias the root token instead, and apply modes in plugins.',\n );\n }\n const match = input.match(ALIAS_RE);\n if (!match) {\n return input;\n }\n return match[1] ?? match[0];\n}\n\n/** split a token ID into a local ID and group ID */\nexport function splitID(id: string): { local: string; group?: string } {\n const lastSeparatorI = id.lastIndexOf('.');\n if (lastSeparatorI === -1) {\n return { local: id };\n }\n return {\n local: id.substring(lastSeparatorI + 1),\n group: id.substring(0, lastSeparatorI),\n };\n}\n","export const SHADOW_REQUIRED_PROPERTIES = ['color', 'offsetX', 'offsetY', 'blur', 'spread'] as const;\n","export const STROKE_STYLE_STRING_VALUES = [\n 'solid',\n 'dashed',\n 'dotted',\n 'double',\n 'groove',\n 'ridge',\n 'outset',\n 'inset',\n] as const;\n\nexport const STROKE_STYLE_OBJECT_REQUIRED_PROPERTIES = ['dashArray', 'lineCap'] as const;\n\nexport const STROKE_STYLE_LINE_CAP_VALUES = ['round', 'butt', 'square'] as const;\n","export interface CustomTransformOptions {\n /** Token $type */\n $type: string;\n}\n\n/** Give a user pertinent feedback if they override a transform incorrectly */\nexport function validateCustomTransform(value: unknown, { $type }: CustomTransformOptions) {\n if (value) {\n if ((typeof value !== 'string' && typeof value !== 'object') || Array.isArray(value)) {\n throw new Error(\n `transform(): expected string or Object of strings, received ${Array.isArray(value) ? 'Array' : typeof value}`,\n );\n }\n switch ($type) {\n case 'typography': {\n if (typeof value !== 'object') {\n throw new Error('transform(): typography tokens must be an object of keys');\n }\n break;\n }\n }\n }\n}\n","export const TRANSITION_REQUIRED_PROPERTIES = ['duration', 'delay', 'timingFunction'] as const;\n","export const TYPOGRAPHY_REQUIRED_PROPERTIES = [\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n] as const;\n"],"mappings":";;;;AAAA,MAAa,6BAA6B;CAAC;CAAS;CAAS;CAAQ;;;;;ACCrE,MAAa,eAAe;CAC1B,MAAM;CACN,UAAU;CAEV,eAAe;CACf,eAAe;CAEf,OAAO;CAEP,QAAQ;CACR,SAAS;CACT,MAAM;CAEN,QAAQ;CAER,aAAa;CACb,aAAa;CAEb,MAAM;CAEN,cAAc;CACd,cAAc;CAEd,OAAO;CACP,OAAO;CAEP,eAAe;CACf,eAAe;CAChB;;;;AC7BD,MAAa,oCAAoC,CAAC,SAAS,WAAW;;;;ACEtE,MAAM,WAAW;;AAGjB,SAAgB,QAAQ,OAAwB;AAC9C,QAAO,SAAS,KAAK,MAAM;;AAG7B,MAAM,oBAAoB,QAAQ,KAAK;;AAGvC,IAAa,wBAAb,MAAmC;CACjC,iBAA6D,EAAE;;CAE/D,wBAAoE,EAAE;CAEtE,cAAc;AACZ,OAAK,OAAO;;;CAId,MAAM,GAAG,QAAgE;EACvE,MAAM,MAAM,KAAK,UAAU,OAAO,GAAG;AACrC,MAAI,EAAE,OAAO,KAAK,gBAChB,MAAK,eAAe,OAAO,QAAQ,OAAO,IAAI,OAAO,MAAM,MAAM;AAEnE,SAAO,KAAK,eAAe;;;CAI7B,aAAa,SAAoE;EAC/E,MAAM,MAAM,KAAK,UAAU,QAAQ;AACnC,MAAI,EAAE,OAAO,KAAK,uBAChB,MAAK,sBAAsB,OAAO,QAAQ,SAAS,IAAI;AAEzD,SAAO,KAAK,sBAAsB;;;CAIpC,QAAQ;AACN,OAAK,iBAAiB;GAAE,IAAI;GAAmB,KAAK;GAAmB,MAAM;GAAmB;AAChG,OAAK,wBAAwB;GAAE,IAAI;GAAmB,KAAK;GAAmB,MAAM;GAAmB;;;;AAK3G,SAAgB,UAAU,OAAuB;AAC/C,QAAO,MAAM,QAAQ,mBAAmB,OAAO;;;AAIjD,SAAgB,WAAW,OAAuB;AAEhD,KAAI,MAAM,SAAS,IAAI,CACrB,OAAM,IAAI,MACR,6HACD;CAEH,MAAM,QAAQ,MAAM,MAAM,SAAS;AACnC,KAAI,CAAC,MACH,QAAO;AAET,QAAO,MAAM,MAAM,MAAM;;;AAI3B,SAAgB,QAAQ,IAA+C;CACrE,MAAM,iBAAiB,GAAG,YAAY,IAAI;AAC1C,KAAI,mBAAmB,GACrB,QAAO,EAAE,OAAO,IAAI;AAEtB,QAAO;EACL,OAAO,GAAG,UAAU,iBAAiB,EAAE;EACvC,OAAO,GAAG,UAAU,GAAG,eAAe;EACvC;;;;;AC3EH,MAAa,6BAA6B;CAAC;CAAS;CAAW;CAAW;CAAQ;CAAS;;;;ACA3F,MAAa,6BAA6B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,0CAA0C,CAAC,aAAa,UAAU;AAE/E,MAAa,+BAA+B;CAAC;CAAS;CAAQ;CAAS;;;;;ACPvE,SAAgB,wBAAwB,OAAgB,EAAE,SAAiC;AACzF,KAAI,OAAO;AACT,MAAK,OAAO,UAAU,YAAY,OAAO,UAAU,YAAa,MAAM,QAAQ,MAAM,CAClF,OAAM,IAAI,MACR,+DAA+D,MAAM,QAAQ,MAAM,GAAG,UAAU,OAAO,QACxG;AAEH,UAAQ,OAAR;GACE,KAAK;AACH,QAAI,OAAO,UAAU,SACnB,OAAM,IAAI,MAAM,2DAA2D;AAE7E;;;;;;;AClBR,MAAa,iCAAiC;CAAC;CAAY;CAAS;CAAiB;;;;ACArF,MAAa,iCAAiC;CAC5C;CACA;CACA;CACA;CACA;CACD"}
|