@tenphi/tasty 0.1.0 → 0.1.2
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/_virtual/_rolldown/runtime.js +8 -0
- package/dist/zero/{babel.d.mts → babel.d.ts} +6 -6
- package/dist/zero/{babel.mjs → babel.js} +6 -6
- package/dist/zero/babel.js.map +1 -0
- package/dist/{css-writer.d.mts → zero/css-writer.d.ts} +1 -1
- package/dist/{css-writer.mjs → zero/css-writer.js} +1 -1
- package/dist/zero/css-writer.js.map +1 -0
- package/dist/{extractor.d.mts → zero/extractor.d.ts} +3 -2
- package/dist/{extractor.mjs → zero/extractor.js} +6 -6
- package/dist/zero/extractor.js.map +1 -0
- package/dist/zero/index.d.ts +3 -0
- package/dist/zero/{index.mjs → index.js} +2 -2
- package/dist/zero/{next.d.mts → next.d.ts} +1 -1
- package/dist/zero/{next.mjs → next.js} +2 -2
- package/dist/zero/next.js.map +1 -0
- package/package.json +16 -23
- package/dist/_virtual/_rolldown/runtime.mjs +0 -7
- package/dist/chunks/cacheKey.mjs +0 -70
- package/dist/chunks/cacheKey.mjs.map +0 -1
- package/dist/chunks/definitions.mjs +0 -260
- package/dist/chunks/definitions.mjs.map +0 -1
- package/dist/chunks/renderChunk.mjs +0 -61
- package/dist/chunks/renderChunk.mjs.map +0 -1
- package/dist/config.mjs +0 -231
- package/dist/config.mjs.map +0 -1
- package/dist/css-writer.mjs.map +0 -1
- package/dist/extractor.mjs.map +0 -1
- package/dist/injector/injector.mjs +0 -404
- package/dist/injector/injector.mjs.map +0 -1
- package/dist/injector/sheet-manager.mjs +0 -714
- package/dist/injector/sheet-manager.mjs.map +0 -1
- package/dist/injector/types.d.mts +0 -18
- package/dist/keyframes/index.mjs +0 -156
- package/dist/keyframes/index.mjs.map +0 -1
- package/dist/parser/classify.mjs +0 -319
- package/dist/parser/classify.mjs.map +0 -1
- package/dist/parser/const.mjs +0 -33
- package/dist/parser/const.mjs.map +0 -1
- package/dist/parser/lru.mjs +0 -109
- package/dist/parser/lru.mjs.map +0 -1
- package/dist/parser/parser.mjs +0 -116
- package/dist/parser/parser.mjs.map +0 -1
- package/dist/parser/tokenizer.mjs +0 -69
- package/dist/parser/tokenizer.mjs.map +0 -1
- package/dist/parser/types.d.mts +0 -37
- package/dist/parser/types.mjs +0 -46
- package/dist/parser/types.mjs.map +0 -1
- package/dist/pipeline/conditions.mjs +0 -377
- package/dist/pipeline/conditions.mjs.map +0 -1
- package/dist/pipeline/exclusive.mjs +0 -231
- package/dist/pipeline/exclusive.mjs.map +0 -1
- package/dist/pipeline/index.mjs +0 -635
- package/dist/pipeline/index.mjs.map +0 -1
- package/dist/pipeline/materialize.mjs +0 -821
- package/dist/pipeline/materialize.mjs.map +0 -1
- package/dist/pipeline/parseStateKey.mjs +0 -418
- package/dist/pipeline/parseStateKey.mjs.map +0 -1
- package/dist/pipeline/simplify.mjs +0 -557
- package/dist/pipeline/simplify.mjs.map +0 -1
- package/dist/plugins/okhsl-plugin.mjs +0 -345
- package/dist/plugins/okhsl-plugin.mjs.map +0 -1
- package/dist/plugins/types.d.mts +0 -49
- package/dist/properties/index.mjs +0 -141
- package/dist/properties/index.mjs.map +0 -1
- package/dist/states/index.mjs +0 -161
- package/dist/states/index.mjs.map +0 -1
- package/dist/styles/align.mjs +0 -14
- package/dist/styles/align.mjs.map +0 -1
- package/dist/styles/border.mjs +0 -114
- package/dist/styles/border.mjs.map +0 -1
- package/dist/styles/color.mjs +0 -23
- package/dist/styles/color.mjs.map +0 -1
- package/dist/styles/createStyle.mjs +0 -77
- package/dist/styles/createStyle.mjs.map +0 -1
- package/dist/styles/dimension.mjs +0 -97
- package/dist/styles/dimension.mjs.map +0 -1
- package/dist/styles/display.mjs +0 -67
- package/dist/styles/display.mjs.map +0 -1
- package/dist/styles/fade.mjs +0 -58
- package/dist/styles/fade.mjs.map +0 -1
- package/dist/styles/fill.mjs +0 -51
- package/dist/styles/fill.mjs.map +0 -1
- package/dist/styles/flow.mjs +0 -12
- package/dist/styles/flow.mjs.map +0 -1
- package/dist/styles/gap.mjs +0 -37
- package/dist/styles/gap.mjs.map +0 -1
- package/dist/styles/height.mjs +0 -20
- package/dist/styles/height.mjs.map +0 -1
- package/dist/styles/index.mjs +0 -9
- package/dist/styles/index.mjs.map +0 -1
- package/dist/styles/inset.mjs +0 -142
- package/dist/styles/inset.mjs.map +0 -1
- package/dist/styles/justify.mjs +0 -14
- package/dist/styles/justify.mjs.map +0 -1
- package/dist/styles/margin.mjs +0 -96
- package/dist/styles/margin.mjs.map +0 -1
- package/dist/styles/outline.mjs +0 -65
- package/dist/styles/outline.mjs.map +0 -1
- package/dist/styles/padding.mjs +0 -96
- package/dist/styles/padding.mjs.map +0 -1
- package/dist/styles/predefined.mjs +0 -232
- package/dist/styles/predefined.mjs.map +0 -1
- package/dist/styles/preset.mjs +0 -126
- package/dist/styles/preset.mjs.map +0 -1
- package/dist/styles/radius.mjs +0 -51
- package/dist/styles/radius.mjs.map +0 -1
- package/dist/styles/scrollbar.mjs +0 -105
- package/dist/styles/scrollbar.mjs.map +0 -1
- package/dist/styles/shadow.mjs +0 -24
- package/dist/styles/shadow.mjs.map +0 -1
- package/dist/styles/styledScrollbar.mjs +0 -38
- package/dist/styles/styledScrollbar.mjs.map +0 -1
- package/dist/styles/transition.mjs +0 -138
- package/dist/styles/transition.mjs.map +0 -1
- package/dist/styles/types.d.mts +0 -492
- package/dist/styles/width.mjs +0 -20
- package/dist/styles/width.mjs.map +0 -1
- package/dist/utils/cache-wrapper.mjs +0 -26
- package/dist/utils/cache-wrapper.mjs.map +0 -1
- package/dist/utils/case-converter.mjs +0 -8
- package/dist/utils/case-converter.mjs.map +0 -1
- package/dist/utils/hsl-to-rgb.mjs +0 -38
- package/dist/utils/hsl-to-rgb.mjs.map +0 -1
- package/dist/utils/is-dev-env.mjs +0 -19
- package/dist/utils/is-dev-env.mjs.map +0 -1
- package/dist/utils/merge-styles.mjs +0 -146
- package/dist/utils/merge-styles.mjs.map +0 -1
- package/dist/utils/okhsl-to-rgb.mjs +0 -296
- package/dist/utils/okhsl-to-rgb.mjs.map +0 -1
- package/dist/utils/process-tokens.mjs +0 -28
- package/dist/utils/process-tokens.mjs.map +0 -1
- package/dist/utils/resolve-recipes.mjs +0 -143
- package/dist/utils/resolve-recipes.mjs.map +0 -1
- package/dist/utils/string.mjs +0 -8
- package/dist/utils/string.mjs.map +0 -1
- package/dist/utils/styles.d.mts +0 -18
- package/dist/utils/styles.mjs +0 -346
- package/dist/utils/styles.mjs.map +0 -1
- package/dist/zero/babel.mjs.map +0 -1
- package/dist/zero/index.d.mts +0 -3
- package/dist/zero/next.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"radius.mjs","names":[],"sources":["../../src/styles/radius.ts"],"sourcesContent":["import { makeEmptyDetails } from '../parser/types';\nimport { DIRECTIONS, parseStyle } from '../utils/styles';\n\nconst PROP = 'var(--radius)';\nconst SHARP = 'var(--sharp-radius)';\n\nexport function radiusStyle({ radius }) {\n if (typeof radius === 'number') {\n radius = `${radius}px`;\n }\n\n if (!radius) return;\n\n if (radius === true) radius = '1r';\n\n const processed = parseStyle(radius);\n const { mods } =\n processed.groups[0] ?? makeEmptyDetails();\n let { values } =\n processed.groups[0] ?? makeEmptyDetails();\n\n if (mods.includes('round')) {\n values = ['9999rem'];\n } else if (mods.includes('ellipse')) {\n values = ['50%'];\n } else if (!values.length) {\n values = [PROP];\n }\n\n if (mods.includes('leaf')) {\n values = [\n values[1] || SHARP,\n values[0] || PROP,\n values[1] || SHARP,\n values[0] || PROP,\n ];\n } else if (mods.includes('backleaf')) {\n values = [\n values[0] || PROP,\n values[1] || SHARP,\n values[0] || PROP,\n values[1] || SHARP,\n ];\n } else if (mods.length) {\n const arr = ['0', '0', '0', '0'];\n\n let flag = false;\n\n DIRECTIONS.forEach((dir, i) => {\n if (!mods.includes(dir)) return;\n\n flag = true;\n\n arr[i] = values[0] || PROP;\n arr[(i + 1) % 4] = values[0] || PROP;\n });\n\n if (flag) {\n values = arr;\n }\n }\n\n return {\n 'border-radius': values.join(' '),\n };\n}\n\nradiusStyle.__lookupStyles = ['radius'];\n"],"mappings":";;;;AAGA,MAAM,OAAO;AACb,MAAM,QAAQ;AAEd,SAAgB,YAAY,EAAE,UAAU;AACtC,KAAI,OAAO,WAAW,SACpB,UAAS,GAAG,OAAO;AAGrB,KAAI,CAAC,OAAQ;AAEb,KAAI,WAAW,KAAM,UAAS;CAE9B,MAAM,YAAY,WAAW,OAAO;CACpC,MAAM,EAAE,SACN,UAAU,OAAO,MAAM,kBAAkB;CAC3C,IAAI,EAAE,WACJ,UAAU,OAAO,MAAM,kBAAkB;AAE3C,KAAI,KAAK,SAAS,QAAQ,CACxB,UAAS,CAAC,UAAU;UACX,KAAK,SAAS,UAAU,CACjC,UAAS,CAAC,MAAM;UACP,CAAC,OAAO,OACjB,UAAS,CAAC,KAAK;AAGjB,KAAI,KAAK,SAAS,OAAO,CACvB,UAAS;EACP,OAAO,MAAM;EACb,OAAO,MAAM;EACb,OAAO,MAAM;EACb,OAAO,MAAM;EACd;UACQ,KAAK,SAAS,WAAW,CAClC,UAAS;EACP,OAAO,MAAM;EACb,OAAO,MAAM;EACb,OAAO,MAAM;EACb,OAAO,MAAM;EACd;UACQ,KAAK,QAAQ;EACtB,MAAM,MAAM;GAAC;GAAK;GAAK;GAAK;GAAI;EAEhC,IAAI,OAAO;AAEX,aAAW,SAAS,KAAK,MAAM;AAC7B,OAAI,CAAC,KAAK,SAAS,IAAI,CAAE;AAEzB,UAAO;AAEP,OAAI,KAAK,OAAO,MAAM;AACtB,QAAK,IAAI,KAAK,KAAK,OAAO,MAAM;IAChC;AAEF,MAAI,KACF,UAAS;;AAIb,QAAO,EACL,iBAAiB,OAAO,KAAK,IAAI,EAClC;;AAGH,YAAY,iBAAiB,CAAC,SAAS"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { makeEmptyDetails } from "../parser/types.mjs";
|
|
2
|
-
import { parseStyle } from "../utils/styles.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/styles/scrollbar.ts
|
|
5
|
-
/**
|
|
6
|
-
* Creates cross-browser compatible scrollbar styles
|
|
7
|
-
*
|
|
8
|
-
* Supports both Firefox (scrollbar-width, scrollbar-color) and
|
|
9
|
-
* WebKit/Chromium browsers (::-webkit-scrollbar)
|
|
10
|
-
*/
|
|
11
|
-
function scrollbarStyle({ scrollbar, overflow }) {
|
|
12
|
-
if (!scrollbar && scrollbar !== 0) return;
|
|
13
|
-
const value = scrollbar === true || scrollbar === "" ? "thin" : scrollbar;
|
|
14
|
-
const { mods, colors, values } = parseStyle(String(value)).groups[0] ?? makeEmptyDetails();
|
|
15
|
-
const style = {};
|
|
16
|
-
const defaultThumbColor = "var(--scrollbar-thumb-color)";
|
|
17
|
-
const defaultTrackColor = "var(--scrollbar-track-color, transparent)";
|
|
18
|
-
style["scrollbar-color"] = `${defaultThumbColor} transparent`;
|
|
19
|
-
const sizeValue = values[0] || "8px";
|
|
20
|
-
if (mods.includes("thin")) style["scrollbar-width"] = "thin";
|
|
21
|
-
else if (mods.includes("none")) {
|
|
22
|
-
style["scrollbar-width"] = "none";
|
|
23
|
-
delete style["scrollbar-color"];
|
|
24
|
-
style["&::-webkit-scrollbar"] = {
|
|
25
|
-
width: "0px",
|
|
26
|
-
height: "0px",
|
|
27
|
-
display: "none"
|
|
28
|
-
};
|
|
29
|
-
return style;
|
|
30
|
-
} else if (mods.includes("auto")) style["scrollbar-width"] = "auto";
|
|
31
|
-
if (mods.includes("stable") || mods.includes("both-edges")) style["scrollbar-gutter"] = mods.includes("both-edges") ? "stable both-edges" : "stable";
|
|
32
|
-
if (sizeValue) style["&::-webkit-scrollbar"] = {
|
|
33
|
-
...style["&::-webkit-scrollbar"] || {},
|
|
34
|
-
width: sizeValue,
|
|
35
|
-
height: sizeValue
|
|
36
|
-
};
|
|
37
|
-
const thumbColor = colors && colors[0] ? colors[0] : defaultThumbColor;
|
|
38
|
-
const trackColor = colors && colors[1] ? colors[1] : defaultTrackColor;
|
|
39
|
-
const cornerColor = colors && colors[2] ? colors[2] : trackColor;
|
|
40
|
-
if (colors && colors.length) {
|
|
41
|
-
style["scrollbar-color"] = `${thumbColor} ${trackColor}`;
|
|
42
|
-
if (!style["&::-webkit-scrollbar"]) style["&::-webkit-scrollbar"] = {};
|
|
43
|
-
style["&::-webkit-scrollbar"]["background"] = trackColor;
|
|
44
|
-
style["&::-webkit-scrollbar-track"] = {
|
|
45
|
-
...style["&::-webkit-scrollbar-track"] || {},
|
|
46
|
-
background: trackColor
|
|
47
|
-
};
|
|
48
|
-
style["&::-webkit-scrollbar-thumb"] = {
|
|
49
|
-
...style["&::-webkit-scrollbar-thumb"] || {},
|
|
50
|
-
background: thumbColor
|
|
51
|
-
};
|
|
52
|
-
style["&::-webkit-scrollbar-corner"] = {
|
|
53
|
-
...style["&::-webkit-scrollbar-corner"] || {},
|
|
54
|
-
background: cornerColor
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
if (mods.includes("always")) {
|
|
58
|
-
style["overflow"] = overflow || "scroll";
|
|
59
|
-
if (!style["scrollbar-gutter"]) style["scrollbar-gutter"] = "stable";
|
|
60
|
-
if (!style["&::-webkit-scrollbar"]) style["&::-webkit-scrollbar"] = {};
|
|
61
|
-
style["&::-webkit-scrollbar"]["display"] = "block";
|
|
62
|
-
}
|
|
63
|
-
if (mods.includes("styled")) {
|
|
64
|
-
const baseTransition = [
|
|
65
|
-
"background var(--transition)",
|
|
66
|
-
"border-radius var(--transition)",
|
|
67
|
-
"box-shadow var(--transition)",
|
|
68
|
-
"width var(--transition)",
|
|
69
|
-
"height var(--transition)",
|
|
70
|
-
"border var(--transition)"
|
|
71
|
-
].join(", ");
|
|
72
|
-
style["scrollbar-width"] = style["scrollbar-width"] || "thin";
|
|
73
|
-
style["scrollbar-color"] = style["scrollbar-color"] || `${defaultThumbColor} ${defaultTrackColor}`;
|
|
74
|
-
style["&::-webkit-scrollbar"] = {
|
|
75
|
-
width: sizeValue,
|
|
76
|
-
height: sizeValue,
|
|
77
|
-
transition: baseTransition,
|
|
78
|
-
background: defaultTrackColor,
|
|
79
|
-
...style["&::-webkit-scrollbar"] || {}
|
|
80
|
-
};
|
|
81
|
-
style["&::-webkit-scrollbar-thumb"] = {
|
|
82
|
-
"border-radius": "8px",
|
|
83
|
-
"min-height": "24px",
|
|
84
|
-
transition: baseTransition,
|
|
85
|
-
background: defaultThumbColor,
|
|
86
|
-
...style["&::-webkit-scrollbar-thumb"] || {}
|
|
87
|
-
};
|
|
88
|
-
style["&::-webkit-scrollbar-track"] = {
|
|
89
|
-
background: defaultTrackColor,
|
|
90
|
-
transition: baseTransition,
|
|
91
|
-
...style["&::-webkit-scrollbar-track"] || {}
|
|
92
|
-
};
|
|
93
|
-
style["&::-webkit-scrollbar-corner"] = {
|
|
94
|
-
background: defaultTrackColor,
|
|
95
|
-
transition: baseTransition,
|
|
96
|
-
...style["&::-webkit-scrollbar-corner"] || {}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return style;
|
|
100
|
-
}
|
|
101
|
-
scrollbarStyle.__lookupStyles = ["scrollbar", "overflow"];
|
|
102
|
-
|
|
103
|
-
//#endregion
|
|
104
|
-
export { scrollbarStyle };
|
|
105
|
-
//# sourceMappingURL=scrollbar.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.mjs","names":[],"sources":["../../src/styles/scrollbar.ts"],"sourcesContent":["import { makeEmptyDetails } from '../parser/types';\nimport { parseStyle } from '../utils/styles';\n\ninterface ScrollbarStyleProps {\n scrollbar?: string | boolean | number;\n overflow?: string;\n}\n\n/**\n * Creates cross-browser compatible scrollbar styles\n *\n * Supports both Firefox (scrollbar-width, scrollbar-color) and\n * WebKit/Chromium browsers (::-webkit-scrollbar)\n */\nexport function scrollbarStyle({ scrollbar, overflow }: ScrollbarStyleProps) {\n // Check if scrollbar is defined\n if (!scrollbar && scrollbar !== 0) return;\n\n // Support true as alias for thin\n const value = scrollbar === true || scrollbar === '' ? 'thin' : scrollbar;\n const processed = parseStyle(String(value));\n const { mods, colors, values } =\n processed.groups[0] ?? makeEmptyDetails();\n const style = {};\n\n // Default colors for scrollbar\n const defaultThumbColor = 'var(--scrollbar-thumb-color)';\n const defaultTrackColor = 'var(--scrollbar-track-color, transparent)';\n\n // Setup default Firefox scrollbar style\n style['scrollbar-color'] = `${defaultThumbColor} transparent`;\n\n // Default scrollbar size\n const defaultSize = '8px';\n const sizeValue = values[0] || defaultSize;\n\n // Process modifiers\n if (mods.includes('thin')) {\n style['scrollbar-width'] = 'thin';\n } else if (mods.includes('none')) {\n style['scrollbar-width'] = 'none';\n // Remove scrollbar-color as it's not needed when scrollbar is hidden\n delete style['scrollbar-color'];\n // Also hide WebKit scrollbars\n style['&::-webkit-scrollbar'] = {\n width: '0px',\n height: '0px',\n display: 'none',\n };\n\n return style;\n } else if (mods.includes('auto')) {\n style['scrollbar-width'] = 'auto';\n }\n\n // Handle scrollbar gutter behavior\n if (mods.includes('stable') || mods.includes('both-edges')) {\n // scrollbar-gutter is supported in newer browsers only\n style['scrollbar-gutter'] = mods.includes('both-edges')\n ? 'stable both-edges'\n : 'stable';\n }\n\n // Custom size setup for WebKit\n if (sizeValue) {\n style['&::-webkit-scrollbar'] = {\n ...(style['&::-webkit-scrollbar'] || {}),\n width: sizeValue,\n height: sizeValue,\n };\n }\n\n // Extract colors (support up to 3: thumb, track, corner)\n // These will be used in various places throughout the function\n const thumbColor = colors && colors[0] ? colors[0] : defaultThumbColor;\n const trackColor = colors && colors[1] ? colors[1] : defaultTrackColor;\n const cornerColor = colors && colors[2] ? colors[2] : trackColor;\n\n // Apply colors if they are specified\n if (colors && colors.length) {\n // Firefox\n style['scrollbar-color'] = `${thumbColor} ${trackColor}`;\n\n // WebKit - always set these for consistency\n if (!style['&::-webkit-scrollbar']) {\n style['&::-webkit-scrollbar'] = {};\n }\n style['&::-webkit-scrollbar']['background'] = trackColor;\n\n style['&::-webkit-scrollbar-track'] = {\n ...(style['&::-webkit-scrollbar-track'] || {}),\n background: trackColor,\n };\n\n style['&::-webkit-scrollbar-thumb'] = {\n ...(style['&::-webkit-scrollbar-thumb'] || {}),\n background: thumbColor,\n };\n\n style['&::-webkit-scrollbar-corner'] = {\n ...(style['&::-webkit-scrollbar-corner'] || {}),\n background: cornerColor,\n };\n }\n\n // Handle 'always' mode: force scrollbars to show\n if (mods.includes('always')) {\n style['overflow'] = overflow || 'scroll';\n\n // Use auto for WebKit browsers since they don't support 'always'\n // This is closer to the expected behavior\n if (!style['scrollbar-gutter']) {\n style['scrollbar-gutter'] = 'stable';\n }\n\n // Ensure scrollbars appear in WebKit even with little content\n if (!style['&::-webkit-scrollbar']) {\n style['&::-webkit-scrollbar'] = {};\n }\n style['&::-webkit-scrollbar']['display'] = 'block';\n }\n\n // Enhanced 'styled' mode with better transitions and appearance\n if (mods.includes('styled')) {\n const baseTransition = [\n 'background var(--transition)',\n 'border-radius var(--transition)',\n 'box-shadow var(--transition)',\n 'width var(--transition)',\n 'height var(--transition)',\n 'border var(--transition)',\n ].join(', ');\n\n // Firefox\n style['scrollbar-width'] = style['scrollbar-width'] || 'thin';\n style['scrollbar-color'] =\n style['scrollbar-color'] || `${defaultThumbColor} ${defaultTrackColor}`;\n\n // WebKit\n style['&::-webkit-scrollbar'] = {\n width: sizeValue,\n height: sizeValue,\n transition: baseTransition,\n background: defaultTrackColor,\n ...(style['&::-webkit-scrollbar'] || {}),\n };\n\n style['&::-webkit-scrollbar-thumb'] = {\n 'border-radius': '8px',\n 'min-height': '24px',\n transition: baseTransition,\n background: defaultThumbColor,\n ...(style['&::-webkit-scrollbar-thumb'] || {}),\n };\n\n style['&::-webkit-scrollbar-track'] = {\n background: defaultTrackColor,\n transition: baseTransition,\n ...(style['&::-webkit-scrollbar-track'] || {}),\n };\n\n style['&::-webkit-scrollbar-corner'] = {\n background: defaultTrackColor,\n transition: baseTransition,\n ...(style['&::-webkit-scrollbar-corner'] || {}),\n };\n }\n\n return style;\n}\n\nscrollbarStyle.__lookupStyles = ['scrollbar', 'overflow'];\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,eAAe,EAAE,WAAW,YAAiC;AAE3E,KAAI,CAAC,aAAa,cAAc,EAAG;CAGnC,MAAM,QAAQ,cAAc,QAAQ,cAAc,KAAK,SAAS;CAEhE,MAAM,EAAE,MAAM,QAAQ,WADJ,WAAW,OAAO,MAAM,CAAC,CAE/B,OAAO,MAAM,kBAAkB;CAC3C,MAAM,QAAQ,EAAE;CAGhB,MAAM,oBAAoB;CAC1B,MAAM,oBAAoB;AAG1B,OAAM,qBAAqB,GAAG,kBAAkB;CAIhD,MAAM,YAAY,OAAO,MADL;AAIpB,KAAI,KAAK,SAAS,OAAO,CACvB,OAAM,qBAAqB;UAClB,KAAK,SAAS,OAAO,EAAE;AAChC,QAAM,qBAAqB;AAE3B,SAAO,MAAM;AAEb,QAAM,0BAA0B;GAC9B,OAAO;GACP,QAAQ;GACR,SAAS;GACV;AAED,SAAO;YACE,KAAK,SAAS,OAAO,CAC9B,OAAM,qBAAqB;AAI7B,KAAI,KAAK,SAAS,SAAS,IAAI,KAAK,SAAS,aAAa,CAExD,OAAM,sBAAsB,KAAK,SAAS,aAAa,GACnD,sBACA;AAIN,KAAI,UACF,OAAM,0BAA0B;EAC9B,GAAI,MAAM,2BAA2B,EAAE;EACvC,OAAO;EACP,QAAQ;EACT;CAKH,MAAM,aAAa,UAAU,OAAO,KAAK,OAAO,KAAK;CACrD,MAAM,aAAa,UAAU,OAAO,KAAK,OAAO,KAAK;CACrD,MAAM,cAAc,UAAU,OAAO,KAAK,OAAO,KAAK;AAGtD,KAAI,UAAU,OAAO,QAAQ;AAE3B,QAAM,qBAAqB,GAAG,WAAW,GAAG;AAG5C,MAAI,CAAC,MAAM,wBACT,OAAM,0BAA0B,EAAE;AAEpC,QAAM,wBAAwB,gBAAgB;AAE9C,QAAM,gCAAgC;GACpC,GAAI,MAAM,iCAAiC,EAAE;GAC7C,YAAY;GACb;AAED,QAAM,gCAAgC;GACpC,GAAI,MAAM,iCAAiC,EAAE;GAC7C,YAAY;GACb;AAED,QAAM,iCAAiC;GACrC,GAAI,MAAM,kCAAkC,EAAE;GAC9C,YAAY;GACb;;AAIH,KAAI,KAAK,SAAS,SAAS,EAAE;AAC3B,QAAM,cAAc,YAAY;AAIhC,MAAI,CAAC,MAAM,oBACT,OAAM,sBAAsB;AAI9B,MAAI,CAAC,MAAM,wBACT,OAAM,0BAA0B,EAAE;AAEpC,QAAM,wBAAwB,aAAa;;AAI7C,KAAI,KAAK,SAAS,SAAS,EAAE;EAC3B,MAAM,iBAAiB;GACrB;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK;AAGZ,QAAM,qBAAqB,MAAM,sBAAsB;AACvD,QAAM,qBACJ,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;AAGtD,QAAM,0BAA0B;GAC9B,OAAO;GACP,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,GAAI,MAAM,2BAA2B,EAAE;GACxC;AAED,QAAM,gCAAgC;GACpC,iBAAiB;GACjB,cAAc;GACd,YAAY;GACZ,YAAY;GACZ,GAAI,MAAM,iCAAiC,EAAE;GAC9C;AAED,QAAM,gCAAgC;GACpC,YAAY;GACZ,YAAY;GACZ,GAAI,MAAM,iCAAiC,EAAE;GAC9C;AAED,QAAM,iCAAiC;GACrC,YAAY;GACZ,YAAY;GACZ,GAAI,MAAM,kCAAkC,EAAE;GAC/C;;AAGH,QAAO;;AAGT,eAAe,iBAAiB,CAAC,aAAa,WAAW"}
|
package/dist/styles/shadow.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { makeEmptyDetails } from "../parser/types.mjs";
|
|
2
|
-
import { parseStyle } from "../utils/styles.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/styles/shadow.ts
|
|
5
|
-
function toBoxShadow(shadow) {
|
|
6
|
-
const { values, mods, colors } = parseStyle(shadow).groups[0] ?? makeEmptyDetails();
|
|
7
|
-
const mod = mods[0] || "";
|
|
8
|
-
const shadowColor = (colors && colors[0]) ?? "";
|
|
9
|
-
return [
|
|
10
|
-
mod,
|
|
11
|
-
...values,
|
|
12
|
-
shadowColor
|
|
13
|
-
].join(" ");
|
|
14
|
-
}
|
|
15
|
-
function shadowStyle({ shadow }) {
|
|
16
|
-
if (!shadow) return;
|
|
17
|
-
if (shadow === true) shadow = "var(--shadow)";
|
|
18
|
-
return { "box-shadow": shadow.split(",").map(toBoxShadow).join(",") };
|
|
19
|
-
}
|
|
20
|
-
shadowStyle.__lookupStyles = ["shadow"];
|
|
21
|
-
|
|
22
|
-
//#endregion
|
|
23
|
-
export { shadowStyle };
|
|
24
|
-
//# sourceMappingURL=shadow.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shadow.mjs","names":[],"sources":["../../src/styles/shadow.ts"],"sourcesContent":["import { makeEmptyDetails } from '../parser/types';\nimport { parseStyle } from '../utils/styles';\n\nfunction toBoxShadow(shadow) {\n const processed = parseStyle(shadow);\n const { values, mods, colors } =\n processed.groups[0] ?? makeEmptyDetails();\n const mod = mods[0] || '';\n const shadowColor = (colors && colors[0]) ?? '';\n\n return [mod, ...values, shadowColor].join(' ');\n}\n\nexport function shadowStyle({ shadow }) {\n if (!shadow) return;\n\n if (shadow === true) shadow = 'var(--shadow)';\n\n return {\n 'box-shadow': shadow.split(',').map(toBoxShadow).join(','),\n };\n}\n\nshadowStyle.__lookupStyles = ['shadow'];\n"],"mappings":";;;;AAGA,SAAS,YAAY,QAAQ;CAE3B,MAAM,EAAE,QAAQ,MAAM,WADJ,WAAW,OAAO,CAExB,OAAO,MAAM,kBAAkB;CAC3C,MAAM,MAAM,KAAK,MAAM;CACvB,MAAM,eAAe,UAAU,OAAO,OAAO;AAE7C,QAAO;EAAC;EAAK,GAAG;EAAQ;EAAY,CAAC,KAAK,IAAI;;AAGhD,SAAgB,YAAY,EAAE,UAAU;AACtC,KAAI,CAAC,OAAQ;AAEb,KAAI,WAAW,KAAM,UAAS;AAE9B,QAAO,EACL,cAAc,OAAO,MAAM,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,IAAI,EAC3D;;AAGH,YAAY,iBAAiB,CAAC,SAAS"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/styles/styledScrollbar.ts
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated `styledScrollbar` is deprecated. Use `scrollbar` instead.
|
|
4
|
-
*/
|
|
5
|
-
function styledScrollbarStyle({ styledScrollbar: val }) {
|
|
6
|
-
if (val == null) return null;
|
|
7
|
-
if (!val) return [{
|
|
8
|
-
$: "::-webkit-scrollbar",
|
|
9
|
-
display: "none"
|
|
10
|
-
}, { "scrollbar-width": "none" }];
|
|
11
|
-
return [
|
|
12
|
-
{
|
|
13
|
-
$: "::-webkit-scrollbar",
|
|
14
|
-
width: "var(--scrollbar-width)",
|
|
15
|
-
height: "var(--scrollbar-width)"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
$: "::-webkit-scrollbar-track",
|
|
19
|
-
"background-color": "var(--scrollbar-bg-color)"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
$: "::-webkit-scrollbar-thumb",
|
|
23
|
-
"background-color": "var(--scrollbar-thumb-color)",
|
|
24
|
-
"border-radius": "var(--scrollbar-radius)",
|
|
25
|
-
border: "var(--scrollbar-outline-width) solid var(--scrollbar-outline-color)",
|
|
26
|
-
"background-clip": "padding-box"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
$: "::-webkit-scrollbar-corner",
|
|
30
|
-
"background-color": "var(--scrollbar-corner-color)"
|
|
31
|
-
}
|
|
32
|
-
];
|
|
33
|
-
}
|
|
34
|
-
styledScrollbarStyle.__lookupStyles = ["styledScrollbar"];
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { styledScrollbarStyle };
|
|
38
|
-
//# sourceMappingURL=styledScrollbar.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styledScrollbar.mjs","names":[],"sources":["../../src/styles/styledScrollbar.ts"],"sourcesContent":["/**\n * @deprecated `styledScrollbar` is deprecated. Use `scrollbar` instead.\n */\nexport function styledScrollbarStyle({ styledScrollbar: val }) {\n if (val == null) return null;\n\n if (!val) {\n return [\n {\n $: '::-webkit-scrollbar',\n display: 'none',\n },\n {\n 'scrollbar-width': 'none',\n },\n ];\n }\n\n return [\n {\n $: '::-webkit-scrollbar',\n width: 'var(--scrollbar-width)',\n height: 'var(--scrollbar-width)',\n },\n {\n $: '::-webkit-scrollbar-track',\n 'background-color': 'var(--scrollbar-bg-color)',\n },\n {\n $: '::-webkit-scrollbar-thumb',\n 'background-color': 'var(--scrollbar-thumb-color)',\n 'border-radius': 'var(--scrollbar-radius)',\n border:\n 'var(--scrollbar-outline-width) solid var(--scrollbar-outline-color)',\n 'background-clip': 'padding-box',\n },\n {\n $: '::-webkit-scrollbar-corner',\n 'background-color': 'var(--scrollbar-corner-color)',\n },\n // Breaks the scrollbar in the latest Chromium browsers\n // {\n // 'scrollbar-width': 'thin',\n // 'scrollbar-color':\n // 'var(--scrollbar-bg-color) var(--scrollbar-thumb-color)',\n // },\n ];\n}\n\nstyledScrollbarStyle.__lookupStyles = ['styledScrollbar'];\n"],"mappings":";;;;AAGA,SAAgB,qBAAqB,EAAE,iBAAiB,OAAO;AAC7D,KAAI,OAAO,KAAM,QAAO;AAExB,KAAI,CAAC,IACH,QAAO,CACL;EACE,GAAG;EACH,SAAS;EACV,EACD,EACE,mBAAmB,QACpB,CACF;AAGH,QAAO;EACL;GACE,GAAG;GACH,OAAO;GACP,QAAQ;GACT;EACD;GACE,GAAG;GACH,oBAAoB;GACrB;EACD;GACE,GAAG;GACH,oBAAoB;GACpB,iBAAiB;GACjB,QACE;GACF,mBAAmB;GACpB;EACD;GACE,GAAG;GACH,oBAAoB;GACrB;EAOF;;AAGH,qBAAqB,iBAAiB,CAAC,kBAAkB"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { parseStyle } from "../utils/styles.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/styles/transition.ts
|
|
4
|
-
const SECOND_FILL_COLOR_PROPERTY = "--tasty-second-fill-color";
|
|
5
|
-
const MAP = {
|
|
6
|
-
fade: ["mask", "mask-composite"],
|
|
7
|
-
translate: ["transform", "translate"],
|
|
8
|
-
rotate: ["transform", "rotate"],
|
|
9
|
-
scale: ["transform", "scale"],
|
|
10
|
-
fill: [
|
|
11
|
-
"background-color",
|
|
12
|
-
"background-image",
|
|
13
|
-
SECOND_FILL_COLOR_PROPERTY
|
|
14
|
-
],
|
|
15
|
-
image: [
|
|
16
|
-
"background-image",
|
|
17
|
-
"background-position",
|
|
18
|
-
"background-size",
|
|
19
|
-
"background-repeat",
|
|
20
|
-
"background-attachment",
|
|
21
|
-
"background-origin",
|
|
22
|
-
"background-clip",
|
|
23
|
-
SECOND_FILL_COLOR_PROPERTY
|
|
24
|
-
],
|
|
25
|
-
background: [
|
|
26
|
-
"background-color",
|
|
27
|
-
"background-image",
|
|
28
|
-
"background-position",
|
|
29
|
-
"background-size",
|
|
30
|
-
"background-repeat",
|
|
31
|
-
"background-attachment",
|
|
32
|
-
"background-origin",
|
|
33
|
-
"background-clip",
|
|
34
|
-
SECOND_FILL_COLOR_PROPERTY
|
|
35
|
-
],
|
|
36
|
-
border: [
|
|
37
|
-
"border",
|
|
38
|
-
"border-top",
|
|
39
|
-
"border-right",
|
|
40
|
-
"border-bottom",
|
|
41
|
-
"border-left"
|
|
42
|
-
],
|
|
43
|
-
filter: ["filter", "backdrop-filter"],
|
|
44
|
-
radius: ["border-radius"],
|
|
45
|
-
shadow: ["box-shadow"],
|
|
46
|
-
outline: ["outline", "outline-offset"],
|
|
47
|
-
preset: [
|
|
48
|
-
"font-size",
|
|
49
|
-
"line-height",
|
|
50
|
-
"letter-spacing",
|
|
51
|
-
"font-weight",
|
|
52
|
-
"font-style"
|
|
53
|
-
],
|
|
54
|
-
text: ["font-weight", "text-decoration-color"],
|
|
55
|
-
color: ["color"],
|
|
56
|
-
opacity: ["opacity"],
|
|
57
|
-
theme: [
|
|
58
|
-
"color",
|
|
59
|
-
"background-color",
|
|
60
|
-
"background-image",
|
|
61
|
-
"box-shadow",
|
|
62
|
-
"border",
|
|
63
|
-
"border-radius",
|
|
64
|
-
"outline",
|
|
65
|
-
"opacity",
|
|
66
|
-
SECOND_FILL_COLOR_PROPERTY
|
|
67
|
-
],
|
|
68
|
-
width: [
|
|
69
|
-
"max-width",
|
|
70
|
-
"min-width",
|
|
71
|
-
"width"
|
|
72
|
-
],
|
|
73
|
-
height: [
|
|
74
|
-
"max-height",
|
|
75
|
-
"min-height",
|
|
76
|
-
"height"
|
|
77
|
-
],
|
|
78
|
-
gap: ["gap", "margin"],
|
|
79
|
-
zIndex: ["z-index"],
|
|
80
|
-
inset: [
|
|
81
|
-
"inset",
|
|
82
|
-
"top",
|
|
83
|
-
"right",
|
|
84
|
-
"bottom",
|
|
85
|
-
"left"
|
|
86
|
-
]
|
|
87
|
-
};
|
|
88
|
-
const DEFAULT_EASING = "linear";
|
|
89
|
-
function getTiming(name) {
|
|
90
|
-
return `var(--${name}-transition, var(--transition))`;
|
|
91
|
-
}
|
|
92
|
-
function transitionStyle({ transition }) {
|
|
93
|
-
if (!transition) return;
|
|
94
|
-
const processed = parseStyle(transition);
|
|
95
|
-
const tokens = [];
|
|
96
|
-
processed.groups.forEach((g, idx) => {
|
|
97
|
-
tokens.push(...g.all);
|
|
98
|
-
if (idx < processed.groups.length - 1) tokens.push(",");
|
|
99
|
-
});
|
|
100
|
-
if (!tokens) return;
|
|
101
|
-
let tempTransition = [];
|
|
102
|
-
const transitions = [];
|
|
103
|
-
tokens.forEach((token) => {
|
|
104
|
-
if (token === ",") {
|
|
105
|
-
if (tempTransition) {
|
|
106
|
-
transitions.push(tempTransition);
|
|
107
|
-
tempTransition = [];
|
|
108
|
-
}
|
|
109
|
-
} else tempTransition.push(token);
|
|
110
|
-
});
|
|
111
|
-
if (tempTransition) transitions.push(tempTransition);
|
|
112
|
-
const map = {};
|
|
113
|
-
transitions.forEach((transition) => {
|
|
114
|
-
const name = transition[0];
|
|
115
|
-
const timing = transition[1];
|
|
116
|
-
const easing = transition[2];
|
|
117
|
-
const delay = transition[3];
|
|
118
|
-
(MAP[name] || [name]).forEach((style) => {
|
|
119
|
-
map[style] = [
|
|
120
|
-
name,
|
|
121
|
-
easing,
|
|
122
|
-
timing,
|
|
123
|
-
delay
|
|
124
|
-
];
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
return { transition: Object.entries(map).map(([style, [name, easing, timing, delay]]) => {
|
|
128
|
-
let value = `${style} ${timing || getTiming(name)}`;
|
|
129
|
-
if (easing || delay) value += ` ${easing || DEFAULT_EASING}`;
|
|
130
|
-
if (delay) value += ` ${delay}`;
|
|
131
|
-
return value;
|
|
132
|
-
}).join(", ") };
|
|
133
|
-
}
|
|
134
|
-
transitionStyle.__lookupStyles = ["transition"];
|
|
135
|
-
|
|
136
|
-
//#endregion
|
|
137
|
-
export { transitionStyle };
|
|
138
|
-
//# sourceMappingURL=transition.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transition.mjs","names":[],"sources":["../../src/styles/transition.ts"],"sourcesContent":["import { parseStyle } from '../utils/styles';\n\nconst SECOND_FILL_COLOR_PROPERTY = '--tasty-second-fill-color';\n\nconst MAP = {\n fade: ['mask', 'mask-composite'],\n translate: ['transform', 'translate'],\n rotate: ['transform', 'rotate'],\n scale: ['transform', 'scale'],\n fill: ['background-color', 'background-image', SECOND_FILL_COLOR_PROPERTY],\n image: [\n 'background-image',\n 'background-position',\n 'background-size',\n 'background-repeat',\n 'background-attachment',\n 'background-origin',\n 'background-clip',\n SECOND_FILL_COLOR_PROPERTY,\n ],\n background: [\n 'background-color',\n 'background-image',\n 'background-position',\n 'background-size',\n 'background-repeat',\n 'background-attachment',\n 'background-origin',\n 'background-clip',\n SECOND_FILL_COLOR_PROPERTY,\n ],\n border: [\n 'border',\n 'border-top',\n 'border-right',\n 'border-bottom',\n 'border-left',\n ],\n filter: ['filter', 'backdrop-filter'],\n radius: ['border-radius'],\n shadow: ['box-shadow'],\n outline: ['outline', 'outline-offset'],\n preset: [\n 'font-size',\n 'line-height',\n 'letter-spacing',\n 'font-weight',\n 'font-style',\n ],\n text: ['font-weight', 'text-decoration-color'],\n color: ['color'],\n opacity: ['opacity'],\n theme: [\n 'color',\n 'background-color',\n 'background-image',\n 'box-shadow',\n 'border',\n 'border-radius',\n 'outline',\n 'opacity',\n SECOND_FILL_COLOR_PROPERTY,\n ],\n width: ['max-width', 'min-width', 'width'],\n height: ['max-height', 'min-height', 'height'],\n gap: ['gap', 'margin'],\n zIndex: ['z-index'],\n inset: ['inset', 'top', 'right', 'bottom', 'left'],\n};\n\nexport const DEFAULT_TIMING = 'var(--transition)';\nconst DEFAULT_EASING = 'linear';\n\nfunction getTiming(name) {\n return `var(--${name}-transition, var(--transition))`;\n}\n\nexport function transitionStyle({ transition }) {\n if (!transition) return;\n\n const processed = parseStyle(transition);\n const tokens: string[] = [];\n processed.groups.forEach((g, idx) => {\n tokens.push(...g.all);\n if (idx < processed.groups.length - 1) tokens.push(',');\n });\n\n if (!tokens) return;\n\n let tempTransition: string[] = [];\n const transitions: string[][] = [];\n\n tokens.forEach((token) => {\n if (token === ',') {\n if (tempTransition) {\n transitions.push(tempTransition);\n tempTransition = [];\n }\n } else {\n tempTransition.push(token);\n }\n });\n\n if (tempTransition) {\n transitions.push(tempTransition);\n }\n\n const map: {\n name?: string;\n easing?: string;\n timing?: string;\n delay?: string;\n } = {};\n\n transitions.forEach((transition) => {\n const name = transition[0];\n const timing = transition[1];\n const easing = transition[2];\n const delay = transition[3];\n\n const styles = MAP[name] || [name];\n\n styles.forEach((style) => {\n map[style] = [name, easing, timing, delay];\n });\n });\n\n const result = Object.entries(map)\n .map(([style, [name, easing, timing, delay]]) => {\n let value = `${style} ${timing || getTiming(name)}`;\n if (easing || delay) {\n value += ` ${easing || DEFAULT_EASING}`;\n }\n if (delay) {\n value += ` ${delay}`;\n }\n return value;\n })\n .join(', ');\n\n return { transition: result };\n}\n\ntransitionStyle.__lookupStyles = ['transition'];\n"],"mappings":";;;AAEA,MAAM,6BAA6B;AAEnC,MAAM,MAAM;CACV,MAAM,CAAC,QAAQ,iBAAiB;CAChC,WAAW,CAAC,aAAa,YAAY;CACrC,QAAQ,CAAC,aAAa,SAAS;CAC/B,OAAO,CAAC,aAAa,QAAQ;CAC7B,MAAM;EAAC;EAAoB;EAAoB;EAA2B;CAC1E,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,YAAY;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,QAAQ;EACN;EACA;EACA;EACA;EACA;EACD;CACD,QAAQ,CAAC,UAAU,kBAAkB;CACrC,QAAQ,CAAC,gBAAgB;CACzB,QAAQ,CAAC,aAAa;CACtB,SAAS,CAAC,WAAW,iBAAiB;CACtC,QAAQ;EACN;EACA;EACA;EACA;EACA;EACD;CACD,MAAM,CAAC,eAAe,wBAAwB;CAC9C,OAAO,CAAC,QAAQ;CAChB,SAAS,CAAC,UAAU;CACpB,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,OAAO;EAAC;EAAa;EAAa;EAAQ;CAC1C,QAAQ;EAAC;EAAc;EAAc;EAAS;CAC9C,KAAK,CAAC,OAAO,SAAS;CACtB,QAAQ,CAAC,UAAU;CACnB,OAAO;EAAC;EAAS;EAAO;EAAS;EAAU;EAAO;CACnD;AAGD,MAAM,iBAAiB;AAEvB,SAAS,UAAU,MAAM;AACvB,QAAO,SAAS,KAAK;;AAGvB,SAAgB,gBAAgB,EAAE,cAAc;AAC9C,KAAI,CAAC,WAAY;CAEjB,MAAM,YAAY,WAAW,WAAW;CACxC,MAAM,SAAmB,EAAE;AAC3B,WAAU,OAAO,SAAS,GAAG,QAAQ;AACnC,SAAO,KAAK,GAAG,EAAE,IAAI;AACrB,MAAI,MAAM,UAAU,OAAO,SAAS,EAAG,QAAO,KAAK,IAAI;GACvD;AAEF,KAAI,CAAC,OAAQ;CAEb,IAAI,iBAA2B,EAAE;CACjC,MAAM,cAA0B,EAAE;AAElC,QAAO,SAAS,UAAU;AACxB,MAAI,UAAU,KACZ;OAAI,gBAAgB;AAClB,gBAAY,KAAK,eAAe;AAChC,qBAAiB,EAAE;;QAGrB,gBAAe,KAAK,MAAM;GAE5B;AAEF,KAAI,eACF,aAAY,KAAK,eAAe;CAGlC,MAAM,MAKF,EAAE;AAEN,aAAY,SAAS,eAAe;EAClC,MAAM,OAAO,WAAW;EACxB,MAAM,SAAS,WAAW;EAC1B,MAAM,SAAS,WAAW;EAC1B,MAAM,QAAQ,WAAW;AAIzB,GAFe,IAAI,SAAS,CAAC,KAAK,EAE3B,SAAS,UAAU;AACxB,OAAI,SAAS;IAAC;IAAM;IAAQ;IAAQ;IAAM;IAC1C;GACF;AAeF,QAAO,EAAE,YAbM,OAAO,QAAQ,IAAI,CAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,QAAQ,QAAQ,YAAY;EAC/C,IAAI,QAAQ,GAAG,MAAM,GAAG,UAAU,UAAU,KAAK;AACjD,MAAI,UAAU,MACZ,UAAS,IAAI,UAAU;AAEzB,MAAI,MACF,UAAS,IAAI;AAEf,SAAO;GACP,CACD,KAAK,KAAK,EAEgB;;AAG/B,gBAAgB,iBAAiB,CAAC,aAAa"}
|