@oxyhq/bloom 0.2.3 → 0.3.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 (164) hide show
  1. package/assets/fonts/BlomusModernus-Bold.ttf +0 -0
  2. package/assets/fonts/BlomusModernus-Bold.woff2 +0 -0
  3. package/assets/fonts/BlomusModernus-Regular.ttf +0 -0
  4. package/assets/fonts/BlomusModernus-Regular.woff2 +0 -0
  5. package/assets/fonts/GeistMono-Variable.ttf +0 -0
  6. package/assets/fonts/GeistMono-Variable.woff2 +0 -0
  7. package/assets/fonts/InterVariable.ttf +0 -0
  8. package/assets/fonts/InterVariable.woff2 +0 -0
  9. package/lib/commonjs/code/Code.js +47 -0
  10. package/lib/commonjs/code/Code.js.map +1 -0
  11. package/lib/commonjs/code/Pre.js +61 -0
  12. package/lib/commonjs/code/Pre.js.map +1 -0
  13. package/lib/commonjs/code/index.js +20 -0
  14. package/lib/commonjs/code/index.js.map +1 -0
  15. package/lib/commonjs/error-boundary/ErrorBoundary.js +27 -18
  16. package/lib/commonjs/error-boundary/ErrorBoundary.js.map +1 -1
  17. package/lib/commonjs/fonts/FontLoader.js +35 -0
  18. package/lib/commonjs/fonts/FontLoader.js.map +1 -0
  19. package/lib/commonjs/fonts/FontLoader.native.js +36 -0
  20. package/lib/commonjs/fonts/FontLoader.native.js.map +1 -0
  21. package/lib/commonjs/fonts/apply-font-faces.js +49 -0
  22. package/lib/commonjs/fonts/apply-font-faces.js.map +1 -0
  23. package/lib/commonjs/fonts/font-assets.js +23 -0
  24. package/lib/commonjs/fonts/font-assets.js.map +1 -0
  25. package/lib/commonjs/fonts/index.js +40 -0
  26. package/lib/commonjs/fonts/index.js.map +1 -0
  27. package/lib/commonjs/fonts/tokens.js +27 -0
  28. package/lib/commonjs/fonts/tokens.js.map +1 -0
  29. package/lib/commonjs/index.js +9 -3
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/index.web.js +9 -3
  32. package/lib/commonjs/index.web.js.map +1 -1
  33. package/lib/commonjs/theme/BloomThemeProvider.js +8 -1
  34. package/lib/commonjs/theme/BloomThemeProvider.js.map +1 -1
  35. package/lib/commonjs/typography/index.js +41 -3
  36. package/lib/commonjs/typography/index.js.map +1 -1
  37. package/lib/module/code/Code.js +42 -0
  38. package/lib/module/code/Code.js.map +1 -0
  39. package/lib/module/code/Pre.js +56 -0
  40. package/lib/module/code/Pre.js.map +1 -0
  41. package/lib/module/code/index.js +5 -0
  42. package/lib/module/code/index.js.map +1 -0
  43. package/lib/module/error-boundary/ErrorBoundary.js +27 -18
  44. package/lib/module/error-boundary/ErrorBoundary.js.map +1 -1
  45. package/lib/module/fonts/FontLoader.js +30 -0
  46. package/lib/module/fonts/FontLoader.js.map +1 -0
  47. package/lib/module/fonts/FontLoader.native.js +31 -0
  48. package/lib/module/fonts/FontLoader.native.js.map +1 -0
  49. package/lib/module/fonts/apply-font-faces.js +43 -0
  50. package/lib/module/fonts/apply-font-faces.js.map +1 -0
  51. package/lib/module/fonts/font-assets.js +19 -0
  52. package/lib/module/fonts/font-assets.js.map +1 -0
  53. package/lib/module/fonts/index.js +7 -0
  54. package/lib/module/fonts/index.js.map +1 -0
  55. package/lib/module/fonts/tokens.js +23 -0
  56. package/lib/module/fonts/tokens.js.map +1 -0
  57. package/lib/module/index.js +6 -0
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/index.web.js +6 -0
  60. package/lib/module/index.web.js.map +1 -1
  61. package/lib/module/theme/BloomThemeProvider.js +8 -1
  62. package/lib/module/theme/BloomThemeProvider.js.map +1 -1
  63. package/lib/module/typography/index.js +36 -3
  64. package/lib/module/typography/index.js.map +1 -1
  65. package/lib/typescript/commonjs/__tests__/BloomThemeProvider.fonts-web.test.d.ts +5 -0
  66. package/lib/typescript/commonjs/__tests__/BloomThemeProvider.fonts-web.test.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/__tests__/Code.test.d.ts +2 -0
  68. package/lib/typescript/commonjs/__tests__/Code.test.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/__tests__/FontLoader.native.test.d.ts +2 -0
  70. package/lib/typescript/commonjs/__tests__/FontLoader.native.test.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/__tests__/Pre.test.d.ts +2 -0
  72. package/lib/typescript/commonjs/__tests__/Pre.test.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/__tests__/apply-font-faces.test.d.ts +5 -0
  74. package/lib/typescript/commonjs/__tests__/apply-font-faces.test.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/code/Code.d.ts +7 -0
  76. package/lib/typescript/commonjs/code/Code.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/code/Pre.d.ts +8 -0
  78. package/lib/typescript/commonjs/code/Pre.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/code/index.d.ts +5 -0
  80. package/lib/typescript/commonjs/code/index.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/error-boundary/ErrorBoundary.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/fonts/FontLoader.d.ts +28 -0
  83. package/lib/typescript/commonjs/fonts/FontLoader.d.ts.map +1 -0
  84. package/lib/typescript/commonjs/fonts/FontLoader.native.d.ts +22 -0
  85. package/lib/typescript/commonjs/fonts/FontLoader.native.d.ts.map +1 -0
  86. package/lib/typescript/commonjs/fonts/apply-font-faces.d.ts +15 -0
  87. package/lib/typescript/commonjs/fonts/apply-font-faces.d.ts.map +1 -0
  88. package/lib/typescript/commonjs/fonts/font-assets.d.ts +7 -0
  89. package/lib/typescript/commonjs/fonts/font-assets.d.ts.map +1 -0
  90. package/lib/typescript/commonjs/fonts/index.d.ts +7 -0
  91. package/lib/typescript/commonjs/fonts/index.d.ts.map +1 -0
  92. package/lib/typescript/commonjs/fonts/tokens.d.ts +21 -0
  93. package/lib/typescript/commonjs/fonts/tokens.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/icons/common.d.ts +1 -1
  95. package/lib/typescript/commonjs/index.d.ts +2 -0
  96. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/index.web.d.ts +2 -0
  98. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts +13 -1
  100. package/lib/typescript/commonjs/theme/BloomThemeProvider.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/toast/index.d.ts +7 -7
  102. package/lib/typescript/commonjs/typography/index.d.ts +2 -0
  103. package/lib/typescript/commonjs/typography/index.d.ts.map +1 -1
  104. package/lib/typescript/module/__tests__/BloomThemeProvider.fonts-web.test.d.ts +5 -0
  105. package/lib/typescript/module/__tests__/BloomThemeProvider.fonts-web.test.d.ts.map +1 -0
  106. package/lib/typescript/module/__tests__/Code.test.d.ts +2 -0
  107. package/lib/typescript/module/__tests__/Code.test.d.ts.map +1 -0
  108. package/lib/typescript/module/__tests__/FontLoader.native.test.d.ts +2 -0
  109. package/lib/typescript/module/__tests__/FontLoader.native.test.d.ts.map +1 -0
  110. package/lib/typescript/module/__tests__/Pre.test.d.ts +2 -0
  111. package/lib/typescript/module/__tests__/Pre.test.d.ts.map +1 -0
  112. package/lib/typescript/module/__tests__/apply-font-faces.test.d.ts +5 -0
  113. package/lib/typescript/module/__tests__/apply-font-faces.test.d.ts.map +1 -0
  114. package/lib/typescript/module/code/Code.d.ts +7 -0
  115. package/lib/typescript/module/code/Code.d.ts.map +1 -0
  116. package/lib/typescript/module/code/Pre.d.ts +8 -0
  117. package/lib/typescript/module/code/Pre.d.ts.map +1 -0
  118. package/lib/typescript/module/code/index.d.ts +5 -0
  119. package/lib/typescript/module/code/index.d.ts.map +1 -0
  120. package/lib/typescript/module/error-boundary/ErrorBoundary.d.ts.map +1 -1
  121. package/lib/typescript/module/fonts/FontLoader.d.ts +28 -0
  122. package/lib/typescript/module/fonts/FontLoader.d.ts.map +1 -0
  123. package/lib/typescript/module/fonts/FontLoader.native.d.ts +22 -0
  124. package/lib/typescript/module/fonts/FontLoader.native.d.ts.map +1 -0
  125. package/lib/typescript/module/fonts/apply-font-faces.d.ts +15 -0
  126. package/lib/typescript/module/fonts/apply-font-faces.d.ts.map +1 -0
  127. package/lib/typescript/module/fonts/font-assets.d.ts +7 -0
  128. package/lib/typescript/module/fonts/font-assets.d.ts.map +1 -0
  129. package/lib/typescript/module/fonts/index.d.ts +7 -0
  130. package/lib/typescript/module/fonts/index.d.ts.map +1 -0
  131. package/lib/typescript/module/fonts/tokens.d.ts +21 -0
  132. package/lib/typescript/module/fonts/tokens.d.ts.map +1 -0
  133. package/lib/typescript/module/icons/common.d.ts +1 -1
  134. package/lib/typescript/module/index.d.ts +2 -0
  135. package/lib/typescript/module/index.d.ts.map +1 -1
  136. package/lib/typescript/module/index.web.d.ts +2 -0
  137. package/lib/typescript/module/index.web.d.ts.map +1 -1
  138. package/lib/typescript/module/theme/BloomThemeProvider.d.ts +13 -1
  139. package/lib/typescript/module/theme/BloomThemeProvider.d.ts.map +1 -1
  140. package/lib/typescript/module/toast/index.d.ts +7 -7
  141. package/lib/typescript/module/typography/index.d.ts +2 -0
  142. package/lib/typescript/module/typography/index.d.ts.map +1 -1
  143. package/package.json +37 -2
  144. package/src/__tests__/BloomThemeProvider.fonts-web.test.tsx +42 -0
  145. package/src/__tests__/BloomThemeProvider.test.tsx +22 -0
  146. package/src/__tests__/Code.test.tsx +25 -0
  147. package/src/__tests__/FontLoader.native.test.tsx +75 -0
  148. package/src/__tests__/Pre.test.tsx +25 -0
  149. package/src/__tests__/apply-font-faces.test.ts +59 -0
  150. package/src/assets.d.ts +20 -0
  151. package/src/code/Code.tsx +52 -0
  152. package/src/code/Pre.tsx +76 -0
  153. package/src/code/index.ts +4 -0
  154. package/src/error-boundary/ErrorBoundary.tsx +22 -7
  155. package/src/fonts/FontLoader.native.tsx +30 -0
  156. package/src/fonts/FontLoader.tsx +37 -0
  157. package/src/fonts/apply-font-faces.ts +42 -0
  158. package/src/fonts/font-assets.ts +16 -0
  159. package/src/fonts/index.ts +6 -0
  160. package/src/fonts/tokens.ts +23 -0
  161. package/src/index.ts +6 -0
  162. package/src/index.web.ts +6 -0
  163. package/src/theme/BloomThemeProvider.tsx +18 -1
  164. package/src/typography/index.tsx +32 -3
@@ -8,11 +8,33 @@ import {
8
8
  } from 'react-native';
9
9
 
10
10
  import { useTheme } from '../theme/use-theme';
11
+ import { fontFamilies } from '../fonts/tokens';
11
12
 
12
13
  export type TextProps = RNTextProps;
13
14
 
14
15
  /**
15
- * Base text component with theme-aware default color.
16
+ * Platform-aware font-family value. On web we resolve to the CSS custom
17
+ * property set by `applyFontFaces` so consumer apps can re-skin Bloom by
18
+ * overriding `--bloom-font-*` at any subtree. On native we use the literal
19
+ * family name registered by `expo-font`'s `useFonts(FONT_ASSETS)`.
20
+ */
21
+ function fontFamilyStyle(
22
+ kind: 'display' | 'sans' | 'mono',
23
+ ): { fontFamily: string } {
24
+ if (Platform.OS === 'web') {
25
+ return { fontFamily: `var(--bloom-font-${kind})` };
26
+ }
27
+ if (kind === 'display') return { fontFamily: 'BlomusModernus' };
28
+ if (kind === 'mono') return { fontFamily: 'Geist Mono' };
29
+ return { fontFamily: 'Inter' };
30
+ }
31
+
32
+ const SANS_FONT_FAMILY = fontFamilyStyle('sans');
33
+ const DISPLAY_FONT_FAMILY = fontFamilyStyle('display');
34
+
35
+ /**
36
+ * Base text component with theme-aware default color and the Bloom sans
37
+ * font family applied.
16
38
  */
17
39
  const TextComponent = function Text({ children, style, ...rest }: TextProps) {
18
40
  const { colors } = useTheme();
@@ -20,7 +42,7 @@ const TextComponent = function Text({ children, style, ...rest }: TextProps) {
20
42
  return (
21
43
  <RNText
22
44
  {...rest}
23
- style={[{ fontSize: 13, color: colors.text }, style]}>
45
+ style={[{ fontSize: 13, color: colors.text, ...SANS_FONT_FAMILY }, style]}>
24
46
  {children}
25
47
  </RNText>
26
48
  );
@@ -31,13 +53,18 @@ Text.displayName = 'Text';
31
53
 
32
54
  export { Text as Span };
33
55
 
56
+ const HEADING_STYLE: StyleProp<TextStyle> = {
57
+ ...DISPLAY_FONT_FAMILY,
58
+ fontWeight: '700',
59
+ };
60
+
34
61
  function createHeadingElement({ level }: { level: number }): React.FC<TextProps> {
35
62
  return function HeadingElement({ style, ...rest }: TextProps) {
36
63
  const extraProps: Record<string, unknown> =
37
64
  Platform.OS === 'web'
38
65
  ? { role: 'heading', 'aria-level': level }
39
66
  : {};
40
- return <Text {...extraProps} {...rest} style={style} />;
67
+ return <Text {...extraProps} {...rest} style={[HEADING_STYLE, style]} />;
41
68
  };
42
69
  }
43
70
 
@@ -66,3 +93,5 @@ export function P({ style, ...rest }: TextProps) {
66
93
  );
67
94
  }
68
95
  P.displayName = 'P';
96
+
97
+ export { fontFamilies };