@fluentui-react-native/framework 0.14.17 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/babel.config.js +1 -1
- package/lib/compose.js.map +1 -1
- package/lib/compressible.js.map +1 -1
- package/lib/compressible.test.js +21 -18
- package/lib/compressible.test.js.map +1 -1
- package/lib/themeHelper.js.map +1 -1
- package/lib/useFluentTheme.js.map +1 -1
- package/lib/useStyling.js.map +1 -1
- package/lib/useTokens.js.map +1 -1
- package/lib-commonjs/compose.js +1 -2
- package/lib-commonjs/compose.js.map +1 -1
- package/lib-commonjs/compressible.js +1 -2
- package/lib-commonjs/compressible.js.map +1 -1
- package/lib-commonjs/compressible.test.js +38 -25
- package/lib-commonjs/compressible.test.js.map +1 -1
- package/lib-commonjs/index.js +13 -13
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/themeHelper.js.map +1 -1
- package/lib-commonjs/useFluentTheme.js +1 -2
- package/lib-commonjs/useFluentTheme.js.map +1 -1
- package/lib-commonjs/useStyling.js +2 -3
- package/lib-commonjs/useStyling.js.map +1 -1
- package/lib-commonjs/useTokens.js +3 -3
- package/lib-commonjs/useTokens.js.map +1 -1
- package/package.json +68 -65
- package/src/compressible.test.tsx +15 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/framework
|
|
2
2
|
|
|
3
|
+
## 0.15.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 0d6e9c1: chore: migrate to `oxfmt`
|
|
8
|
+
- ac6e7af: Ensure packages have a default export that references the typescript entrypoint and clean up build dependency ordering
|
|
9
|
+
- Updated dependencies [0d6e9c1]
|
|
10
|
+
- Updated dependencies [ac6e7af]
|
|
11
|
+
- @fluentui-react-native/composition@0.12.1
|
|
12
|
+
- @fluentui-react-native/use-styling@0.14.1
|
|
13
|
+
- @fluentui-react-native/default-theme@0.27.1
|
|
14
|
+
- @fluentui-react-native/use-tokens@0.7.1
|
|
15
|
+
- @fluentui-react-native/use-slots@0.11.1
|
|
16
|
+
- @fluentui-react-native/theme-types@0.44.1
|
|
17
|
+
- @fluentui-react-native/use-slot@0.7.1
|
|
18
|
+
- @fluentui-react-native/framework-base@0.3.1
|
|
19
|
+
- @fluentui-react-native/tokens@0.24.1
|
|
20
|
+
|
|
21
|
+
## 0.15.0
|
|
22
|
+
|
|
23
|
+
### Minor Changes
|
|
24
|
+
|
|
25
|
+
- d7adbdd: # Migration from Beachball to Changesets
|
|
26
|
+
|
|
27
|
+
This changeset represents the migration from Beachball to Changesets for version management and consolidates all changes from 440+ beachball change files that were in the `change/` directory.
|
|
28
|
+
|
|
29
|
+
All 75 affected packages receive a minor version bump to acknowledge the accumulated changes from the beachball era.
|
|
30
|
+
|
|
31
|
+
## What Changed
|
|
32
|
+
|
|
33
|
+
Going forward, all version management uses Changesets via `yarn changeset`. The following beachball infrastructure has been removed:
|
|
34
|
+
|
|
35
|
+
- ❌ 440+ beachball change files from `change/` directory
|
|
36
|
+
- ❌ `beachball` package dependency
|
|
37
|
+
- ❌ Beachball scripts from `package.json`
|
|
38
|
+
- ❌ `beachball.config.js` configuration file
|
|
39
|
+
- ❌ Beachball publish steps from Azure Pipelines
|
|
40
|
+
|
|
41
|
+
## New Workflow
|
|
42
|
+
|
|
43
|
+
✅ **Create changes**: Run `yarn changeset` to document changes
|
|
44
|
+
✅ **Version bump PRs**: Automatically created by GitHub Actions
|
|
45
|
+
✅ **Publishing**: Handled by Azure Pipelines using `changeset publish`
|
|
46
|
+
✅ **Validation**: CI validates changesets and blocks major version bumps
|
|
47
|
+
|
|
48
|
+
For details, see `CHANGESETS_SETUP.md` and `CONTRIBUTING.md`.
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- d1d8c26: We were pinning @types/react and react-native-macos via resolutions. This fixes that which uncovered a bunch of type inconsistencies that needed to be addressed.
|
|
53
|
+
- Updated dependencies [d7adbdd]
|
|
54
|
+
- Updated dependencies [d1d8c26]
|
|
55
|
+
- @fluentui-react-native/composition@0.12.0
|
|
56
|
+
- @fluentui-react-native/default-theme@0.27.0
|
|
57
|
+
- @fluentui-react-native/framework-base@0.3.0
|
|
58
|
+
- @fluentui-react-native/theme-types@0.44.0
|
|
59
|
+
- @fluentui-react-native/tokens@0.24.0
|
|
60
|
+
- @fluentui-react-native/use-slot@0.7.0
|
|
61
|
+
- @fluentui-react-native/use-slots@0.11.0
|
|
62
|
+
- @fluentui-react-native/use-styling@0.14.0
|
|
63
|
+
- @fluentui-react-native/use-tokens@0.7.0
|
|
64
|
+
|
|
3
65
|
<!-- This log was last generated on Tue, 05 Aug 2025 18:50:40 GMT and should not be manually modified. -->
|
|
4
66
|
|
|
5
67
|
<!-- Start content -->
|
package/babel.config.js
CHANGED
package/lib/compose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA8C5C,MAAM,UAAU,OAAO,CACrB,OAAkG,EAClG,IAAqG;
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA8C5C,MAAM,UAAU,OAAO,CACrB,OAAkG,EAClG,IAAqG,EACL;IAChG,OAAO,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAAA,CACnD"}
|
package/lib/compressible.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressible.js","sourceRoot":"","sources":["../src/compressible.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAMxE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAwB,EACxB,SAA6B;
|
|
1
|
+
{"version":3,"file":"compressible.js","sourceRoot":"","sources":["../src/compressible.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAMxE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAwB,EACxB,SAA6B,EACkB;IAG/C,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,eAAe,CAAC,eAAe,CAAkB,CAAC;IAEpE,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,MAAgC,EAAE,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAAA,CACvC,CAAC;IAEF,OAAO,SAAS,CAAC;AAAA,CAClB"}
|
package/lib/compressible.test.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@fluentui-react-native/framework-base/jsx-runtime";
|
|
2
|
+
import { act } from 'react';
|
|
1
3
|
import { Text, View } from 'react-native';
|
|
2
4
|
import { mergeStyles } from '@fluentui-react-native/framework-base';
|
|
3
5
|
import { useSlot } from '@fluentui-react-native/use-slot';
|
|
4
|
-
import { withSlots } from '@fluentui-react-native/framework-base';
|
|
5
6
|
import { applyTokenLayers } from '@fluentui-react-native/use-tokens';
|
|
6
7
|
import * as renderer from 'react-test-renderer';
|
|
7
8
|
import { compressible } from './compressible';
|
|
@@ -35,7 +36,7 @@ const VariantText = compressible((props, useTokens) => {
|
|
|
35
36
|
// now get the slot
|
|
36
37
|
const InnerText = useSlot(Text, { ...rest, style: mergedStyle });
|
|
37
38
|
return (extra, children) => {
|
|
38
|
-
return
|
|
39
|
+
return _jsx(InnerText, { ...extra, children: children });
|
|
39
40
|
};
|
|
40
41
|
}, useVariantTokens);
|
|
41
42
|
const SuperHeader = VariantText.customize({ header: { fontSize: 24, color: 'purple' } });
|
|
@@ -51,29 +52,31 @@ const Label = compressible((props, useTokens) => {
|
|
|
51
52
|
const Caption = useSlot(captionSlot || VariantText, { variant: tokens.captionVariant });
|
|
52
53
|
return () => {
|
|
53
54
|
if (captionText) {
|
|
54
|
-
return (
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
return (_jsxs(View, { children: [
|
|
56
|
+
_jsx(Header, { children: headerText }), _jsx(Caption, { children: captionText })
|
|
57
|
+
] }));
|
|
57
58
|
}
|
|
58
|
-
return
|
|
59
|
+
return _jsx(Header, { children: headerText });
|
|
59
60
|
};
|
|
60
61
|
}, useLabelTokens);
|
|
61
62
|
describe('compressible tests', () => {
|
|
62
63
|
it('Two labels, one with caption and one without', () => {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
let component;
|
|
65
|
+
act(() => {
|
|
66
|
+
component = renderer.create(_jsxs(View, { children: [
|
|
67
|
+
_jsx(Label, { headerText: "Header1" }), _jsx(Label, { headerText: "Header2", captionText: "Caption2" })
|
|
68
|
+
] }));
|
|
69
|
+
});
|
|
70
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
69
71
|
});
|
|
70
72
|
it('Two labels, one plugging in SuperHeader instead', () => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
let component;
|
|
74
|
+
act(() => {
|
|
75
|
+
component = renderer.create(_jsxs(View, { children: [
|
|
76
|
+
_jsx(Label, { headerText: "Super Header", headerSlot: SuperHeader, captionText: "Normal caption" }), _jsx(Label, { headerText: "Normal Header", captionText: "Another normal caption" })
|
|
77
|
+
] }));
|
|
78
|
+
});
|
|
79
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
77
80
|
});
|
|
78
81
|
});
|
|
79
82
|
//# sourceMappingURL=compressible.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressible.test.js","sourceRoot":"","sources":["../src/compressible.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compressible.test.js","sourceRoot":"","sources":["../src/compressible.test.tsx"],"names":[],"mappings":"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"}
|
package/lib/themeHelper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeHelper.js","sourceRoot":"","sources":["../src/themeHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;IAChC,gBAAgB,EAAE,CAAC,KAAY,EAAE,IAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"themeHelper.js","sourceRoot":"","sources":["../src/themeHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;IAChC,gBAAgB,EAAE,CAAC,KAAY,EAAE,IAAY,EAAE,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAAA,CACzB;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFluentTheme.js","sourceRoot":"","sources":["../src/useFluentTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,cAAc;
|
|
1
|
+
{"version":3,"file":"useFluentTheme.js","sourceRoot":"","sources":["../src/useFluentTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,cAAc,GAAU;IACtC,OAAO,QAAQ,EAAE,IAAI,kBAAkB,CAAC;AAAA,CACzC"}
|
package/lib/useStyling.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStyling.js","sourceRoot":"","sources":["../src/useStyling.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAE1H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,UAAU,UAAU,CACxB,EAA6C,EAC7C,IAAwB;
|
|
1
|
+
{"version":3,"file":"useStyling.js","sourceRoot":"","sources":["../src/useStyling.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAE1H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,UAAU,UAAU,CACxB,EAA6C,EAC7C,IAAwB,EACK;IAC7B,OAAO,cAAc,CAAyB,EAAE,EAAE,IAAI,CAAC,CAAC;AAAA,CACzD;AAMD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAuD,EACvB;IAChC,8DAA8D;IAC9D,OAAO,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAAA,CAClD"}
|
package/lib/useTokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../src/useTokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMpH,MAAM,UAAU,cAAc,CAAU,GAAG,MAAgC;
|
|
1
|
+
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../src/useTokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMpH,MAAM,UAAU,cAAc,CAAU,GAAG,MAAgC,EAAsB;IAC/F,OAAO,kBAAkB,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,CACpE"}
|
package/lib-commonjs/compose.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compose =
|
|
3
|
+
exports.compose = compose;
|
|
4
4
|
const composition_1 = require("@fluentui-react-native/composition");
|
|
5
5
|
const themeHelper_1 = require("./themeHelper");
|
|
6
6
|
function compose(options, base) {
|
|
7
7
|
return (0, composition_1.composeFactory)(options, themeHelper_1.themeHelper, base);
|
|
8
8
|
}
|
|
9
|
-
exports.compose = compose;
|
|
10
9
|
//# sourceMappingURL=compose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AAIpE,+CAA4C;AA8C5C,
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AAIpE,+CAA4C;AA8C5C,iBACE,OAAkG,EAClG,IAAqG,EACL;IAChG,OAAO,IAAA,4BAAc,EAAC,OAAO,EAAE,yBAAW,EAAE,IAAI,CAAC,CAAC;AAAA,CACnD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compressible =
|
|
3
|
+
exports.compressible = compressible;
|
|
4
4
|
const framework_base_1 = require("@fluentui-react-native/framework-base");
|
|
5
5
|
/**
|
|
6
6
|
* Utility function which can create function components that can be tree compressed (using the stagedRender pattern),
|
|
@@ -18,5 +18,4 @@ function compressible(fn, useTokens) {
|
|
|
18
18
|
};
|
|
19
19
|
return component;
|
|
20
20
|
}
|
|
21
|
-
exports.compressible = compressible;
|
|
22
21
|
//# sourceMappingURL=compressible.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressible.js","sourceRoot":"","sources":["../src/compressible.ts"],"names":[],"mappings":";;;AAEA,0EAAwE;AAMxE;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"compressible.js","sourceRoot":"","sources":["../src/compressible.ts"],"names":[],"mappings":";;;AAEA,0EAAwE;AAMxE;;;;;;GAMG;AACH,sBACE,EAAwB,EACxB,SAA6B,EACkB;IAG/C,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAA,gCAAe,EAAC,eAAe,CAAkB,CAAC;IAEpE,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,MAAgC,EAAE,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAAA,CACvC,CAAC;IAEF,OAAO,SAAS,CAAC;AAAA,CAClB"}
|
|
@@ -15,18 +15,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const jsx_runtime_1 = require("@fluentui-react-native/framework-base/jsx-runtime");
|
|
37
|
+
const react_1 = require("react");
|
|
26
38
|
const react_native_1 = require("react-native");
|
|
27
39
|
const framework_base_1 = require("@fluentui-react-native/framework-base");
|
|
28
40
|
const use_slot_1 = require("@fluentui-react-native/use-slot");
|
|
29
|
-
const framework_base_2 = require("@fluentui-react-native/framework-base");
|
|
30
41
|
const use_tokens_1 = require("@fluentui-react-native/use-tokens");
|
|
31
42
|
const renderer = __importStar(require("react-test-renderer"));
|
|
32
43
|
const compressible_1 = require("./compressible");
|
|
@@ -60,7 +71,7 @@ const VariantText = (0, compressible_1.compressible)((props, useTokens) => {
|
|
|
60
71
|
// now get the slot
|
|
61
72
|
const InnerText = (0, use_slot_1.useSlot)(react_native_1.Text, { ...rest, style: mergedStyle });
|
|
62
73
|
return (extra, children) => {
|
|
63
|
-
return
|
|
74
|
+
return jsx_runtime_1.jsx(InnerText, { ...extra, children: children });
|
|
64
75
|
};
|
|
65
76
|
}, useVariantTokens);
|
|
66
77
|
const SuperHeader = VariantText.customize({ header: { fontSize: 24, color: 'purple' } });
|
|
@@ -76,29 +87,31 @@ const Label = (0, compressible_1.compressible)((props, useTokens) => {
|
|
|
76
87
|
const Caption = (0, use_slot_1.useSlot)(captionSlot || VariantText, { variant: tokens.captionVariant });
|
|
77
88
|
return () => {
|
|
78
89
|
if (captionText) {
|
|
79
|
-
return (
|
|
80
|
-
|
|
81
|
-
|
|
90
|
+
return (jsx_runtime_1.jsxs(react_native_1.View, { children: [
|
|
91
|
+
jsx_runtime_1.jsx(Header, { children: headerText }), jsx_runtime_1.jsx(Caption, { children: captionText })
|
|
92
|
+
] }));
|
|
82
93
|
}
|
|
83
|
-
return
|
|
94
|
+
return jsx_runtime_1.jsx(Header, { children: headerText });
|
|
84
95
|
};
|
|
85
96
|
}, useLabelTokens);
|
|
86
97
|
describe('compressible tests', () => {
|
|
87
98
|
it('Two labels, one with caption and one without', () => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
let component;
|
|
100
|
+
(0, react_1.act)(() => {
|
|
101
|
+
component = renderer.create(jsx_runtime_1.jsxs(react_native_1.View, { children: [
|
|
102
|
+
jsx_runtime_1.jsx(Label, { headerText: "Header1" }), jsx_runtime_1.jsx(Label, { headerText: "Header2", captionText: "Caption2" })
|
|
103
|
+
] }));
|
|
104
|
+
});
|
|
105
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
94
106
|
});
|
|
95
107
|
it('Two labels, one plugging in SuperHeader instead', () => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
let component;
|
|
109
|
+
(0, react_1.act)(() => {
|
|
110
|
+
component = renderer.create(jsx_runtime_1.jsxs(react_native_1.View, { children: [
|
|
111
|
+
jsx_runtime_1.jsx(Label, { headerText: "Super Header", headerSlot: SuperHeader, captionText: "Normal caption" }), jsx_runtime_1.jsx(Label, { headerText: "Normal Header", captionText: "Another normal caption" })
|
|
112
|
+
] }));
|
|
113
|
+
});
|
|
114
|
+
expect(component.toJSON()).toMatchSnapshot();
|
|
102
115
|
});
|
|
103
116
|
});
|
|
104
117
|
//# sourceMappingURL=compressible.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressible.test.js","sourceRoot":"","sources":["../src/compressible.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compressible.test.js","sourceRoot":"","sources":["../src/compressible.test.tsx"],"names":[],"mappings":"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"}
|
package/lib-commonjs/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.patchTokens = exports.customizable = exports.buildUseTokens = exports.applyTokenLayers = exports.applyPropsToTokens = exports.buildUseStyling = exports.buildProps = exports.useFluentTheme = exports.compressible = exports.compose = exports.useTheme = exports.ThemeContext = exports.processImmutable = exports.immutableMergeCore = exports.immutableMerge = exports.buildUseSlots = exports.withSlots = exports.stagedComponent = exports.renderSlot = exports.useSlot = exports.tokenBuilder = exports.textTokens = exports.shadowTokens = exports.shadowStyles = exports.layoutTokens = exports.layoutStyles = exports.getPaletteFromTheme = exports.foregroundColorTokens = exports.fontStyles = exports.colorTokens = exports.borderTokens = exports.borderStyles = exports.backgroundColorTokens = exports.mergeStyles = exports.mergeProps = exports.memoize = exports.getTypedMemoCache = exports.getMemoCache = void 0;
|
|
4
|
-
|
|
4
|
+
const framework_base_1 = require("@fluentui-react-native/framework-base");
|
|
5
5
|
Object.defineProperty(exports, "getMemoCache", { enumerable: true, get: function () { return framework_base_1.getMemoCache; } });
|
|
6
6
|
Object.defineProperty(exports, "getTypedMemoCache", { enumerable: true, get: function () { return framework_base_1.getTypedMemoCache; } });
|
|
7
7
|
Object.defineProperty(exports, "memoize", { enumerable: true, get: function () { return framework_base_1.memoize; } });
|
|
8
|
-
|
|
8
|
+
const framework_base_2 = require("@fluentui-react-native/framework-base");
|
|
9
9
|
Object.defineProperty(exports, "mergeProps", { enumerable: true, get: function () { return framework_base_2.mergeProps; } });
|
|
10
10
|
Object.defineProperty(exports, "mergeStyles", { enumerable: true, get: function () { return framework_base_2.mergeStyles; } });
|
|
11
|
-
|
|
11
|
+
const tokens_1 = require("@fluentui-react-native/tokens");
|
|
12
12
|
Object.defineProperty(exports, "backgroundColorTokens", { enumerable: true, get: function () { return tokens_1.backgroundColorTokens; } });
|
|
13
13
|
Object.defineProperty(exports, "borderStyles", { enumerable: true, get: function () { return tokens_1.borderStyles; } });
|
|
14
14
|
Object.defineProperty(exports, "borderTokens", { enumerable: true, get: function () { return tokens_1.borderTokens; } });
|
|
@@ -22,31 +22,31 @@ Object.defineProperty(exports, "shadowStyles", { enumerable: true, get: function
|
|
|
22
22
|
Object.defineProperty(exports, "shadowTokens", { enumerable: true, get: function () { return tokens_1.shadowTokens; } });
|
|
23
23
|
Object.defineProperty(exports, "textTokens", { enumerable: true, get: function () { return tokens_1.textTokens; } });
|
|
24
24
|
Object.defineProperty(exports, "tokenBuilder", { enumerable: true, get: function () { return tokens_1.tokenBuilder; } });
|
|
25
|
-
|
|
25
|
+
const use_slot_1 = require("@fluentui-react-native/use-slot");
|
|
26
26
|
Object.defineProperty(exports, "useSlot", { enumerable: true, get: function () { return use_slot_1.useSlot; } });
|
|
27
|
-
|
|
27
|
+
const framework_base_3 = require("@fluentui-react-native/framework-base");
|
|
28
28
|
Object.defineProperty(exports, "renderSlot", { enumerable: true, get: function () { return framework_base_3.renderSlot; } });
|
|
29
29
|
Object.defineProperty(exports, "stagedComponent", { enumerable: true, get: function () { return framework_base_3.stagedComponent; } });
|
|
30
30
|
Object.defineProperty(exports, "withSlots", { enumerable: true, get: function () { return framework_base_3.withSlots; } });
|
|
31
|
-
|
|
31
|
+
const use_slots_1 = require("@fluentui-react-native/use-slots");
|
|
32
32
|
Object.defineProperty(exports, "buildUseSlots", { enumerable: true, get: function () { return use_slots_1.buildUseSlots; } });
|
|
33
|
-
|
|
33
|
+
const framework_base_4 = require("@fluentui-react-native/framework-base");
|
|
34
34
|
Object.defineProperty(exports, "immutableMerge", { enumerable: true, get: function () { return framework_base_4.immutableMerge; } });
|
|
35
35
|
Object.defineProperty(exports, "immutableMergeCore", { enumerable: true, get: function () { return framework_base_4.immutableMergeCore; } });
|
|
36
36
|
Object.defineProperty(exports, "processImmutable", { enumerable: true, get: function () { return framework_base_4.processImmutable; } });
|
|
37
|
-
|
|
37
|
+
const theme_types_1 = require("@fluentui-react-native/theme-types");
|
|
38
38
|
Object.defineProperty(exports, "ThemeContext", { enumerable: true, get: function () { return theme_types_1.ThemeContext; } });
|
|
39
39
|
Object.defineProperty(exports, "useTheme", { enumerable: true, get: function () { return theme_types_1.useTheme; } });
|
|
40
|
-
|
|
40
|
+
const compose_1 = require("./compose");
|
|
41
41
|
Object.defineProperty(exports, "compose", { enumerable: true, get: function () { return compose_1.compose; } });
|
|
42
|
-
|
|
42
|
+
const compressible_1 = require("./compressible");
|
|
43
43
|
Object.defineProperty(exports, "compressible", { enumerable: true, get: function () { return compressible_1.compressible; } });
|
|
44
|
-
|
|
44
|
+
const useFluentTheme_1 = require("./useFluentTheme");
|
|
45
45
|
Object.defineProperty(exports, "useFluentTheme", { enumerable: true, get: function () { return useFluentTheme_1.useFluentTheme; } });
|
|
46
|
-
|
|
46
|
+
const useStyling_1 = require("./useStyling");
|
|
47
47
|
Object.defineProperty(exports, "buildProps", { enumerable: true, get: function () { return useStyling_1.buildProps; } });
|
|
48
48
|
Object.defineProperty(exports, "buildUseStyling", { enumerable: true, get: function () { return useStyling_1.buildUseStyling; } });
|
|
49
|
-
|
|
49
|
+
const useTokens_1 = require("./useTokens");
|
|
50
50
|
Object.defineProperty(exports, "applyPropsToTokens", { enumerable: true, get: function () { return useTokens_1.applyPropsToTokens; } });
|
|
51
51
|
Object.defineProperty(exports, "applyTokenLayers", { enumerable: true, get: function () { return useTokens_1.applyTokenLayers; } });
|
|
52
52
|
Object.defineProperty(exports, "buildUseTokens", { enumerable: true, get: function () { return useTokens_1.buildUseTokens; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,0EAAiG;AAAxF,8GAAA,YAAY,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,yGAAA,OAAO,OAAA;AAGjD,0EAAgF;AAAvE,4GAAA,UAAU,OAAA;AAAE,6GAAA,WAAW,OAAA;AAEhC,0DAcuC;AAbrC,+GAAA,qBAAqB,OAAA;AACrB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,+GAAA,qBAAqB,OAAA;AACrB,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,oGAAA,UAAU,OAAA;AACV,sGAAA,YAAY,OAAA;AAed,8DAA0D;AAAjD,mGAAA,OAAO,OAAA;AAChB,0EAA+F;AAAtF,4GAAA,UAAU,OAAA;AAAE,iHAAA,eAAe,OAAA;AAAE,2GAAA,SAAS,OAAA;AAG/C,gEAAiE;AAAxD,0GAAA,aAAa,OAAA;AAGtB,0EAA6G;AAApG,gHAAA,cAAc,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAU7D,oEAA4E;AAAnE,2GAAA,YAAY,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAgC/B,uCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAWhB,iDAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,6CAA2D;AAAlD,wGAAA,UAAU,OAAA;AAAE,6GAAA,eAAe,OAAA;AAEpC,2CAA8G;AAArG,+GAAA,kBAAkB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,wGAAA,WAAW,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeHelper.js","sourceRoot":"","sources":["../src/themeHelper.ts"],"names":[],"mappings":";;;AAGA,qDAAkD;AAErC,QAAA,WAAW,GAAuB;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,+BAAc,GAAE;IAChC,gBAAgB,EAAE,CAAC,KAAY,EAAE,IAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"themeHelper.js","sourceRoot":"","sources":["../src/themeHelper.ts"],"names":[],"mappings":";;;AAGA,qDAAkD;AAErC,QAAA,WAAW,GAAuB;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,+BAAc,GAAE;IAChC,gBAAgB,EAAE,CAAC,KAAY,EAAE,IAAY,EAAE,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAAA,CACzB;CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useFluentTheme =
|
|
3
|
+
exports.useFluentTheme = useFluentTheme;
|
|
4
4
|
const default_theme_1 = require("@fluentui-react-native/default-theme");
|
|
5
5
|
const theme_types_1 = require("@fluentui-react-native/theme-types");
|
|
6
6
|
/**
|
|
@@ -11,5 +11,4 @@ const theme_types_1 = require("@fluentui-react-native/theme-types");
|
|
|
11
11
|
function useFluentTheme() {
|
|
12
12
|
return (0, theme_types_1.useTheme)() || default_theme_1.defaultFluentTheme;
|
|
13
13
|
}
|
|
14
|
-
exports.useFluentTheme = useFluentTheme;
|
|
15
14
|
//# sourceMappingURL=useFluentTheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFluentTheme.js","sourceRoot":"","sources":["../src/useFluentTheme.ts"],"names":[],"mappings":";;;AAAA,wEAA0E;AAE1E,oEAA8D;AAE9D;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"useFluentTheme.js","sourceRoot":"","sources":["../src/useFluentTheme.ts"],"names":[],"mappings":";;;AAAA,wEAA0E;AAE1E,oEAA8D;AAE9D;;;;GAIG;AACH,0BAAwC;IACtC,OAAO,IAAA,sBAAQ,GAAE,IAAI,kCAAkB,CAAC;AAAA,CACzC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.buildProps = buildProps;
|
|
4
|
+
exports.buildUseStyling = buildUseStyling;
|
|
4
5
|
const use_styling_1 = require("@fluentui-react-native/use-styling");
|
|
5
6
|
const themeHelper_1 = require("./themeHelper");
|
|
6
7
|
function buildProps(fn, keys) {
|
|
7
8
|
return (0, use_styling_1.buildProps)(fn, keys);
|
|
8
9
|
}
|
|
9
|
-
exports.buildProps = buildProps;
|
|
10
10
|
/**
|
|
11
11
|
* Construct a useStyling hook which returns styled slot props based on props and tokens defined in options and in the theme
|
|
12
12
|
*
|
|
@@ -16,5 +16,4 @@ function buildUseStyling(options) {
|
|
|
16
16
|
// create a cache instance for this use styling implementation
|
|
17
17
|
return (0, use_styling_1.buildUseStyling)(options, themeHelper_1.themeHelper);
|
|
18
18
|
}
|
|
19
|
-
exports.buildUseStyling = buildUseStyling;
|
|
20
19
|
//# sourceMappingURL=useStyling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStyling.js","sourceRoot":"","sources":["../src/useStyling.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStyling.js","sourceRoot":"","sources":["../src/useStyling.ts"],"names":[],"mappings":";;;;AAaA,oEAA0H;AAE1H,+CAA4C;AAI5C,oBACE,EAA6C,EAC7C,IAAwB,EACK;IAC7B,OAAO,IAAA,wBAAc,EAAyB,EAAE,EAAE,IAAI,CAAC,CAAC;AAAA,CACzD;AAMD;;;;GAIG;AACH,yBACE,OAAuD,EACvB;IAChC,8DAA8D;IAC9D,OAAO,IAAA,6BAAmB,EAAC,OAAO,EAAE,yBAAW,CAAC,CAAC;AAAA,CAClD"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.patchTokens = exports.customizable = exports.applyPropsToTokens = exports.applyTokenLayers = void 0;
|
|
4
|
+
exports.buildUseTokens = buildUseTokens;
|
|
4
5
|
const use_tokens_1 = require("@fluentui-react-native/use-tokens");
|
|
5
6
|
const themeHelper_1 = require("./themeHelper");
|
|
6
|
-
|
|
7
|
+
const use_tokens_2 = require("@fluentui-react-native/use-tokens");
|
|
7
8
|
Object.defineProperty(exports, "applyTokenLayers", { enumerable: true, get: function () { return use_tokens_2.applyTokenLayers; } });
|
|
8
9
|
Object.defineProperty(exports, "applyPropsToTokens", { enumerable: true, get: function () { return use_tokens_2.applyPropsToTokens; } });
|
|
9
10
|
Object.defineProperty(exports, "customizable", { enumerable: true, get: function () { return use_tokens_2.customizable; } });
|
|
@@ -11,5 +12,4 @@ Object.defineProperty(exports, "patchTokens", { enumerable: true, get: function
|
|
|
11
12
|
function buildUseTokens(...tokens) {
|
|
12
13
|
return (0, use_tokens_1.buildUseTokens)(themeHelper_1.themeHelper.getComponentInfo, ...tokens);
|
|
13
14
|
}
|
|
14
|
-
exports.buildUseTokens = buildUseTokens;
|
|
15
15
|
//# sourceMappingURL=useTokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../src/useTokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../src/useTokens.ts"],"names":[],"mappings":";;;;AAEA,kEAAyF;AAEzF,+CAA4C;AAG5C,kEAAoH;AAA3G,8GAAA,gBAAgB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,yGAAA,WAAW,OAAA;AAMxE,wBAAwC,GAAG,MAAgC,EAAsB;IAC/F,OAAO,IAAA,2BAAkB,EAAC,yBAAW,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,CACpE"}
|
package/package.json
CHANGED
|
@@ -1,85 +1,96 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "Component framework used by fluentui react native controls",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/microsoft/fluentui-react-native.git",
|
|
10
|
+
"directory": "packages/framework/framework"
|
|
11
|
+
},
|
|
5
12
|
"main": "lib-commonjs/index.js",
|
|
6
13
|
"module": "lib/index.js",
|
|
7
|
-
"
|
|
8
|
-
"typings": "lib/index.d.ts",
|
|
14
|
+
"types": "lib/index.d.ts",
|
|
9
15
|
"exports": {
|
|
10
16
|
".": {
|
|
17
|
+
"types": "./lib/index.d.ts",
|
|
11
18
|
"import": "./lib/index.js",
|
|
12
19
|
"require": "./lib-commonjs/index.js",
|
|
13
|
-
"
|
|
20
|
+
"default": "./src/index.ts"
|
|
14
21
|
}
|
|
15
22
|
},
|
|
16
23
|
"scripts": {
|
|
17
24
|
"build": "fluentui-scripts build",
|
|
25
|
+
"build-cjs": "tsgo --outDir lib-commonjs",
|
|
26
|
+
"build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler",
|
|
18
27
|
"clean": "fluentui-scripts clean",
|
|
19
28
|
"depcheck": "fluentui-scripts depcheck",
|
|
20
|
-
"just": "fluentui-scripts",
|
|
21
29
|
"lint": "fluentui-scripts eslint",
|
|
22
|
-
"
|
|
30
|
+
"lint-package": "fluentui-scripts lint-package",
|
|
31
|
+
"format": "fluentui-scripts format",
|
|
23
32
|
"start-test": "fluentui-scripts jest-watch",
|
|
33
|
+
"start:tester": "rnx-cli start",
|
|
24
34
|
"test": "fluentui-scripts jest",
|
|
25
|
-
"update-snapshots": "fluentui-scripts jest -u"
|
|
26
|
-
"prettier": "fluentui-scripts prettier",
|
|
27
|
-
"prettier-fix": "fluentui-scripts prettier --fix true"
|
|
28
|
-
},
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "https://github.com/microsoft/fluentui-react-native.git",
|
|
32
|
-
"directory": "packages/framework/framework"
|
|
35
|
+
"update-snapshots": "fluentui-scripts jest -u"
|
|
33
36
|
},
|
|
34
37
|
"dependencies": {
|
|
35
|
-
"@fluentui-react-native/composition": "0.
|
|
36
|
-
"@fluentui-react-native/default-theme": "0.
|
|
37
|
-
"@fluentui-react-native/framework-base": "0.
|
|
38
|
-
"@fluentui-react-native/theme-types": "0.
|
|
39
|
-
"@fluentui-react-native/tokens": "0.
|
|
40
|
-
"@fluentui-react-native/use-slot": "0.
|
|
41
|
-
"@fluentui-react-native/use-slots": "0.
|
|
42
|
-
"@fluentui-react-native/use-styling": "0.
|
|
43
|
-
"@fluentui-react-native/use-tokens": "0.
|
|
38
|
+
"@fluentui-react-native/composition": "0.12.1",
|
|
39
|
+
"@fluentui-react-native/default-theme": "0.27.1",
|
|
40
|
+
"@fluentui-react-native/framework-base": "0.3.1",
|
|
41
|
+
"@fluentui-react-native/theme-types": "0.44.1",
|
|
42
|
+
"@fluentui-react-native/tokens": "0.24.1",
|
|
43
|
+
"@fluentui-react-native/use-slot": "0.7.1",
|
|
44
|
+
"@fluentui-react-native/use-slots": "0.11.1",
|
|
45
|
+
"@fluentui-react-native/use-styling": "0.14.1",
|
|
46
|
+
"@fluentui-react-native/use-tokens": "0.7.1"
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@babel/core": "^7.20.0",
|
|
47
|
-
"@fluentui-react-native/
|
|
48
|
-
"@fluentui-react-native/
|
|
49
|
-
"@fluentui-react-native/
|
|
50
|
-
"@react-native/
|
|
51
|
-
"@react-native/
|
|
52
|
-
"@
|
|
53
|
-
"@
|
|
54
|
-
"react": "
|
|
55
|
-
"react-native": "^0.
|
|
56
|
-
"react-native-
|
|
57
|
-
"
|
|
58
|
-
"react
|
|
50
|
+
"@fluentui-react-native/babel-config": "0.1.1",
|
|
51
|
+
"@fluentui-react-native/eslint-config-rules": "0.1.2",
|
|
52
|
+
"@fluentui-react-native/jest-config": "0.1.0",
|
|
53
|
+
"@fluentui-react-native/kit-config": "0.1.2",
|
|
54
|
+
"@fluentui-react-native/scripts": "0.1.0",
|
|
55
|
+
"@react-native-community/cli": "^20.0.0",
|
|
56
|
+
"@react-native-community/cli-platform-android": "^20.0.0",
|
|
57
|
+
"@react-native-community/cli-platform-ios": "^20.0.0",
|
|
58
|
+
"@react-native/babel-preset": "^0.81.0",
|
|
59
|
+
"@react-native/metro-config": "^0.81.0",
|
|
60
|
+
"@rnx-kit/cli": "^1.0.0",
|
|
61
|
+
"@types/react": "~19.1.0",
|
|
62
|
+
"@types/react-test-renderer": "^19.1.0",
|
|
63
|
+
"react": "19.1.0",
|
|
64
|
+
"react-native": "^0.81.0",
|
|
65
|
+
"react-native-macos": "^0.81.0",
|
|
66
|
+
"react-native-windows": "^0.81.0",
|
|
67
|
+
"react-test-renderer": "19.1.0"
|
|
59
68
|
},
|
|
60
69
|
"peerDependencies": {
|
|
61
70
|
"@office-iss/react-native-win32": "^0.74.0",
|
|
62
|
-
"react": "18.2.0",
|
|
63
|
-
"react
|
|
64
|
-
"react-native
|
|
65
|
-
"react-native-
|
|
71
|
+
"@types/react": "~18.2.0 || ~19.0.0 || ~19.1.0",
|
|
72
|
+
"react": "18.2.0 || 19.0.0 || 19.1.0",
|
|
73
|
+
"react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0",
|
|
74
|
+
"react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0",
|
|
75
|
+
"react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0"
|
|
76
|
+
},
|
|
77
|
+
"peerDependenciesMeta": {
|
|
78
|
+
"@office-iss/react-native-win32": {
|
|
79
|
+
"optional": true
|
|
80
|
+
},
|
|
81
|
+
"@types/react": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
84
|
+
"react-native-macos": {
|
|
85
|
+
"optional": true
|
|
86
|
+
},
|
|
87
|
+
"react-native-windows": {
|
|
88
|
+
"optional": true
|
|
89
|
+
}
|
|
66
90
|
},
|
|
67
|
-
"author": "",
|
|
68
|
-
"license": "MIT",
|
|
69
91
|
"rnx-kit": {
|
|
70
92
|
"kitType": "library",
|
|
71
93
|
"alignDeps": {
|
|
72
|
-
"presets": [
|
|
73
|
-
"microsoft/react-native"
|
|
74
|
-
],
|
|
75
|
-
"requirements": {
|
|
76
|
-
"development": [
|
|
77
|
-
"react-native@0.74"
|
|
78
|
-
],
|
|
79
|
-
"production": [
|
|
80
|
-
"react-native@0.73 || 0.74"
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
94
|
"capabilities": [
|
|
84
95
|
"babel-preset-react-native",
|
|
85
96
|
"core",
|
|
@@ -88,19 +99,11 @@
|
|
|
88
99
|
"core-macos",
|
|
89
100
|
"core-windows",
|
|
90
101
|
"react",
|
|
91
|
-
"react-test-renderer"
|
|
102
|
+
"react-test-renderer",
|
|
103
|
+
"tools-core",
|
|
104
|
+
"tools-jest"
|
|
92
105
|
]
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"peerDependenciesMeta": {
|
|
96
|
-
"@office-iss/react-native-win32": {
|
|
97
|
-
"optional": true
|
|
98
106
|
},
|
|
99
|
-
"react-native-
|
|
100
|
-
"optional": true
|
|
101
|
-
},
|
|
102
|
-
"react-native-windows": {
|
|
103
|
-
"optional": true
|
|
104
|
-
}
|
|
107
|
+
"extends": "@fluentui-react-native/kit-config"
|
|
105
108
|
}
|
|
106
|
-
}
|
|
109
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
/** @
|
|
2
|
-
/** @jsx withSlots */
|
|
1
|
+
/** @jsxImportSource @fluentui-react-native/framework-base */
|
|
3
2
|
import * as React from 'react';
|
|
3
|
+
import { act } from 'react';
|
|
4
4
|
import type { TextProps, TextStyle } from 'react-native';
|
|
5
5
|
import { Text, View } from 'react-native';
|
|
6
6
|
|
|
7
7
|
import { mergeStyles } from '@fluentui-react-native/framework-base';
|
|
8
8
|
import type { Theme } from '@fluentui-react-native/theme-types';
|
|
9
9
|
import { useSlot } from '@fluentui-react-native/use-slot';
|
|
10
|
-
import { withSlots } from '@fluentui-react-native/framework-base';
|
|
11
10
|
import { applyTokenLayers } from '@fluentui-react-native/use-tokens';
|
|
12
11
|
import * as renderer from 'react-test-renderer';
|
|
13
12
|
|
|
@@ -54,7 +53,7 @@ const VariantText = compressible<VariantTextProps, VariantTextTokens>(
|
|
|
54
53
|
// now apply the alternate layer tokens as appropriate
|
|
55
54
|
[tokens, cache] = applyTokenLayers(tokens, ['normal', 'header', 'caption'], cache, (layer) => layer === variant);
|
|
56
55
|
// merge styles together with what is passed in
|
|
57
|
-
const mergedStyle = mergeStyles({ color: tokens.color, fontSize: tokens.fontSize, fontWeight: tokens.fontWeight }, style);
|
|
56
|
+
const mergedStyle = mergeStyles<TextStyle>({ color: tokens.color, fontSize: tokens.fontSize, fontWeight: tokens.fontWeight }, style);
|
|
58
57
|
// now get the slot
|
|
59
58
|
const InnerText = useSlot<TextProps>(Text, { ...rest, style: mergedStyle });
|
|
60
59
|
|
|
@@ -105,26 +104,28 @@ const Label = compressible<LabelProps, LabelTokens>((props: LabelProps, useToken
|
|
|
105
104
|
|
|
106
105
|
describe('compressible tests', () => {
|
|
107
106
|
it('Two labels, one with caption and one without', () => {
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
let component: renderer.ReactTestRenderer;
|
|
108
|
+
act(() => {
|
|
109
|
+
component = renderer.create(
|
|
110
110
|
<View>
|
|
111
111
|
<Label headerText="Header1" />
|
|
112
112
|
<Label headerText="Header2" captionText="Caption2" />
|
|
113
113
|
</View>,
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
expect(
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
expect(component!.toJSON()).toMatchSnapshot();
|
|
117
117
|
});
|
|
118
118
|
|
|
119
119
|
it('Two labels, one plugging in SuperHeader instead', () => {
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
let component: renderer.ReactTestRenderer;
|
|
121
|
+
act(() => {
|
|
122
|
+
component = renderer.create(
|
|
122
123
|
<View>
|
|
123
124
|
<Label headerText="Super Header" headerSlot={SuperHeader} captionText="Normal caption" />
|
|
124
125
|
<Label headerText="Normal Header" captionText="Another normal caption" />
|
|
125
126
|
</View>,
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
expect(
|
|
127
|
+
);
|
|
128
|
+
});
|
|
129
|
+
expect(component!.toJSON()).toMatchSnapshot();
|
|
129
130
|
});
|
|
130
131
|
});
|