react-native-terra-ui 0.11.17 → 0.12.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/lib/module/components/accordion/Accordion.js +109 -0
  3. package/lib/module/components/accordion/Accordion.js.map +1 -0
  4. package/lib/module/components/accordion/context.js +34 -0
  5. package/lib/module/components/accordion/context.js.map +1 -0
  6. package/lib/module/components/accordion/hooks/use-accordion-core.js +46 -0
  7. package/lib/module/components/accordion/hooks/use-accordion-core.js.map +1 -0
  8. package/lib/module/components/accordion/index.js +5 -0
  9. package/lib/module/components/accordion/index.js.map +1 -0
  10. package/lib/module/components/accordion/parts/AccordionContent.js +98 -0
  11. package/lib/module/components/accordion/parts/AccordionContent.js.map +1 -0
  12. package/lib/module/components/accordion/parts/AccordionIndicator.js +60 -0
  13. package/lib/module/components/accordion/parts/AccordionIndicator.js.map +1 -0
  14. package/lib/module/components/accordion/parts/AccordionItem.js +53 -0
  15. package/lib/module/components/accordion/parts/AccordionItem.js.map +1 -0
  16. package/lib/module/components/accordion/parts/AccordionTrigger.js +85 -0
  17. package/lib/module/components/accordion/parts/AccordionTrigger.js.map +1 -0
  18. package/lib/module/components/accordion/types.js +4 -0
  19. package/lib/module/components/accordion/types.js.map +1 -0
  20. package/lib/module/components/accordion/utils.js +15 -0
  21. package/lib/module/components/accordion/utils.js.map +1 -0
  22. package/lib/module/components/avatar/Avatar.js +15 -3
  23. package/lib/module/components/avatar/Avatar.js.map +1 -1
  24. package/lib/module/components/badge/Badge.js +220 -64
  25. package/lib/module/components/badge/Badge.js.map +1 -1
  26. package/lib/module/components/badge/WithBadge.js +94 -0
  27. package/lib/module/components/badge/WithBadge.js.map +1 -0
  28. package/lib/module/components/badge/index.js +1 -0
  29. package/lib/module/components/badge/index.js.map +1 -1
  30. package/lib/module/components/badge/utils.js +3 -3
  31. package/lib/module/components/chip/Chip.js +1 -0
  32. package/lib/module/components/chip/Chip.js.map +1 -1
  33. package/lib/module/components/header/parts/HeaderBar.js +105 -69
  34. package/lib/module/components/header/parts/HeaderBar.js.map +1 -1
  35. package/lib/module/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.js +50 -33
  36. package/lib/module/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.js.map +1 -1
  37. package/lib/module/components/index.js +1 -0
  38. package/lib/module/components/index.js.map +1 -1
  39. package/lib/module/components/input/parts/InputField.js +96 -82
  40. package/lib/module/components/input/parts/InputField.js.map +1 -1
  41. package/lib/module/components/text/Text.js +10 -6
  42. package/lib/module/components/text/Text.js.map +1 -1
  43. package/lib/module/theme/tokens/primitives.js +24 -4
  44. package/lib/module/theme/tokens/primitives.js.map +1 -1
  45. package/lib/typescript/src/components/accordion/Accordion.d.ts +33 -0
  46. package/lib/typescript/src/components/accordion/Accordion.d.ts.map +1 -0
  47. package/lib/typescript/src/components/accordion/context.d.ts +25 -0
  48. package/lib/typescript/src/components/accordion/context.d.ts.map +1 -0
  49. package/lib/typescript/src/components/accordion/hooks/use-accordion-core.d.ts +11 -0
  50. package/lib/typescript/src/components/accordion/hooks/use-accordion-core.d.ts.map +1 -0
  51. package/lib/typescript/src/components/accordion/index.d.ts +8 -0
  52. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -0
  53. package/lib/typescript/src/components/accordion/parts/AccordionContent.d.ts +8 -0
  54. package/lib/typescript/src/components/accordion/parts/AccordionContent.d.ts.map +1 -0
  55. package/lib/typescript/src/components/accordion/parts/AccordionIndicator.d.ts +16 -0
  56. package/lib/typescript/src/components/accordion/parts/AccordionIndicator.d.ts.map +1 -0
  57. package/lib/typescript/src/components/accordion/parts/AccordionItem.d.ts +16 -0
  58. package/lib/typescript/src/components/accordion/parts/AccordionItem.d.ts.map +1 -0
  59. package/lib/typescript/src/components/accordion/parts/AccordionTrigger.d.ts +11 -0
  60. package/lib/typescript/src/components/accordion/parts/AccordionTrigger.d.ts.map +1 -0
  61. package/lib/typescript/src/components/accordion/types.d.ts +65 -0
  62. package/lib/typescript/src/components/accordion/types.d.ts.map +1 -0
  63. package/lib/typescript/src/components/accordion/utils.d.ts +8 -0
  64. package/lib/typescript/src/components/accordion/utils.d.ts.map +1 -0
  65. package/lib/typescript/src/components/avatar/Avatar.d.ts.map +1 -1
  66. package/lib/typescript/src/components/badge/Badge.d.ts +13 -9
  67. package/lib/typescript/src/components/badge/Badge.d.ts.map +1 -1
  68. package/lib/typescript/src/components/badge/WithBadge.d.ts +18 -0
  69. package/lib/typescript/src/components/badge/WithBadge.d.ts.map +1 -0
  70. package/lib/typescript/src/components/badge/index.d.ts +2 -1
  71. package/lib/typescript/src/components/badge/index.d.ts.map +1 -1
  72. package/lib/typescript/src/components/badge/types.d.ts +35 -12
  73. package/lib/typescript/src/components/badge/types.d.ts.map +1 -1
  74. package/lib/typescript/src/components/badge/utils.d.ts +3 -3
  75. package/lib/typescript/src/components/badge/utils.d.ts.map +1 -1
  76. package/lib/typescript/src/components/header/parts/HeaderBar.d.ts.map +1 -1
  77. package/lib/typescript/src/components/index.d.ts +1 -0
  78. package/lib/typescript/src/components/index.d.ts.map +1 -1
  79. package/lib/typescript/src/components/input/parts/InputField.d.ts.map +1 -1
  80. package/lib/typescript/src/theme/tokens/primitives.d.ts.map +1 -1
  81. package/package.json +1 -1
  82. package/src/components/accordion/Accordion.tsx +116 -0
  83. package/src/components/accordion/context.ts +45 -0
  84. package/src/components/accordion/hooks/use-accordion-core.ts +51 -0
  85. package/src/components/accordion/index.ts +14 -0
  86. package/src/components/accordion/parts/AccordionContent.tsx +96 -0
  87. package/src/components/accordion/parts/AccordionIndicator.tsx +67 -0
  88. package/src/components/accordion/parts/AccordionItem.tsx +55 -0
  89. package/src/components/accordion/parts/AccordionTrigger.tsx +88 -0
  90. package/src/components/accordion/types.ts +71 -0
  91. package/src/components/accordion/utils.ts +12 -0
  92. package/src/components/avatar/Avatar.tsx +12 -2
  93. package/src/components/badge/Badge.tsx +178 -59
  94. package/src/components/badge/WithBadge.tsx +79 -0
  95. package/src/components/badge/index.ts +2 -1
  96. package/src/components/badge/types.ts +36 -12
  97. package/src/components/badge/utils.ts +3 -3
  98. package/src/components/chip/Chip.tsx +1 -0
  99. package/src/components/header/parts/HeaderBar.tsx +100 -57
  100. package/src/components/header/variants/LargeTitleHeader/parts/LargeTitleContent.tsx +47 -29
  101. package/src/components/index.ts +1 -0
  102. package/src/components/input/parts/InputField.tsx +63 -55
  103. package/src/components/text/Text.tsx +10 -6
  104. package/src/theme/tokens/primitives.ts +24 -4
  105. package/lib/module/components/badge/parts/BadgeIndicator.js +0 -212
  106. package/lib/module/components/badge/parts/BadgeIndicator.js.map +0 -1
  107. package/lib/typescript/src/components/badge/parts/BadgeIndicator.d.ts +0 -19
  108. package/lib/typescript/src/components/badge/parts/BadgeIndicator.d.ts.map +0 -1
  109. package/src/components/badge/parts/BadgeIndicator.tsx +0 -178
@@ -6,7 +6,7 @@ import { useState } from "react";
6
6
  import Animated from "react-native-reanimated";
7
7
  import { ScrollToTopGuard } from "react-native-screens/experimental";
8
8
  import { StyleSheet, useUnistyles } from "react-native-unistyles";
9
- import { FONT_WEIGHT_VALUE } from "../../../utils/typography.js";
9
+ import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "../../../utils/typography.js";
10
10
  import { resolveScreenPadding } from "../../../theme/screen-padding.js";
11
11
  import { Toolbar } from "../../toolbar/index.js";
12
12
  import { HeaderDismissButton } from "../header-buttons.js";
@@ -34,6 +34,13 @@ export function HeaderBar({
34
34
  left: 0,
35
35
  right: 0
36
36
  });
37
+ // Toolbar widths, so a centered title can stay clear of both sides.
38
+ const [leadingWidth, setLeadingWidth] = useState(0);
39
+ const [trailingWidth, setTrailingWidth] = useState(0);
40
+ const onLeadingLayout = event => setLeadingWidth(event.nativeEvent.layout.width);
41
+ const onTrailingLayout = event => setTrailingWidth(event.nativeEvent.layout.width);
42
+ const hasLeading = leading != null || dismissAction === "back";
43
+ const hasTrailing = trailing != null || dismissAction === "close";
37
44
  const _styles = styles;
38
45
  {
39
46
  const styles = _styles.useVariants({
@@ -67,18 +74,21 @@ export function HeaderBar({
67
74
  animatedStyle: surfaceStyle
68
75
  }), /*#__PURE__*/_jsx(HeaderWindowInsets, {
69
76
  onInsetsChange: setWindowInsets
70
- }), (leading != null || dismissAction === "back") && /*#__PURE__*/_jsxs(Toolbar, {
77
+ }), hasLeading && /*#__PURE__*/_jsxs(Toolbar, {
78
+ onLayout: onLeadingLayout,
71
79
  children: [dismissAction === "back" && dismiss, leading]
72
80
  }), /*#__PURE__*/_jsx(Animated.View, {
73
- style: [styles.titleContainer, styles.titleInsets(windowInsets.left, windowInsets.right, titleAlignment), titleStyle],
81
+ style: [styles.titleContainer, styles.titleInsets(windowInsets.left, windowInsets.right, hasLeading ? leadingWidth : 0, hasTrailing ? trailingWidth : 0, titleAlignment), titleStyle],
74
82
  pointerEvents: isCustomTitle(title) ? "box-none" : "none",
75
83
  children: isTextTitle(title) ? String(title).trim().length > 0 && /*#__PURE__*/_jsx(Text, {
76
84
  style: styles.title,
85
+ numberOfLines: 1,
77
86
  maxFontSizeMultiplier: theme.typography.variants["title-md"].maxFontSizeMultiplier,
78
87
  children: title
79
88
  }) : title
80
- }), (trailing != null || dismissAction === "close") && /*#__PURE__*/_jsxs(Toolbar, {
89
+ }), hasTrailing && /*#__PURE__*/_jsxs(Toolbar, {
81
90
  style: styles.trailing,
91
+ onLayout: onTrailingLayout,
82
92
  children: [dismissAction === "close" && dismiss, trailing]
83
93
  })]
84
94
  })
@@ -86,74 +96,100 @@ export function HeaderBar({
86
96
  );
87
97
  }
88
98
  }
89
- const styles = StyleSheet.create((theme, runtime) => ({
90
- windowInsets: (left, right) => ({
91
- paddingLeft: Math.max(resolveScreenPadding(theme, runtime.breakpoint).x, left),
92
- paddingRight: Math.max(resolveScreenPadding(theme, runtime.breakpoint).x, right),
93
- uni__dependencies: [0, 3]
94
- }),
95
- titleInsets: (left, right, alignment) => alignment === "center" ? {
96
- left,
97
- right
98
- } : {},
99
- bar: {
100
- height: theme.layout.header.height,
101
- flexDirection: "row",
102
- alignItems: "center",
103
- paddingHorizontal: theme.layout.screen.padding.x,
104
- gap: theme.spacing["3"],
105
- justifyContent: "space-between",
106
- uni__dependencies: [0]
107
- },
108
- // A centered title is absolutely positioned, so it leaves the flex row. With
109
- // no leading slot the trailing toolbar would be the only in-flow child and
110
- // `space-between` would park it on the left — the auto margin pins it right.
111
- trailing: {
112
- justifyContent: "flex-end",
113
- variants: {
114
- titleAlignment: {
115
- center: {
116
- marginLeft: "auto"
117
- },
118
- left: {}
119
- }
99
+ const styles = StyleSheet.create((theme, runtime) => {
100
+ // Resolved inline: the unistyles Babel plugin rewrites this factory, so an
101
+ // imported helper called from inside it is not in scope at runtime.
102
+ const titleWeight = theme.typography.variants["title-md"].fontWeight;
103
+ const titleFont = theme.typography.fonts[titleWeight];
104
+ const isSystemTitleFont = titleFont === SYSTEM_FONT;
105
+ return {
106
+ windowInsets: (left, right) => ({
107
+ paddingLeft: Math.max(resolveScreenPadding(theme, runtime.breakpoint).x, left),
108
+ paddingRight: Math.max(resolveScreenPadding(theme, runtime.breakpoint).x, right),
109
+ uni__dependencies: [0, 3]
110
+ }),
111
+ // A centered title spans the region between the window controls and is inset
112
+ // by the same amount from both of its edges, so it stays centered in that
113
+ // region. The inset is whichever side reaches further in — bar padding plus
114
+ // that side's toolbar — so a long title truncates before either toolbar
115
+ // instead of running underneath it. A left-aligned title is in the flex row
116
+ // already and needs none of this.
117
+ titleInsets: (left, right, leadingWidth, trailingWidth, alignment) => {
118
+ if (alignment !== "center") return {
119
+ uni__dependencies: [0, 3]
120
+ };
121
+ const padding = resolveScreenPadding(theme, runtime.breakpoint).x;
122
+ const gap = theme.spacing["3"];
123
+ const reachLeft = Math.max(padding, left) + (leadingWidth > 0 ? leadingWidth + gap : 0) - left;
124
+ const reachRight = Math.max(padding, right) + (trailingWidth > 0 ? trailingWidth + gap : 0) - right;
125
+ const inset = Math.max(reachLeft, reachRight);
126
+ return {
127
+ left: left + inset,
128
+ right: right + inset,
129
+ uni__dependencies: [0, 3]
130
+ };
120
131
  },
121
- uni__dependencies: [4]
122
- },
123
- titleContainer: {
124
- variants: {
125
- titleAlignment: {
126
- center: {
127
- position: "absolute",
128
- left: 0,
129
- right: 0,
130
- alignItems: "center"
131
- },
132
- left: {
133
- flex: 1,
134
- alignItems: "flex-start"
132
+ bar: {
133
+ height: theme.layout.header.height,
134
+ flexDirection: "row",
135
+ alignItems: "center",
136
+ paddingHorizontal: theme.layout.screen.padding.x,
137
+ gap: theme.spacing["3"],
138
+ justifyContent: "space-between",
139
+ uni__dependencies: [0]
140
+ },
141
+ // A centered title is absolutely positioned, so it leaves the flex row. With
142
+ // no leading slot the trailing toolbar would be the only in-flow child and
143
+ // `space-between` would park it on the left — the auto margin pins it right.
144
+ trailing: {
145
+ justifyContent: "flex-end",
146
+ variants: {
147
+ titleAlignment: {
148
+ center: {
149
+ marginLeft: "auto"
150
+ },
151
+ left: {}
135
152
  }
136
- }
153
+ },
154
+ uni__dependencies: [4]
137
155
  },
138
- uni__dependencies: [4]
139
- },
140
- title: {
141
- fontSize: theme.typography.variants["title-md"].fontSize,
142
- lineHeight: theme.typography.variants["title-md"].lineHeight,
143
- letterSpacing: theme.typography.variants["title-md"].letterSpacing,
144
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants["title-md"].fontWeight],
145
- color: theme.color["text.primary"] ?? "",
146
- variants: {
147
- titleAlignment: {
148
- center: {
149
- textAlign: "center"
150
- },
151
- left: {
152
- textAlign: "left"
156
+ titleContainer: {
157
+ variants: {
158
+ titleAlignment: {
159
+ center: {
160
+ position: "absolute",
161
+ left: 0,
162
+ right: 0,
163
+ alignItems: "center"
164
+ },
165
+ left: {
166
+ flex: 1,
167
+ alignItems: "flex-start"
168
+ }
153
169
  }
154
- }
170
+ },
171
+ uni__dependencies: [4]
155
172
  },
156
- uni__dependencies: [0, 4]
157
- }
158
- }));
173
+ title: {
174
+ fontSize: theme.typography.variants["title-md"].fontSize,
175
+ lineHeight: theme.typography.variants["title-md"].lineHeight,
176
+ letterSpacing: theme.typography.variants["title-md"].letterSpacing,
177
+ fontFamily: isSystemTitleFont ? undefined : titleFont,
178
+ fontWeight: isSystemTitleFont ? FONT_WEIGHT_VALUE[titleWeight] : undefined,
179
+ includeFontPadding: false,
180
+ color: theme.color["text.primary"] ?? "",
181
+ variants: {
182
+ titleAlignment: {
183
+ center: {
184
+ textAlign: "center"
185
+ },
186
+ left: {
187
+ textAlign: "left"
188
+ }
189
+ }
190
+ },
191
+ uni__dependencies: [0, 4]
192
+ }
193
+ };
194
+ });
159
195
  //# sourceMappingURL=HeaderBar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","resolveScreenPadding","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","onInsetsChange","titleContainer","titleInsets","pointerEvents","String","trim","length","Text","maxFontSizeMultiplier","typography","variants","create","runtime","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","height","layout","header","flexDirection","alignItems","paddingHorizontal","screen","padding","gap","spacing","justifyContent","center","marginLeft","position","flex","fontSize","lineHeight","letterSpacing","fontWeight","textAlign"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","Animated","ScrollToTopGuard","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","resolveScreenPadding","Toolbar","HeaderDismissButton","isCustomTitle","isTextTitle","HeaderSurface","HeaderWindowInsets","jsx","_jsx","jsxs","_jsxs","HeaderBar","title","leading","trailing","titleAlignment","color","surfaceStyle","titleStyle","dismissAction","navigation","onDismiss","theme","windowInsets","setWindowInsets","left","right","leadingWidth","setLeadingWidth","trailingWidth","setTrailingWidth","onLeadingLayout","event","nativeEvent","layout","width","onTrailingLayout","hasLeading","hasTrailing","_styles","styles","useVariants","dismiss","children","View","style","bar","animatedStyle","onInsetsChange","onLayout","titleContainer","titleInsets","pointerEvents","String","trim","length","Text","numberOfLines","maxFontSizeMultiplier","typography","variants","create","runtime","titleWeight","fontWeight","titleFont","fonts","isSystemTitleFont","paddingLeft","Math","max","breakpoint","x","paddingRight","uni__dependencies","alignment","padding","gap","spacing","reachLeft","reachRight","inset","height","header","flexDirection","alignItems","paddingHorizontal","screen","justifyContent","center","marginLeft","position","flex","fontSize","lineHeight","letterSpacing","fontFamily","undefined","includeFontPadding","textAlign"],"sourceRoot":"../../../../../src","sources":["components/header/parts/HeaderBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { Text } from "react-native-unistyles/components/native/Text";
4
4
  import Animated from "react-native-reanimated";
5
5
  import { StyleSheet, useUnistyles } from "react-native-unistyles";
6
- import { FONT_WEIGHT_VALUE } from "../../../../../utils/typography.js";
6
+ import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "../../../../../utils/typography.js";
7
7
  import { isTextTitle } from "../../../utils.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export function LargeTitleContent({
@@ -37,36 +37,53 @@ export function LargeTitleContent({
37
37
  })]
38
38
  });
39
39
  }
40
- const styles = StyleSheet.create(theme => ({
41
- portalContent: hasAccessoryBelow => ({
42
- gap: theme.spacing["1"] / 2,
43
- // Include the gap in the measured height used to position the accessory.
44
- paddingBottom: hasAccessoryBelow ? theme.spacing["2"] : 0,
45
- paddingHorizontal: theme.layout.screen.padding.x,
46
- uni__dependencies: [0]
47
- }),
48
- overline: {
49
- fontSize: theme.typography.variants["label-sm"].fontSize,
50
- lineHeight: theme.typography.variants["label-sm"].lineHeight,
51
- letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
52
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants["label-sm"].fontWeight],
53
- color: theme.color["text.tertiary"] ?? "",
54
- uni__dependencies: [0]
55
- },
56
- largeTitle: {
57
- fontSize: theme.typography.variants["headline-lg"].fontSize,
58
- lineHeight: theme.typography.variants["headline-lg"].lineHeight,
59
- letterSpacing: theme.typography.variants["headline-lg"].letterSpacing,
60
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants["headline-lg"].fontWeight],
61
- color: theme.color["text.primary"] ?? "",
62
- uni__dependencies: [0]
63
- },
64
- subtitle: {
65
- fontSize: theme.typography.variants["body-lg"].fontSize,
66
- lineHeight: theme.typography.variants["body-lg"].lineHeight,
67
- letterSpacing: theme.typography.variants["body-lg"].letterSpacing,
68
- color: theme.color["text.tertiary"] ?? "",
69
- uni__dependencies: [0]
70
- }
71
- }));
40
+ const styles = StyleSheet.create(theme => {
41
+ // Resolved inline: the unistyles Babel plugin rewrites this factory, so an
42
+ // imported helper called from inside it is not in scope at runtime.
43
+ const overlineWeight = theme.typography.variants["label-sm"].fontWeight;
44
+ const overlineFont = theme.typography.fonts[overlineWeight];
45
+ const isSystemOverlineFont = overlineFont === SYSTEM_FONT;
46
+ const titleWeight = theme.typography.variants["headline-lg"].fontWeight;
47
+ const titleFont = theme.typography.fonts[titleWeight];
48
+ const isSystemTitleFont = titleFont === SYSTEM_FONT;
49
+ const subtitleWeight = theme.typography.variants["body-lg"].fontWeight;
50
+ const subtitleFont = theme.typography.fonts[subtitleWeight];
51
+ const isSystemSubtitleFont = subtitleFont === SYSTEM_FONT;
52
+ return {
53
+ portalContent: hasAccessoryBelow => ({
54
+ gap: theme.spacing["1"] / 2,
55
+ // Include the gap in the measured height used to position the accessory.
56
+ paddingBottom: hasAccessoryBelow ? theme.spacing["2"] : 0,
57
+ paddingHorizontal: theme.layout.screen.padding.x,
58
+ uni__dependencies: [0]
59
+ }),
60
+ overline: {
61
+ fontSize: theme.typography.variants["label-sm"].fontSize,
62
+ lineHeight: theme.typography.variants["label-sm"].lineHeight,
63
+ letterSpacing: theme.typography.variants["label-sm"].letterSpacing,
64
+ fontFamily: isSystemOverlineFont ? undefined : overlineFont,
65
+ fontWeight: isSystemOverlineFont ? FONT_WEIGHT_VALUE[overlineWeight] : undefined,
66
+ color: theme.color["text.tertiary"] ?? "",
67
+ uni__dependencies: [0]
68
+ },
69
+ largeTitle: {
70
+ fontSize: theme.typography.variants["headline-lg"].fontSize,
71
+ lineHeight: theme.typography.variants["headline-lg"].lineHeight,
72
+ letterSpacing: theme.typography.variants["headline-lg"].letterSpacing,
73
+ fontFamily: isSystemTitleFont ? undefined : titleFont,
74
+ fontWeight: isSystemTitleFont ? FONT_WEIGHT_VALUE[titleWeight] : undefined,
75
+ color: theme.color["text.primary"] ?? "",
76
+ uni__dependencies: [0]
77
+ },
78
+ subtitle: {
79
+ fontSize: theme.typography.variants["body-lg"].fontSize,
80
+ lineHeight: theme.typography.variants["body-lg"].lineHeight,
81
+ letterSpacing: theme.typography.variants["body-lg"].letterSpacing,
82
+ fontFamily: isSystemSubtitleFont ? undefined : subtitleFont,
83
+ fontWeight: isSystemSubtitleFont ? FONT_WEIGHT_VALUE[subtitleWeight] : undefined,
84
+ color: theme.color["text.tertiary"] ?? "",
85
+ uni__dependencies: [0]
86
+ }
87
+ };
88
+ });
72
89
  //# sourceMappingURL=LargeTitleContent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Animated","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","isTextTitle","jsx","_jsx","jsxs","_jsxs","LargeTitleContent","title","overline","subtitle","hasAccessoryBelow","onHeightChange","animatedStyle","theme","handleLayout","event","nativeEvent","layout","height","View","style","styles","portalContent","onLayout","children","Text","maxFontSizeMultiplier","typography","variants","largeTitle","create","gap","spacing","paddingBottom","paddingHorizontal","screen","padding","x","uni__dependencies","fontSize","lineHeight","letterSpacing","fontWeight","color"],"sourceRoot":"../../../../../../../src","sources":["components/header/variants/LargeTitleHeader/parts/LargeTitleContent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Animated","StyleSheet","useUnistyles","FONT_WEIGHT_VALUE","SYSTEM_FONT","isTextTitle","jsx","_jsx","jsxs","_jsxs","LargeTitleContent","title","overline","subtitle","hasAccessoryBelow","onHeightChange","animatedStyle","theme","handleLayout","event","nativeEvent","layout","height","View","style","styles","portalContent","onLayout","children","Text","maxFontSizeMultiplier","typography","variants","largeTitle","create","overlineWeight","fontWeight","overlineFont","fonts","isSystemOverlineFont","titleWeight","titleFont","isSystemTitleFont","subtitleWeight","subtitleFont","isSystemSubtitleFont","gap","spacing","paddingBottom","paddingHorizontal","screen","padding","x","uni__dependencies","fontSize","lineHeight","letterSpacing","fontFamily","undefined","color"],"sourceRoot":"../../../../../../../src","sources":["components/header/variants/LargeTitleHeader/parts/LargeTitleContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ export * from "./accordion/index.js";
3
4
  export * from "./avatar/index.js";
4
5
  export * from "./badge/index.js";
5
6
  export * from "./box/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -5,7 +5,7 @@ import { TextInput } from "react-native-unistyles/components/native/TextInput";
5
5
  import { forwardRef, useCallback, useState } from "react";
6
6
  import { StyleSheet, useUnistyles } from "react-native-unistyles";
7
7
  import { resolveThemeColor } from "../../../utils/resolve-theme-color.js";
8
- import { FONT_WEIGHT_VALUE } from "../../../utils/typography.js";
8
+ import { FONT_WEIGHT_VALUE, SYSTEM_FONT } from "../../../utils/typography.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  /** Typographic role of the text, per size. */
11
11
  const TEXT_VARIANT = {
@@ -61,7 +61,11 @@ export const InputField = /*#__PURE__*/forwardRef(function InputField({
61
61
  ref: ref,
62
62
  editable: !isDisabled,
63
63
  placeholderTextColor: theme.color["text.tertiary"],
64
- style: styles.input,
64
+ style: styles.input
65
+ // The container height is fixed per size, so scaling stops where the
66
+ // body role does rather than growing past the box.
67
+ ,
68
+ maxFontSizeMultiplier: theme.typography.variants[TEXT_VARIANT[size]].maxFontSizeMultiplier,
65
69
  onFocus: handleFocus,
66
70
  onBlur: handleBlur,
67
71
  ...rest
@@ -69,93 +73,103 @@ export const InputField = /*#__PURE__*/forwardRef(function InputField({
69
73
  });
70
74
  }
71
75
  });
72
- const styles = StyleSheet.create(theme => ({
73
- container: {
74
- flexDirection: "row",
75
- alignItems: "center",
76
- borderWidth: StyleSheet.hairlineWidth,
77
- borderColor: theme.color["border.subtle"],
78
- variants: {
79
- size: {
80
- sm: {
81
- height: 36,
82
- paddingHorizontal: theme.spacing["4"],
83
- gap: 6
76
+ const styles = StyleSheet.create(theme => {
77
+ // Resolved inline rather than through a helper: the unistyles Babel plugin
78
+ // rewrites this factory, and an imported function called from inside it is
79
+ // not in scope at runtime. Every body role shares one weight, so one lookup
80
+ // covers all three sizes.
81
+ const bodyWeight = theme.typography.variants[TEXT_VARIANT.md].fontWeight;
82
+ const bodyFont = theme.typography.fonts[bodyWeight];
83
+ const isSystemBodyFont = bodyFont === SYSTEM_FONT;
84
+ return {
85
+ container: {
86
+ flexDirection: "row",
87
+ alignItems: "center",
88
+ borderWidth: StyleSheet.hairlineWidth,
89
+ borderColor: theme.color["border.subtle"],
90
+ variants: {
91
+ size: {
92
+ sm: {
93
+ height: 36,
94
+ paddingHorizontal: theme.spacing["4"],
95
+ gap: 6
96
+ },
97
+ md: {
98
+ height: 44,
99
+ paddingHorizontal: theme.spacing["4"],
100
+ gap: 6
101
+ },
102
+ lg: {
103
+ height: 52,
104
+ paddingHorizontal: theme.spacing["4"],
105
+ gap: 6
106
+ }
84
107
  },
85
- md: {
86
- height: 44,
87
- paddingHorizontal: theme.spacing["4"],
88
- gap: 6
108
+ focused: {
109
+ true: {
110
+ borderColor: theme.color["accent.border"]
111
+ },
112
+ false: {}
89
113
  },
90
- lg: {
91
- height: 52,
92
- paddingHorizontal: theme.spacing["4"],
93
- gap: 6
94
- }
95
- },
96
- focused: {
97
- true: {
98
- borderColor: theme.color["accent.border"]
99
- },
100
- false: {}
101
- },
102
- invalid: {
103
- true: {
104
- borderColor: theme.color["danger.text"]
114
+ invalid: {
115
+ true: {
116
+ borderColor: theme.color["danger.text"]
117
+ },
118
+ false: {}
105
119
  },
106
- false: {}
120
+ disabled: {
121
+ true: {
122
+ opacity: theme.opacity.disabled
123
+ },
124
+ false: {}
125
+ }
107
126
  },
108
- disabled: {
109
- true: {
110
- opacity: theme.opacity.disabled
111
- },
112
- false: {}
113
- }
127
+ uni__dependencies: [0, 4]
114
128
  },
115
- uni__dependencies: [0, 4]
116
- },
117
- // `background` is an open `ColorToken` and `radius` an eight-step scale, so
118
- // both resolve in a dynamic function rather than enumerating as variants.
119
- fill: (background, radius) => ({
120
- backgroundColor: resolveThemeColor(background, theme),
121
- borderRadius: theme.radius[radius],
122
- uni__dependencies: [0]
123
- }),
124
- input: {
125
- flex: 1,
126
- // Android centres text in a taller box by default; zeroing the padding lets
127
- // the container's own height own the geometry on both platforms.
128
- paddingVertical: 0,
129
- color: theme.color["text.primary"],
130
- variants: {
131
- size: {
132
- sm: {
133
- fontSize: theme.typography.variants[TEXT_VARIANT.sm].fontSize,
134
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants[TEXT_VARIANT.sm].fontWeight]
129
+ // `background` is an open `ColorToken` and `radius` an eight-step scale, so
130
+ // both resolve in a dynamic function rather than enumerating as variants.
131
+ fill: (background, radius) => ({
132
+ backgroundColor: resolveThemeColor(background, theme),
133
+ borderRadius: theme.radius[radius],
134
+ uni__dependencies: [0]
135
+ }),
136
+ input: {
137
+ flex: 1,
138
+ // Android centres text in a taller box by default; zeroing the padding lets
139
+ // the container's own height own the geometry on both platforms.
140
+ paddingVertical: 0,
141
+ color: theme.color["text.primary"],
142
+ // Custom fonts encode weight in the family name; the system font takes a
143
+ // numeric weight instead.
144
+ fontFamily: isSystemBodyFont ? undefined : bodyFont,
145
+ fontWeight: isSystemBodyFont ? FONT_WEIGHT_VALUE[bodyWeight] : undefined,
146
+ variants: {
147
+ size: {
148
+ sm: {
149
+ fontSize: theme.typography.variants[TEXT_VARIANT.sm].fontSize
150
+ },
151
+ md: {
152
+ fontSize: theme.typography.variants[TEXT_VARIANT.md].fontSize
153
+ },
154
+ lg: {
155
+ fontSize: theme.typography.variants[TEXT_VARIANT.lg].fontSize
156
+ }
135
157
  },
136
- md: {
137
- fontSize: theme.typography.variants[TEXT_VARIANT.md].fontSize,
138
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants[TEXT_VARIANT.md].fontWeight]
158
+ focused: {
159
+ true: {},
160
+ false: {}
139
161
  },
140
- lg: {
141
- fontSize: theme.typography.variants[TEXT_VARIANT.lg].fontSize,
142
- fontWeight: FONT_WEIGHT_VALUE[theme.typography.variants[TEXT_VARIANT.lg].fontWeight]
162
+ invalid: {
163
+ true: {},
164
+ false: {}
165
+ },
166
+ disabled: {
167
+ true: {},
168
+ false: {}
143
169
  }
144
170
  },
145
- focused: {
146
- true: {},
147
- false: {}
148
- },
149
- invalid: {
150
- true: {},
151
- false: {}
152
- },
153
- disabled: {
154
- true: {},
155
- false: {}
156
- }
157
- },
158
- uni__dependencies: [0, 4]
159
- }
160
- }));
171
+ uni__dependencies: [0, 4]
172
+ }
173
+ };
174
+ });
161
175
  //# sourceMappingURL=InputField.js.map