@fluentui-react-native/text 0.18.2 → 0.19.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.json CHANGED
@@ -2,7 +2,85 @@
2
2
  "name": "@fluentui-react-native/text",
3
3
  "entries": [
4
4
  {
5
- "date": "Fri, 09 Dec 2022 05:21:09 GMT",
5
+ "date": "Tue, 27 Dec 2022 10:15:40 GMT",
6
+ "tag": "@fluentui-react-native/text_v0.19.1",
7
+ "version": "0.19.1",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "beachball",
12
+ "package": "@fluentui-react-native/text",
13
+ "comment": "Bump @uifabricshared/foundation-compose to v1.12.28",
14
+ "commit": "19c7982576e025a7601af0fb727ae6850b8d4aea"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@fluentui-react-native/text",
19
+ "comment": "Bump @fluentui-react-native/framework to v0.8.27",
20
+ "commit": "19c7982576e025a7601af0fb727ae6850b8d4aea"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@fluentui-react-native/text",
25
+ "comment": "Bump @fluentui-react-native/interactive-hooks to v0.22.2",
26
+ "commit": "19c7982576e025a7601af0fb727ae6850b8d4aea"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@fluentui-react-native/text",
31
+ "comment": "Bump @fluentui-react-native/theme-tokens to v0.22.3",
32
+ "commit": "19c7982576e025a7601af0fb727ae6850b8d4aea"
33
+ }
34
+ ]
35
+ }
36
+ },
37
+ {
38
+ "date": "Thu, 15 Dec 2022 14:50:50 GMT",
39
+ "tag": "@fluentui-react-native/text_v0.19.0",
40
+ "version": "0.19.0",
41
+ "comments": {
42
+ "minor": [
43
+ {
44
+ "author": "adgleitm@microsoft.com",
45
+ "package": "@fluentui-react-native/text",
46
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670",
47
+ "comment": "Add maximumSize"
48
+ },
49
+ {
50
+ "author": "beachball",
51
+ "package": "@fluentui-react-native/text",
52
+ "comment": "Bump @uifabricshared/foundation-compose to v1.12.27",
53
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
54
+ },
55
+ {
56
+ "author": "beachball",
57
+ "package": "@fluentui-react-native/text",
58
+ "comment": "Bump @fluentui-react-native/framework to v0.8.26",
59
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
60
+ },
61
+ {
62
+ "author": "beachball",
63
+ "package": "@fluentui-react-native/text",
64
+ "comment": "Bump @fluentui-react-native/interactive-hooks to v0.22.1",
65
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
66
+ },
67
+ {
68
+ "author": "beachball",
69
+ "package": "@fluentui-react-native/text",
70
+ "comment": "Bump @fluentui-react-native/theme-tokens to v0.22.2",
71
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
72
+ },
73
+ {
74
+ "author": "beachball",
75
+ "package": "@fluentui-react-native/text",
76
+ "comment": "Bump @fluentui-react-native/tokens to v0.20.0",
77
+ "commit": "ac1a77d965fb36b5ecdcfed3c7beaff4c93b1670"
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ {
83
+ "date": "Fri, 09 Dec 2022 05:23:38 GMT",
6
84
  "tag": "@fluentui-react-native/text_v0.18.2",
7
85
  "version": "0.18.2",
8
86
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,36 @@
1
1
  # Change Log - @fluentui-react-native/text
2
2
 
3
- This log was last generated on Fri, 09 Dec 2022 05:21:09 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 27 Dec 2022 10:15:40 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.19.1
8
+
9
+ Tue, 27 Dec 2022 10:15:40 GMT
10
+
11
+ ### Patches
12
+
13
+ - Bump @uifabricshared/foundation-compose to v1.12.28
14
+ - Bump @fluentui-react-native/framework to v0.8.27
15
+ - Bump @fluentui-react-native/interactive-hooks to v0.22.2
16
+ - Bump @fluentui-react-native/theme-tokens to v0.22.3
17
+
18
+ ## 0.19.0
19
+
20
+ Thu, 15 Dec 2022 14:50:50 GMT
21
+
22
+ ### Minor changes
23
+
24
+ - Add maximumSize (adgleitm@microsoft.com)
25
+ - Bump @uifabricshared/foundation-compose to v1.12.27
26
+ - Bump @fluentui-react-native/framework to v0.8.26
27
+ - Bump @fluentui-react-native/interactive-hooks to v0.22.1
28
+ - Bump @fluentui-react-native/theme-tokens to v0.22.2
29
+ - Bump @fluentui-react-native/tokens to v0.20.0
30
+
7
31
  ## 0.18.2
8
32
 
9
- Fri, 09 Dec 2022 05:21:09 GMT
33
+ Fri, 09 Dec 2022 05:23:38 GMT
10
34
 
11
35
  ### Patches
12
36
 
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,kMA0IA,CAAC;AAGlB,eAAe,IAAI,CAAC"}
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 _c = props.align, align = _c === void 0 ? undefined : _c, 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, _d = props.truncate, truncate = _d === void 0 ? false : _d, underline = props.underline, variant = props.variant, weight = props.weight, _e = props.wrap, wrap = _e === void 0 ? true : _e, rest = __rest(props, ["align", "block", "color", "font", "italic", "onAccessibilityTap", "onKeyUp", "onKeyDown", "keyUpEvents", "keyDownEvents", "onPress", "size", "strikethrough", "style", "truncate", "underline", "variant", "weight", "wrap"]);
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 _f = useTokens(theme), tokens = _f[0], cache = _f[1];
53
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
91
+ // [GH #2268: Remove once RN Core properly supports Dynamic Type scaling
91
92
  var dynamicTypeVariant = Platform.OS === 'ios' ? tokenStyle.dynamicTypeRamp : undefined;
92
- // [TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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 scaleFactor = (_b = fontMetricsScaleFactors[dynamicTypeVariant]) !== null && _b !== void 0 ? _b : 1;
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
- // ]TODO(#2268)
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 })), { // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- delete mergedProps.style.dynamicTypeRamp; // TODO(#2268): RN Text doesn't recognize dynamicTypeRamp yet, so don't let it leak through or RN will complain about it being an invalid prop
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":"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"}
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;IACrD,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"}
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"}
@@ -1,5 +1,5 @@
1
1
  import { Text } from './Text';
2
- // TODO(#2268): Remove "as any" designations once RN Core properly supports Dynamic Type scaling
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
  });
@@ -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,gGAAgG;AAEhG,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
+ {"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,kMA0IA,CAAC;AAGlB,eAAe,IAAI,CAAC"}
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"}
@@ -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 _c = props.align, align = _c === void 0 ? undefined : _c, 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, _d = props.truncate, truncate = _d === void 0 ? false : _d, underline = props.underline, variant = props.variant, weight = props.weight, _e = props.wrap, wrap = _e === void 0 ? true : _e, rest = __rest(props, ["align", "block", "color", "font", "italic", "onAccessibilityTap", "onKeyUp", "onKeyDown", "keyUpEvents", "keyDownEvents", "onPress", "size", "strikethrough", "style", "truncate", "underline", "variant", "weight", "wrap"]);
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 _f = useTokens(theme), tokens = _f[0], cache = _f[1];
59
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- // [TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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 scaleFactor = (_b = fontMetricsScaleFactors[dynamicTypeVariant]) !== null && _b !== void 0 ? _b : 1;
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
- // ]TODO(#2268)
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 })), { // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- delete mergedProps.style.dynamicTypeRamp; // TODO(#2268): RN Text doesn't recognize dynamicTypeRamp yet, so don't let it leak through or RN will complain about it being an invalid prop
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);
@@ -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,0EAA0E;IAC1E,IAAM,uBAAuB,GAAG,IAAA,6DAA0B,GAAE,CAAC;IAE7D,IAAM,SAAS,GAAG,0BAAW,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,eAAK,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,IAAA,+BAAW,EAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAExD,IAAM,QAAQ,GAAG,eAAK,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,IAAA,uBAAW,EAAC,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,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,UAAU,EAAE,2BAAY,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,EAXD,MAAM,QAAA,EAAE,KAAK,QAAA,CAWX;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,sBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACjC,EAPI,CAOJ,iBACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,GAAK,sBAAU,CAAC,IAAI,QAC7E,GAVgB,CAUf;IAEF,0EAA0E;IAC1E,IAAM,kBAAkB,GAAG,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,2EAA2E;IAC3E,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,WAAW,GAAG,MAAA,uBAAuB,CAAC,kBAAkB,CAAC,mCAAI,CAAC,CAAC;QACrE,qBAAqB,GAAG;YACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,WAAW;YAC3C,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,WAAW;SAChD,CAAC;KACH;IACD,eAAe;IAEf,IAAM,aAAa,GAAG,uBAAQ,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,0EAA0E;YAChJ,OAAO,SAAA,EACP,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,KAAK,EAAE,IAAA,uBAAW,EAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE,qBAAqB,CAAC,GACjF,CAAC;QACF,OAAQ,WAAW,CAAC,KAAoB,CAAC,eAAe,CAAC,CAAC,8IAA8I;QACxM,OAAO,CACL,2BAAC,mBAAM,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,0BAAa,CAAC,CAAC;AAClB,YAAI,CAAC,WAAW,GAAG,qBAAQ,CAAC;AAE5B,kBAAe,YAAI,CAAC"}
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;IACrD,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"}
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
- // TODO(#2268): Remove "as any" designations once RN Core properly supports Dynamic Type scaling
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,gGAAgG;AAEnF,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"}
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.18.2",
3
+ "version": "0.19.1",
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.26",
25
+ "@uifabricshared/foundation-compose": "^1.12.28",
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.25",
29
- "@fluentui-react-native/interactive-hooks": ">=0.22.0 <1.0.0",
30
- "@fluentui-react-native/theme-tokens": ">=0.22.1 <1.0.0",
31
- "@fluentui-react-native/tokens": ">=0.19.1 <1.0.0",
28
+ "@fluentui-react-native/framework": "0.8.27",
29
+ "@fluentui-react-native/interactive-hooks": ">=0.22.2 <1.0.0",
30
+ "@fluentui-react-native/theme-tokens": ">=0.22.3 <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
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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 scaleFactor = fontMetricsScaleFactors[dynamicTypeVariant] ?? 1;
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
- // ]TODO(#2268)
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 }), // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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
- delete (mergedProps.style as TextTokens).dynamicTypeRamp; // TODO(#2268): RN Text doesn't recognize dynamicTypeRamp yet, so don't let it leak through or RN will complain about it being an invalid prop
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
- dynamicTypeRamp?: string; // TODO(#2268): Remove once RN Core properly supports Dynamic Type scaling
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';
@@ -1,6 +1,6 @@
1
1
  import { Text } from './Text';
2
2
 
3
- // TODO(#2268): Remove "as any" designations once RN Core properly supports Dynamic Type scaling
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',