@fluentui-react-native/text 0.18.2 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +46 -1
- package/CHANGELOG.md +15 -2
- package/lib/Text.d.ts.map +1 -1
- package/lib/Text.js +16 -11
- package/lib/Text.js.map +1 -1
- package/lib/Text.types.d.ts +9 -0
- package/lib/Text.types.d.ts.map +1 -1
- package/lib/Variants.ios.js +1 -1
- package/lib/Variants.ios.js.map +1 -1
- package/lib-commonjs/Text.d.ts.map +1 -1
- package/lib-commonjs/Text.js +16 -11
- package/lib-commonjs/Text.js.map +1 -1
- package/lib-commonjs/Text.types.d.ts +9 -0
- package/lib-commonjs/Text.types.d.ts.map +1 -1
- package/lib-commonjs/Variants.ios.js +1 -1
- package/lib-commonjs/Variants.ios.js.map +1 -1
- package/package.json +6 -6
- package/src/Text.tsx +16 -8
- package/src/Text.types.ts +12 -1
- package/src/Variants.ios.ts +1 -1
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,52 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/text",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Thu, 15 Dec 2022 14:47:33 GMT",
|
|
6
|
+
"tag": "@fluentui-react-native/text_v0.19.0",
|
|
7
|
+
"version": "0.19.0",
|
|
8
|
+
"comments": {
|
|
9
|
+
"minor": [
|
|
10
|
+
{
|
|
11
|
+
"author": "adgleitm@microsoft.com",
|
|
12
|
+
"package": "@fluentui-react-native/text",
|
|
13
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670",
|
|
14
|
+
"comment": "Add maximumSize"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "beachball",
|
|
18
|
+
"package": "@fluentui-react-native/text",
|
|
19
|
+
"comment": "Bump @uifabricshared/foundation-compose to v1.12.27",
|
|
20
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "beachball",
|
|
24
|
+
"package": "@fluentui-react-native/text",
|
|
25
|
+
"comment": "Bump @fluentui-react-native/framework to v0.8.26",
|
|
26
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "beachball",
|
|
30
|
+
"package": "@fluentui-react-native/text",
|
|
31
|
+
"comment": "Bump @fluentui-react-native/interactive-hooks to v0.22.1",
|
|
32
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"author": "beachball",
|
|
36
|
+
"package": "@fluentui-react-native/text",
|
|
37
|
+
"comment": "Bump @fluentui-react-native/theme-tokens to v0.22.2",
|
|
38
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"author": "beachball",
|
|
42
|
+
"package": "@fluentui-react-native/text",
|
|
43
|
+
"comment": "Bump @fluentui-react-native/tokens to v0.20.0",
|
|
44
|
+
"commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"date": "Fri, 09 Dec 2022 05:23:38 GMT",
|
|
6
51
|
"tag": "@fluentui-react-native/text_v0.18.2",
|
|
7
52
|
"version": "0.18.2",
|
|
8
53
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/text
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 15 Dec 2022 14:47:33 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.19.0
|
|
8
|
+
|
|
9
|
+
Thu, 15 Dec 2022 14:47:33 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- Add maximumSize (adgleitm@microsoft.com)
|
|
14
|
+
- Bump @uifabricshared/foundation-compose to v1.12.27
|
|
15
|
+
- Bump @fluentui-react-native/framework to v0.8.26
|
|
16
|
+
- Bump @fluentui-react-native/interactive-hooks to v0.22.1
|
|
17
|
+
- Bump @fluentui-react-native/theme-tokens to v0.22.2
|
|
18
|
+
- Bump @fluentui-react-native/tokens to v0.20.0
|
|
19
|
+
|
|
7
20
|
## 0.18.2
|
|
8
21
|
|
|
9
|
-
Fri, 09 Dec 2022 05:
|
|
22
|
+
Fri, 09 Dec 2022 05:23:38 GMT
|
|
10
23
|
|
|
11
24
|
### Patches
|
|
12
25
|
|
package/lib/Text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/D,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/D,eAAO,MAAM,IAAI,kMAkJA,CAAC;AAGlB,eAAe,IAAI,CAAC"}
|
package/lib/Text.js
CHANGED
|
@@ -41,16 +41,16 @@ import { useFontMetricsScaleFactors } from '@fluentui-react-native/experimental-
|
|
|
41
41
|
var emptyProps = {};
|
|
42
42
|
export var Text = compressible(function (props, useTokens) {
|
|
43
43
|
var _a;
|
|
44
|
-
var _b;
|
|
44
|
+
var _b, _c;
|
|
45
45
|
if (props === undefined) {
|
|
46
46
|
props = emptyProps;
|
|
47
47
|
}
|
|
48
48
|
// split out color and variant from props
|
|
49
|
-
var
|
|
49
|
+
var _d = props.align, align = _d === void 0 ? undefined : _d, block = props.block, color = props.color, font = props.font, italic = props.italic, onAccessibilityTap = props.onAccessibilityTap, onKeyUp = props.onKeyUp, onKeyDown = props.onKeyDown, keyUpEvents = props.keyUpEvents, keyDownEvents = props.keyDownEvents, onPress = props.onPress, size = props.size, strikethrough = props.strikethrough, style = props.style, _e = props.truncate, truncate = _e === void 0 ? false : _e, underline = props.underline, variant = props.variant, weight = props.weight, _f = props.wrap, wrap = _f === void 0 ? true : _f, rest = __rest(props, ["align", "block", "color", "font", "italic", "onAccessibilityTap", "onKeyUp", "onKeyDown", "keyUpEvents", "keyDownEvents", "onPress", "size", "strikethrough", "style", "truncate", "underline", "variant", "weight", "wrap"]);
|
|
50
50
|
var theme = useFluentTheme();
|
|
51
51
|
// get the tokens from the theme
|
|
52
|
-
var
|
|
53
|
-
//
|
|
52
|
+
var _g = useTokens(theme), tokens = _g[0], cache = _g[1];
|
|
53
|
+
// GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
54
54
|
var fontMetricsScaleFactors = useFontMetricsScaleFactors();
|
|
55
55
|
var textAlign = I18nManager.isRTL
|
|
56
56
|
? align === 'start'
|
|
@@ -78,6 +78,7 @@ export var Text = compressible(function (props, useTokens) {
|
|
|
78
78
|
color: color,
|
|
79
79
|
variant: variant,
|
|
80
80
|
fontFamily: font == 'base' ? 'primary' : font,
|
|
81
|
+
fontMaximumSize: tokens.maximumFontSize,
|
|
81
82
|
fontSize: globalTokens.font['size' + size],
|
|
82
83
|
fontWeight: globalTokens.font.weight[weight],
|
|
83
84
|
// leave it undefined for tokens to be set by user
|
|
@@ -87,20 +88,22 @@ export var Text = compressible(function (props, useTokens) {
|
|
|
87
88
|
}), tokens = _a[0], cache = _a[1];
|
|
88
89
|
// now build the text style from tokens that can be shared between different Text instances
|
|
89
90
|
var tokenStyle = cache(function () { return (__assign({ margin: 0, color: tokens.color, fontStyle: tokens.fontStyle, textAlign: tokens.textAlign, textDecorationLine: tokens.textDecorationLine }, fontStyles.from(tokens, theme))); }, __spreadArray(['color', 'fontStyle', 'textAlign', 'textDecorationLine'], fontStyles.keys, true))[0];
|
|
90
|
-
//
|
|
91
|
+
// [GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
91
92
|
var dynamicTypeVariant = Platform.OS === 'ios' ? tokenStyle.dynamicTypeRamp : undefined;
|
|
92
|
-
|
|
93
|
+
var maximumFontSize = (_b = tokenStyle.maximumFontSize) !== null && _b !== void 0 ? _b : Number.POSITIVE_INFINITY;
|
|
93
94
|
var scaleStyleAdjustments = emptyProps;
|
|
94
95
|
// tokenStyle.fontSize and tokenStyle.lineHeight can also be strings (e.g., "14px").
|
|
95
96
|
// Therefore, we only support scaling for number-based size values in order to avoid any messy calculations.
|
|
96
97
|
if (dynamicTypeVariant !== undefined && typeof tokenStyle.fontSize === 'number' && typeof tokenStyle.lineHeight === 'number') {
|
|
97
|
-
var
|
|
98
|
+
var requestedScaleFactor = (_c = fontMetricsScaleFactors[dynamicTypeVariant]) !== null && _c !== void 0 ? _c : 1;
|
|
99
|
+
var maximumScaleFactor = maximumFontSize / tokenStyle.fontSize;
|
|
100
|
+
var scaleFactor = Math.min(requestedScaleFactor, maximumScaleFactor);
|
|
98
101
|
scaleStyleAdjustments = {
|
|
99
102
|
fontSize: tokenStyle.fontSize * scaleFactor,
|
|
100
|
-
lineHeight: tokenStyle.lineHeight * scaleFactor,
|
|
103
|
+
lineHeight: tokenStyle.lineHeight * scaleFactor, // scale accordingly with fontSize
|
|
101
104
|
};
|
|
102
105
|
}
|
|
103
|
-
// ]
|
|
106
|
+
// ]GH #2268
|
|
104
107
|
var isWinPlatform = Platform.OS === ('win32' || 'windows');
|
|
105
108
|
var filteredProps = {
|
|
106
109
|
onKeyUp: isWinPlatform ? onKeyUp : undefined,
|
|
@@ -113,9 +116,11 @@ export var Text = compressible(function (props, useTokens) {
|
|
|
113
116
|
};
|
|
114
117
|
// return a continuation function that allows this text to be compressed
|
|
115
118
|
return function (extra, children) {
|
|
116
|
-
var mergedProps = __assign(__assign(__assign(__assign(__assign(__assign({}, rest), keyProps), filteredProps), extra), (dynamicTypeVariant !== undefined && { allowFontScaling: false })), { //
|
|
119
|
+
var mergedProps = __assign(__assign(__assign(__assign(__assign(__assign({}, rest), keyProps), filteredProps), extra), (dynamicTypeVariant !== undefined && { allowFontScaling: false })), { // GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
117
120
|
onPress: onPress, numberOfLines: truncate || !wrap ? 1 : 0, style: mergeStyles(tokenStyle, props.style, extra === null || extra === void 0 ? void 0 : extra.style, scaleStyleAdjustments) });
|
|
118
|
-
|
|
121
|
+
// GH #2268: RN Text doesn't recognize these properties yet, so don't let them leak through or RN will complain about invalid props
|
|
122
|
+
delete mergedProps.style.dynamicTypeRamp;
|
|
123
|
+
delete mergedProps.style.maximumFontSize;
|
|
119
124
|
return (withSlots(RNText, __assign({ ellipsizeMode: !wrap && !truncate ? 'clip' : 'tail' }, mergedProps), children));
|
|
120
125
|
};
|
|
121
126
|
}, useTextTokens);
|
package/lib/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAqB;AACrB,OAAO,EACL,UAAU,EACV,SAAS,EAET,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,GAEZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAyB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAErG,IAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,CAAC,IAAM,IAAI,GAAG,YAAY,CAAwB,UAAC,KAAgB,EAAE,SAAgC;;;IACzG,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,UAAU,CAAC;KACpB;IAED,yCAAyC;IAEvC,IAAA,KAoBE,KAAK,MApBU,EAAjB,KAAK,mBAAG,SAAS,KAAA,EACjB,KAAK,GAmBH,KAAK,MAnBF,EACL,KAAK,GAkBH,KAAK,MAlBF,EACL,IAAI,GAiBF,KAAK,KAjBH,EACJ,MAAM,GAgBJ,KAAK,OAhBD,EACN,kBAAkB,GAehB,KAAK,mBAfW,EAClB,OAAO,GAcL,KAAK,QAdA,EACP,SAAS,GAaP,KAAK,UAbE,EACT,WAAW,GAYT,KAAK,YAZI,EACX,aAAa,GAWX,KAAK,cAXM,EACb,OAAO,GAUL,KAAK,QAVA,EACP,IAAI,GASF,KAAK,KATH,EACJ,aAAa,GAQX,KAAK,cARM,EACb,KAAK,GAOH,KAAK,MAPF,EACL,KAME,KAAK,SANS,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,GAKP,KAAK,UALE,EACT,OAAO,GAIL,KAAK,QAJA,EACP,MAAM,GAGJ,KAAK,OAHD,EACN,KAEE,KAAK,KAFI,EAAX,IAAI,mBAAG,IAAI,KAAA,EACR,IAAI,UACL,KAAK,EArBH,8NAqBL,CADQ,CACC;IACV,IAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,gCAAgC;IAC5B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAqB;AACrB,OAAO,EACL,UAAU,EACV,SAAS,EAET,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,GAEZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAyB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAErG,IAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,CAAC,IAAM,IAAI,GAAG,YAAY,CAAwB,UAAC,KAAgB,EAAE,SAAgC;;;IACzG,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,UAAU,CAAC;KACpB;IAED,yCAAyC;IAEvC,IAAA,KAoBE,KAAK,MApBU,EAAjB,KAAK,mBAAG,SAAS,KAAA,EACjB,KAAK,GAmBH,KAAK,MAnBF,EACL,KAAK,GAkBH,KAAK,MAlBF,EACL,IAAI,GAiBF,KAAK,KAjBH,EACJ,MAAM,GAgBJ,KAAK,OAhBD,EACN,kBAAkB,GAehB,KAAK,mBAfW,EAClB,OAAO,GAcL,KAAK,QAdA,EACP,SAAS,GAaP,KAAK,UAbE,EACT,WAAW,GAYT,KAAK,YAZI,EACX,aAAa,GAWX,KAAK,cAXM,EACb,OAAO,GAUL,KAAK,QAVA,EACP,IAAI,GASF,KAAK,KATH,EACJ,aAAa,GAQX,KAAK,cARM,EACb,KAAK,GAOH,KAAK,MAPF,EACL,KAME,KAAK,SANS,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,GAKP,KAAK,UALE,EACT,OAAO,GAIL,KAAK,QAJA,EACP,MAAM,GAGJ,KAAK,OAHD,EACN,KAEE,KAAK,KAFI,EAAX,IAAI,mBAAG,IAAI,KAAA,EACR,IAAI,UACL,KAAK,EArBH,8NAqBL,CADQ,CACC;IACV,IAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,gCAAgC;IAC5B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,uEAAuE;IACvE,IAAM,uBAAuB,GAAG,0BAA0B,EAAE,CAAC;IAE7D,IAAM,SAAS,GAAG,WAAW,CAAC,KAAK;QACjC,CAAC,CAAC,KAAK,KAAK,OAAO;YACjB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK,KAAK,KAAK;gBACjB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,KAAK,KAAK,OAAO;YACnB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,KAAK,KAAK,KAAK;gBACjB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,KAAK,CAAC;IAEV,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,UAAC,CAAC;QACA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,CAAC,CAAC,CAAC;SACZ;QACD,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,IAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAExD,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAChC,UAAC,KAAM;QACL,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAC9B,CAAC;IAEF,6BAA6B;IAC7B,KAAkB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;QAC3C,KAAK,OAAA;QACL,OAAO,SAAA;QACP,UAAU,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAC7C,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAoB;QAC/D,kDAAkD;QAClD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACxC,SAAS,EAAE,SAAS;QACpB,kBAAkB,EAChB,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC/H,CAAC,EAZD,MAAM,QAAA,EAAE,KAAK,QAAA,CAYX;IAEH,2FAA2F;IACpF,IAAA,UAAU,GAAI,KAAK,CACxB,cAAM,OAAA,YACJ,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAC1C,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACjC,EAPI,CAOJ,iBACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,GAAK,UAAU,CAAC,IAAI,QAC7E,GAVgB,CAUf;IAEF,wEAAwE;IACxE,IAAM,kBAAkB,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAM,eAAe,GAAG,MAAA,UAAU,CAAC,eAAe,mCAAI,MAAM,CAAC,iBAAiB,CAAC;IAE/E,IAAI,qBAAqB,GAAe,UAAU,CAAC;IACnD,oFAAoF;IACpF,4GAA4G;IAC5G,IAAI,kBAAkB,KAAK,SAAS,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ,EAAE;QAC5H,IAAM,oBAAoB,GAAG,MAAA,uBAAuB,CAAC,kBAAkB,CAAC,mCAAI,CAAC,CAAC;QAC9E,IAAM,kBAAkB,GAAG,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;QACjE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAEvE,qBAAqB,GAAG;YACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,WAAW;YAC3C,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,WAAW,EAAE,kCAAkC;SACpF,CAAC;KACH;IACD,YAAY;IAEZ,IAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,KAAK,CAAE,OAAe,IAAI,SAAS,CAAC,CAAC;IACtE,IAAM,aAAa,GAAG;QACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC5C,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACpD,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAChD,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACxD,aAAa,EAAE,SAAS;QACxB,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACzD,CAAC;IAEF,wEAAwE;IACxE,OAAO,UAAC,KAAgB,EAAE,QAAyB;QACjD,IAAM,WAAW,6DACZ,IAAI,GACJ,QAAQ,GACR,aAAa,GACb,KAAK,GACL,CAAC,kBAAkB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,KAAE,uEAAuE;YAC7I,OAAO,SAAA,EACP,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE,qBAAqB,CAAC,GACjF,CAAC;QAEF,mIAAmI;QACnI,OAAQ,WAAW,CAAC,KAAoB,CAAC,eAAe,CAAC;QACzD,OAAQ,WAAW,CAAC,KAAoB,CAAC,eAAe,CAAC;QAEzD,OAAO,CACL,UAAC,MAAM,aAAC,aAAa,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAM,WAAW,GACzE,QAAQ,CACF,CACV,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,EAAE,aAAa,CAAC,CAAC;AAClB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE5B,eAAe,IAAI,CAAC"}
|
package/lib/Text.types.d.ts
CHANGED
|
@@ -7,7 +7,16 @@ export declare const textName = "Text";
|
|
|
7
7
|
* drive decisions on how to build the styles
|
|
8
8
|
*/
|
|
9
9
|
export declare type TextTokens = Omit<FontTokens, 'fontFamily'> & IForegroundColorTokens & Omit<TextStyle, 'fontSize' | 'fontWeight' | 'color'> & {
|
|
10
|
+
/**
|
|
11
|
+
* (iOS only) The Dynamic Type ramp that a Text element should follow as the user changes their
|
|
12
|
+
* preferred content size.
|
|
13
|
+
*/
|
|
10
14
|
dynamicTypeRamp?: string;
|
|
15
|
+
/**
|
|
16
|
+
* (iOS only) The maximum font size that a Text element will grow to as the user changes their
|
|
17
|
+
* preferred content size.
|
|
18
|
+
*/
|
|
19
|
+
maximumFontSize?: number;
|
|
11
20
|
};
|
|
12
21
|
export declare type TextAlign = 'start' | 'center' | 'end' | 'justify';
|
|
13
22
|
export declare type TextFont = 'base' | 'monospace' | 'numeric';
|
package/lib/Text.types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../src/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACrD,sBAAsB,GACtB,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../src/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACrD,sBAAsB,GACtB,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG;IAErD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEJ,oBAAY,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/D,oBAAY,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AACxD,oBAAY,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAClF,oBAAY,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,oBAAY,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,KAAK,GAC/C,iBAAiB,GAAG;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC"}
|
package/lib/Variants.ios.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Text } from './Text';
|
|
2
|
-
//
|
|
2
|
+
// GH #2268: Remove "as any" designations once RN Core properly supports Dynamic Type scaling
|
|
3
3
|
export var Caption1 = Text.customize({
|
|
4
4
|
variant: 'caption1',
|
|
5
5
|
});
|
package/lib/Variants.ios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Variants.ios.js","sourceRoot":"","sources":["../src/Variants.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,
|
|
1
|
+
{"version":3,"file":"Variants.ios.js","sourceRoot":"","sources":["../src/Variants.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,6FAA6F;AAE7F,MAAM,CAAC,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU;CACb,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3C,OAAO,EAAE,gBAAgB;CACnB,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU;CACb,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO;CACV,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,aAAa;CAChB,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO;CACV,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,aAAa;CAChB,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,SAAS,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACtD,MAAM,CAAC,IAAM,eAAe,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAC5D,MAAM,CAAC,IAAM,SAAS,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACtD,MAAM,CAAC,IAAM,eAAe,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAC5D,MAAM,CAAC,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,YAAY,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACzD,MAAM,CAAC,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;IACvC,OAAO,EAAE,YAAY;CACf,CAAC,CAAC;AACV,MAAM,CAAC,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,OAAO,EAAE,SAAS;CACZ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/D,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/D,eAAO,MAAM,IAAI,kMAkJA,CAAC;AAGlB,eAAe,IAAI,CAAC"}
|
package/lib-commonjs/Text.js
CHANGED
|
@@ -47,16 +47,16 @@ var experimental_native_font_metrics_1 = require("@fluentui-react-native/experim
|
|
|
47
47
|
var emptyProps = {};
|
|
48
48
|
exports.Text = (0, framework_1.compressible)(function (props, useTokens) {
|
|
49
49
|
var _a;
|
|
50
|
-
var _b;
|
|
50
|
+
var _b, _c;
|
|
51
51
|
if (props === undefined) {
|
|
52
52
|
props = emptyProps;
|
|
53
53
|
}
|
|
54
54
|
// split out color and variant from props
|
|
55
|
-
var
|
|
55
|
+
var _d = props.align, align = _d === void 0 ? undefined : _d, block = props.block, color = props.color, font = props.font, italic = props.italic, onAccessibilityTap = props.onAccessibilityTap, onKeyUp = props.onKeyUp, onKeyDown = props.onKeyDown, keyUpEvents = props.keyUpEvents, keyDownEvents = props.keyDownEvents, onPress = props.onPress, size = props.size, strikethrough = props.strikethrough, style = props.style, _e = props.truncate, truncate = _e === void 0 ? false : _e, underline = props.underline, variant = props.variant, weight = props.weight, _f = props.wrap, wrap = _f === void 0 ? true : _f, rest = __rest(props, ["align", "block", "color", "font", "italic", "onAccessibilityTap", "onKeyUp", "onKeyDown", "keyUpEvents", "keyDownEvents", "onPress", "size", "strikethrough", "style", "truncate", "underline", "variant", "weight", "wrap"]);
|
|
56
56
|
var theme = (0, framework_1.useFluentTheme)();
|
|
57
57
|
// get the tokens from the theme
|
|
58
|
-
var
|
|
59
|
-
//
|
|
58
|
+
var _g = useTokens(theme), tokens = _g[0], cache = _g[1];
|
|
59
|
+
// GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
60
60
|
var fontMetricsScaleFactors = (0, experimental_native_font_metrics_1.useFontMetricsScaleFactors)();
|
|
61
61
|
var textAlign = react_native_1.I18nManager.isRTL
|
|
62
62
|
? align === 'start'
|
|
@@ -84,6 +84,7 @@ exports.Text = (0, framework_1.compressible)(function (props, useTokens) {
|
|
|
84
84
|
color: color,
|
|
85
85
|
variant: variant,
|
|
86
86
|
fontFamily: font == 'base' ? 'primary' : font,
|
|
87
|
+
fontMaximumSize: tokens.maximumFontSize,
|
|
87
88
|
fontSize: theme_tokens_1.globalTokens.font['size' + size],
|
|
88
89
|
fontWeight: theme_tokens_1.globalTokens.font.weight[weight],
|
|
89
90
|
// leave it undefined for tokens to be set by user
|
|
@@ -93,20 +94,22 @@ exports.Text = (0, framework_1.compressible)(function (props, useTokens) {
|
|
|
93
94
|
}), tokens = _a[0], cache = _a[1];
|
|
94
95
|
// now build the text style from tokens that can be shared between different Text instances
|
|
95
96
|
var tokenStyle = cache(function () { return (__assign({ margin: 0, color: tokens.color, fontStyle: tokens.fontStyle, textAlign: tokens.textAlign, textDecorationLine: tokens.textDecorationLine }, framework_1.fontStyles.from(tokens, theme))); }, __spreadArray(['color', 'fontStyle', 'textAlign', 'textDecorationLine'], framework_1.fontStyles.keys, true))[0];
|
|
96
|
-
//
|
|
97
|
+
// [GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
97
98
|
var dynamicTypeVariant = react_native_1.Platform.OS === 'ios' ? tokenStyle.dynamicTypeRamp : undefined;
|
|
98
|
-
|
|
99
|
+
var maximumFontSize = (_b = tokenStyle.maximumFontSize) !== null && _b !== void 0 ? _b : Number.POSITIVE_INFINITY;
|
|
99
100
|
var scaleStyleAdjustments = emptyProps;
|
|
100
101
|
// tokenStyle.fontSize and tokenStyle.lineHeight can also be strings (e.g., "14px").
|
|
101
102
|
// Therefore, we only support scaling for number-based size values in order to avoid any messy calculations.
|
|
102
103
|
if (dynamicTypeVariant !== undefined && typeof tokenStyle.fontSize === 'number' && typeof tokenStyle.lineHeight === 'number') {
|
|
103
|
-
var
|
|
104
|
+
var requestedScaleFactor = (_c = fontMetricsScaleFactors[dynamicTypeVariant]) !== null && _c !== void 0 ? _c : 1;
|
|
105
|
+
var maximumScaleFactor = maximumFontSize / tokenStyle.fontSize;
|
|
106
|
+
var scaleFactor = Math.min(requestedScaleFactor, maximumScaleFactor);
|
|
104
107
|
scaleStyleAdjustments = {
|
|
105
108
|
fontSize: tokenStyle.fontSize * scaleFactor,
|
|
106
|
-
lineHeight: tokenStyle.lineHeight * scaleFactor,
|
|
109
|
+
lineHeight: tokenStyle.lineHeight * scaleFactor, // scale accordingly with fontSize
|
|
107
110
|
};
|
|
108
111
|
}
|
|
109
|
-
// ]
|
|
112
|
+
// ]GH #2268
|
|
110
113
|
var isWinPlatform = react_native_1.Platform.OS === ('win32' || 'windows');
|
|
111
114
|
var filteredProps = {
|
|
112
115
|
onKeyUp: isWinPlatform ? onKeyUp : undefined,
|
|
@@ -119,9 +122,11 @@ exports.Text = (0, framework_1.compressible)(function (props, useTokens) {
|
|
|
119
122
|
};
|
|
120
123
|
// return a continuation function that allows this text to be compressed
|
|
121
124
|
return function (extra, children) {
|
|
122
|
-
var mergedProps = __assign(__assign(__assign(__assign(__assign(__assign({}, rest), keyProps), filteredProps), extra), (dynamicTypeVariant !== undefined && { allowFontScaling: false })), { //
|
|
125
|
+
var mergedProps = __assign(__assign(__assign(__assign(__assign(__assign({}, rest), keyProps), filteredProps), extra), (dynamicTypeVariant !== undefined && { allowFontScaling: false })), { // GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
123
126
|
onPress: onPress, numberOfLines: truncate || !wrap ? 1 : 0, style: (0, framework_1.mergeStyles)(tokenStyle, props.style, extra === null || extra === void 0 ? void 0 : extra.style, scaleStyleAdjustments) });
|
|
124
|
-
|
|
127
|
+
// GH #2268: RN Text doesn't recognize these properties yet, so don't let them leak through or RN will complain about invalid props
|
|
128
|
+
delete mergedProps.style.dynamicTypeRamp;
|
|
129
|
+
delete mergedProps.style.maximumFontSize;
|
|
125
130
|
return ((0, framework_1.withSlots)(react_native_1.Text, __assign({ ellipsizeMode: !wrap && !truncate ? 'clip' : 'tail' }, mergedProps), children));
|
|
126
131
|
};
|
|
127
132
|
}, TextTokens_1.useTextTokens);
|
package/lib-commonjs/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAqB;AACrB,8DAS0C;AAC1C,8EAAuE;AACvE,oEAAmE;AACnE,6CAAqE;AACrE,2CAA+D;AAC/D,2CAA6C;AAC7C,gDAA0B;AAC1B,4GAAqG;AAErG,IAAM,UAAU,GAAG,EAAE,CAAC;AACT,QAAA,IAAI,GAAG,IAAA,wBAAY,EAAwB,UAAC,KAAgB,EAAE,SAAgC;;;IACzG,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,UAAU,CAAC;KACpB;IAED,yCAAyC;IAEvC,IAAA,KAoBE,KAAK,MApBU,EAAjB,KAAK,mBAAG,SAAS,KAAA,EACjB,KAAK,GAmBH,KAAK,MAnBF,EACL,KAAK,GAkBH,KAAK,MAlBF,EACL,IAAI,GAiBF,KAAK,KAjBH,EACJ,MAAM,GAgBJ,KAAK,OAhBD,EACN,kBAAkB,GAehB,KAAK,mBAfW,EAClB,OAAO,GAcL,KAAK,QAdA,EACP,SAAS,GAaP,KAAK,UAbE,EACT,WAAW,GAYT,KAAK,YAZI,EACX,aAAa,GAWX,KAAK,cAXM,EACb,OAAO,GAUL,KAAK,QAVA,EACP,IAAI,GASF,KAAK,KATH,EACJ,aAAa,GAQX,KAAK,cARM,EACb,KAAK,GAOH,KAAK,MAPF,EACL,KAME,KAAK,SANS,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,GAKP,KAAK,UALE,EACT,OAAO,GAIL,KAAK,QAJA,EACP,MAAM,GAGJ,KAAK,OAHD,EACN,KAEE,KAAK,KAFI,EAAX,IAAI,mBAAG,IAAI,KAAA,EACR,IAAI,UACL,KAAK,EArBH,8NAqBL,CADQ,CACC;IACV,IAAM,KAAK,GAAG,IAAA,0BAAc,GAAE,CAAC;IAC/B,gCAAgC;IAC5B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,16 @@ export declare const textName = "Text";
|
|
|
7
7
|
* drive decisions on how to build the styles
|
|
8
8
|
*/
|
|
9
9
|
export declare type TextTokens = Omit<FontTokens, 'fontFamily'> & IForegroundColorTokens & Omit<TextStyle, 'fontSize' | 'fontWeight' | 'color'> & {
|
|
10
|
+
/**
|
|
11
|
+
* (iOS only) The Dynamic Type ramp that a Text element should follow as the user changes their
|
|
12
|
+
* preferred content size.
|
|
13
|
+
*/
|
|
10
14
|
dynamicTypeRamp?: string;
|
|
15
|
+
/**
|
|
16
|
+
* (iOS only) The maximum font size that a Text element will grow to as the user changes their
|
|
17
|
+
* preferred content size.
|
|
18
|
+
*/
|
|
19
|
+
maximumFontSize?: number;
|
|
11
20
|
};
|
|
12
21
|
export declare type TextAlign = 'start' | 'center' | 'end' | 'justify';
|
|
13
22
|
export declare type TextFont = 'base' | 'monospace' | 'numeric';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../src/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACrD,sBAAsB,GACtB,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../src/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B;;;GAGG;AACH,oBAAY,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GACrD,sBAAsB,GACtB,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG;IAErD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEJ,oBAAY,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/D,oBAAY,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AACxD,oBAAY,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAClF,oBAAY,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,oBAAY,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,KAAK,GAC/C,iBAAiB,GAAG;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Display = exports.LargeTitle = exports.Title3 = exports.Title2 = exports.Title1Strong = exports.Title1 = exports.Subtitle2Strong = exports.Subtitle2 = exports.Subtitle1Strong = exports.Subtitle1 = exports.Body2Strong = exports.Body2 = exports.Body1Strong = exports.Body1 = exports.Caption2 = exports.Caption1Strong = exports.Caption1 = void 0;
|
|
4
4
|
var Text_1 = require("./Text");
|
|
5
|
-
//
|
|
5
|
+
// GH #2268: Remove "as any" designations once RN Core properly supports Dynamic Type scaling
|
|
6
6
|
exports.Caption1 = Text_1.Text.customize({
|
|
7
7
|
variant: 'caption1',
|
|
8
8
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Variants.ios.js","sourceRoot":"","sources":["../src/Variants.ios.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAE9B,
|
|
1
|
+
{"version":3,"file":"Variants.ios.js","sourceRoot":"","sources":["../src/Variants.ios.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAE9B,6FAA6F;AAEhF,QAAA,QAAQ,GAAG,WAAI,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU;CACb,CAAC,CAAC;AACG,QAAA,cAAc,GAAG,WAAI,CAAC,SAAS,CAAC;IAC3C,OAAO,EAAE,gBAAgB;CACnB,CAAC,CAAC;AACG,QAAA,QAAQ,GAAG,WAAI,CAAC,SAAS,CAAC;IACrC,OAAO,EAAE,UAAU;CACb,CAAC,CAAC;AACG,QAAA,KAAK,GAAG,WAAI,CAAC,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO;CACV,CAAC,CAAC;AACG,QAAA,WAAW,GAAG,WAAI,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,aAAa;CAChB,CAAC,CAAC;AACG,QAAA,KAAK,GAAG,WAAI,CAAC,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO;CACV,CAAC,CAAC;AACG,QAAA,WAAW,GAAG,WAAI,CAAC,SAAS,CAAC;IACxC,OAAO,EAAE,aAAa;CAChB,CAAC,CAAC;AACG,QAAA,SAAS,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACzC,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAC/C,QAAA,SAAS,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACzC,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAC/C,QAAA,MAAM,GAAG,WAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACG,QAAA,YAAY,GAAG,IAAI,CAAC,CAAC,uBAAuB;AAC5C,QAAA,MAAM,GAAG,WAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACG,QAAA,MAAM,GAAG,WAAI,CAAC,SAAS,CAAC;IACnC,OAAO,EAAE,QAAQ;CACX,CAAC,CAAC;AACG,QAAA,UAAU,GAAG,WAAI,CAAC,SAAS,CAAC;IACvC,OAAO,EAAE,YAAY;CACf,CAAC,CAAC;AACG,QAAA,OAAO,GAAG,WAAI,CAAC,SAAS,CAAC;IACpC,OAAO,EAAE,SAAS;CACZ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/text",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "A cross-platform Text component using the Fluent Design System",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"directory": "packages/components/text"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@uifabricshared/foundation-compose": "^1.12.
|
|
25
|
+
"@uifabricshared/foundation-compose": "^1.12.27",
|
|
26
26
|
"@fluentui-react-native/adapters": ">=0.10.0 <1.0.0",
|
|
27
27
|
"@fluentui-react-native/experimental-native-font-metrics": "^0.3.0",
|
|
28
|
-
"@fluentui-react-native/framework": "0.8.
|
|
29
|
-
"@fluentui-react-native/interactive-hooks": ">=0.22.
|
|
30
|
-
"@fluentui-react-native/theme-tokens": ">=0.22.
|
|
31
|
-
"@fluentui-react-native/tokens": ">=0.
|
|
28
|
+
"@fluentui-react-native/framework": "0.8.26",
|
|
29
|
+
"@fluentui-react-native/interactive-hooks": ">=0.22.1 <1.0.0",
|
|
30
|
+
"@fluentui-react-native/theme-tokens": ">=0.22.2 <1.0.0",
|
|
31
|
+
"@fluentui-react-native/tokens": ">=0.20.0 <1.0.0",
|
|
32
32
|
"tslib": "^2.3.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
package/src/Text.tsx
CHANGED
|
@@ -50,7 +50,7 @@ export const Text = compressible<TextProps, TextTokens>((props: TextProps, useTo
|
|
|
50
50
|
// get the tokens from the theme
|
|
51
51
|
let [tokens, cache] = useTokens(theme);
|
|
52
52
|
|
|
53
|
-
//
|
|
53
|
+
// GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
54
54
|
const fontMetricsScaleFactors = useFontMetricsScaleFactors();
|
|
55
55
|
|
|
56
56
|
const textAlign = I18nManager.isRTL
|
|
@@ -88,6 +88,7 @@ export const Text = compressible<TextProps, TextTokens>((props: TextProps, useTo
|
|
|
88
88
|
color,
|
|
89
89
|
variant,
|
|
90
90
|
fontFamily: font == 'base' ? 'primary' : font,
|
|
91
|
+
fontMaximumSize: tokens.maximumFontSize,
|
|
91
92
|
fontSize: globalTokens.font['size' + size],
|
|
92
93
|
fontWeight: globalTokens.font.weight[weight] as FontWeightValue,
|
|
93
94
|
// leave it undefined for tokens to be set by user
|
|
@@ -110,21 +111,24 @@ export const Text = compressible<TextProps, TextTokens>((props: TextProps, useTo
|
|
|
110
111
|
['color', 'fontStyle', 'textAlign', 'textDecorationLine', ...fontStyles.keys],
|
|
111
112
|
);
|
|
112
113
|
|
|
113
|
-
//
|
|
114
|
+
// [GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
114
115
|
const dynamicTypeVariant = Platform.OS === 'ios' ? tokenStyle.dynamicTypeRamp : undefined;
|
|
116
|
+
const maximumFontSize = tokenStyle.maximumFontSize ?? Number.POSITIVE_INFINITY;
|
|
115
117
|
|
|
116
|
-
// [TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
|
|
117
118
|
let scaleStyleAdjustments: TextTokens = emptyProps;
|
|
118
119
|
// tokenStyle.fontSize and tokenStyle.lineHeight can also be strings (e.g., "14px").
|
|
119
120
|
// Therefore, we only support scaling for number-based size values in order to avoid any messy calculations.
|
|
120
121
|
if (dynamicTypeVariant !== undefined && typeof tokenStyle.fontSize === 'number' && typeof tokenStyle.lineHeight === 'number') {
|
|
121
|
-
const
|
|
122
|
+
const requestedScaleFactor = fontMetricsScaleFactors[dynamicTypeVariant] ?? 1;
|
|
123
|
+
const maximumScaleFactor = maximumFontSize / tokenStyle.fontSize;
|
|
124
|
+
const scaleFactor = Math.min(requestedScaleFactor, maximumScaleFactor);
|
|
125
|
+
|
|
122
126
|
scaleStyleAdjustments = {
|
|
123
127
|
fontSize: tokenStyle.fontSize * scaleFactor,
|
|
124
|
-
lineHeight: tokenStyle.lineHeight * scaleFactor,
|
|
128
|
+
lineHeight: tokenStyle.lineHeight * scaleFactor, // scale accordingly with fontSize
|
|
125
129
|
};
|
|
126
130
|
}
|
|
127
|
-
// ]
|
|
131
|
+
// ]GH #2268
|
|
128
132
|
|
|
129
133
|
const isWinPlatform = Platform.OS === (('win32' as any) || 'windows');
|
|
130
134
|
const filteredProps = {
|
|
@@ -144,12 +148,16 @@ export const Text = compressible<TextProps, TextTokens>((props: TextProps, useTo
|
|
|
144
148
|
...keyProps,
|
|
145
149
|
...filteredProps,
|
|
146
150
|
...extra,
|
|
147
|
-
...(dynamicTypeVariant !== undefined && { allowFontScaling: false }), //
|
|
151
|
+
...(dynamicTypeVariant !== undefined && { allowFontScaling: false }), // GH #2268: Remove once RN Core properly supports Dynamic Type scaling
|
|
148
152
|
onPress,
|
|
149
153
|
numberOfLines: truncate || !wrap ? 1 : 0,
|
|
150
154
|
style: mergeStyles(tokenStyle, props.style, extra?.style, scaleStyleAdjustments),
|
|
151
155
|
};
|
|
152
|
-
|
|
156
|
+
|
|
157
|
+
// GH #2268: RN Text doesn't recognize these properties yet, so don't let them leak through or RN will complain about invalid props
|
|
158
|
+
delete (mergedProps.style as TextTokens).dynamicTypeRamp;
|
|
159
|
+
delete (mergedProps.style as TextTokens).maximumFontSize;
|
|
160
|
+
|
|
153
161
|
return (
|
|
154
162
|
<RNText ellipsizeMode={!wrap && !truncate ? 'clip' : 'tail'} {...mergedProps}>
|
|
155
163
|
{children}
|
package/src/Text.types.ts
CHANGED
|
@@ -11,7 +11,18 @@ export const textName = 'Text';
|
|
|
11
11
|
export type TextTokens = Omit<FontTokens, 'fontFamily'> &
|
|
12
12
|
IForegroundColorTokens &
|
|
13
13
|
Omit<TextStyle, 'fontSize' | 'fontWeight' | 'color'> & {
|
|
14
|
-
|
|
14
|
+
// GH #2268: Remove these once RN Core properly supports Dynamic Type scaling
|
|
15
|
+
/**
|
|
16
|
+
* (iOS only) The Dynamic Type ramp that a Text element should follow as the user changes their
|
|
17
|
+
* preferred content size.
|
|
18
|
+
*/
|
|
19
|
+
dynamicTypeRamp?: string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* (iOS only) The maximum font size that a Text element will grow to as the user changes their
|
|
23
|
+
* preferred content size.
|
|
24
|
+
*/
|
|
25
|
+
maximumFontSize?: number;
|
|
15
26
|
};
|
|
16
27
|
|
|
17
28
|
export type TextAlign = 'start' | 'center' | 'end' | 'justify';
|
package/src/Variants.ios.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Text } from './Text';
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// GH #2268: Remove "as any" designations once RN Core properly supports Dynamic Type scaling
|
|
4
4
|
|
|
5
5
|
export const Caption1 = Text.customize({
|
|
6
6
|
variant: 'caption1',
|