@fluentui-react-native/use-tokens 0.6.12 → 0.7.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.
Files changed (73) hide show
  1. package/CHANGELOG.json +1 -1
  2. package/CHANGELOG.md +38 -2
  3. package/README.md +1 -1
  4. package/lib/applyPropsToTokens.d.ts +7 -2
  5. package/lib/applyPropsToTokens.js +7 -7
  6. package/lib/applyPropsToTokens.js.map +1 -1
  7. package/lib/applyPropsToTokens.test.d.ts +1 -1
  8. package/lib/applyPropsToTokens.test.js +19 -19
  9. package/lib/applyPropsToTokens.test.js.map +1 -1
  10. package/lib/applyTokenLayers.d.ts +7 -2
  11. package/lib/applyTokenLayers.js +16 -13
  12. package/lib/applyTokenLayers.js.map +1 -1
  13. package/lib/applyTokenLayers.test.d.ts +1 -1
  14. package/lib/applyTokenLayers.test.js +42 -42
  15. package/lib/applyTokenLayers.test.js.map +1 -1
  16. package/lib/buildUseTokens.d.ts +6 -3
  17. package/lib/buildUseTokens.js +22 -22
  18. package/lib/buildUseTokens.js.map +1 -1
  19. package/lib/buildUseTokens.test.d.ts +1 -1
  20. package/lib/buildUseTokens.test.js +68 -68
  21. package/lib/buildUseTokens.test.js.map +1 -1
  22. package/lib/customizable.d.ts +9 -5
  23. package/lib/customizable.d.ts.map +1 -1
  24. package/lib/customizable.js +8 -8
  25. package/lib/customizable.js.map +1 -1
  26. package/lib/index.d.ts +1 -1
  27. package/lib/index.js +1 -1
  28. package/lib/patchTokens.d.ts +6 -2
  29. package/lib/patchTokens.js +12 -12
  30. package/lib/patchTokens.js.map +1 -1
  31. package/lib/patchTokens.test.d.ts +1 -1
  32. package/lib/patchTokens.test.js +32 -32
  33. package/lib/patchTokens.test.js.map +1 -1
  34. package/lib/useTokens.samples.test.d.ts +1 -1
  35. package/lib/useTokens.samples.test.js +134 -111
  36. package/lib/useTokens.samples.test.js.map +1 -1
  37. package/lib-commonjs/applyPropsToTokens.d.ts +7 -2
  38. package/lib-commonjs/applyPropsToTokens.js +10 -11
  39. package/lib-commonjs/applyPropsToTokens.js.map +1 -1
  40. package/lib-commonjs/applyPropsToTokens.test.d.ts +1 -1
  41. package/lib-commonjs/applyPropsToTokens.test.js +23 -23
  42. package/lib-commonjs/applyPropsToTokens.test.js.map +1 -1
  43. package/lib-commonjs/applyTokenLayers.d.ts +7 -2
  44. package/lib-commonjs/applyTokenLayers.js +20 -18
  45. package/lib-commonjs/applyTokenLayers.js.map +1 -1
  46. package/lib-commonjs/applyTokenLayers.test.d.ts +1 -1
  47. package/lib-commonjs/applyTokenLayers.test.js +46 -46
  48. package/lib-commonjs/applyTokenLayers.test.js.map +1 -1
  49. package/lib-commonjs/buildUseTokens.d.ts +6 -3
  50. package/lib-commonjs/buildUseTokens.js +30 -28
  51. package/lib-commonjs/buildUseTokens.js.map +1 -1
  52. package/lib-commonjs/buildUseTokens.test.d.ts +1 -1
  53. package/lib-commonjs/buildUseTokens.test.js +71 -71
  54. package/lib-commonjs/buildUseTokens.test.js.map +1 -1
  55. package/lib-commonjs/customizable.d.ts +9 -5
  56. package/lib-commonjs/customizable.d.ts.map +1 -1
  57. package/lib-commonjs/customizable.js +11 -12
  58. package/lib-commonjs/customizable.js.map +1 -1
  59. package/lib-commonjs/index.d.ts +1 -1
  60. package/lib-commonjs/index.js +38 -13
  61. package/lib-commonjs/index.js.map +1 -1
  62. package/lib-commonjs/patchTokens.d.ts +6 -2
  63. package/lib-commonjs/patchTokens.js +15 -16
  64. package/lib-commonjs/patchTokens.js.map +1 -1
  65. package/lib-commonjs/patchTokens.test.d.ts +1 -1
  66. package/lib-commonjs/patchTokens.test.js +36 -36
  67. package/lib-commonjs/patchTokens.test.js.map +1 -1
  68. package/lib-commonjs/useTokens.samples.test.d.ts +1 -1
  69. package/lib-commonjs/useTokens.samples.test.js +195 -141
  70. package/lib-commonjs/useTokens.samples.test.js.map +1 -1
  71. package/package.json +45 -45
  72. package/src/customizable.ts +3 -2
  73. package/src/useTokens.samples.test.tsx +24 -15
@@ -1,24 +1,28 @@
1
1
  import type React from 'react';
2
2
  import type { TokenSettings, UseTokens } from './buildUseTokens';
3
+ import type { FurnJSX } from '@fluentui-react-native/framework-base';
3
4
  /**
4
5
  * A component implementation, with a use tokens hook passed in. Implementing it this way allows the useTokens hook to be
5
6
  * modified by the customization handler
6
7
  */
7
- export type InjectableComponent<TProps, TTokens, TTheme> = (props: TProps, useTokens: UseTokens<TTokens, TTheme>) => JSX.Element | null;
8
+ export type InjectableComponent<TProps, TTokens, TTheme> = (props: TProps, useTokens: UseTokens<TTokens, TTheme>) => FurnJSX.Element | null;
8
9
  /**
9
10
  * A component with an attached customize function, used to create alternatively styled versions of the component
10
11
  */
11
12
  export type CustomizableComponent<TProps, TTokens, TTheme> = React.FunctionComponent<TProps> & {
12
- customize: (...tokens: TokenSettings<TTokens, TTheme>[]) => CustomizableComponent<TProps, TTokens, TTheme>;
13
+ customize: (...tokens: TokenSettings<TTokens, TTheme>[]) => CustomizableComponent<TProps, TTokens, TTheme>;
13
14
  };
14
15
  /**
15
16
  * Function helper for easily creating a customizable component based on the useTokens hook
16
17
  *
17
- * @param injectable - a function component implementation, written in (props, useTokens) => JSX.Element form
18
+ * @param injectable - a function component implementation, written in (props, useTokens) => FurnJSX.Element form
18
19
  * @param useTokens - a hook function, generally built via buildUseTokens, used to retrieve design tokens for the component
19
20
  *
20
21
  * @returns - a function component that has a static function called customize attached. Customize will return a
21
22
  * new component (which can also be customized)
22
23
  */
23
- export declare function customizable<TProps, TTokens, TTheme>(injectable: InjectableComponent<TProps, TTokens, TTheme>, useTokens: UseTokens<TTokens, TTheme>): CustomizableComponent<TProps, TTokens, TTheme>;
24
- //# sourceMappingURL=customizable.d.ts.map
24
+ export declare function customizable<TProps, TTokens, TTheme>(
25
+ injectable: InjectableComponent<TProps, TTokens, TTheme>,
26
+ useTokens: UseTokens<TTokens, TTheme>,
27
+ ): CustomizableComponent<TProps, TTokens, TTheme>;
28
+ //# sourceMappingURL=customizable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"customizable.d.ts","sourceRoot":"","sources":["../src/customizable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AAExI;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG;IAC7F,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CAC5G,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAClD,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACxD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GACpC,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAOhD"}
1
+ {"version":3,"file":"customizable.d.ts","sourceRoot":"","sources":["../src/customizable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AAE5I;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG;IAC7F,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CAC5G,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAClD,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EACxD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GACpC,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAOhD"}
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * Function helper for easily creating a customizable component based on the useTokens hook
3
3
  *
4
- * @param injectable - a function component implementation, written in (props, useTokens) => JSX.Element form
4
+ * @param injectable - a function component implementation, written in (props, useTokens) => FurnJSX.Element form
5
5
  * @param useTokens - a hook function, generally built via buildUseTokens, used to retrieve design tokens for the component
6
6
  *
7
7
  * @returns - a function component that has a static function called customize attached. Customize will return a
8
8
  * new component (which can also be customized)
9
9
  */
10
10
  export function customizable(injectable, useTokens) {
11
- const component = (props) => injectable(props, useTokens);
12
- component.customize = (...tokens) => {
13
- const useTokensNew = useTokens.customize(...tokens);
14
- return customizable(injectable, useTokensNew);
15
- };
16
- return component;
11
+ const component = (props) => injectable(props, useTokens);
12
+ component.customize = (...tokens) => {
13
+ const useTokensNew = useTokens.customize(...tokens);
14
+ return customizable(injectable, useTokensNew);
15
+ };
16
+ return component;
17
17
  }
18
- //# sourceMappingURL=customizable.js.map
18
+ //# sourceMappingURL=customizable.js.map
@@ -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,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"}
1
+ {"version":3,"file":"customizable.js","sourceRoot":"","sources":["../src/customizable.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAwD,EACxD,SAAqC,EACW;IAChD,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,CAAC;QACrE,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAAA,CAC/C,CAAC;IACF,OAAO,SAAS,CAAC;AAAA,CAClB"}
package/lib/index.d.ts CHANGED
@@ -6,4 +6,4 @@ export type { GetComponentInfo, TokenSettings, TokensFromTheme, UseTokens, UseTo
6
6
  export { customizable } from './customizable';
7
7
  export type { CustomizableComponent, InjectableComponent } from './customizable';
8
8
  export { patchTokens } from './patchTokens';
9
- //# sourceMappingURL=index.d.ts.map
9
+ //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -3,4 +3,4 @@ export { applyTokenLayers } from './applyTokenLayers';
3
3
  export { buildUseTokens } from './buildUseTokens';
4
4
  export { customizable } from './customizable';
5
5
  export { patchTokens } from './patchTokens';
6
- //# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.js.map
@@ -8,5 +8,9 @@ import type { GetTypedMemoValue } from '@fluentui-react-native/framework-base';
8
8
  * @param patchValues - new values to apply, values will be obtained via keys in the object
9
9
  * @returns - a tuple consisting of a new tokens object and a new memo-cache
10
10
  */
11
- export declare function patchTokens<TTokens>(tokens: TTokens, cache: GetTypedMemoValue<TTokens>, patchValues: TTokens): [TTokens, GetTypedMemoValue<TTokens>];
12
- //# sourceMappingURL=patchTokens.d.ts.map
11
+ export declare function patchTokens<TTokens>(
12
+ tokens: TTokens,
13
+ cache: GetTypedMemoValue<TTokens>,
14
+ patchValues: TTokens,
15
+ ): [TTokens, GetTypedMemoValue<TTokens>];
16
+ //# sourceMappingURL=patchTokens.d.ts.map
@@ -8,16 +8,16 @@
8
8
  * @returns - a tuple consisting of a new tokens object and a new memo-cache
9
9
  */
10
10
  export function patchTokens(tokens, cache, patchValues) {
11
- // reduce the patch values to the set of keys that are defined, and sort them to ensure consistent ordering
12
- const keys = Object.keys(patchValues)
13
- .filter((v) => patchValues[v] !== undefined)
14
- .sort();
15
- // for each key get an updated tokens collection based on key + value. Value alone isn't sufficient as the values
16
- // are not necessarily unique. i.e. { a: 'blue' } and { b: 'blue' } would cache to the same without the key
17
- for (const key of keys) {
18
- [tokens, cache] = cache(() => ({ ...tokens, [key]: patchValues[key] }), [key, patchValues[key]]);
19
- }
20
- // return the updated tokens and cache (if there were any keys applied)
21
- return [tokens, cache];
11
+ // reduce the patch values to the set of keys that are defined, and sort them to ensure consistent ordering
12
+ const keys = Object.keys(patchValues)
13
+ .filter((v) => patchValues[v] !== undefined)
14
+ .sort();
15
+ // for each key get an updated tokens collection based on key + value. Value alone isn't sufficient as the values
16
+ // are not necessarily unique. i.e. { a: 'blue' } and { b: 'blue' } would cache to the same without the key
17
+ for (const key of keys) {
18
+ [tokens, cache] = cache(() => ({ ...tokens, [key]: patchValues[key] }), [key, patchValues[key]]);
19
+ }
20
+ // return the updated tokens and cache (if there were any keys applied)
21
+ return [tokens, cache];
22
22
  }
23
- //# sourceMappingURL=patchTokens.js.map
23
+ //# sourceMappingURL=patchTokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patchTokens.js","sourceRoot":"","sources":["../src/patchTokens.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,MAAe,EACf,KAAiC,EACjC,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"}
1
+ {"version":3,"file":"patchTokens.js","sourceRoot":"","sources":["../src/patchTokens.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,MAAe,EACf,KAAiC,EACjC,WAAoB,EACmB;IACvC,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,CAAC;QACvB,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;IACnG,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAAA,CACxB"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=patchTokens.test.d.ts.map
2
+ //# sourceMappingURL=patchTokens.test.d.ts.map
@@ -1,38 +1,38 @@
1
1
  import { getMemoCache } from '@fluentui-react-native/framework-base';
2
2
  import { patchTokens } from './patchTokens';
3
3
  const themeTokens = {
4
- uno: 'uno',
5
- dos: 'dos',
6
- tres: 3,
7
- quatro: 4,
8
- cinco: true,
4
+ uno: 'uno',
5
+ dos: 'dos',
6
+ tres: 3,
7
+ quatro: 4,
8
+ cinco: true,
9
9
  };
10
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
- expect(tokens).not.toBe(themeTokens);
16
- for (const key in patchValues) {
17
- expect(tokens[key]).toEqual(patchValues[key]);
18
- }
19
- });
20
- test('no copied props does not change tokens', () => {
21
- const cache = getMemoCache();
22
- const patchValues1 = {};
23
- const [tokens] = patchTokens(themeTokens, cache, patchValues1);
24
- expect(tokens).toBe(themeTokens);
25
- const patchValues2 = { tres: undefined };
26
- const [tokens2] = patchTokens(themeTokens, cache, patchValues2);
27
- expect(tokens2).toBe(themeTokens);
28
- });
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
- expect(tokens1).toBe(tokens2);
36
- });
11
+ test('props get copied', () => {
12
+ const cache = getMemoCache();
13
+ const patchValues = { uno: 'one', quatro: 'quatro' };
14
+ const [tokens] = patchTokens(themeTokens, cache, patchValues);
15
+ expect(tokens).not.toBe(themeTokens);
16
+ for (const key in patchValues) {
17
+ expect(tokens[key]).toEqual(patchValues[key]);
18
+ }
19
+ });
20
+ test('no copied props does not change tokens', () => {
21
+ const cache = getMemoCache();
22
+ const patchValues1 = {};
23
+ const [tokens] = patchTokens(themeTokens, cache, patchValues1);
24
+ expect(tokens).toBe(themeTokens);
25
+ const patchValues2 = { tres: undefined };
26
+ const [tokens2] = patchTokens(themeTokens, cache, patchValues2);
27
+ expect(tokens2).toBe(themeTokens);
28
+ });
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
+ expect(tokens1).toBe(tokens2);
36
+ });
37
37
  });
38
- //# sourceMappingURL=patchTokens.test.js.map
38
+ //# sourceMappingURL=patchTokens.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patchTokens.test.js","sourceRoot":"","sources":["../src/patchTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,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"}
1
+ {"version":3,"file":"patchTokens.test.js","sourceRoot":"","sources":["../src/patchTokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,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,CAAC;IAClC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;QAC7B,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,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IAAA,CACF,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC;QACnD,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;IAAA,CACnC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE,CAAC;QACvD,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;IAAA,CAC/B,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=useTokens.samples.test.d.ts.map
2
+ //# sourceMappingURL=useTokens.samples.test.d.ts.map
@@ -1,4 +1,5 @@
1
- import * as React from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime';
2
+ import { act } from 'react';
2
3
  import { Text, View } from 'react-native';
3
4
  import { immutableMerge } from '@fluentui-react-native/framework-base';
4
5
  import { mergeStyles } from '@fluentui-react-native/framework-base';
@@ -8,19 +9,19 @@ import { buildUseTokens } from './buildUseTokens';
8
9
  * The default/base theme just contains base values
9
10
  */
10
11
  const baseTheme = {
11
- globals: {
12
- backgroundColor: 'white',
13
- color: 'black',
14
- borderColor: 'blue',
15
- fontFamily: 'Arial',
16
- fontSize: 12,
17
- },
18
- components: {},
12
+ globals: {
13
+ backgroundColor: 'white',
14
+ color: 'black',
15
+ borderColor: 'blue',
16
+ fontFamily: 'Arial',
17
+ fontSize: 12,
18
+ },
19
+ components: {},
19
20
  };
20
21
  const current = { theme: baseTheme };
21
22
  const useTheme = () => current.theme;
22
23
  const setActiveTheme = (theme) => {
23
- current.theme = (theme && immutableMerge(baseTheme, theme)) || baseTheme;
24
+ current.theme = (theme && immutableMerge(baseTheme, theme)) || baseTheme;
24
25
  };
25
26
  /**
26
27
  * Helper function used to look up a component in the theme. Having this injected allows this module to not be dependent on the shape of
@@ -28,113 +29,135 @@ const setActiveTheme = (theme) => {
28
29
  */
29
30
  const getComponentInfo = (theme, name) => theme.components[name];
30
31
  describe('useTokens samples', () => {
31
- /**
32
- * Sample #1 - Themeable text element
33
- *
34
- * This adds some default opinions for how a text element should be styled but only allows for customization
35
- * via theming
36
- */
37
- const useTokensSample1 = buildUseTokens(getComponentInfo,
32
+ /**
33
+ * Sample #1 - Themeable text element
34
+ *
35
+ * This adds some default opinions for how a text element should be styled but only allows for customization
36
+ * via theming
37
+ */
38
+ const useTokensSample1 = buildUseTokens(
39
+ getComponentInfo,
38
40
  /** first the default values should come from the global theme section */
39
41
  (t) => ({
40
- color: t.globals.color,
41
- fontFamily: t.globals.fontFamily,
42
- fontSize: t.globals.fontSize,
43
- }),
42
+ color: t.globals.color,
43
+ fontFamily: t.globals.fontFamily,
44
+ fontSize: t.globals.fontSize,
45
+ }),
44
46
  /** next we should look for a component reference to overlay */
45
- 'SampleText');
46
- const SampleText1 = (props) => {
47
- // standard props splitting
48
- const { style, children, ...rest } = props;
49
- // typically this would start with a call to retrieve the theme from the context via whatever method is appropriate
50
- const theme = useTheme();
51
- // next the tokens are resolved from the theme, a cache specific to this theme is returned as well to allow for
52
- // style objects to not be rebuilt unnecessarily
53
- const [tokens, cache] = useTokensSample1(theme);
54
- // build up the text style, or the full props as appropriate
55
- const styleFromTokens = cache(
56
- /**
57
- * first build the style object
58
- * - this executes once for every unique set of keys.
59
- * - The cache is already unique for this theme
60
- */
61
- () => ({ ...tokens }),
62
- /**
63
- * now specify the keys
64
- * - because the only changing variable is the theme
65
- * - ...and all the style properties are either constant or come from the tokens
66
- * - ...no keys need to be specified
67
- * - this means that only one style object will be created per component + theme pair
68
- */
69
- []);
70
- // merge the props from the tokens with anything passed in via style. This is internally cached via object identity
71
- // so the merged style object won't change identity unless one of the two inputs changes identity.
72
- const mergedStyle = mergeStyles(styleFromTokens, style);
73
- // now just render the element, forwarding the props, setting the merged style, then passing the children as appropriate
74
- return (React.createElement(Text, { ...rest, style: mergedStyle }, children));
75
- };
76
- beforeEach(() => {
77
- setActiveTheme();
47
+ 'SampleText',
48
+ );
49
+ const SampleText1 = (props) => {
50
+ // standard props splitting
51
+ const { style, children, ...rest } = props;
52
+ // typically this would start with a call to retrieve the theme from the context via whatever method is appropriate
53
+ const theme = useTheme();
54
+ // next the tokens are resolved from the theme, a cache specific to this theme is returned as well to allow for
55
+ // style objects to not be rebuilt unnecessarily
56
+ const [tokens, cache] = useTokensSample1(theme);
57
+ // build up the text style, or the full props as appropriate
58
+ const [styleFromTokens] = cache(
59
+ /**
60
+ * first build the style object
61
+ * - this executes once for every unique set of keys.
62
+ * - The cache is already unique for this theme
63
+ */
64
+ () => ({ ...tokens }),
65
+ /**
66
+ * now specify the keys
67
+ * - because the only changing variable is the theme
68
+ * - ...and all the style properties are either constant or come from the tokens
69
+ * - ...no keys need to be specified
70
+ * - this means that only one style object will be created per component + theme pair
71
+ */
72
+ [],
73
+ );
74
+ // merge the props from the tokens with anything passed in via style. This is internally cached via object identity
75
+ // so the merged style object won't change identity unless one of the two inputs changes identity.
76
+ const mergedStyle = mergeStyles(styleFromTokens, style);
77
+ // now just render the element, forwarding the props, setting the merged style, then passing the children as appropriate
78
+ return _jsx(Text, { ...rest, style: mergedStyle, children: children });
79
+ };
80
+ beforeEach(() => {
81
+ setActiveTheme();
82
+ });
83
+ /** first render the component with no updates */
84
+ it('Sample1Text rendering with no overrides', () => {
85
+ let component;
86
+ act(() => {
87
+ component = renderer.create(_jsx(SampleText1, { children: 'Sample1a' }));
78
88
  });
79
- /** first render the component with no updates */
80
- it('Sample1Text rendering with no overrides', () => {
81
- const tree = renderer.create(React.createElement(SampleText1, null, "Sample1a")).toJSON();
82
- expect(tree).toMatchSnapshot();
89
+ expect(component.toJSON()).toMatchSnapshot();
90
+ });
91
+ /** now re-theme the component via the components in the theme */
92
+ it('Sample1Text rendering with some custom settings in the theme', () => {
93
+ setActiveTheme({
94
+ components: {
95
+ SampleText: {
96
+ color: 'pink',
97
+ fontSize: 24,
98
+ },
99
+ },
83
100
  });
84
- /** now re-theme the component via the components in the theme */
85
- it('Sample1Text rendering with some custom settings in the theme', () => {
86
- setActiveTheme({
87
- components: {
88
- SampleText: {
89
- color: 'pink',
90
- fontSize: 24,
91
- },
92
- },
93
- });
94
- const tree = renderer.create(React.createElement(SampleText1, null, "Sample1b")).toJSON();
95
- expect(tree).toMatchSnapshot();
101
+ let component;
102
+ act(() => {
103
+ component = renderer.create(_jsx(SampleText1, { children: 'Sample1b' }));
96
104
  });
97
- // the Sample2Text component is built the same way as sample1, just using the new hook that has been created
98
- const SampleText2 = (props) => {
99
- const { color, style, children, ...rest } = props;
100
- const theme = useTheme();
101
- // this starts the same as sample1, extract tokens from the theme and get a theme specific cache object
102
- const [tokens, cache] = useTokensSample1(theme);
103
- // now when building up the style this time, the resulting style object is based upon both the theme and the passed
104
- // in value of colors. Because the theme is already part of the cache definition, only color needs to be a key
105
- const styleFromTokens = cache(
106
- /** build the style, only patch the color if it has a value, otherwise the theme value would get stomped if color was undefined */
107
- () => ({ ...tokens, ...(color && { color }) }),
108
- /** use color as an additional key for the style */
109
- [color]);
110
- // now just render, this time merging styles inline to make it a bit shorter
111
- return (React.createElement(Text, { ...rest, style: mergeStyles(styleFromTokens, style) }, children));
112
- };
113
- /** rendering the Sample2 component with the base theme */
114
- it('Sample2Text rendering with defaults and a color override', () => {
115
- const tree = renderer
116
- .create(React.createElement(View, null,
117
- React.createElement(SampleText2, null, "Sample2 with defaults"),
118
- React.createElement(SampleText2, { color: "green" }, "Sample2 with color override via prop")))
119
- .toJSON();
120
- expect(tree).toMatchSnapshot();
105
+ expect(component.toJSON()).toMatchSnapshot();
106
+ });
107
+ // the Sample2Text component is built the same way as sample1, just using the new hook that has been created
108
+ const SampleText2 = (props) => {
109
+ const { color, style, children, ...rest } = props;
110
+ const theme = useTheme();
111
+ // this starts the same as sample1, extract tokens from the theme and get a theme specific cache object
112
+ const [tokens, cache] = useTokensSample1(theme);
113
+ // now when building up the style this time, the resulting style object is based upon both the theme and the passed
114
+ // in value of colors. Because the theme is already part of the cache definition, only color needs to be a key
115
+ const styleFromTokens = cache(
116
+ /** build the style, only patch the color if it has a value, otherwise the theme value would get stomped if color was undefined */
117
+ () => ({ ...tokens, ...(color && { color }) }),
118
+ /** use color as an additional key for the style */
119
+ [color],
120
+ );
121
+ // now just render, this time merging styles inline to make it a bit shorter
122
+ return _jsx(Text, { ...rest, style: mergeStyles(styleFromTokens, style), children: children });
123
+ };
124
+ /** rendering the Sample2 component with the base theme */
125
+ it('Sample2Text rendering with defaults and a color override', () => {
126
+ let component;
127
+ act(() => {
128
+ component = renderer.create(
129
+ _jsxs(View, {
130
+ children: [
131
+ _jsx(SampleText2, { children: 'Sample2 with defaults' }),
132
+ _jsx(SampleText2, { color: 'green', children: 'Sample2 with color override via prop' }),
133
+ ],
134
+ }),
135
+ );
121
136
  });
122
- /** now re-theme the component via the components in the theme */
123
- it('Sample2Text rendering with some custom settings in the theme', () => {
124
- setActiveTheme({
125
- components: {
126
- SampleText: {
127
- fontSize: 18,
128
- fontFamily: 'Helvetica',
129
- },
130
- },
131
- });
132
- const tree = renderer
133
- .create(React.createElement(View, null,
134
- React.createElement(SampleText2, null, "Sample2 with theme overrides set"),
135
- React.createElement(SampleText2, { color: "purple" }, "Sample2 with theme and color prop override")))
136
- .toJSON();
137
- expect(tree).toMatchSnapshot();
137
+ expect(component.toJSON()).toMatchSnapshot();
138
+ });
139
+ /** now re-theme the component via the components in the theme */
140
+ it('Sample2Text rendering with some custom settings in the theme', () => {
141
+ setActiveTheme({
142
+ components: {
143
+ SampleText: {
144
+ fontSize: 18,
145
+ fontFamily: 'Helvetica',
146
+ },
147
+ },
138
148
  });
149
+ let component;
150
+ act(() => {
151
+ component = renderer.create(
152
+ _jsxs(View, {
153
+ children: [
154
+ _jsx(SampleText2, { children: 'Sample2 with theme overrides set' }),
155
+ _jsx(SampleText2, { color: 'purple', children: 'Sample2 with theme and color prop override' }),
156
+ ],
157
+ }),
158
+ );
159
+ });
160
+ expect(component.toJSON()).toMatchSnapshot();
161
+ });
139
162
  });
140
- //# sourceMappingURL=useTokens.samples.test.js.map
163
+ //# sourceMappingURL=useTokens.samples.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTokens.samples.test.js","sourceRoot":"","sources":["../src/useTokens.samples.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTokens.samples.test.js","sourceRoot":"","sources":["../src/useTokens.samples.test.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import type { GetTypedMemoValue } from '@fluentui-react-native/framework-base';
2
- export declare function applyPropsToTokens<TProps, TTokens>(props: TProps, tokens: TTokens, cache: GetTypedMemoValue<TTokens>, keys: (keyof TTokens)[]): [TTokens, GetTypedMemoValue<TTokens>];
3
- //# sourceMappingURL=applyPropsToTokens.d.ts.map
2
+ export declare function applyPropsToTokens<TProps, TTokens>(
3
+ props: TProps,
4
+ tokens: TTokens,
5
+ cache: GetTypedMemoValue<TTokens>,
6
+ keys: (keyof TTokens)[],
7
+ ): [TTokens, GetTypedMemoValue<TTokens>];
8
+ //# sourceMappingURL=applyPropsToTokens.d.ts.map
@@ -1,13 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyPropsToTokens = void 0;
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.applyPropsToTokens = applyPropsToTokens;
4
4
  function applyPropsToTokens(props, tokens, cache, keys) {
5
- for (const key of keys) {
6
- const sourceValue = props[key];
7
- const setValue = sourceValue === tokens[key] ? undefined : sourceValue;
8
- [tokens, cache] = cache(() => (setValue === undefined ? tokens : { ...tokens, [key]: setValue }), [setValue]);
9
- }
10
- return [tokens, cache];
5
+ for (const key of keys) {
6
+ const sourceValue = props[key];
7
+ const setValue = sourceValue === tokens[key] ? undefined : sourceValue;
8
+ [tokens, cache] = cache(() => (setValue === undefined ? tokens : { ...tokens, [key]: setValue }), [setValue]);
9
+ }
10
+ return [tokens, cache];
11
11
  }
12
- exports.applyPropsToTokens = applyPropsToTokens;
13
- //# sourceMappingURL=applyPropsToTokens.js.map
12
+ //# sourceMappingURL=applyPropsToTokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyPropsToTokens.js","sourceRoot":"","sources":["../src/applyPropsToTokens.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kBAAkB,CAChC,KAAa,EACb,MAAe,EACf,KAAiC,EACjC,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;AAZD,gDAYC"}
1
+ {"version":3,"file":"applyPropsToTokens.js","sourceRoot":"","sources":["../src/applyPropsToTokens.ts"],"names":[],"mappings":";;;AAEA,4BACE,KAAa,EACb,MAAe,EACf,KAAiC,EACjC,IAAuB,EACgB;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,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;IAChH,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAAA,CACxB"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=applyPropsToTokens.test.d.ts.map
2
+ //# sourceMappingURL=applyPropsToTokens.test.d.ts.map