@nordcraft/core 2.0.11 → 2.0.12
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/styling/className.d.ts +2 -1
- package/dist/styling/className.js +25 -0
- package/dist/styling/className.js.map +1 -1
- package/dist/styling/style.css.js +4 -11
- package/dist/styling/style.css.js.map +1 -1
- package/package.json +1 -1
- package/src/styling/className.ts +50 -1
- package/src/styling/style.css.ts +9 -13
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { NodeStyleModel } from '../component/component.types';
|
|
1
|
+
import type { ComponentNodeModel, ElementNodeModel, NodeStyleModel } from '../component/component.types';
|
|
2
2
|
import type { Nullable } from '../types';
|
|
3
3
|
import type { StyleVariant } from './variantSelector';
|
|
4
4
|
export declare const getClassName: (object: [Nullable<NodeStyleModel>, Nullable<StyleVariant[]>]) => string;
|
|
5
|
+
export declare const getStaticStyleAndVariants: (node: ComponentNodeModel | ElementNodeModel) => [Nullable<NodeStyleModel>, Nullable<StyleVariant[]>];
|
|
5
6
|
export declare const toValidClassName: (input: string, escapeSpecialCharacters?: boolean) => string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { appendUnit } from './customProperty';
|
|
1
2
|
import { generateAlphabeticName, hash } from './hash';
|
|
2
3
|
// Classnames are reused a lot, and JS hashing is expensive, so there is benefit in caching them in a native hashmap.
|
|
3
4
|
const CLASSNAME_LOOKUP = new Map();
|
|
@@ -13,6 +14,30 @@ export const getClassName = (object) => {
|
|
|
13
14
|
CLASSNAME_LOOKUP.set(stringified, className);
|
|
14
15
|
return className;
|
|
15
16
|
};
|
|
17
|
+
const getStaticCustomPropertyStyles = (customProperties) => Object.fromEntries(Object.entries(customProperties ?? {})
|
|
18
|
+
.filter(([, value]) => value.formula?.type === 'value')
|
|
19
|
+
.map(([key, value]) => [
|
|
20
|
+
key,
|
|
21
|
+
appendUnit(value.formula?.type === 'value' ? value.formula.value : undefined, value.unit),
|
|
22
|
+
]));
|
|
23
|
+
const mergeStaticStyle = (style, customProperties) => {
|
|
24
|
+
const staticStyles = getStaticCustomPropertyStyles(customProperties);
|
|
25
|
+
const merged = { ...staticStyles, ...style };
|
|
26
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
27
|
+
};
|
|
28
|
+
export const getStaticStyleAndVariants = (node) => {
|
|
29
|
+
const variants = node.variants ??
|
|
30
|
+
node.style?.variants;
|
|
31
|
+
const staticStyle = mergeStaticStyle(node.style, node.customProperties ?? {});
|
|
32
|
+
const mappedVariants = variants?.map(({ customProperties, ...rest }) => ({
|
|
33
|
+
...rest,
|
|
34
|
+
style: mergeStaticStyle(rest.style, customProperties ?? {}),
|
|
35
|
+
}));
|
|
36
|
+
return [
|
|
37
|
+
staticStyle,
|
|
38
|
+
mappedVariants && mappedVariants.length > 0 ? mappedVariants : undefined,
|
|
39
|
+
];
|
|
40
|
+
};
|
|
16
41
|
export const toValidClassName = (input, escapeSpecialCharacters = false) => {
|
|
17
42
|
// Replace invalid characters with hyphens
|
|
18
43
|
let className = input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"className.js","sourceRoot":"","sources":["../../src/styling/className.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"className.js","sourceRoot":"","sources":["../../src/styling/className.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { omitKeys } from '../utils/collections';
|
|
2
2
|
import { isDefined } from '../utils/util';
|
|
3
|
-
import { getClassName, toValidClassName } from './className';
|
|
3
|
+
import { getClassName, getStaticStyleAndVariants, toValidClassName, } from './className';
|
|
4
4
|
import { getThemeCss } from './theme';
|
|
5
5
|
import { variantSelector } from './variantSelector';
|
|
6
6
|
const LEGACY_BREAKPOINTS = {
|
|
@@ -74,15 +74,8 @@ export const styleToCss = (style) => {
|
|
|
74
74
|
};
|
|
75
75
|
export const getNodeStyles = (node, classHash, animationHashes = new Set()) => {
|
|
76
76
|
try {
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
'breakpoints',
|
|
80
|
-
'shadows',
|
|
81
|
-
]);
|
|
82
|
-
const styleVariants = node.variants ??
|
|
83
|
-
// Support for old style variants stored inside style object
|
|
84
|
-
// Once we have better versioning options, this should be removed
|
|
85
|
-
node.style?.variants;
|
|
77
|
+
const [_style, styleVariants] = getStaticStyleAndVariants(node);
|
|
78
|
+
const style = omitKeys(_style ?? {}, ['variants', 'breakpoints', 'shadows']);
|
|
86
79
|
const renderVariant = (selector, style, options) => {
|
|
87
80
|
const scrollbarStyles = Object.entries(style).filter(([key]) => key === 'scrollbar-width');
|
|
88
81
|
// If selectorCss is empty, we don't need to render the selector
|
|
@@ -228,7 +221,7 @@ export const createStylesheet = (root, components, themes, options
|
|
|
228
221
|
if (node.type !== 'element') {
|
|
229
222
|
return;
|
|
230
223
|
}
|
|
231
|
-
const classHash = getClassName(
|
|
224
|
+
const classHash = getClassName(getStaticStyleAndVariants(node));
|
|
232
225
|
if (hashes.has(classHash)) {
|
|
233
226
|
return '';
|
|
234
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../src/styling/style.css.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../src/styling/style.css.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/styling/className.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
ComponentNodeModel,
|
|
3
|
+
CustomProperty,
|
|
4
|
+
ElementNodeModel,
|
|
5
|
+
NodeStyleModel,
|
|
6
|
+
} from '../component/component.types'
|
|
2
7
|
import type { Nullable } from '../types'
|
|
8
|
+
import { appendUnit } from './customProperty'
|
|
3
9
|
import { generateAlphabeticName, hash } from './hash'
|
|
4
10
|
import type { StyleVariant } from './variantSelector'
|
|
5
11
|
|
|
@@ -25,6 +31,49 @@ export const getClassName = (
|
|
|
25
31
|
return className
|
|
26
32
|
}
|
|
27
33
|
|
|
34
|
+
const getStaticCustomPropertyStyles = (
|
|
35
|
+
customProperties: Record<`--${string}`, CustomProperty> | undefined,
|
|
36
|
+
) =>
|
|
37
|
+
Object.fromEntries(
|
|
38
|
+
Object.entries(customProperties ?? {})
|
|
39
|
+
.filter(([, value]) => value.formula?.type === 'value')
|
|
40
|
+
.map(([key, value]) => [
|
|
41
|
+
key,
|
|
42
|
+
appendUnit(
|
|
43
|
+
value.formula?.type === 'value' ? value.formula.value : undefined,
|
|
44
|
+
value.unit,
|
|
45
|
+
),
|
|
46
|
+
]),
|
|
47
|
+
)
|
|
48
|
+
const mergeStaticStyle = (
|
|
49
|
+
style: NodeStyleModel | undefined | null,
|
|
50
|
+
customProperties: Record<`--${string}`, CustomProperty> | undefined,
|
|
51
|
+
): Nullable<NodeStyleModel> => {
|
|
52
|
+
const staticStyles = getStaticCustomPropertyStyles(customProperties)
|
|
53
|
+
const merged = { ...staticStyles, ...style }
|
|
54
|
+
return Object.keys(merged).length > 0 ? merged : undefined
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const getStaticStyleAndVariants = (
|
|
58
|
+
node: ElementNodeModel | ComponentNodeModel,
|
|
59
|
+
) => {
|
|
60
|
+
const variants =
|
|
61
|
+
node.variants ??
|
|
62
|
+
(node.style?.variants as unknown as StyleVariant[] | undefined)
|
|
63
|
+
|
|
64
|
+
const staticStyle = mergeStaticStyle(node.style, node.customProperties ?? {})
|
|
65
|
+
|
|
66
|
+
const mappedVariants = variants?.map(({ customProperties, ...rest }) => ({
|
|
67
|
+
...rest,
|
|
68
|
+
style: mergeStaticStyle(rest.style, customProperties ?? {}),
|
|
69
|
+
}))
|
|
70
|
+
|
|
71
|
+
return [
|
|
72
|
+
staticStyle,
|
|
73
|
+
mappedVariants && mappedVariants.length > 0 ? mappedVariants : undefined,
|
|
74
|
+
] as [Nullable<NodeStyleModel>, Nullable<StyleVariant[]>]
|
|
75
|
+
}
|
|
76
|
+
|
|
28
77
|
export const toValidClassName = (
|
|
29
78
|
input: string,
|
|
30
79
|
escapeSpecialCharacters = false,
|
package/src/styling/style.css.ts
CHANGED
|
@@ -8,10 +8,14 @@ import type {
|
|
|
8
8
|
import type { Nullable } from '../types'
|
|
9
9
|
import { omitKeys } from '../utils/collections'
|
|
10
10
|
import { isDefined } from '../utils/util'
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
getClassName,
|
|
13
|
+
getStaticStyleAndVariants,
|
|
14
|
+
toValidClassName,
|
|
15
|
+
} from './className'
|
|
12
16
|
import type { OldTheme, Theme, ThemeOptions } from './theme'
|
|
13
17
|
import { getThemeCss } from './theme'
|
|
14
|
-
import { variantSelector
|
|
18
|
+
import { variantSelector } from './variantSelector'
|
|
15
19
|
|
|
16
20
|
const LEGACY_BREAKPOINTS = {
|
|
17
21
|
large: 1440,
|
|
@@ -93,16 +97,8 @@ export const getNodeStyles = (
|
|
|
93
97
|
animationHashes: Set<string> = new Set(),
|
|
94
98
|
) => {
|
|
95
99
|
try {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
'breakpoints',
|
|
99
|
-
'shadows',
|
|
100
|
-
])
|
|
101
|
-
const styleVariants =
|
|
102
|
-
node.variants ??
|
|
103
|
-
// Support for old style variants stored inside style object
|
|
104
|
-
// Once we have better versioning options, this should be removed
|
|
105
|
-
(node.style?.variants as any as StyleVariant[])
|
|
100
|
+
const [_style, styleVariants] = getStaticStyleAndVariants(node)
|
|
101
|
+
const style = omitKeys(_style ?? {}, ['variants', 'breakpoints', 'shadows'])
|
|
106
102
|
const renderVariant = (
|
|
107
103
|
selector: string,
|
|
108
104
|
style: NodeStyleModel,
|
|
@@ -294,7 +290,7 @@ export const createStylesheet = (
|
|
|
294
290
|
if (node.type !== 'element') {
|
|
295
291
|
return
|
|
296
292
|
}
|
|
297
|
-
const classHash = getClassName(
|
|
293
|
+
const classHash = getClassName(getStaticStyleAndVariants(node))
|
|
298
294
|
if (hashes.has(classHash)) {
|
|
299
295
|
return ''
|
|
300
296
|
}
|