@santi020k/lumen-core 0.4.0 → 1.1.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.
- package/dist/charts.d.ts +6 -1
- package/dist/charts.d.ts.map +1 -1
- package/dist/charts.js +91 -30
- package/dist/code.d.ts.map +1 -1
- package/dist/code.js +45 -34
- package/dist/components.d.ts +861 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +278 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +3 -3
- package/dist/figma.d.ts.map +1 -1
- package/dist/forms.d.ts +29 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +75 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +21 -7
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/props.d.ts +1 -2
- package/dist/props.d.ts.map +1 -1
- package/dist/props.js +1 -1
- package/dist/schedule.d.ts.map +1 -1
- package/dist/schedule.js +7 -7
- package/dist/theme-builder.d.ts.map +1 -1
- package/dist/theme-builder.js +23 -8
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +22 -7
- package/dist/tokens.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/props.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export type LumenClassValue = boolean | null | string | undefined;
|
|
2
2
|
export type LumenGlass = boolean | 'strong' | 'subtle';
|
|
3
|
-
export type LumenSurfaceAlias = 'default' | 'glass';
|
|
4
3
|
export interface LumenAstroPropsResult {
|
|
5
4
|
classList: LumenClassValue[];
|
|
6
5
|
passthrough: Record<string, unknown>;
|
|
7
6
|
}
|
|
8
7
|
export declare const resolveLumenAstroProps: (rest: Record<string, unknown>, classList: LumenClassValue[], classProp?: string, className?: string) => LumenAstroPropsResult;
|
|
9
|
-
export declare const resolveLumenGlass: (glass?: LumenGlass
|
|
8
|
+
export declare const resolveLumenGlass: (glass?: LumenGlass) => LumenGlass;
|
|
10
9
|
//# sourceMappingURL=props.d.ts.map
|
package/dist/props.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;AAEjE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtD,MAAM,
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;AAEjE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC;AAED,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,eAAe,EAAE,EAC5B,kBAAc,EACd,kBAAc,KACb,qBAGD,CAAA;AAEF,eAAO,MAAM,iBAAiB,GAC5B,QAAO,UAAkB,KACxB,UAAmB,CAAA"}
|
package/dist/props.js
CHANGED
|
@@ -2,4 +2,4 @@ export const resolveLumenAstroProps = (rest, classList, classProp = '', classNam
|
|
|
2
2
|
classList: [...classList, classProp, className],
|
|
3
3
|
passthrough: rest
|
|
4
4
|
});
|
|
5
|
-
export const resolveLumenGlass = (glass = false
|
|
5
|
+
export const resolveLumenGlass = (glass = false) => glass;
|
package/dist/schedule.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,kBAAkB,CAAA;IACrB,CAAC,EAAE,kBAAkB,CAAA;CACtB;AAED,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,OAAO,CAAA;AAErD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,uBAAuB,CAAA;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B,EAAE,2BAA2B;CAAG;AAEjH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,SAAS,MAAM,EAAE,EACxB,QAAQ,SAAS,kBAAkB,EAAE,EACrC,YAAW,SAAS,qBAAqB,EAAO,KAC/C,iBAAiB,
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"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"}
|
package/dist/schedule.js
CHANGED
|
@@ -7,14 +7,14 @@ export const createScheduleSlots = (dates, events, resources = []) => {
|
|
|
7
7
|
...(resource ? { resource } : {})
|
|
8
8
|
})));
|
|
9
9
|
};
|
|
10
|
-
export const moveScheduleEvent = (events, eventId, nextStart, nextEnd, resourceId) => events.map(event => event.id === eventId
|
|
11
|
-
|
|
10
|
+
export const moveScheduleEvent = (events, eventId, nextStart, nextEnd, resourceId) => events.map(event => event.id === eventId ?
|
|
11
|
+
{
|
|
12
12
|
...event,
|
|
13
13
|
end: nextEnd,
|
|
14
14
|
...(resourceId ? { resourceId } : {}),
|
|
15
15
|
start: nextStart
|
|
16
|
-
}
|
|
17
|
-
|
|
16
|
+
} :
|
|
17
|
+
event);
|
|
18
18
|
export const expandRecurringScheduleEvent = (event, count, intervalDays = 7) => Array.from({ length: count }, (_, index) => {
|
|
19
19
|
const start = new Date(event.start);
|
|
20
20
|
const end = new Date(event.end);
|
|
@@ -65,9 +65,9 @@ export const resizeScheduleEvent = (event, nextDateTime, options = {}) => {
|
|
|
65
65
|
start: new Date(nextStart).toISOString()
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
|
-
export const resizeScheduleEvents = (events, eventId, nextDateTime, options = {}) => events.map(event => event.id === eventId
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
export const resizeScheduleEvents = (events, eventId, nextDateTime, options = {}) => events.map(event => event.id === eventId ?
|
|
69
|
+
resizeScheduleEvent(event, nextDateTime, options) :
|
|
70
|
+
event);
|
|
71
71
|
const isScheduleEvent = (value) => {
|
|
72
72
|
if (!value || typeof value !== 'object')
|
|
73
73
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../src/theme-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../src/theme-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,6BAA6B,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEtE,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,CAAA;AAE1D,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEtD,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,qBAAqB,CAAA;IAC3B,MAAM,EAAE,uBAAuB,CAAA;IAC/B,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,GAAG,IAAI,KACpB,6BAIF,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,GAAG,IAAI,KACpB,qBAAsE,CAAA;AAEzE,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,GAAG,IAAI,KACpB,uBAAgE,CAAA;AAEnE,eAAO,MAAM,wBAAwB,GACnC,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,iBAAY,KACX,MAMF,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,IAcjE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,KACZ;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAiCnC,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,UAAS,wBAA6B,KACrC,uBA+CF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,QAAQ,gBAAgB,EACxB,QAAQ,uBAAuB,KAC9B,MAOF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,gBAAgB,EACxB,QAAQ,uBAAuB,EAC/B,QAAQ,6BAA6B,KACpC,MAeF,CAAA"}
|
package/dist/theme-builder.js
CHANGED
|
@@ -6,8 +6,8 @@ export const coerceThemeBuilderExportFormat = (value) => {
|
|
|
6
6
|
return value;
|
|
7
7
|
return 'css';
|
|
8
8
|
};
|
|
9
|
-
export const coerceThemeBuilderMode = (value) => value === 'manual' ? 'manual' : 'generated';
|
|
10
|
-
export const coerceThemeBuilderScheme = (value) => value === 'dark' ? 'dark' : 'light';
|
|
9
|
+
export const coerceThemeBuilderMode = (value) => (value === 'manual' ? 'manual' : 'generated');
|
|
10
|
+
export const coerceThemeBuilderScheme = (value) => (value === 'dark' ? 'dark' : 'light');
|
|
11
11
|
export const normalizeThemeBuilderHue = (value, fallback = 0) => {
|
|
12
12
|
const parsed = Number(value);
|
|
13
13
|
if (!Number.isFinite(parsed))
|
|
@@ -17,7 +17,12 @@ export const normalizeThemeBuilderHue = (value, fallback = 0) => {
|
|
|
17
17
|
export const normalizeThemeBuilderHex = (value) => {
|
|
18
18
|
const hex = value.trim().replace(/^#/, '');
|
|
19
19
|
if (/^[\da-f]{3}$/i.test(hex)) {
|
|
20
|
-
|
|
20
|
+
const expanded = [
|
|
21
|
+
hex.charAt(0),
|
|
22
|
+
hex.charAt(1),
|
|
23
|
+
hex.charAt(2)
|
|
24
|
+
].map(character => character.repeat(2)).join('');
|
|
25
|
+
return `#${expanded}`.toLowerCase();
|
|
21
26
|
}
|
|
22
27
|
return /^[\da-f]{6}$/i.test(hex) ? `#${hex.toLowerCase()}` : null;
|
|
23
28
|
};
|
|
@@ -57,10 +62,14 @@ export const createThemeBuilderTokens = (options = {}) => {
|
|
|
57
62
|
const accentHue = normalizeThemeBuilderHue(options.accentHue, normalizeThemeBuilderHue(hue + 150));
|
|
58
63
|
const mode = coerceThemeBuilderMode(options.mode);
|
|
59
64
|
const scheme = coerceThemeBuilderScheme(options.scheme);
|
|
60
|
-
const primary = options.primaryColor ?
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const
|
|
65
|
+
const primary = options.primaryColor ?
|
|
66
|
+
themeBuilderHexToHsl(options.primaryColor) :
|
|
67
|
+
null;
|
|
68
|
+
const secondary = options.secondaryColor ?
|
|
69
|
+
themeBuilderHexToHsl(options.secondaryColor) :
|
|
70
|
+
null;
|
|
71
|
+
const baseHue = mode === 'manual' ? (primary?.hue ?? hue) : hue;
|
|
72
|
+
const baseAccentHue = mode === 'manual' ? (secondary?.hue ?? accentHue) : accentHue;
|
|
64
73
|
const tokens = createThemeFromHue(baseHue, {
|
|
65
74
|
accentHue: baseAccentHue,
|
|
66
75
|
scheme
|
|
@@ -82,7 +91,13 @@ export const createThemeBuilderTokens = (options = {}) => {
|
|
|
82
91
|
tokens
|
|
83
92
|
};
|
|
84
93
|
};
|
|
85
|
-
export const exportThemeBuilderCss = (tokens, scheme) =>
|
|
94
|
+
export const exportThemeBuilderCss = (tokens, scheme) => {
|
|
95
|
+
const css = exportThemeCss(tokens);
|
|
96
|
+
const firstLineEnd = css.indexOf('\n');
|
|
97
|
+
if (firstLineEnd === -1)
|
|
98
|
+
return css;
|
|
99
|
+
return `${css.slice(0, firstLineEnd + 1)} color-scheme: ${scheme};\n${css.slice(firstLineEnd + 1)}`;
|
|
100
|
+
};
|
|
86
101
|
export const exportThemeBuilderValue = (tokens, scheme, format) => {
|
|
87
102
|
if (format === 'figma') {
|
|
88
103
|
return JSON.stringify(exportThemeFigmaVariables(tokens, {
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAErD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,4BAA4B,2LAgB/B,CAAA;AAEV,eAAO,MAAM,yBAAyB,oKAU5B,CAAA;AAEV,eAAO,MAAM,0BAA0B,+EAK7B,CAAA;AAEV,eAAO,MAAM,oBAAoB,wOAcvB,CAAA;AAEV,eAAO,MAAM,qBAAqB,wDAIxB,CAAA;AAEV,eAAO,MAAM,qBAAqB,2DAIxB,CAAA;AAEV,eAAO,MAAM,yBAAyB,sBAE5B,CAAA;AAEV,eAAO,MAAM,qBAAqB,mGAMxB,CAAA;AAEV,eAAO,MAAM,wBAAwB,2MAK3B,CAAA;AAEV,eAAO,MAAM,oBAAoB,oVAGvB,CAAA;AAEV,eAAO,MAAM,eAAe,wlBAIlB,CAAA;AAEV,MAAM,MAAM,2BAA2B,GAAG,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;AACrF,MAAM,MAAM,wBAAwB,GAAG,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAC/E,MAAM,MAAM,yBAAyB,GAAG,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAA;AACjF,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,oBAAoB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,wBAAwB,GAAG,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAC/E,MAAM,MAAM,oBAAoB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,uBAAuB,GAAG,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAA;AAC7E,MAAM,MAAM,mBAAmB,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAEhE,eAAO,MAAM,cAAc,GACzB,QAAQ,gBAAgB,EACxB,iBAAkB,KACjB,MAUF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,gBAY3C,CAAA;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/theme.js
CHANGED
|
@@ -102,6 +102,21 @@ export const parseThemeCss = (css) => {
|
|
|
102
102
|
return tokens;
|
|
103
103
|
};
|
|
104
104
|
const normalizeHue = (hue) => ((Math.round(hue) % 360) + 360) % 360;
|
|
105
|
+
const replaceTrailingIntegerPercentage = (value, replacement) => {
|
|
106
|
+
if (!value.endsWith('%'))
|
|
107
|
+
return value;
|
|
108
|
+
let digitStart = value.length - 2;
|
|
109
|
+
while (digitStart >= 0) {
|
|
110
|
+
const character = value[digitStart];
|
|
111
|
+
if (character === undefined || character < '0' || character > '9')
|
|
112
|
+
break;
|
|
113
|
+
digitStart -= 1;
|
|
114
|
+
}
|
|
115
|
+
const percentageStart = digitStart + 1;
|
|
116
|
+
if (percentageStart === value.length - 1)
|
|
117
|
+
return value;
|
|
118
|
+
return `${value.slice(0, percentageStart)}${replacement}%`;
|
|
119
|
+
};
|
|
105
120
|
const getHueFromToken = (value) => {
|
|
106
121
|
const hue = Number(value.trim().split(/\s+/)[0]);
|
|
107
122
|
return Number.isFinite(hue) ? normalizeHue(hue) : 221;
|
|
@@ -180,7 +195,7 @@ const createStructureTokens = (hue, scheme = 'light') => ({
|
|
|
180
195
|
export const createThemePalette = (brand, accent = brand) => ({
|
|
181
196
|
accent,
|
|
182
197
|
brand,
|
|
183
|
-
'brand-soft': brand
|
|
198
|
+
'brand-soft': replaceTrailingIntegerPercentage(brand, 96),
|
|
184
199
|
'brand-solid': brand,
|
|
185
200
|
canvas: '0 0% 100%',
|
|
186
201
|
danger: '0 84% 60%',
|
|
@@ -282,9 +297,9 @@ const hslToRgb = (value) => {
|
|
|
282
297
|
const getRelativeLuminance = ([r, g, b]) => {
|
|
283
298
|
const [red, green, blue] = [r, g, b].map(channel => {
|
|
284
299
|
const value = channel / 255;
|
|
285
|
-
return value <= 0.03928
|
|
286
|
-
|
|
287
|
-
|
|
300
|
+
return value <= 0.03928 ?
|
|
301
|
+
value / 12.92 :
|
|
302
|
+
((value + 0.055) / 1.055) ** 2.4;
|
|
288
303
|
});
|
|
289
304
|
return 0.2126 * (red ?? 0) + 0.7152 * (green ?? 0) + 0.0722 * (blue ?? 0);
|
|
290
305
|
};
|
|
@@ -312,9 +327,9 @@ export const suggestReadableInk = (background) => {
|
|
|
312
327
|
const lightForeground = '0 0% 100%';
|
|
313
328
|
const darkRatio = getContrastRatio(darkForeground, background);
|
|
314
329
|
const lightRatio = getContrastRatio(lightForeground, background);
|
|
315
|
-
return darkRatio >= lightRatio
|
|
316
|
-
|
|
317
|
-
|
|
330
|
+
return darkRatio >= lightRatio ?
|
|
331
|
+
{ background, foreground: darkForeground, ratio: darkRatio } :
|
|
332
|
+
{ background, foreground: lightForeground, ratio: lightRatio };
|
|
318
333
|
};
|
|
319
334
|
export const tuneThemeContrast = (tokens, foreground = 'ink', background = 'canvas') => {
|
|
320
335
|
const current = scoreThemeContrast(tokens, foreground, background);
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAgBd,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAiBb,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAcb,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,SAAS,EACpB,2DAA8D,CAAA;AAEhE,eAAO,MAAM,WAAW;;;;;;CAMd,CAAA;AAEV,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAgBd,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAiBb,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAcb,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,SAAS,EACpB,2DAA8D,CAAA;AAEhE,eAAO,MAAM,WAAW;;;;;;CAMd,CAAA;AAEV,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,WAAsC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@santi020k/lumen-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
95
95
|
"test": "vitest run --config ../../vitest.config.ts --project core",
|
|
96
96
|
"test:coverage": "vitest run --config ../../vitest.config.ts --project core --coverage",
|
|
97
|
-
"lint": "eslint . --no-warn-ignored",
|
|
98
|
-
"lint:fix": "eslint . --fix --no-warn-ignored",
|
|
97
|
+
"lint": "eslint . --no-warn-ignored --max-warnings=0",
|
|
98
|
+
"lint:fix": "eslint . --fix --no-warn-ignored --max-warnings=0",
|
|
99
99
|
"clean": "rm -rf dist coverage"
|
|
100
100
|
}
|
|
101
101
|
}
|