@arbor-css/classes 0.0.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.
- package/dist/_test.d.ts +278 -0
- package/dist/_test.d.ts.map +1 -0
- package/dist/_test.js +30 -0
- package/dist/_test.js.map +1 -0
- package/dist/_util.d.ts +2 -0
- package/dist/_util.d.ts.map +1 -0
- package/dist/_util.js +2 -0
- package/dist/_util.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/props.d.ts +2 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/props.js +2 -0
- package/dist/props.js.map +1 -0
- package/dist/rules/_test.d.ts +4 -0
- package/dist/rules/_test.d.ts.map +1 -0
- package/dist/rules/_test.js +60 -0
- package/dist/rules/_test.js.map +1 -0
- package/dist/rules/_util.d.ts +29 -0
- package/dist/rules/_util.d.ts.map +1 -0
- package/dist/rules/_util.js +79 -0
- package/dist/rules/_util.js.map +1 -0
- package/dist/rules/align.d.ts +5 -0
- package/dist/rules/align.d.ts.map +1 -0
- package/dist/rules/align.js +38 -0
- package/dist/rules/align.js.map +1 -0
- package/dist/rules/animations.d.ts +4 -0
- package/dist/rules/animations.d.ts.map +1 -0
- package/dist/rules/animations.js +135 -0
- package/dist/rules/animations.js.map +1 -0
- package/dist/rules/background.d.ts +2 -0
- package/dist/rules/background.d.ts.map +1 -0
- package/dist/rules/background.js +2 -0
- package/dist/rules/background.js.map +1 -0
- package/dist/rules/border.d.ts +4 -0
- package/dist/rules/border.d.ts.map +1 -0
- package/dist/rules/border.js +125 -0
- package/dist/rules/border.js.map +1 -0
- package/dist/rules/border.test.d.ts +2 -0
- package/dist/rules/border.test.d.ts.map +1 -0
- package/dist/rules/border.test.js +104 -0
- package/dist/rules/border.test.js.map +1 -0
- package/dist/rules/color.d.ts +4 -0
- package/dist/rules/color.d.ts.map +1 -0
- package/dist/rules/color.js +156 -0
- package/dist/rules/color.js.map +1 -0
- package/dist/rules/color.test.d.ts +2 -0
- package/dist/rules/color.test.d.ts.map +1 -0
- package/dist/rules/color.test.js +104 -0
- package/dist/rules/color.test.js.map +1 -0
- package/dist/rules/colors.d.ts +1 -0
- package/dist/rules/colors.d.ts.map +1 -0
- package/dist/rules/colors.js +2 -0
- package/dist/rules/colors.js.map +1 -0
- package/dist/rules/index.d.ts +4 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +15 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/shadow.d.ts +4 -0
- package/dist/rules/shadow.d.ts.map +1 -0
- package/dist/rules/shadow.js +51 -0
- package/dist/rules/shadow.js.map +1 -0
- package/dist/rules/spacing.d.ts +4 -0
- package/dist/rules/spacing.d.ts.map +1 -0
- package/dist/rules/spacing.js +27 -0
- package/dist/rules/spacing.js.map +1 -0
- package/dist/rules/spacing.test.d.ts +2 -0
- package/dist/rules/spacing.test.d.ts.map +1 -0
- package/dist/rules/spacing.test.js +44 -0
- package/dist/rules/spacing.test.js.map +1 -0
- package/dist/rules/typography.d.ts +4 -0
- package/dist/rules/typography.d.ts.map +1 -0
- package/dist/rules/typography.js +129 -0
- package/dist/rules/typography.js.map +1 -0
- package/dist/rules/util.d.ts +2 -0
- package/dist/rules/util.d.ts.map +1 -0
- package/dist/rules/util.js +2 -0
- package/dist/rules/util.js.map +1 -0
- package/dist/theme/index.d.ts +10 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +79 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/types.d.ts +11 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +2 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/util/alters.d.ts +7 -0
- package/dist/util/alters.d.ts.map +1 -0
- package/dist/util/alters.js +58 -0
- package/dist/util/alters.js.map +1 -0
- package/dist/util/color.d.ts +11 -0
- package/dist/util/color.d.ts.map +1 -0
- package/dist/util/color.js +25 -0
- package/dist/util/color.js.map +1 -0
- package/dist/util/concat.d.ts +3 -0
- package/dist/util/concat.d.ts.map +1 -0
- package/dist/util/concat.js +7 -0
- package/dist/util/concat.js.map +1 -0
- package/dist/util/control.d.ts +2 -0
- package/dist/util/control.d.ts.map +1 -0
- package/dist/util/control.js +2 -0
- package/dist/util/control.js.map +1 -0
- package/dist/util/h.d.ts +4 -0
- package/dist/util/h.d.ts.map +1 -0
- package/dist/util/h.js +6 -0
- package/dist/util/h.js.map +1 -0
- package/dist/util/handlers.d.ts +18 -0
- package/dist/util/handlers.d.ts.map +1 -0
- package/dist/util/handlers.js +253 -0
- package/dist/util/handlers.js.map +1 -0
- package/dist/util/mappings.d.ts +24 -0
- package/dist/util/mappings.d.ts.map +1 -0
- package/dist/util/mappings.js +37 -0
- package/dist/util/mappings.js.map +1 -0
- package/dist/util/matchers.d.ts +2 -0
- package/dist/util/matchers.d.ts.map +1 -0
- package/dist/util/matchers.js +6 -0
- package/dist/util/matchers.js.map +1 -0
- package/dist/util/regex.d.ts +7 -0
- package/dist/util/regex.d.ts.map +1 -0
- package/dist/util/regex.js +17 -0
- package/dist/util/regex.js.map +1 -0
- package/dist/util/tests.d.ts +11 -0
- package/dist/util/tests.d.ts.map +1 -0
- package/dist/util/tests.js +19 -0
- package/dist/util/tests.js.map +1 -0
- package/dist/util/themeOrLiteral.d.ts +15 -0
- package/dist/util/themeOrLiteral.d.ts.map +1 -0
- package/dist/util/themeOrLiteral.js +28 -0
- package/dist/util/themeOrLiteral.js.map +1 -0
- package/dist/variants/_test.d.ts +3 -0
- package/dist/variants/_test.d.ts.map +1 -0
- package/dist/variants/_test.js +52 -0
- package/dist/variants/_test.js.map +1 -0
- package/dist/variants/_utils.d.ts +7 -0
- package/dist/variants/_utils.d.ts.map +1 -0
- package/dist/variants/_utils.js +16 -0
- package/dist/variants/_utils.js.map +1 -0
- package/dist/variants/aria.d.ts +5 -0
- package/dist/variants/aria.d.ts.map +1 -0
- package/dist/variants/aria.js +58 -0
- package/dist/variants/aria.js.map +1 -0
- package/dist/variants/aria.test.d.ts +2 -0
- package/dist/variants/aria.test.d.ts.map +1 -0
- package/dist/variants/aria.test.js +70 -0
- package/dist/variants/aria.test.js.map +1 -0
- package/dist/variants/breakpoints.d.ts +4 -0
- package/dist/variants/breakpoints.d.ts.map +1 -0
- package/dist/variants/breakpoints.js +77 -0
- package/dist/variants/breakpoints.js.map +1 -0
- package/dist/variants/breakpoints.test.d.ts +2 -0
- package/dist/variants/breakpoints.test.d.ts.map +1 -0
- package/dist/variants/breakpoints.test.js +10 -0
- package/dist/variants/breakpoints.test.js.map +1 -0
- package/dist/variants/children.d.ts +4 -0
- package/dist/variants/children.d.ts.map +1 -0
- package/dist/variants/children.js +10 -0
- package/dist/variants/children.js.map +1 -0
- package/dist/variants/children.test.d.ts +2 -0
- package/dist/variants/children.test.d.ts.map +1 -0
- package/dist/variants/children.test.js +9 -0
- package/dist/variants/children.test.js.map +1 -0
- package/dist/variants/combinators.d.ts +5 -0
- package/dist/variants/combinators.d.ts.map +1 -0
- package/dist/variants/combinators.js +42 -0
- package/dist/variants/combinators.js.map +1 -0
- package/dist/variants/combinators.test.d.ts +2 -0
- package/dist/variants/combinators.test.d.ts.map +1 -0
- package/dist/variants/combinators.test.js +33 -0
- package/dist/variants/combinators.test.js.map +1 -0
- package/dist/variants/container.d.ts +4 -0
- package/dist/variants/container.d.ts.map +1 -0
- package/dist/variants/container.js +32 -0
- package/dist/variants/container.js.map +1 -0
- package/dist/variants/container.test.d.ts +2 -0
- package/dist/variants/container.test.d.ts.map +1 -0
- package/dist/variants/container.test.js +10 -0
- package/dist/variants/container.test.js.map +1 -0
- package/dist/variants/data.d.ts +5 -0
- package/dist/variants/data.d.ts.map +1 -0
- package/dist/variants/data.js +58 -0
- package/dist/variants/data.js.map +1 -0
- package/dist/variants/data.test.d.ts +2 -0
- package/dist/variants/data.test.d.ts.map +1 -0
- package/dist/variants/data.test.js +70 -0
- package/dist/variants/data.test.js.map +1 -0
- package/dist/variants/directions.d.ts +4 -0
- package/dist/variants/directions.d.ts.map +1 -0
- package/dist/variants/directions.js +10 -0
- package/dist/variants/directions.js.map +1 -0
- package/dist/variants/directions.test.d.ts +2 -0
- package/dist/variants/directions.test.d.ts.map +1 -0
- package/dist/variants/directions.test.js +9 -0
- package/dist/variants/directions.test.js.map +1 -0
- package/dist/variants/important.d.ts +4 -0
- package/dist/variants/important.d.ts.map +1 -0
- package/dist/variants/important.js +29 -0
- package/dist/variants/important.js.map +1 -0
- package/dist/variants/important.test.d.ts +2 -0
- package/dist/variants/important.test.d.ts.map +1 -0
- package/dist/variants/important.test.js +23 -0
- package/dist/variants/important.test.js.map +1 -0
- package/dist/variants/index.d.ts +2 -0
- package/dist/variants/index.d.ts.map +1 -0
- package/dist/variants/index.js +15 -0
- package/dist/variants/index.js.map +1 -0
- package/dist/variants/inert.d.ts +3 -0
- package/dist/variants/inert.d.ts.map +1 -0
- package/dist/variants/inert.js +6 -0
- package/dist/variants/inert.js.map +1 -0
- package/dist/variants/inert.test.d.ts +2 -0
- package/dist/variants/inert.test.d.ts.map +1 -0
- package/dist/variants/inert.test.js +31 -0
- package/dist/variants/inert.test.js.map +1 -0
- package/dist/variants/layer.d.ts +4 -0
- package/dist/variants/layer.d.ts.map +1 -0
- package/dist/variants/layer.js +22 -0
- package/dist/variants/layer.js.map +1 -0
- package/dist/variants/layer.test.d.ts +2 -0
- package/dist/variants/layer.test.d.ts.map +1 -0
- package/dist/variants/layer.test.js +9 -0
- package/dist/variants/layer.test.js.map +1 -0
- package/dist/variants/media.d.ts +11 -0
- package/dist/variants/media.d.ts.map +1 -0
- package/dist/variants/media.js +62 -0
- package/dist/variants/media.js.map +1 -0
- package/dist/variants/media.test.d.ts +2 -0
- package/dist/variants/media.test.d.ts.map +1 -0
- package/dist/variants/media.test.js +46 -0
- package/dist/variants/media.test.js.map +1 -0
- package/dist/variants/mode.d.ts +4 -0
- package/dist/variants/mode.d.ts.map +1 -0
- package/dist/variants/mode.js +21 -0
- package/dist/variants/mode.js.map +1 -0
- package/dist/variants/mode.test.d.ts +2 -0
- package/dist/variants/mode.test.d.ts.map +1 -0
- package/dist/variants/mode.test.js +9 -0
- package/dist/variants/mode.test.js.map +1 -0
- package/dist/variants/negative.d.ts +4 -0
- package/dist/variants/negative.d.ts.map +1 -0
- package/dist/variants/negative.js +81 -0
- package/dist/variants/negative.js.map +1 -0
- package/dist/variants/negative.test.d.ts +2 -0
- package/dist/variants/negative.test.d.ts.map +1 -0
- package/dist/variants/negative.test.js +13 -0
- package/dist/variants/negative.test.js.map +1 -0
- package/dist/variants/placeholder.d.ts +4 -0
- package/dist/variants/placeholder.d.ts.map +1 -0
- package/dist/variants/placeholder.js +23 -0
- package/dist/variants/placeholder.js.map +1 -0
- package/dist/variants/placeholder.test.d.ts +2 -0
- package/dist/variants/placeholder.test.d.ts.map +1 -0
- package/dist/variants/placeholder.test.js +11 -0
- package/dist/variants/placeholder.test.js.map +1 -0
- package/dist/variants/pseudo.d.ts +8 -0
- package/dist/variants/pseudo.d.ts.map +1 -0
- package/dist/variants/pseudo.js +28 -0
- package/dist/variants/pseudo.js.map +1 -0
- package/dist/variants/pseudo.test.d.ts +2 -0
- package/dist/variants/pseudo.test.d.ts.map +1 -0
- package/dist/variants/pseudo.test.js +52 -0
- package/dist/variants/pseudo.test.js.map +1 -0
- package/dist/variants/startingStyle.d.ts +4 -0
- package/dist/variants/startingStyle.d.ts.map +1 -0
- package/dist/variants/startingStyle.js +15 -0
- package/dist/variants/startingStyle.js.map +1 -0
- package/dist/variants/startingStyle.test.d.ts +2 -0
- package/dist/variants/startingStyle.test.d.ts.map +1 -0
- package/dist/variants/startingStyle.test.js +9 -0
- package/dist/variants/startingStyle.test.js.map +1 -0
- package/dist/variants/stuck.d.ts +4 -0
- package/dist/variants/stuck.d.ts.map +1 -0
- package/dist/variants/stuck.js +25 -0
- package/dist/variants/stuck.js.map +1 -0
- package/dist/variants/stuck.test.d.ts +2 -0
- package/dist/variants/stuck.test.d.ts.map +1 -0
- package/dist/variants/stuck.test.js +9 -0
- package/dist/variants/stuck.test.js.map +1 -0
- package/dist/variants/variantSupports.d.ts +4 -0
- package/dist/variants/variantSupports.d.ts.map +1 -0
- package/dist/variants/variantSupports.js +26 -0
- package/dist/variants/variantSupports.js.map +1 -0
- package/dist/variants/variantSupports.test.d.ts +2 -0
- package/dist/variants/variantSupports.test.d.ts.map +1 -0
- package/dist/variants/variantSupports.test.js +9 -0
- package/dist/variants/variantSupports.test.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { $systemProps } from '@arbor-css/core';
|
|
2
|
+
import { describe, it } from 'vitest';
|
|
3
|
+
import { testBaseMode } from '../_test.js';
|
|
4
|
+
import { colorAlters } from '../util/alters.js';
|
|
5
|
+
import { testRules } from './_test.js';
|
|
6
|
+
import { colorRules } from './color.js';
|
|
7
|
+
describe('fg color', () => {
|
|
8
|
+
it('matches colors from theme', async () => {
|
|
9
|
+
await testRules(colorRules, 'color-main-mid', {
|
|
10
|
+
color: $systemProps.fg.applied.var,
|
|
11
|
+
[$systemProps.fg.applied.name]: testBaseMode.schema.$tokens.colors.main.mid.var,
|
|
12
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
it('matches literal colors', async () => {
|
|
16
|
+
await testRules(colorRules, 'color-[red]', {
|
|
17
|
+
color: $systemProps.fg.applied.var,
|
|
18
|
+
[$systemProps.fg.applied.name]: 'red',
|
|
19
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('matches bracketed colors', async () => {
|
|
23
|
+
await testRules(colorRules, 'color-[rgba(255,0,0,0.5)]', {
|
|
24
|
+
color: $systemProps.fg.applied.var,
|
|
25
|
+
[$systemProps.fg.applied.name]: 'rgba(255,0,0,0.5)',
|
|
26
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
it('maps color with opacity to system props', async () => {
|
|
30
|
+
await testRules(colorRules, 'color-[red]/50', {
|
|
31
|
+
color: `rgb(from ${$systemProps.fg.applied.var} r g b / ${$systemProps.fg.opacity.var})`,
|
|
32
|
+
[$systemProps.fg.applied.name]: 'red',
|
|
33
|
+
[$systemProps.fg.opacity.name]: '0.5',
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
it('maps color without opacity to system props', async () => {
|
|
37
|
+
await testRules(colorRules, 'color-[red]', {
|
|
38
|
+
color: $systemProps.fg.applied.var,
|
|
39
|
+
[$systemProps.fg.applied.name]: 'red',
|
|
40
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it('handles inherit keyword', async () => {
|
|
44
|
+
await testRules(colorRules, 'color-inherit', {
|
|
45
|
+
color: $systemProps.fg.applied.var,
|
|
46
|
+
[$systemProps.fg.applied.name]: 'unset',
|
|
47
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
it('handles inherit with opacity', async () => {
|
|
51
|
+
await testRules(colorRules, 'color-inherit/50', {
|
|
52
|
+
color: `rgb(from ${$systemProps.fg.applied.var} r g b / ${$systemProps.fg.opacity.var})`,
|
|
53
|
+
[$systemProps.fg.applied.name]: 'unset',
|
|
54
|
+
[$systemProps.fg.opacity.name]: '0.5',
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
it('handles mode theme tokens without extraneous bits', async () => {
|
|
58
|
+
await testRules(colorRules, 'color-action-primary', {
|
|
59
|
+
color: $systemProps.fg.applied.var,
|
|
60
|
+
[$systemProps.fg.applied.name]: testBaseMode.schema.$tokens.action.primary.fg.var,
|
|
61
|
+
[$systemProps.fg.opacity.name]: '1',
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
it('doesnt just toss anything in there, it only matches theme tokens if no brackets', async () => {
|
|
65
|
+
await testRules(colorRules, 'color-foo', null);
|
|
66
|
+
});
|
|
67
|
+
describe('lighten and darken', () => {
|
|
68
|
+
it('lightens a color', async () => {
|
|
69
|
+
await testRules(colorRules, 'color-lighten-2', {
|
|
70
|
+
color: colorAlters.lighten($systemProps.fg.applied.varFallback('currentColor'), '2'),
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it('darkens a color', async () => {
|
|
74
|
+
await testRules(colorRules, 'color-darken-2', {
|
|
75
|
+
color: colorAlters.darken($systemProps.fg.applied.varFallback('currentColor'), '2'),
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('bg color', () => {
|
|
81
|
+
it('maps color to system props, includes contrast prop', async () => {
|
|
82
|
+
await testRules(colorRules, 'bg-[red]', {
|
|
83
|
+
'background-color': $systemProps.bg.applied.var,
|
|
84
|
+
[$systemProps.bg.applied.name]: 'red',
|
|
85
|
+
[$systemProps.bg.opacity.name]: '1',
|
|
86
|
+
[$systemProps.bg.contrast.name]: 'red',
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
it('handles nested mode tokens without suffixes', async () => {
|
|
90
|
+
await testRules(colorRules, 'bg-surface-primary', {
|
|
91
|
+
'background-color': $systemProps.bg.applied.var,
|
|
92
|
+
[$systemProps.bg.applied.name]: testBaseMode.schema.$tokens.surface.primary.bg.var,
|
|
93
|
+
[$systemProps.bg.opacity.name]: '1',
|
|
94
|
+
[$systemProps.bg.contrast.name]: testBaseMode.schema.$tokens.surface.primary.bg.var,
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
it('lightens a background color along with contrast prop', async () => {
|
|
98
|
+
await testRules(colorRules, 'bg-lighten-2', {
|
|
99
|
+
'background-color': colorAlters.lighten($systemProps.bg.applied.varFallback('currentColor'), '2'),
|
|
100
|
+
[$systemProps.bg.contrast.name]: colorAlters.lighten($systemProps.bg.applied.varFallback('currentColor'), '2'),
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=color.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.test.js","sourceRoot":"","sources":["../../src/rules/color.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/rules/colors.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/rules/colors.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO1C,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAO9B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { rules as baseRules } from '@unocss/preset-mini/rules';
|
|
2
|
+
import { borderRules } from './border.js';
|
|
3
|
+
import { colorRules } from './color.js';
|
|
4
|
+
import { shadowRules } from './shadow.js';
|
|
5
|
+
import { spacingRules } from './spacing.js';
|
|
6
|
+
import { typographyRules } from './typography.js';
|
|
7
|
+
export const rules = [
|
|
8
|
+
...baseRules,
|
|
9
|
+
...shadowRules,
|
|
10
|
+
...colorRules,
|
|
11
|
+
...spacingRules,
|
|
12
|
+
...borderRules,
|
|
13
|
+
...typographyRules,
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,KAAK,GAAkB;IACnC,GAAI,SAAiB;IACrB,GAAG,WAAW;IACd,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,WAAW;IACd,GAAG,eAAe;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/rules/shadow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,EAyDpC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { $systemProps } from '@arbor-css/core';
|
|
2
|
+
import { colorableShadows } from '@unocss/preset-mini/utils';
|
|
3
|
+
import { h } from '../util/h.js';
|
|
4
|
+
import { getFromTheme } from '../util/themeOrLiteral.js';
|
|
5
|
+
export const shadowRules = [
|
|
6
|
+
// shadow sizes
|
|
7
|
+
[
|
|
8
|
+
/^shadow(?:-(.+))?$/,
|
|
9
|
+
([, size], { theme }) => {
|
|
10
|
+
const asLiteral = h.bracket(size);
|
|
11
|
+
if (asLiteral) {
|
|
12
|
+
return {
|
|
13
|
+
'--🍂-shadow': colorableShadows(asLiteral, $systemProps.dynamic.shadowColor.name).join(','),
|
|
14
|
+
'box-shadow': 'var(--🍂-ring-offset-shadow), var(--🍂-ring-shadow), var(--🍂-shadow)',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const x = getFromTheme(size, theme, {
|
|
18
|
+
startFrom: 'shadow-x',
|
|
19
|
+
trySuffixes: ['x', 'offsetX', 'xOffset'],
|
|
20
|
+
});
|
|
21
|
+
const y = getFromTheme(size, theme, {
|
|
22
|
+
startFrom: 'shadow-y',
|
|
23
|
+
trySuffixes: ['y', 'offsetY', 'yOffset'],
|
|
24
|
+
});
|
|
25
|
+
const blur = getFromTheme(size, theme, {
|
|
26
|
+
startFrom: 'shadow-blur',
|
|
27
|
+
trySuffixes: ['blur'],
|
|
28
|
+
});
|
|
29
|
+
const spread = getFromTheme(size, theme, {
|
|
30
|
+
startFrom: 'shadow-spread',
|
|
31
|
+
trySuffixes: ['spread'],
|
|
32
|
+
});
|
|
33
|
+
const color = getFromTheme(size, theme, {
|
|
34
|
+
startFrom: 'shadow-color',
|
|
35
|
+
trySuffixes: ['color'],
|
|
36
|
+
});
|
|
37
|
+
if (!(x && y && blur && spread && color)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const shadowValue = colorableShadows(`var(--🍂-shadow-inset) ${x ?? '0'} ${y ?? '0'} ${blur} ${spread} ${color}`, $systemProps.dynamic.shadowColor.name).join(',');
|
|
41
|
+
return {
|
|
42
|
+
'--🍂-shadow': shadowValue,
|
|
43
|
+
'box-shadow': 'var(--🍂-ring-offset-shadow), var(--🍂-ring-shadow), var(--🍂-shadow)',
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
autocomplete: ['shadow-$shadows'],
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
];
|
|
51
|
+
//# sourceMappingURL=shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/rules/shadow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAkB;IACzC,eAAe;IACf;QACC,oBAAoB;QACpB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO;oBACN,aAAa,EAAE,gBAAgB,CAC9B,SAAS,EACT,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CACrC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACX,YAAY,EACX,uEAAuE;iBACxE,CAAC;YACH,CAAC;YAED,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;gBACnC,SAAS,EAAE,UAAU;gBACrB,WAAW,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;aACxC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;gBACnC,SAAS,EAAE,UAAU;gBACrB,WAAW,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;aACxC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;gBACtC,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,CAAC,MAAM,CAAC;aACrB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;gBACxC,SAAS,EAAE,eAAe;gBAC1B,WAAW,EAAE,CAAC,QAAQ,CAAC;aACvB,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;gBACvC,SAAS,EAAE,cAAc;gBACzB,WAAW,EAAE,CAAC,OAAO,CAAC;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO;YACR,CAAC;YAED,MAAM,WAAW,GAAG,gBAAgB,CACnC,0BAA0B,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,EAC3E,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CACrC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEZ,OAAO;gBACN,aAAa,EAAE,WAAW;gBAC1B,YAAY,EACX,uEAAuE;aACxE,CAAC;QACH,CAAC;QACD;YACC,YAAY,EAAE,CAAC,iBAAiB,CAAC;SACjC;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../src/rules/spacing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA2B1C,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,EAMrC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { dashConcat } from '../util/concat.js';
|
|
2
|
+
import { directionMapEntries } from '../util/mappings.js';
|
|
3
|
+
import { dirRegex } from '../util/matchers.js';
|
|
4
|
+
import { themeOrLiteral } from '../util/themeOrLiteral.js';
|
|
5
|
+
function makeSpacingRules(shorthand, cssPropGroup, themeKey) {
|
|
6
|
+
return directionMapEntries.map(([dirSuffix, cssProps]) => {
|
|
7
|
+
return [
|
|
8
|
+
new RegExp(`^${shorthand}${dirRegex(dirSuffix)}-(.+)$`),
|
|
9
|
+
([, size], { theme }) => {
|
|
10
|
+
const [value] = themeOrLiteral(size, theme, {
|
|
11
|
+
startFrom: themeKey,
|
|
12
|
+
});
|
|
13
|
+
if (!value)
|
|
14
|
+
return;
|
|
15
|
+
return Object.fromEntries(cssProps.map((prop) => [dashConcat(cssPropGroup, prop), value]));
|
|
16
|
+
},
|
|
17
|
+
];
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export const spacingRules = [
|
|
21
|
+
...makeSpacingRules('p', 'padding', 'spacing'),
|
|
22
|
+
...makeSpacingRules('m', 'margin', 'spacing'),
|
|
23
|
+
...makeSpacingRules('gap', 'gap', 'spacing'),
|
|
24
|
+
...makeSpacingRules('gap-row', 'row-gap', 'spacing'),
|
|
25
|
+
...makeSpacingRules('gap-col', 'column-gap', 'spacing'),
|
|
26
|
+
];
|
|
27
|
+
//# sourceMappingURL=spacing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.js","sourceRoot":"","sources":["../../src/rules/spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,SAAS,gBAAgB,CACxB,SAAiB,EACjB,YAAoB,EACpB,QAAqB;IAErB,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;QACxD,OAAO;YACN,IAAI,MAAM,CAAC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;YACvD,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACvB,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;oBAC3C,SAAS,EAAE,QAAQ;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,OAAO,MAAM,CAAC,WAAW,CACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAC/D,CAAC;YACH,CAAC;SACc,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAkB;IAC1C,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;IAC9C,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC7C,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;IAC5C,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACpD,GAAG,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC;CACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.test.d.ts","sourceRoot":"","sources":["../../src/rules/spacing.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { describe, it } from 'vitest';
|
|
2
|
+
import { testBaseMode } from '../_test.js';
|
|
3
|
+
import { testRules } from './_test.js';
|
|
4
|
+
import { spacingRules } from './spacing.js';
|
|
5
|
+
describe('padding', () => {
|
|
6
|
+
it('matches padding from theme', async () => {
|
|
7
|
+
await testRules(spacingRules, 'p-lg', {
|
|
8
|
+
padding: testBaseMode.schema.$tokens.spacing.lg.var,
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
it('matches literal padding values', async () => {
|
|
12
|
+
await testRules(spacingRules, 'p-[10px]', {
|
|
13
|
+
padding: '10px',
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe('gap', () => {
|
|
18
|
+
it('matches gap from theme', async () => {
|
|
19
|
+
await testRules(spacingRules, 'gap-lg', {
|
|
20
|
+
gap: testBaseMode.schema.$tokens.spacing.lg.var,
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
it('matches literal gap values', async () => {
|
|
24
|
+
await testRules(spacingRules, 'gap-[10px]', {
|
|
25
|
+
gap: '10px',
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
it('matches bracketed gap values', async () => {
|
|
29
|
+
await testRules(spacingRules, 'gap-[10px]', {
|
|
30
|
+
gap: '10px',
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
it('matches row-gap from theme', async () => {
|
|
34
|
+
await testRules(spacingRules, 'gap-row-lg', {
|
|
35
|
+
'row-gap': testBaseMode.schema.$tokens.spacing.lg.var,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it('matches col-gap from theme', async () => {
|
|
39
|
+
await testRules(spacingRules, 'gap-col-lg', {
|
|
40
|
+
'column-gap': testBaseMode.schema.$tokens.spacing.lg.var,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=spacing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spacing.test.js","sourceRoot":"","sources":["../../src/rules/spacing.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;YACrC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;SACnD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE;YACzC,OAAO,EAAE,MAAM;SACf,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE;YACvC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;SAC/C,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE;YAC3C,GAAG,EAAE,MAAM;SACX,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE;YAC3C,GAAG,EAAE,MAAM;SACX,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE;YAC3C,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;SACrD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE;YAC3C,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;SACxD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/rules/typography.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAmIxC,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { h } from '../util/h.js';
|
|
2
|
+
import { getFromTheme, themeOrLiteral } from '../util/themeOrLiteral.js';
|
|
3
|
+
export const typographyRules = [
|
|
4
|
+
// text
|
|
5
|
+
[
|
|
6
|
+
/^text-(.+)$/,
|
|
7
|
+
([, input], { theme }) => {
|
|
8
|
+
// capable of combining all typography tokens related to one keyword.
|
|
9
|
+
// if it's a bracketed value, treat it as font-size
|
|
10
|
+
const asLiteral = h.bracket(input);
|
|
11
|
+
if (asLiteral) {
|
|
12
|
+
return {
|
|
13
|
+
'font-size': asLiteral,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const size = getFromTheme(input, theme, {
|
|
17
|
+
startFrom: 'font-size',
|
|
18
|
+
trySuffixes: ['fontSize', 'size'],
|
|
19
|
+
});
|
|
20
|
+
const lineHeight = getFromTheme(input, theme, {
|
|
21
|
+
startFrom: 'line-height',
|
|
22
|
+
trySuffixes: ['lineHeight', 'leading'],
|
|
23
|
+
});
|
|
24
|
+
const letterSpacing = getFromTheme(input, theme, {
|
|
25
|
+
startFrom: 'letter-spacing',
|
|
26
|
+
trySuffixes: ['letterSpacing', 'tracking'],
|
|
27
|
+
});
|
|
28
|
+
const weight = getFromTheme(input, theme, {
|
|
29
|
+
startFrom: 'font-weight',
|
|
30
|
+
trySuffixes: ['fontWeight', 'weight'],
|
|
31
|
+
});
|
|
32
|
+
const fontFamily = getFromTheme(input, theme, {
|
|
33
|
+
startFrom: 'font-family',
|
|
34
|
+
trySuffixes: ['fontFamily', 'family'],
|
|
35
|
+
});
|
|
36
|
+
const result = {};
|
|
37
|
+
if (size)
|
|
38
|
+
result['font-size'] = size;
|
|
39
|
+
if (lineHeight)
|
|
40
|
+
result['line-height'] = lineHeight;
|
|
41
|
+
if (letterSpacing)
|
|
42
|
+
result['letter-spacing'] = letterSpacing;
|
|
43
|
+
if (weight)
|
|
44
|
+
result['font-weight'] = weight;
|
|
45
|
+
if (fontFamily)
|
|
46
|
+
result['font-family'] = fontFamily;
|
|
47
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
48
|
+
},
|
|
49
|
+
{ autocomplete: 'text-$fontSize' },
|
|
50
|
+
],
|
|
51
|
+
// text size
|
|
52
|
+
[
|
|
53
|
+
/^(?:text|font)-size-(.+)$/,
|
|
54
|
+
([, s], { theme }) => {
|
|
55
|
+
const [value] = themeOrLiteral(s, theme, {
|
|
56
|
+
startFrom: 'font-size',
|
|
57
|
+
trySuffixes: ['fontSize'],
|
|
58
|
+
});
|
|
59
|
+
if (value) {
|
|
60
|
+
return { 'font-size': value };
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{ autocomplete: 'text-size-$fontSize' },
|
|
64
|
+
],
|
|
65
|
+
// weights
|
|
66
|
+
[
|
|
67
|
+
/^(?:font|fw)-?([^-]+)$/,
|
|
68
|
+
([, s], { theme }) => {
|
|
69
|
+
const [value] = themeOrLiteral(s, theme, {
|
|
70
|
+
startFrom: 'font-weight',
|
|
71
|
+
trySuffixes: ['fontWeight'],
|
|
72
|
+
});
|
|
73
|
+
if (value) {
|
|
74
|
+
return { 'font-weight': value };
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
autocomplete: [
|
|
79
|
+
'(font|fw)-(100|200|300|400|500|600|700|800|900)',
|
|
80
|
+
'(font|fw)-$font-weight',
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
// leadings
|
|
85
|
+
[
|
|
86
|
+
/^(?:font-)?(?:leading|lh|line-height)-(.+)$/,
|
|
87
|
+
([, s], { theme }) => {
|
|
88
|
+
const [value] = themeOrLiteral(s, theme, {
|
|
89
|
+
startFrom: 'line-height',
|
|
90
|
+
trySuffixes: ['lineHeight'],
|
|
91
|
+
});
|
|
92
|
+
if (value) {
|
|
93
|
+
return { 'line-height': value };
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{ autocomplete: '(leading|lh|line-height)-$line-height' },
|
|
97
|
+
],
|
|
98
|
+
// tracking
|
|
99
|
+
[
|
|
100
|
+
/^(?:font-)?tracking-(.+)$/,
|
|
101
|
+
([, s], { theme }) => ({
|
|
102
|
+
'letter-spacing': theme['letter-spacing']?.[s] || h.bracket.cssvar.global.rem(s),
|
|
103
|
+
}),
|
|
104
|
+
{ autocomplete: 'tracking-$letter-spacing' },
|
|
105
|
+
],
|
|
106
|
+
// word-spacing
|
|
107
|
+
[
|
|
108
|
+
/^(?:font-)?word-spacing-(.+)$/,
|
|
109
|
+
([, s], { theme }) => ({
|
|
110
|
+
'word-spacing': theme.wordSpacing?.[s] || h.bracket.cssvar.global.rem(s),
|
|
111
|
+
}),
|
|
112
|
+
{ autocomplete: 'word-spacing-$wordSpacing' },
|
|
113
|
+
],
|
|
114
|
+
// family
|
|
115
|
+
[
|
|
116
|
+
/^font-(.+)$/,
|
|
117
|
+
([, d], { theme }) => {
|
|
118
|
+
const [value] = themeOrLiteral(d, theme, {
|
|
119
|
+
startFrom: 'font-family',
|
|
120
|
+
trySuffixes: ['fontFamily', 'family'],
|
|
121
|
+
});
|
|
122
|
+
if (value) {
|
|
123
|
+
return { 'font-family': value };
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{ autocomplete: 'font-$font-family' },
|
|
127
|
+
],
|
|
128
|
+
];
|
|
129
|
+
//# sourceMappingURL=typography.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/rules/typography.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/rules/util.ts"],"names":[],"mappings":"AAAA,wBACA,AADe,QAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/rules/util.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArborConfig } from '@arbor-css/core';
|
|
2
|
+
import { Theme } from './types.js';
|
|
3
|
+
export interface ThemeConfig {
|
|
4
|
+
breakpoints: Record<string, string>;
|
|
5
|
+
verticalBreakpoints: Record<string, string>;
|
|
6
|
+
containers: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export declare const defaultThemeConfig: ThemeConfig;
|
|
9
|
+
export declare function createTheme(arbor: ArborConfig<any, any>, breakpointConfig?: ThemeConfig): Theme;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAyCnC,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,kBAAkB,EAAE,WAShC,CAAC;AAEF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5B,gBAAgB,GAAE,WAAgC,GAsC7C,KAAK,CACV"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { isToken } from '@arbor-css/core';
|
|
2
|
+
import { toFlatKeys } from '@arbor-css/util';
|
|
3
|
+
const extraWords = [
|
|
4
|
+
'colors',
|
|
5
|
+
'color',
|
|
6
|
+
'typography',
|
|
7
|
+
'spacing',
|
|
8
|
+
'space',
|
|
9
|
+
'shadows',
|
|
10
|
+
'shadow',
|
|
11
|
+
'text',
|
|
12
|
+
'font',
|
|
13
|
+
'leading',
|
|
14
|
+
'weight',
|
|
15
|
+
'family',
|
|
16
|
+
'lineHeight',
|
|
17
|
+
'size',
|
|
18
|
+
'width',
|
|
19
|
+
'radius',
|
|
20
|
+
'borderWidth',
|
|
21
|
+
'borderRadius',
|
|
22
|
+
'x',
|
|
23
|
+
'y',
|
|
24
|
+
'offsetX',
|
|
25
|
+
'offsetY',
|
|
26
|
+
'blur',
|
|
27
|
+
'spread',
|
|
28
|
+
];
|
|
29
|
+
function removeExtraWords(key, extraWords) {
|
|
30
|
+
for (const word of extraWords) {
|
|
31
|
+
key = key.replaceAll(new RegExp(`-${word}-`, 'g'), '-');
|
|
32
|
+
key = key.replaceAll(new RegExp(`^${word}-`, 'g'), '');
|
|
33
|
+
key = key.replaceAll(new RegExp(`-${word}$`, 'g'), '');
|
|
34
|
+
}
|
|
35
|
+
key = key
|
|
36
|
+
.replaceAll(/^-+/g, '')
|
|
37
|
+
.replaceAll(/-+$/g, '')
|
|
38
|
+
.replaceAll(/-+/g, '-');
|
|
39
|
+
return key;
|
|
40
|
+
}
|
|
41
|
+
export const defaultThemeConfig = {
|
|
42
|
+
breakpoints: {
|
|
43
|
+
sm: '640px',
|
|
44
|
+
md: '768px',
|
|
45
|
+
lg: '1024px',
|
|
46
|
+
xl: '1280px',
|
|
47
|
+
},
|
|
48
|
+
verticalBreakpoints: {},
|
|
49
|
+
containers: {},
|
|
50
|
+
};
|
|
51
|
+
export function createTheme(arbor, breakpointConfig = defaultThemeConfig) {
|
|
52
|
+
const flatPrimitiveTokens = toFlatKeys(arbor.primitives.$tokens, isToken, { separator: '-' });
|
|
53
|
+
const flatModeTokens = toFlatKeys(arbor.modes.base.schema.$tokens, isToken, { separator: '-' });
|
|
54
|
+
// split into theme categories
|
|
55
|
+
const theme = {};
|
|
56
|
+
for (const rawKey in flatPrimitiveTokens) {
|
|
57
|
+
const token = flatPrimitiveTokens[rawKey];
|
|
58
|
+
const key = `_${removeExtraWords(rawKey, extraWords)}`;
|
|
59
|
+
const themeCategory = token.purpose;
|
|
60
|
+
if (!theme[themeCategory]) {
|
|
61
|
+
theme[themeCategory] = {};
|
|
62
|
+
}
|
|
63
|
+
theme[themeCategory][key] = token.var;
|
|
64
|
+
}
|
|
65
|
+
for (const rawKey in flatModeTokens) {
|
|
66
|
+
const token = flatModeTokens[rawKey];
|
|
67
|
+
const key = removeExtraWords(rawKey, extraWords);
|
|
68
|
+
const themeCategory = token.purpose;
|
|
69
|
+
if (!theme[themeCategory]) {
|
|
70
|
+
theme[themeCategory] = {};
|
|
71
|
+
}
|
|
72
|
+
theme[themeCategory][key] = token.var;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
...breakpointConfig,
|
|
76
|
+
...theme,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TokenPurpose } from '@arbor-css/core';
|
|
2
|
+
export type Theme = {
|
|
3
|
+
[Purpose in TokenPurpose]: Record<string, string>;
|
|
4
|
+
} & {
|
|
5
|
+
breakpoints: Record<string, string>;
|
|
6
|
+
verticalBreakpoints: Record<string, string>;
|
|
7
|
+
containers: Record<string, string>;
|
|
8
|
+
} & {
|
|
9
|
+
[K in string]: any;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,KAAK,GAAG;KAClB,OAAO,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CACjD,GAAG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,GAAG;KACF,CAAC,IAAI,MAAM,GAAG,GAAG;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function lighten(base: string, level: string): string;
|
|
2
|
+
export declare function darken(base: string, level: string): string;
|
|
3
|
+
export declare function desaturate(base: string, level: string): string;
|
|
4
|
+
export declare function saturate(base: string, level: string): string;
|
|
5
|
+
export declare const colorAlters: Record<string, (base: string, level: string) => string>;
|
|
6
|
+
export declare const colorAltersMatch = "(l|lighten|d|darken|s|saturate|ds|desaturate)";
|
|
7
|
+
//# sourceMappingURL=alters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alters.d.ts","sourceRoot":"","sources":["../../src/util/alters.ts"],"names":[],"mappings":"AAgBA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAYlD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAYjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAOrD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAOnD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAC/B,MAAM,EACN,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAUvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,kDAAkD,CAAC"}
|