@hiscovega/grisso 1.0.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.
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Configuración por defecto de Grisso.
3
+ * Equivale a grisso.config.scss.
4
+ */
5
+ const defaults = {
6
+ columns: 12,
7
+ breakpoints: {
8
+ tablet: "(min-width: 700px)",
9
+ desktop: "(min-width: 1024px)",
10
+ ultrawide: "(min-width: 1680px)",
11
+ },
12
+ spacing: {
13
+ auto: "auto",
14
+ zero: "0",
15
+ "0": "0",
16
+ "4xs": "var(--spc-4xs)",
17
+ "3xs": "var(--spc-3xs)",
18
+ "2xs": "var(--spc-2xs)",
19
+ xs: "var(--spc-xs)",
20
+ sm: "var(--spc-sm)",
21
+ md: "var(--spc-md)",
22
+ lg: "var(--spc-lg)",
23
+ xl: "var(--spc-xl)",
24
+ "2xl": "var(--spc-2xl)",
25
+ "3xl": "var(--spc-3xl)",
26
+ "4xl": "var(--spc-4xl)",
27
+ "5xl": "var(--spc-5xl)",
28
+ },
29
+ brandColors: {
30
+ "1": "var(--brand-1)",
31
+ "2": "var(--brand-2)",
32
+ "3": "var(--brand-3)",
33
+ },
34
+ foregroundColors: {
35
+ "1": "var(--text-1)",
36
+ "2": "var(--text-2)",
37
+ "3": "var(--text-3)",
38
+ "4": "var(--text-4)",
39
+ },
40
+ iconColors: {
41
+ "1": "var(--icon-1)",
42
+ "2": "var(--icon-2)",
43
+ "3": "var(--icon-3)",
44
+ "4": "var(--icon-4)",
45
+ disabled: "var(--icon-disabled)",
46
+ },
47
+ supportColors: {
48
+ success: "var(--success)",
49
+ error: "var(--error)",
50
+ warning: "var(--warning)",
51
+ },
52
+ backgroundColors: {
53
+ ui: "var(--bg-ui)",
54
+ "1": "var(--bg-1)",
55
+ "2": "var(--bg-2)",
56
+ "3": "var(--bg-3)",
57
+ "4": "var(--bg-4)",
58
+ "5": "var(--bg-5)",
59
+ disabled: "var(--bg-disabled)",
60
+ },
61
+ overlayColors: {
62
+ "1": "var(--overlay-1)",
63
+ "2": "var(--overlay-2)",
64
+ "3": "var(--overlay-3)",
65
+ "4": "var(--overlay-4)",
66
+ },
67
+ borderWidth: {
68
+ none: "var(--border-width-none)",
69
+ xs: "var(--border-width-xs)",
70
+ sm: "var(--border-width-sm)",
71
+ md: "var(--border-width-md)",
72
+ lg: "var(--border-width-lg)",
73
+ },
74
+ opacity: {
75
+ "0": "0",
76
+ "1": "var(--opacity-1)",
77
+ "2": "var(--opacity-2)",
78
+ "3": "var(--opacity-3)",
79
+ "4": "var(--opacity-4)",
80
+ "5": "var(--opacity-5)",
81
+ "6": "var(--opacity-6)",
82
+ },
83
+ shadows: {
84
+ sm: "var(--box-shadow-sm)",
85
+ md: "var(--box-shadow-md)",
86
+ lg: "var(--box-shadow-lg)",
87
+ xl: "var(--box-shadow-xl)",
88
+ },
89
+ borderColors: {
90
+ "1": "var(--border-1)",
91
+ "2": "var(--border-2)",
92
+ "3": "var(--border-3)",
93
+ "4": "var(--border-4)",
94
+ disabled: "var(--border-disabled)",
95
+ },
96
+ };
97
+ export default defaults;
@@ -0,0 +1,20 @@
1
+ import type { Breakpoints, TokenMap, Declarations } from "./types.js";
2
+ /**
3
+ * Generadores de clases CSS utility.
4
+ * Replican los mixins grisso_simple_class, grisso_complex_class de SCSS.
5
+ */
6
+ /**
7
+ * Genera una clase simple con variantes responsive.
8
+ * Equivalente al mixin grisso_simple_class.
9
+ */
10
+ export declare function simpleClass(className: string, property: string, value: string, breakpoints: Breakpoints): string;
11
+ /**
12
+ * Genera clases basadas en un mapa de tokens con variantes responsive.
13
+ * Equivalente al mixin grisso_complex_class.
14
+ */
15
+ export declare function complexClass(prefix: string, properties: string | string[], tokens: TokenMap, breakpoints: Breakpoints): string;
16
+ /**
17
+ * Genera una clase con declaraciones custom y variantes responsive.
18
+ * Para casos especiales: divide >*+*, truncate, smoothing, outline-none, etc.
19
+ */
20
+ export declare function customClass(className: string, declarations: Declarations, breakpoints: Breakpoints, selectorSuffix?: string): string;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Generadores de clases CSS utility.
3
+ * Replican los mixins grisso_simple_class, grisso_complex_class de SCSS.
4
+ */
5
+ /**
6
+ * Genera una clase simple con variantes responsive.
7
+ * Equivalente al mixin grisso_simple_class.
8
+ */
9
+ export function simpleClass(className, property, value, breakpoints) {
10
+ let css = `.${className} { ${property}: ${value}; }\n`;
11
+ for (const [bp, mq] of Object.entries(breakpoints)) {
12
+ css += `@media ${mq} { .${bp}-${className} { ${property}: ${value}; } }\n`;
13
+ }
14
+ return css;
15
+ }
16
+ /**
17
+ * Genera clases basadas en un mapa de tokens con variantes responsive.
18
+ * Equivalente al mixin grisso_complex_class.
19
+ */
20
+ export function complexClass(prefix, properties, tokens, breakpoints) {
21
+ const props = Array.isArray(properties) ? properties : [properties];
22
+ let css = "";
23
+ for (const [name, value] of Object.entries(tokens)) {
24
+ for (const prop of props) {
25
+ css += `.${prefix}${name} { ${prop}: ${value}; }\n`;
26
+ }
27
+ for (const [bp, mq] of Object.entries(breakpoints)) {
28
+ for (const prop of props) {
29
+ css += `@media ${mq} { .${bp}-${prefix}${name} { ${prop}: ${value}; } }\n`;
30
+ }
31
+ }
32
+ }
33
+ return css;
34
+ }
35
+ /**
36
+ * Genera una clase con declaraciones custom y variantes responsive.
37
+ * Para casos especiales: divide >*+*, truncate, smoothing, outline-none, etc.
38
+ */
39
+ export function customClass(className, declarations, breakpoints, selectorSuffix) {
40
+ const suffix = selectorSuffix || "";
41
+ const decls = Object.entries(declarations)
42
+ .map(([p, v]) => `${p}: ${v}`)
43
+ .join("; ");
44
+ let css = `.${className}${suffix} { ${decls}; }\n`;
45
+ for (const [bp, mq] of Object.entries(breakpoints)) {
46
+ css += `@media ${mq} { .${bp}-${className}${suffix} { ${decls}; } }\n`;
47
+ }
48
+ return css;
49
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { resolveConfig } from "./resolve-config.js";
2
+ /**
3
+ * Genera el CSS completo de Grisso.
4
+ *
5
+ * @param configPath - Ruta a grisso.config.mjs del consumidor
6
+ * @returns CSS raw (sin minificar, sin vendor prefixes)
7
+ */
8
+ export declare function generateCSS(configPath?: string): Promise<string>;
9
+ export { resolveConfig };
package/lib/index.js ADDED
@@ -0,0 +1,17 @@
1
+ import { resolveConfig } from "./resolve-config.js";
2
+ import partials from "./partials/index.js";
3
+ /**
4
+ * Genera el CSS completo de Grisso.
5
+ *
6
+ * @param configPath - Ruta a grisso.config.mjs del consumidor
7
+ * @returns CSS raw (sin minificar, sin vendor prefixes)
8
+ */
9
+ export async function generateCSS(configPath) {
10
+ const config = await resolveConfig(configPath);
11
+ let css = "";
12
+ for (const partial of partials) {
13
+ css += partial(config);
14
+ }
15
+ return css;
16
+ }
17
+ export { resolveConfig };
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function backgrounds(config: GrissoConfig): string;
@@ -0,0 +1,64 @@
1
+ import { complexClass } from "../generators.js";
2
+ export default function backgrounds(config) {
3
+ const { breakpoints, backgroundColors } = config;
4
+ let css = "";
5
+ // background-color
6
+ css += complexClass("bg-", "background-color", backgroundColors, breakpoints);
7
+ // background-attachment
8
+ const bgAttachment = {
9
+ fixed: "fixed",
10
+ local: "local",
11
+ scroll: "scroll",
12
+ };
13
+ css += complexClass("bg-", "background-attachment", bgAttachment, breakpoints);
14
+ // background-clip
15
+ const bgClip = {
16
+ border: "border-box",
17
+ padding: "padding-box",
18
+ content: "content-box",
19
+ text: "text",
20
+ };
21
+ css += complexClass("bg-clip-", "background-clip", bgClip, breakpoints);
22
+ // background-origin
23
+ const bgOrigin = {
24
+ border: "border-box",
25
+ padding: "padding-box",
26
+ content: "content-box",
27
+ };
28
+ css += complexClass("bg-origin-", "background-origin", bgOrigin, breakpoints);
29
+ // background-position
30
+ const bgPosition = {
31
+ bottom: "bottom",
32
+ center: "center",
33
+ left: "left",
34
+ "left-bottom": "left bottom",
35
+ "left-top": "left top",
36
+ right: "right",
37
+ "right-bottom": "right bottom",
38
+ "right-top": "right top",
39
+ top: "top",
40
+ };
41
+ css += complexClass("bg-", "background-position", bgPosition, breakpoints);
42
+ // background-repeat
43
+ const bgRepeat = {
44
+ repeat: "repeat",
45
+ "no-repeat": "no-repeat",
46
+ "repeat-x": "repeat-x",
47
+ "repeat-y": "repeat-y",
48
+ "repeat-round": "round",
49
+ "repeat-space": "space",
50
+ };
51
+ css += complexClass("bg-", "background-repeat", bgRepeat, breakpoints);
52
+ // background-size
53
+ const bgSize = {
54
+ auto: "auto",
55
+ cover: "cover",
56
+ contain: "contain",
57
+ inherit: "inherit",
58
+ initial: "initial",
59
+ revert: "revert",
60
+ unset: "unset",
61
+ };
62
+ css += complexClass("bg-", "background-size", bgSize, breakpoints);
63
+ return css;
64
+ }
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function borders(config: GrissoConfig): string;
@@ -0,0 +1,55 @@
1
+ import { complexClass, customClass } from "../generators.js";
2
+ export default function borders(config) {
3
+ const { breakpoints, borderWidth, borderColors } = config;
4
+ let css = "";
5
+ // Variables locales (equivale a borders/vars.scss)
6
+ const extendedColors = {
7
+ ...borderColors,
8
+ inherit: "inherit",
9
+ current: "currentColor",
10
+ transparent: "transparent",
11
+ };
12
+ const borderStyle = {
13
+ solid: "solid",
14
+ dashed: "dashed",
15
+ dotted: "dotted",
16
+ double: "double",
17
+ hidden: "hidden",
18
+ none: "none",
19
+ };
20
+ // border-width
21
+ css += complexClass("border-", "border-width", borderWidth, breakpoints);
22
+ // border-style
23
+ css += complexClass("border-", "border-style", borderStyle, breakpoints);
24
+ // divide-color
25
+ for (const [key, value] of Object.entries(extendedColors)) {
26
+ css += customClass(`divide-${key}`, { "border-color": value }, breakpoints, " > * + *");
27
+ }
28
+ // divide-width
29
+ for (const [key, value] of Object.entries(borderWidth)) {
30
+ css += customClass(`divide-x-${key}`, { "border-right-width": value, "border-left-width": value }, breakpoints, " > * + *");
31
+ css += customClass(`divide-y-${key}`, { "border-top-width": value, "border-bottom-width": value }, breakpoints, " > * + *");
32
+ }
33
+ css += customClass("divide-x", { "border-right-width": "0", "border-left-width": "1px" }, breakpoints, " > * + *");
34
+ css += customClass("divide-y", { "border-top-width": "1px", "border-bottom-width": "0" }, breakpoints, " > * + *");
35
+ // divide-style
36
+ for (const [key, value] of Object.entries(borderStyle)) {
37
+ css += customClass(`divide-${key}`, { "border-style": value }, breakpoints, " > * + *");
38
+ }
39
+ // outline-color
40
+ css += complexClass("outline-", "outline-color", extendedColors, breakpoints);
41
+ // outline-width
42
+ css += complexClass("outline-", "outline-width", borderWidth, breakpoints);
43
+ // outline-style
44
+ const outlineStyle = {
45
+ outline: "solid",
46
+ "outline-dashed": "dashed",
47
+ "outline-dotted": "dotted",
48
+ "outline-double": "double",
49
+ };
50
+ css += complexClass("", "outline-style", outlineStyle, breakpoints);
51
+ css += customClass("outline-none", { outline: "2px solid transparent", "outline-offset": "2px" }, breakpoints);
52
+ // outline-offset
53
+ css += complexClass("outline-offset-", "outline-offset", borderWidth, breakpoints);
54
+ return css;
55
+ }
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function effects(config: GrissoConfig): string;
@@ -0,0 +1,17 @@
1
+ import { complexClass } from "../generators.js";
2
+ export default function effects(config) {
3
+ const { breakpoints, opacity, shadows, overlayColors } = config;
4
+ let css = "";
5
+ // opacity
6
+ css += complexClass("opacity-", "opacity", opacity, breakpoints);
7
+ // box-shadow
8
+ const extendedShadows = {
9
+ ...shadows,
10
+ inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",
11
+ none: "0 0 #0000",
12
+ };
13
+ css += complexClass("shadow-", "box-shadow", extendedShadows, breakpoints);
14
+ // overlay (background-color)
15
+ css += complexClass("overlay-", "background-color", overlayColors, breakpoints);
16
+ return css;
17
+ }
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function flexAndGrid(config: GrissoConfig): string;
@@ -0,0 +1,195 @@
1
+ import { simpleClass, complexClass } from "../generators.js";
2
+ import { omit } from "../utils.js";
3
+ export default function flexAndGrid(config) {
4
+ const { columns, breakpoints, spacing } = config;
5
+ let css = "";
6
+ // flex-direction
7
+ const direction = {
8
+ row: "row",
9
+ "row-reverse": "row-reverse",
10
+ col: "column",
11
+ "col-reverse": "column-reverse",
12
+ };
13
+ css += complexClass("flex-", "flex-direction", direction, breakpoints);
14
+ // flex-wrap
15
+ const wrap = {
16
+ wrap: "wrap",
17
+ "wrap-reverse": "wrap-reverse",
18
+ nowrap: "nowrap",
19
+ };
20
+ css += complexClass("flex-", "flex-wrap", wrap, breakpoints);
21
+ // flex (shorthand)
22
+ const flex = {
23
+ "1": "1 1 0",
24
+ auto: "1 1 auto",
25
+ initial: "0 1 auto",
26
+ none: "none",
27
+ };
28
+ css += complexClass("flex-", "flex", flex, breakpoints);
29
+ // flex-grow
30
+ css += simpleClass("grow", "flex-grow", "1", breakpoints);
31
+ css += simpleClass("grow-0", "flex-grow", "0", breakpoints);
32
+ // flex-shrink
33
+ css += simpleClass("shrink", "flex-shrink", "1", breakpoints);
34
+ css += simpleClass("shrink-0", "flex-shrink", "0", breakpoints);
35
+ // order
36
+ for (let i = 1; i <= columns; i++) {
37
+ css += simpleClass(`order-${i}`, "order", String(i), breakpoints);
38
+ }
39
+ css += simpleClass("order-first", "order", "-9999", breakpoints);
40
+ css += simpleClass("order-last", "order", "9999", breakpoints);
41
+ css += simpleClass("order-none", "order", "0", breakpoints);
42
+ // justify-items
43
+ const justifyItems = {
44
+ start: "start",
45
+ end: "end",
46
+ center: "center",
47
+ stretch: "stretch",
48
+ };
49
+ css += complexClass("justify-items-", "justify-items", justifyItems, breakpoints);
50
+ // justify-content
51
+ const justifyContent = {
52
+ normal: "normal",
53
+ start: "flex-start",
54
+ end: "flex-end",
55
+ center: "center",
56
+ between: "space-between",
57
+ around: "space-around",
58
+ evenly: "space-evenly",
59
+ stretch: "stretch",
60
+ };
61
+ css += complexClass("justify-", "justify-content", justifyContent, breakpoints);
62
+ // align-items
63
+ const alignItems = {
64
+ start: "flex-start",
65
+ end: "flex-end",
66
+ center: "center",
67
+ baseline: "baseline",
68
+ stretch: "stretch",
69
+ };
70
+ css += complexClass("items-", "align-items", alignItems, breakpoints);
71
+ // align-content
72
+ const alignContent = {
73
+ normal: "normal",
74
+ center: "center",
75
+ start: "flex-start",
76
+ end: "flex-end",
77
+ between: "space-between",
78
+ around: "space-around",
79
+ evenly: "space-evenly",
80
+ baseline: "baseline",
81
+ stretch: "stretch",
82
+ };
83
+ css += complexClass("content-", "align-content", alignContent, breakpoints);
84
+ // align-self
85
+ const alignSelf = {
86
+ auto: "normal",
87
+ start: "flex-start",
88
+ end: "flex-end",
89
+ center: "center",
90
+ baseline: "baseline",
91
+ stretch: "stretch",
92
+ };
93
+ css += complexClass("self-", "align-self", alignSelf, breakpoints);
94
+ // justify-self
95
+ const justifySelf = {
96
+ auto: "auto",
97
+ start: "start",
98
+ end: "end",
99
+ center: "center",
100
+ stretch: "stretch",
101
+ };
102
+ css += complexClass("justify-self-", "justify-self", justifySelf, breakpoints);
103
+ // grid-template-columns
104
+ for (let i = 1; i <= columns; i++) {
105
+ css += simpleClass(`grid-cols-${i}`, "grid-template-columns", `repeat(${i}, minmax(0, 1fr))`, breakpoints);
106
+ }
107
+ css += simpleClass("grid-cols-none", "grid-template-columns", "none", breakpoints);
108
+ // grid-column start/end
109
+ css += simpleClass("col-auto", "grid-column", "auto", breakpoints);
110
+ for (let i = 1; i <= columns; i++) {
111
+ css += simpleClass(`col-span-${i}`, "grid-column", `span ${i} / span ${i}`, breakpoints);
112
+ css += simpleClass(`col-start-${i}`, "grid-column-start", String(i), breakpoints);
113
+ css += simpleClass(`col-end-${i}`, "grid-column-end", String(i), breakpoints);
114
+ }
115
+ css += simpleClass("col-end-13", "grid-column-end", "13", breakpoints);
116
+ css += simpleClass("col-span-full", "grid-column", "1 / -1", breakpoints);
117
+ css += simpleClass("col-start-auto", "grid-column-start", "auto", breakpoints);
118
+ css += simpleClass("col-end-auto", "grid-column-end", "auto", breakpoints);
119
+ // grid-template-rows
120
+ for (let i = 1; i <= columns; i++) {
121
+ css += simpleClass(`grid-rows-${i}`, "grid-template-rows", `repeat(${i}, minmax(0, 1fr))`, breakpoints);
122
+ }
123
+ css += simpleClass("grid-rows-none", "grid-template-rows", "none", breakpoints);
124
+ // grid-row start/end
125
+ css += simpleClass("row-auto", "grid-row", "auto", breakpoints);
126
+ for (let i = 1; i <= columns; i++) {
127
+ css += simpleClass(`row-span-${i}`, "grid-row", `span ${i} / span ${i}`, breakpoints);
128
+ css += simpleClass(`row-start-${i}`, "grid-row-start", String(i), breakpoints);
129
+ css += simpleClass(`row-end-${i}`, "grid-row-end", String(i), breakpoints);
130
+ }
131
+ css += simpleClass("row-span-full", "grid-row", "1 / -1", breakpoints);
132
+ css += simpleClass("row-start-auto", "grid-row-start", "auto", breakpoints);
133
+ css += simpleClass("row-end-auto", "grid-row-end", "auto", breakpoints);
134
+ // grid-auto-flow
135
+ const autoFlow = {
136
+ row: "row",
137
+ col: "column",
138
+ dense: "dense",
139
+ "row-dense": "row dense",
140
+ "col-dense": "column dense",
141
+ };
142
+ css += complexClass("grid-flow-", "grid-auto-flow", autoFlow, breakpoints);
143
+ // grid-auto-columns
144
+ const autoColumns = {
145
+ auto: "auto",
146
+ min: "min-content",
147
+ max: "max-content",
148
+ fr: "minmax(0, 1fr)",
149
+ };
150
+ css += complexClass("auto-cols-", "grid-auto-columns", autoColumns, breakpoints);
151
+ // grid-auto-rows
152
+ const autoRows = {
153
+ auto: "auto",
154
+ min: "min-content",
155
+ max: "max-content",
156
+ fr: "minmax(0, 1fr)",
157
+ };
158
+ css += complexClass("auto-rows-", "grid-auto-rows", autoRows, breakpoints);
159
+ // gap
160
+ const gap = omit(spacing, "auto");
161
+ css += complexClass("gap-", "gap", gap, breakpoints);
162
+ css += complexClass("gap-x-", "column-gap", gap, breakpoints);
163
+ css += complexClass("gap-y-", "row-gap", gap, breakpoints);
164
+ // place-content
165
+ const placeContent = {
166
+ center: "center",
167
+ start: "start",
168
+ end: "end",
169
+ between: "space-between",
170
+ around: "space-around",
171
+ evenly: "space-evenly",
172
+ baseline: "baseline",
173
+ stretch: "stretch",
174
+ };
175
+ css += complexClass("place-content-", "place-content", placeContent, breakpoints);
176
+ // place-items
177
+ const placeItems = {
178
+ start: "start",
179
+ end: "end",
180
+ center: "center",
181
+ baseline: "baseline",
182
+ stretch: "stretch",
183
+ };
184
+ css += complexClass("place-items-", "place-items", placeItems, breakpoints);
185
+ // place-self
186
+ const placeSelf = {
187
+ auto: "auto",
188
+ start: "start",
189
+ end: "end",
190
+ center: "center",
191
+ stretch: "stretch",
192
+ };
193
+ css += complexClass("place-self-", "place-self", placeSelf, breakpoints);
194
+ return css;
195
+ }
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function icons(config: GrissoConfig): string;
@@ -0,0 +1,5 @@
1
+ import { complexClass } from "../generators.js";
2
+ export default function icons(config) {
3
+ const { breakpoints, iconColors } = config;
4
+ return complexClass("icon-", "color", iconColors, breakpoints);
5
+ }
@@ -0,0 +1,7 @@
1
+ import type { PartialFn } from "../types.js";
2
+ /**
3
+ * Registry de partials en el orden de importación de grisso.scss.
4
+ * El orden determina la cascada CSS.
5
+ */
6
+ declare const partials: PartialFn[];
7
+ export default partials;
@@ -0,0 +1,25 @@
1
+ import layout from "./layout.js";
2
+ import flexAndGrid from "./flex-and-grid.js";
3
+ import spacingPartial from "./spacing.js";
4
+ import sizing from "./sizing.js";
5
+ import backgrounds from "./backgrounds.js";
6
+ import borders from "./borders.js";
7
+ import typography from "./typography.js";
8
+ import effects from "./effects.js";
9
+ import icons from "./icons.js";
10
+ /**
11
+ * Registry de partials en el orden de importación de grisso.scss.
12
+ * El orden determina la cascada CSS.
13
+ */
14
+ const partials = [
15
+ layout,
16
+ flexAndGrid,
17
+ spacingPartial,
18
+ sizing,
19
+ backgrounds,
20
+ borders,
21
+ typography,
22
+ effects,
23
+ icons,
24
+ ];
25
+ export default partials;
@@ -0,0 +1,2 @@
1
+ import type { GrissoConfig } from "../types.js";
2
+ export default function layout(config: GrissoConfig): string;