@fluentui-react-native/use-tokens 0.6.3 → 0.6.4
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/CHANGELOG.json +36 -1
- package/CHANGELOG.md +10 -2
- package/eslint.config.js +3 -0
- package/lib/applyPropsToTokens.js +4 -13
- package/lib/applyPropsToTokens.js.map +1 -1
- package/lib/applyPropsToTokens.test.js +11 -12
- package/lib/applyPropsToTokens.test.js.map +1 -1
- package/lib/applyTokenLayers.js +6 -6
- package/lib/applyTokenLayers.js.map +1 -1
- package/lib/applyTokenLayers.test.js +15 -16
- package/lib/applyTokenLayers.test.js.map +1 -1
- package/lib/buildUseTokens.js +7 -16
- package/lib/buildUseTokens.js.map +1 -1
- package/lib/buildUseTokens.test.js +24 -25
- package/lib/buildUseTokens.test.js.map +1 -1
- package/lib/customizable.js +3 -7
- package/lib/customizable.js.map +1 -1
- package/lib/patchTokens.js +4 -13
- package/lib/patchTokens.js.map +1 -1
- package/lib/patchTokens.test.js +19 -19
- package/lib/patchTokens.test.js.map +1 -1
- package/lib/useTokens.samples.test.js +33 -34
- package/lib/useTokens.samples.test.js.map +1 -1
- package/lib-commonjs/applyPropsToTokens.js +4 -13
- package/lib-commonjs/applyPropsToTokens.js.map +1 -1
- package/lib-commonjs/applyPropsToTokens.test.js +13 -14
- package/lib-commonjs/applyPropsToTokens.test.js.map +1 -1
- package/lib-commonjs/applyTokenLayers.js +7 -7
- package/lib-commonjs/applyTokenLayers.js.map +1 -1
- package/lib-commonjs/applyTokenLayers.test.js +17 -18
- package/lib-commonjs/applyTokenLayers.test.js.map +1 -1
- package/lib-commonjs/buildUseTokens.js +9 -18
- package/lib-commonjs/buildUseTokens.js.map +1 -1
- package/lib-commonjs/buildUseTokens.test.js +25 -26
- package/lib-commonjs/buildUseTokens.test.js.map +1 -1
- package/lib-commonjs/customizable.js +3 -7
- package/lib-commonjs/customizable.js.map +1 -1
- package/lib-commonjs/patchTokens.js +4 -13
- package/lib-commonjs/patchTokens.js.map +1 -1
- package/lib-commonjs/patchTokens.test.js +21 -21
- package/lib-commonjs/patchTokens.test.js.map +1 -1
- package/lib-commonjs/useTokens.samples.test.js +40 -40
- package/lib-commonjs/useTokens.samples.test.js.map +1 -1
- package/package.json +12 -4
- package/.eslintrc.js +0 -3
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,42 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/use-tokens",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "Thu,
|
|
5
|
+
"date": "Thu, 10 Jul 2025 20:30:29 GMT",
|
|
6
|
+
"version": "0.6.4",
|
|
7
|
+
"tag": "@fluentui-react-native/use-tokens_v0.6.4",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "jasonmo@microsoft.com",
|
|
12
|
+
"package": "@fluentui-react-native/use-tokens",
|
|
13
|
+
"commit": "479b93cea460a26df70c55b5d3335927ed374713",
|
|
14
|
+
"comment": "update builds to use node16 settings and modern export maps"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"none": [
|
|
18
|
+
{
|
|
19
|
+
"author": "ruaraki@microsoft.com",
|
|
20
|
+
"package": "@fluentui-react-native/use-tokens",
|
|
21
|
+
"commit": "a245202877ef7f2be9ab5f0e1356b2270957e693",
|
|
22
|
+
"comment": "Run bump-versions"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"author": "4123478+tido64@users.noreply.github.com",
|
|
26
|
+
"package": "@fluentui-react-native/use-tokens",
|
|
27
|
+
"commit": "79bb06f6bbfd0a36f9d2ef371f4857be9660f027",
|
|
28
|
+
"comment": "Fixed `align-deps` warnings"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"author": "jasonmo@microsoft.com",
|
|
32
|
+
"package": "@fluentui-react-native/use-tokens",
|
|
33
|
+
"commit": "54087dca787180bbf34630470cd0d06e88366b30",
|
|
34
|
+
"comment": "update eslint to 9.x and use new flat config format with security rules"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"date": "Thu, 10 Jul 2025 19:20:14 GMT",
|
|
6
41
|
"version": "0.6.3",
|
|
7
42
|
"tag": "@fluentui-react-native/use-tokens_v0.6.3",
|
|
8
43
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/use-tokens
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on Thu,
|
|
3
|
+
<!-- This log was last generated on Thu, 10 Jul 2025 20:30:29 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.6.4
|
|
8
|
+
|
|
9
|
+
Thu, 10 Jul 2025 20:30:29 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- update builds to use node16 settings and modern export maps (jasonmo@microsoft.com)
|
|
14
|
+
|
|
7
15
|
## 0.6.3
|
|
8
16
|
|
|
9
|
-
Thu,
|
|
17
|
+
Thu, 10 Jul 2025 19:20:14 GMT
|
|
10
18
|
|
|
11
19
|
### Patches
|
|
12
20
|
|
package/eslint.config.js
ADDED
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
export function applyPropsToTokens(props, tokens, cache, keys) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
_a = cache(function () {
|
|
8
|
-
var _a;
|
|
9
|
-
return (setValue === undefined ? tokens : __assign(__assign({}, tokens), (_a = {}, _a[key] = setValue, _a)));
|
|
10
|
-
}, [setValue]), tokens = _a[0], cache = _a[1];
|
|
11
|
-
};
|
|
12
|
-
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
13
|
-
var key = keys_1[_i];
|
|
14
|
-
_loop_1(key);
|
|
2
|
+
for (const key of keys) {
|
|
3
|
+
const sourceValue = props[key];
|
|
4
|
+
const setValue = sourceValue === tokens[key] ? undefined : sourceValue;
|
|
5
|
+
[tokens, cache] = cache(() => (setValue === undefined ? tokens : { ...tokens, [key]: setValue }), [setValue]);
|
|
15
6
|
}
|
|
16
7
|
return [tokens, cache];
|
|
17
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyPropsToTokens.js","sourceRoot":"","sources":["../src/applyPropsToTokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyPropsToTokens.js","sourceRoot":"","sources":["../src/applyPropsToTokens.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,MAAe,EACf,KAA4B,EAC5B,IAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAa,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QACvE,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC/G;IACD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { getMemoCache } from '@fluentui-react-native/memo-cache';
|
|
2
2
|
import { applyPropsToTokens } from './applyPropsToTokens';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const tokenProps = ['dos', 'quatro', 'cinco'];
|
|
4
|
+
const themeTokens = {
|
|
5
5
|
uno: 'uno',
|
|
6
6
|
dos: 'dos',
|
|
7
7
|
tres: 3,
|
|
8
8
|
quatro: 4,
|
|
9
9
|
cinco: true,
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
const props1 = { dos: 'two', quatro: 'four', cinco: false, foo: 'foo', bar: 'bar' };
|
|
12
12
|
// const props2: Props = { dos: 'two' };
|
|
13
13
|
// const props3: Props = { foo: 'foo', bar: 'bar' };
|
|
14
|
-
describe('applyPropsToTokens tests',
|
|
15
|
-
test('props get copied',
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
describe('applyPropsToTokens tests', () => {
|
|
15
|
+
test('props get copied', () => {
|
|
16
|
+
const cache = getMemoCache();
|
|
17
|
+
const [tokens] = applyPropsToTokens(props1, themeTokens, cache, tokenProps);
|
|
18
18
|
expect(tokens).not.toBe(themeTokens);
|
|
19
|
-
for (
|
|
20
|
-
var key = tokenProps_1[_i];
|
|
19
|
+
for (const key of tokenProps) {
|
|
21
20
|
expect(tokens[key]).toEqual(props1[key]);
|
|
22
21
|
}
|
|
23
22
|
});
|
|
24
|
-
test('no copied props does not change tokens',
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
test('no copied props does not change tokens', () => {
|
|
24
|
+
const cache = getMemoCache();
|
|
25
|
+
const [tokens] = applyPropsToTokens({}, themeTokens, cache, tokenProps);
|
|
27
26
|
expect(tokens).toBe(themeTokens);
|
|
28
27
|
});
|
|
29
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyPropsToTokens.test.js","sourceRoot":"","sources":["../src/applyPropsToTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW1D,
|
|
1
|
+
{"version":3,"file":"applyPropsToTokens.test.js","sourceRoot":"","sources":["../src/applyPropsToTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW1D,MAAM,UAAU,GAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAOpE,MAAM,WAAW,GAAW;IAC1B,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,MAAM,GAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC3F,wCAAwC;AACxC,oDAAoD;AAEpD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/applyTokenLayers.js
CHANGED
|
@@ -9,15 +9,15 @@ import { immutableMerge } from '@fluentui-react-native/immutable-merge';
|
|
|
9
9
|
* @param hasLayer - a function which returns whether a given layer should be applied
|
|
10
10
|
*/
|
|
11
11
|
export function applyTokenLayers(tokens, states, subCache, hasLayer) {
|
|
12
|
-
|
|
12
|
+
let final = { tokens, subCache };
|
|
13
13
|
if (states && states.length > 0) {
|
|
14
14
|
// now walk the overrides that are set, merging in props, caching results, and getting a new sub cache
|
|
15
15
|
final = states
|
|
16
|
-
.filter(
|
|
17
|
-
.reduce(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return { tokens
|
|
16
|
+
.filter((val) => hasLayer(val))
|
|
17
|
+
.reduce((previous, layerName) => {
|
|
18
|
+
const layer = previous.tokens[layerName];
|
|
19
|
+
const [tokens, subCache] = previous.subCache(() => (layer && typeof layer === 'object' ? immutableMerge(previous.tokens, layer) : previous.tokens), [layer]);
|
|
20
|
+
return { tokens, subCache };
|
|
21
21
|
}, final);
|
|
22
22
|
}
|
|
23
23
|
return [final.tokens, final.subCache];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTokenLayers.js","sourceRoot":"","sources":["../src/applyTokenLayers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAQxE;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAe,EACf,MAAgB,EAChB,QAA+B,EAC/B,QAAkB;IAGlB,IAAI,KAAK,GAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"applyTokenLayers.js","sourceRoot":"","sources":["../src/applyTokenLayers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAQxE;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAe,EACf,MAAgB,EAChB,QAA+B,EAC/B,QAAkB;IAGlB,IAAI,KAAK,GAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,sGAAsG;QACtG,KAAK,GAAG,MAAM;aACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC9B,MAAM,CAAC,CAAC,QAAwB,EAAE,SAAiB,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAC1C,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrG,CAAC,KAAK,CAAC,CACR,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC,EAAE,KAAK,CAAC,CAAC;KACb;IACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
import { getMemoCache } from '@fluentui-react-native/memo-cache';
|
|
3
2
|
import { applyTokenLayers } from './applyTokenLayers';
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const stateOrder = ['hover', 'press', 'disabled'];
|
|
4
|
+
const tokens1 = {
|
|
6
5
|
a: 'a',
|
|
7
6
|
b: 'b',
|
|
8
7
|
c: 'c',
|
|
@@ -24,29 +23,29 @@ var tokens1 = {
|
|
|
24
23
|
},
|
|
25
24
|
};
|
|
26
25
|
function stripLayers(tokens) {
|
|
27
|
-
|
|
26
|
+
const t = { ...tokens };
|
|
28
27
|
delete t.hover;
|
|
29
28
|
delete t.press;
|
|
30
29
|
delete t.disabled;
|
|
31
30
|
return t;
|
|
32
31
|
}
|
|
33
|
-
describe('applyLayers tests',
|
|
34
|
-
test('no layers returns tokens',
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
describe('applyLayers tests', () => {
|
|
33
|
+
test('no layers returns tokens', () => {
|
|
34
|
+
const cache = getMemoCache();
|
|
35
|
+
const tokens = applyTokenLayers(tokens1, stateOrder, cache, () => false)[0];
|
|
37
36
|
expect(tokens).toBe(tokens1);
|
|
38
37
|
});
|
|
39
|
-
test('apply hover works',
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
test('apply hover works', () => {
|
|
39
|
+
const cache = getMemoCache();
|
|
40
|
+
const lookup = (layer) => layer === 'hover';
|
|
41
|
+
const result1 = applyTokenLayers(tokens1, stateOrder, cache, lookup)[0];
|
|
43
42
|
expect(applyTokenLayers(tokens1, stateOrder, cache, lookup)[0]).toBe(result1);
|
|
44
43
|
expect(stripLayers(result1)).toEqual({ a: 'a-hover', b: 'b-hover', c: 'c' });
|
|
45
44
|
});
|
|
46
|
-
test('apply hover and press layer correctly',
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
test('apply hover and press layer correctly', () => {
|
|
46
|
+
const cache = getMemoCache();
|
|
47
|
+
const lookup = (layer) => layer === 'hover' || layer === 'press';
|
|
48
|
+
const result1 = applyTokenLayers(tokens1, stateOrder, cache, lookup)[0];
|
|
50
49
|
expect(applyTokenLayers(tokens1, stateOrder, cache, lookup)[0]).toBe(result1);
|
|
51
50
|
expect(stripLayers(result1)).toEqual({ a: 'a-hover-press', b: 'b-press', c: 'c' });
|
|
52
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTokenLayers.test.js","sourceRoot":"","sources":["../src/applyTokenLayers.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyTokenLayers.test.js","sourceRoot":"","sources":["../src/applyTokenLayers.test.ts"],"names":[],"mappings":"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"}
|
package/lib/buildUseTokens.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
1
|
import { immutableMerge } from '@fluentui-react-native/immutable-merge';
|
|
3
2
|
import { getMemoCache } from '@fluentui-react-native/memo-cache';
|
|
4
3
|
/**
|
|
@@ -29,27 +28,19 @@ function mapToTokens(tokenEntry, theme, getComponentInfo) {
|
|
|
29
28
|
* @param options - options which drive behavior for the generated styling hook
|
|
30
29
|
* @param themeHelper - injected theme functionality
|
|
31
30
|
*/
|
|
32
|
-
export function buildUseTokens(getComponentInfo) {
|
|
33
|
-
var tokens = [];
|
|
34
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
35
|
-
tokens[_i - 1] = arguments[_i];
|
|
36
|
-
}
|
|
31
|
+
export function buildUseTokens(getComponentInfo, ...tokens) {
|
|
37
32
|
// create a cache instance for use in this particular call to buildUseTokens
|
|
38
|
-
|
|
33
|
+
const cache = getMemoCache();
|
|
39
34
|
// the core function simply merges layers together, looking up component definitions in the theme as well as executing any
|
|
40
35
|
// theme functions. This turns the tokens into an array of token objects that then get merged together
|
|
41
|
-
|
|
36
|
+
const useTokensCore = (theme) => {
|
|
42
37
|
// get the base styles all merged together, these will only depend on internal tokens and theme
|
|
43
|
-
return cache(
|
|
38
|
+
return cache(() => immutableMerge(...tokens.map((value) => mapToTokens(value, theme, getComponentInfo))), [theme]);
|
|
44
39
|
};
|
|
45
40
|
// attach a customize function to generate a new use
|
|
46
|
-
useTokensCore.customize =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
newTokens[_i] = arguments[_i];
|
|
50
|
-
}
|
|
51
|
-
var mergedTokens = __spreadArray(__spreadArray([], tokens, true), newTokens, true);
|
|
52
|
-
return buildUseTokens.apply(void 0, __spreadArray([getComponentInfo], mergedTokens, false));
|
|
41
|
+
useTokensCore.customize = (...newTokens) => {
|
|
42
|
+
const mergedTokens = [...tokens, ...newTokens];
|
|
43
|
+
return buildUseTokens(getComponentInfo, ...mergedTokens);
|
|
53
44
|
};
|
|
54
45
|
return useTokensCore;
|
|
55
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUseTokens.js","sourceRoot":"","sources":["../src/buildUseTokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildUseTokens.js","sourceRoot":"","sources":["../src/buildUseTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAiCjE;;;;;;;;;;;;GAYG;AACH,SAAS,WAAW,CAClB,UAA+D,EAC/D,KAAa,EACb,gBAA+D;IAE/D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,UAAU,GAAG,CAAC,gBAAgB,IAAK,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAa,CAAC,IAAK,EAAc,CAAC;KACxG;IACD,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,UAAU,GAAI,UAA+C,CAAC,KAAK,CAAC,CAAC;KACtE;IACD,OAAO,UAA+B,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,gBAA+D,EAC/D,GAAG,MAAwC;IAE3C,4EAA4E;IAC5E,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAE7B,0HAA0H;IAC1H,sGAAsG;IACtG,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;QACtC,+FAA+F;QAC/F,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACrH,CAAC,CAAC;IAEF,oDAAoD;IACpD,aAAa,CAAC,SAAS,GAAG,CAAC,GAAG,SAA2C,EAAE,EAAE;QAC3E,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QAC/C,OAAO,cAAc,CAAkB,gBAAgB,EAAE,GAAG,YAAY,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { __assign, __spreadArray } from "tslib";
|
|
2
1
|
import { buildUseTokens } from './buildUseTokens';
|
|
3
|
-
|
|
2
|
+
const baseTokens = {
|
|
4
3
|
a: 'a-base',
|
|
5
4
|
b: 'b-base',
|
|
6
5
|
c: 'c-base',
|
|
@@ -11,7 +10,7 @@ var baseTokens = {
|
|
|
11
10
|
c: 'c-base-press',
|
|
12
11
|
},
|
|
13
12
|
};
|
|
14
|
-
|
|
13
|
+
const defaultTheme = {
|
|
15
14
|
vals: {
|
|
16
15
|
foo: 'foo',
|
|
17
16
|
bar: 'bar',
|
|
@@ -27,15 +26,15 @@ var defaultTheme = {
|
|
|
27
26
|
},
|
|
28
27
|
},
|
|
29
28
|
};
|
|
30
|
-
|
|
29
|
+
const variantTheme = {
|
|
31
30
|
vals: {
|
|
32
31
|
foo: 'variant',
|
|
33
32
|
},
|
|
34
33
|
components: {},
|
|
35
34
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const getComponentInfo = (theme, name) => theme.components[name];
|
|
36
|
+
const componentTokens = [baseTokens, 'uno', (theme) => ({ b: theme.vals.foo })];
|
|
37
|
+
const resolvedTokens = {
|
|
39
38
|
a: 'uno-a',
|
|
40
39
|
b: 'foo',
|
|
41
40
|
c: 'uno-c',
|
|
@@ -46,7 +45,7 @@ var resolvedTokens = {
|
|
|
46
45
|
c: 'c-base-press',
|
|
47
46
|
},
|
|
48
47
|
};
|
|
49
|
-
|
|
48
|
+
const variantTokens = {
|
|
50
49
|
a: 'a-base',
|
|
51
50
|
b: 'variant',
|
|
52
51
|
c: 'c-base',
|
|
@@ -57,30 +56,30 @@ var variantTokens = {
|
|
|
57
56
|
c: 'c-base-press',
|
|
58
57
|
},
|
|
59
58
|
};
|
|
60
|
-
describe('buildUseTokens test suite',
|
|
61
|
-
test('basic built hook',
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
describe('buildUseTokens test suite', () => {
|
|
60
|
+
test('basic built hook', () => {
|
|
61
|
+
const useTokens = buildUseTokens(getComponentInfo, ...componentTokens);
|
|
62
|
+
const [tokens] = useTokens(defaultTheme);
|
|
64
63
|
expect(tokens).toEqual(resolvedTokens);
|
|
65
64
|
});
|
|
66
|
-
test('multiple calls return same object',
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
test('multiple calls return same object', () => {
|
|
66
|
+
const useTokens = buildUseTokens(getComponentInfo, ...componentTokens);
|
|
67
|
+
const [tokens1] = useTokens(defaultTheme);
|
|
68
|
+
const [tokens2] = useTokens(defaultTheme);
|
|
70
69
|
expect(tokens1).toBe(tokens2);
|
|
71
70
|
});
|
|
72
|
-
test('variant theme is separate',
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
test('variant theme is separate', () => {
|
|
72
|
+
const useTokens = buildUseTokens(getComponentInfo, ...componentTokens);
|
|
73
|
+
const [tokensDefault] = useTokens(defaultTheme);
|
|
74
|
+
const [tokensVariant] = useTokens(variantTheme);
|
|
76
75
|
expect(tokensVariant).not.toBe(tokensDefault);
|
|
77
76
|
expect(tokensVariant).toEqual(variantTokens);
|
|
78
77
|
});
|
|
79
|
-
test('simple customization layers on top',
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
expect(tokens).toEqual(
|
|
78
|
+
test('simple customization layers on top', () => {
|
|
79
|
+
const useTokens = buildUseTokens(getComponentInfo, ...componentTokens);
|
|
80
|
+
const useTokensCustom = useTokens.customize({ a: 'custom' });
|
|
81
|
+
const [tokens] = useTokensCustom(defaultTheme);
|
|
82
|
+
expect(tokens).toEqual({ ...resolvedTokens, a: 'custom' });
|
|
84
83
|
});
|
|
85
84
|
});
|
|
86
85
|
//# sourceMappingURL=buildUseTokens.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUseTokens.test.js","sourceRoot":"","sources":["../src/buildUseTokens.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildUseTokens.test.js","sourceRoot":"","sources":["../src/buildUseTokens.test.ts"],"names":[],"mappings":"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"}
|
package/lib/customizable.js
CHANGED
|
@@ -8,13 +8,9 @@
|
|
|
8
8
|
* new component (which can also be customized)
|
|
9
9
|
*/
|
|
10
10
|
export function customizable(injectable, useTokens) {
|
|
11
|
-
|
|
12
|
-
component.customize =
|
|
13
|
-
|
|
14
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
15
|
-
tokens[_i] = arguments[_i];
|
|
16
|
-
}
|
|
17
|
-
var useTokensNew = useTokens.customize.apply(useTokens, tokens);
|
|
11
|
+
const component = (props) => injectable(props, useTokens);
|
|
12
|
+
component.customize = (...tokens) => {
|
|
13
|
+
const useTokensNew = useTokens.customize(...tokens);
|
|
18
14
|
return customizable(injectable, useTokensNew);
|
|
19
15
|
};
|
|
20
16
|
return component;
|
package/lib/customizable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customizable.js","sourceRoot":"","sources":["../src/customizable.ts"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAwD,EACxD,SAAqC;IAErC,
|
|
1
|
+
{"version":3,"file":"customizable.js","sourceRoot":"","sources":["../src/customizable.ts"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAwD,EACxD,SAAqC;IAErC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAClE,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,MAAwC,EAAE,EAAE;QACpE,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/patchTokens.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
1
|
/**
|
|
3
2
|
* Take a set of tokens (and a memo-cache) and apply changes to those tokens from an additional set of tokens. Only keys which are
|
|
4
3
|
* not undefined will be applied and if no changes are detected the token object will be unchanged.
|
|
@@ -10,21 +9,13 @@ import { __assign } from "tslib";
|
|
|
10
9
|
*/
|
|
11
10
|
export function patchTokens(tokens, cache, patchValues) {
|
|
12
11
|
// reduce the patch values to the set of keys that are defined, and sort them to ensure consistent ordering
|
|
13
|
-
|
|
14
|
-
.filter(
|
|
12
|
+
const keys = Object.keys(patchValues)
|
|
13
|
+
.filter((v) => patchValues[v] !== undefined)
|
|
15
14
|
.sort();
|
|
16
|
-
var _loop_1 = function (key) {
|
|
17
|
-
var _a;
|
|
18
|
-
_a = cache(function () {
|
|
19
|
-
var _a;
|
|
20
|
-
return (__assign(__assign({}, tokens), (_a = {}, _a[key] = patchValues[key], _a)));
|
|
21
|
-
}, [key, patchValues[key]]), tokens = _a[0], cache = _a[1];
|
|
22
|
-
};
|
|
23
15
|
// for each key get an updated tokens collection based on key + value. Value alone isn't sufficient as the values
|
|
24
16
|
// are not necessarily unique. i.e. { a: 'blue' } and { b: 'blue' } would cache to the same without the key
|
|
25
|
-
for (
|
|
26
|
-
|
|
27
|
-
_loop_1(key);
|
|
17
|
+
for (const key of keys) {
|
|
18
|
+
[tokens, cache] = cache(() => ({ ...tokens, [key]: patchValues[key] }), [key, patchValues[key]]);
|
|
28
19
|
}
|
|
29
20
|
// return the updated tokens and cache (if there were any keys applied)
|
|
30
21
|
return [tokens, cache];
|
package/lib/patchTokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patchTokens.js","sourceRoot":"","sources":["../src/patchTokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"patchTokens.js","sourceRoot":"","sources":["../src/patchTokens.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,MAAe,EACf,KAA4B,EAC5B,WAAoB;IAEpB,2GAA2G;IAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SAC3C,IAAI,EAAE,CAAC;IAEV,iHAAiH;IACjH,2GAA2G;IAC3G,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAClG;IAED,uEAAuE;IACvE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
package/lib/patchTokens.test.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import { getMemoCache } from '@fluentui-react-native/memo-cache';
|
|
2
2
|
import { patchTokens } from './patchTokens';
|
|
3
|
-
|
|
3
|
+
const themeTokens = {
|
|
4
4
|
uno: 'uno',
|
|
5
5
|
dos: 'dos',
|
|
6
6
|
tres: 3,
|
|
7
7
|
quatro: 4,
|
|
8
8
|
cinco: true,
|
|
9
9
|
};
|
|
10
|
-
describe('patchTokens tests',
|
|
11
|
-
test('props get copied',
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
describe('patchTokens tests', () => {
|
|
11
|
+
test('props get copied', () => {
|
|
12
|
+
const cache = getMemoCache();
|
|
13
|
+
const patchValues = { uno: 'one', quatro: 'quatro' };
|
|
14
|
+
const [tokens] = patchTokens(themeTokens, cache, patchValues);
|
|
15
15
|
expect(tokens).not.toBe(themeTokens);
|
|
16
|
-
for (
|
|
16
|
+
for (const key in patchValues) {
|
|
17
17
|
expect(tokens[key]).toEqual(patchValues[key]);
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
-
test('no copied props does not change tokens',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
test('no copied props does not change tokens', () => {
|
|
21
|
+
const cache = getMemoCache();
|
|
22
|
+
const patchValues1 = {};
|
|
23
|
+
const [tokens] = patchTokens(themeTokens, cache, patchValues1);
|
|
24
24
|
expect(tokens).toBe(themeTokens);
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const patchValues2 = { tres: undefined };
|
|
26
|
+
const [tokens2] = patchTokens(themeTokens, cache, patchValues2);
|
|
27
27
|
expect(tokens2).toBe(themeTokens);
|
|
28
28
|
});
|
|
29
|
-
test('patching tokens cache independent of order',
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
test('patching tokens cache independent of order', () => {
|
|
30
|
+
const cache = getMemoCache();
|
|
31
|
+
const patch1 = { uno: 'one', cinco: false };
|
|
32
|
+
const patch2 = { cinco: false, uno: 'one' };
|
|
33
|
+
const [tokens1] = patchTokens(themeTokens, cache, patch1);
|
|
34
|
+
const [tokens2] = patchTokens(themeTokens, cache, patch2);
|
|
35
35
|
expect(tokens1).toBe(tokens2);
|
|
36
36
|
});
|
|
37
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patchTokens.test.js","sourceRoot":"","sources":["../src/patchTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,
|
|
1
|
+
{"version":3,"file":"patchTokens.test.js","sourceRoot":"","sources":["../src/patchTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,MAAM,WAAW,GAAW;IAC1B,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|