@newtonedev/components 0.1.12 → 0.1.14

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 (227) hide show
  1. package/dist/_COMPONENT_TEMPLATE/ComponentName.styles.d.ts +4 -3
  2. package/dist/_COMPONENT_TEMPLATE/ComponentName.styles.d.ts.map +1 -1
  3. package/dist/_COMPONENT_TEMPLATE/ComponentName.types.d.ts +1 -1
  4. package/dist/_COMPONENT_TEMPLATE/ComponentName.types.d.ts.map +1 -1
  5. package/dist/composites/actions/Button/Button.d.ts +11 -1
  6. package/dist/composites/actions/Button/Button.d.ts.map +1 -1
  7. package/dist/composites/actions/Button/Button.styles.d.ts +1 -1
  8. package/dist/composites/actions/Button/Button.styles.d.ts.map +1 -1
  9. package/dist/composites/actions/Button/Button.types.d.ts +11 -1
  10. package/dist/composites/actions/Button/Button.types.d.ts.map +1 -1
  11. package/dist/composites/branding/LogoMonogram/LogoMonogram.d.ts +10 -0
  12. package/dist/composites/branding/LogoMonogram/LogoMonogram.d.ts.map +1 -0
  13. package/dist/composites/branding/LogoMonogram/LogoMonogram.types.d.ts +35 -0
  14. package/dist/composites/branding/LogoMonogram/LogoMonogram.types.d.ts.map +1 -0
  15. package/dist/composites/branding/LogoMonogram/index.d.ts +3 -0
  16. package/dist/composites/branding/LogoMonogram/index.d.ts.map +1 -0
  17. package/dist/composites/branding/LogoWordmark/LogoWordmark.d.ts +9 -0
  18. package/dist/composites/branding/LogoWordmark/LogoWordmark.d.ts.map +1 -0
  19. package/dist/composites/branding/LogoWordmark/LogoWordmark.types.d.ts +26 -0
  20. package/dist/composites/branding/LogoWordmark/LogoWordmark.types.d.ts.map +1 -0
  21. package/dist/composites/branding/LogoWordmark/index.d.ts +3 -0
  22. package/dist/composites/branding/LogoWordmark/index.d.ts.map +1 -0
  23. package/dist/composites/display/Chip/Chip.d.ts +25 -0
  24. package/dist/composites/display/Chip/Chip.d.ts.map +1 -0
  25. package/dist/composites/display/Chip/Chip.styles.d.ts +29 -0
  26. package/dist/composites/display/Chip/Chip.styles.d.ts.map +1 -0
  27. package/dist/composites/display/Chip/Chip.types.d.ts +63 -0
  28. package/dist/composites/display/Chip/Chip.types.d.ts.map +1 -0
  29. package/dist/composites/display/Chip/index.d.ts +3 -0
  30. package/dist/composites/display/Chip/index.d.ts.map +1 -0
  31. package/dist/composites/form-controls/Select/Select.d.ts.map +1 -1
  32. package/dist/composites/form-controls/Select/Select.styles.d.ts +2 -2
  33. package/dist/composites/form-controls/Select/Select.styles.d.ts.map +1 -1
  34. package/dist/composites/form-controls/Select/SelectOption.d.ts.map +1 -1
  35. package/dist/composites/form-controls/TextInput/TextInput.d.ts.map +1 -1
  36. package/dist/composites/form-controls/TextInput/TextInput.styles.d.ts +2 -2
  37. package/dist/composites/form-controls/TextInput/TextInput.styles.d.ts.map +1 -1
  38. package/dist/composites/form-controls/Toggle/Toggle.d.ts.map +1 -1
  39. package/dist/composites/form-controls/Toggle/Toggle.styles.d.ts +2 -2
  40. package/dist/composites/form-controls/Toggle/Toggle.styles.d.ts.map +1 -1
  41. package/dist/composites/layout/AppShell/AppShell.d.ts.map +1 -1
  42. package/dist/composites/layout/AppShell/AppShell.styles.d.ts +2 -2
  43. package/dist/composites/layout/AppShell/AppShell.styles.d.ts.map +1 -1
  44. package/dist/composites/layout/Card/Card.d.ts.map +1 -1
  45. package/dist/composites/layout/Card/Card.styles.d.ts +2 -2
  46. package/dist/composites/layout/Card/Card.styles.d.ts.map +1 -1
  47. package/dist/composites/layout/Card/Card.types.d.ts +1 -1
  48. package/dist/composites/layout/Card/Card.types.d.ts.map +1 -1
  49. package/dist/composites/layout/ContentCard/ContentCard.d.ts +33 -0
  50. package/dist/composites/layout/ContentCard/ContentCard.d.ts.map +1 -0
  51. package/dist/composites/layout/ContentCard/ContentCard.styles.d.ts +10 -0
  52. package/dist/composites/layout/ContentCard/ContentCard.styles.d.ts.map +1 -0
  53. package/dist/composites/layout/ContentCard/ContentCard.types.d.ts +52 -0
  54. package/dist/composites/layout/ContentCard/ContentCard.types.d.ts.map +1 -0
  55. package/dist/composites/layout/ContentCard/index.d.ts +3 -0
  56. package/dist/composites/layout/ContentCard/index.d.ts.map +1 -0
  57. package/dist/composites/layout/Divider/Divider.d.ts +25 -0
  58. package/dist/composites/layout/Divider/Divider.d.ts.map +1 -0
  59. package/dist/composites/layout/Divider/Divider.styles.d.ts +8 -0
  60. package/dist/composites/layout/Divider/Divider.styles.d.ts.map +1 -0
  61. package/dist/composites/layout/Divider/Divider.types.d.ts +25 -0
  62. package/dist/composites/layout/Divider/Divider.types.d.ts.map +1 -0
  63. package/dist/composites/layout/Divider/index.d.ts +3 -0
  64. package/dist/composites/layout/Divider/index.d.ts.map +1 -0
  65. package/dist/composites/layout/Navbar/Navbar.d.ts.map +1 -1
  66. package/dist/composites/layout/Navbar/Navbar.styles.d.ts +4 -2
  67. package/dist/composites/layout/Navbar/Navbar.styles.d.ts.map +1 -1
  68. package/dist/composites/layout/Sidebar/Sidebar.d.ts.map +1 -1
  69. package/dist/composites/layout/Sidebar/Sidebar.styles.d.ts +4 -2
  70. package/dist/composites/layout/Sidebar/Sidebar.styles.d.ts.map +1 -1
  71. package/dist/composites/overlays/Popover/Popover.d.ts.map +1 -1
  72. package/dist/composites/overlays/Popover/Popover.styles.d.ts +2 -2
  73. package/dist/composites/overlays/Popover/Popover.styles.d.ts.map +1 -1
  74. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.d.ts +1 -1
  75. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.d.ts.map +1 -1
  76. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.d.ts +1 -1
  77. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.d.ts.map +1 -1
  78. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.types.d.ts +2 -0
  79. package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.types.d.ts.map +1 -1
  80. package/dist/composites/range-inputs/HueSlider/HueSlider.d.ts +3 -4
  81. package/dist/composites/range-inputs/HueSlider/HueSlider.d.ts.map +1 -1
  82. package/dist/composites/range-inputs/HueSlider/HueSlider.styles.d.ts +3 -3
  83. package/dist/composites/range-inputs/HueSlider/HueSlider.styles.d.ts.map +1 -1
  84. package/dist/composites/range-inputs/Slider/Slider.styles.d.ts +1 -1
  85. package/dist/composites/range-inputs/Slider/Slider.styles.d.ts.map +1 -1
  86. package/dist/index.cjs +1609 -1693
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.d.ts +22 -24
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +1454 -1621
  91. package/dist/index.js.map +1 -1
  92. package/dist/primitives/Frame/Frame.d.ts +1 -35
  93. package/dist/primitives/Frame/Frame.d.ts.map +1 -1
  94. package/dist/primitives/Frame/Frame.styles.d.ts +13 -3
  95. package/dist/primitives/Frame/Frame.styles.d.ts.map +1 -1
  96. package/dist/primitives/Frame/Frame.types.d.ts +99 -1
  97. package/dist/primitives/Frame/Frame.types.d.ts.map +1 -1
  98. package/dist/primitives/Frame/Frame.utils.d.ts +1 -1
  99. package/dist/primitives/Frame/Frame.utils.d.ts.map +1 -1
  100. package/dist/primitives/Frame/index.d.ts +1 -1
  101. package/dist/primitives/Frame/index.d.ts.map +1 -1
  102. package/dist/primitives/Icon/Icon.d.ts.map +1 -1
  103. package/dist/primitives/Icon/Icon.types.d.ts +2 -2
  104. package/dist/primitives/Icon/Icon.types.d.ts.map +1 -1
  105. package/dist/primitives/Text/Text.d.ts +6 -4
  106. package/dist/primitives/Text/Text.d.ts.map +1 -1
  107. package/dist/primitives/Text/Text.spans.d.ts.map +1 -1
  108. package/dist/primitives/Text/Text.types.d.ts +4 -7
  109. package/dist/primitives/Text/Text.types.d.ts.map +1 -1
  110. package/dist/primitives/Wrapper/Wrapper.d.ts +1 -1
  111. package/dist/primitives/Wrapper/Wrapper.d.ts.map +1 -1
  112. package/dist/primitives/Wrapper/Wrapper.styles.d.ts +10 -2
  113. package/dist/primitives/Wrapper/Wrapper.styles.d.ts.map +1 -1
  114. package/dist/primitives/Wrapper/Wrapper.types.d.ts +31 -1
  115. package/dist/primitives/Wrapper/Wrapper.types.d.ts.map +1 -1
  116. package/package.json +3 -2
  117. package/src/_COMPONENT_TEMPLATE/ComponentName.styles.ts +4 -4
  118. package/src/_COMPONENT_TEMPLATE/ComponentName.tsx +2 -2
  119. package/src/_COMPONENT_TEMPLATE/ComponentName.types.ts +1 -1
  120. package/src/composites/actions/Button/Button.styles.ts +72 -55
  121. package/src/composites/actions/Button/Button.tsx +35 -14
  122. package/src/composites/actions/Button/Button.types.ts +13 -1
  123. package/src/composites/branding/LogoMonogram/LogoMonogram.tsx +29 -0
  124. package/src/composites/branding/LogoMonogram/LogoMonogram.types.ts +35 -0
  125. package/src/composites/branding/LogoMonogram/index.ts +2 -0
  126. package/src/composites/branding/LogoWordmark/LogoWordmark.tsx +29 -0
  127. package/src/composites/branding/LogoWordmark/LogoWordmark.types.ts +25 -0
  128. package/src/composites/branding/LogoWordmark/index.ts +2 -0
  129. package/src/composites/display/Chip/Chip.styles.ts +189 -0
  130. package/src/composites/display/Chip/Chip.tsx +97 -0
  131. package/src/composites/display/Chip/Chip.types.ts +74 -0
  132. package/src/composites/display/Chip/index.ts +2 -0
  133. package/src/composites/form-controls/Select/Select.styles.ts +10 -10
  134. package/src/composites/form-controls/Select/Select.tsx +9 -7
  135. package/src/composites/form-controls/Select/SelectOption.tsx +10 -8
  136. package/src/composites/form-controls/TextInput/TextInput.styles.ts +12 -9
  137. package/src/composites/form-controls/TextInput/TextInput.tsx +7 -5
  138. package/src/composites/form-controls/Toggle/Toggle.styles.ts +10 -7
  139. package/src/composites/form-controls/Toggle/Toggle.tsx +4 -3
  140. package/src/composites/layout/AppShell/AppShell.styles.ts +8 -4
  141. package/src/composites/layout/AppShell/AppShell.tsx +6 -2
  142. package/src/composites/layout/Card/Card.styles.ts +10 -5
  143. package/src/composites/layout/Card/Card.tsx +4 -3
  144. package/src/composites/layout/Card/Card.types.ts +1 -1
  145. package/src/composites/layout/ContentCard/ContentCard.styles.ts +44 -0
  146. package/src/composites/layout/ContentCard/ContentCard.tsx +71 -0
  147. package/src/composites/layout/ContentCard/ContentCard.types.ts +60 -0
  148. package/src/composites/layout/ContentCard/index.ts +2 -0
  149. package/src/composites/layout/Divider/Divider.styles.ts +30 -0
  150. package/src/composites/layout/Divider/Divider.tsx +46 -0
  151. package/src/composites/layout/Divider/Divider.types.ts +28 -0
  152. package/src/composites/layout/Divider/index.ts +2 -0
  153. package/src/composites/layout/Navbar/Navbar.styles.ts +7 -5
  154. package/src/composites/layout/Navbar/Navbar.tsx +4 -3
  155. package/src/composites/layout/Sidebar/Sidebar.styles.ts +7 -5
  156. package/src/composites/layout/Sidebar/Sidebar.tsx +4 -3
  157. package/src/composites/overlays/Popover/Popover.styles.ts +7 -5
  158. package/src/composites/overlays/Popover/Popover.tsx +4 -3
  159. package/src/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.ts +4 -5
  160. package/src/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.tsx +6 -2
  161. package/src/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.types.ts +2 -0
  162. package/src/composites/range-inputs/HueSlider/HueSlider.styles.ts +13 -20
  163. package/src/composites/range-inputs/HueSlider/HueSlider.tsx +7 -8
  164. package/src/composites/range-inputs/Slider/Slider.styles.ts +8 -9
  165. package/src/composites/range-inputs/Slider/Slider.tsx +1 -1
  166. package/src/index.ts +108 -61
  167. package/src/primitives/Frame/Frame.styles.ts +55 -11
  168. package/src/primitives/Frame/Frame.tsx +140 -142
  169. package/src/primitives/Frame/Frame.types.ts +119 -1
  170. package/src/primitives/Frame/Frame.utils.ts +1 -1
  171. package/src/primitives/Frame/index.ts +4 -0
  172. package/src/primitives/Icon/Icon.tsx +9 -7
  173. package/src/primitives/Icon/Icon.types.ts +2 -2
  174. package/src/primitives/Text/Text.spans.ts +9 -5
  175. package/src/primitives/Text/Text.tsx +33 -22
  176. package/src/primitives/Text/Text.types.ts +4 -7
  177. package/src/primitives/Wrapper/Wrapper.styles.ts +33 -1
  178. package/src/primitives/Wrapper/Wrapper.tsx +23 -4
  179. package/src/primitives/Wrapper/Wrapper.types.ts +45 -0
  180. package/dist/fonts/GoogleFontLoader.d.ts +0 -20
  181. package/dist/fonts/GoogleFontLoader.d.ts.map +0 -1
  182. package/dist/fonts/IconFontLoader.d.ts +0 -13
  183. package/dist/fonts/IconFontLoader.d.ts.map +0 -1
  184. package/dist/fonts/SelfHostedFontLoader.d.ts +0 -14
  185. package/dist/fonts/SelfHostedFontLoader.d.ts.map +0 -1
  186. package/dist/fonts/buildGoogleFontsUrl.d.ts +0 -2
  187. package/dist/fonts/buildGoogleFontsUrl.d.ts.map +0 -1
  188. package/dist/fonts/measureFont.d.ts +0 -19
  189. package/dist/fonts/measureFont.d.ts.map +0 -1
  190. package/dist/fonts/reportQueue.d.ts +0 -7
  191. package/dist/fonts/reportQueue.d.ts.map +0 -1
  192. package/dist/fonts/useLocalCalibration.d.ts +0 -19
  193. package/dist/fonts/useLocalCalibration.d.ts.map +0 -1
  194. package/dist/fonts/useTypographyCalibrations.d.ts +0 -11
  195. package/dist/fonts/useTypographyCalibrations.d.ts.map +0 -1
  196. package/dist/theme/FrameContext.d.ts +0 -26
  197. package/dist/theme/FrameContext.d.ts.map +0 -1
  198. package/dist/theme/NewtoneProvider.d.ts +0 -40
  199. package/dist/theme/NewtoneProvider.d.ts.map +0 -1
  200. package/dist/theme/defaults.d.ts +0 -8
  201. package/dist/theme/defaults.d.ts.map +0 -1
  202. package/dist/theme/types.d.ts +0 -156
  203. package/dist/theme/types.d.ts.map +0 -1
  204. package/dist/theme/useBreakpoint.d.ts +0 -9
  205. package/dist/theme/useBreakpoint.d.ts.map +0 -1
  206. package/dist/tokens/computeTokens.d.ts +0 -151
  207. package/dist/tokens/computeTokens.d.ts.map +0 -1
  208. package/dist/tokens/types.d.ts +0 -162
  209. package/dist/tokens/types.d.ts.map +0 -1
  210. package/dist/tokens/useTokens.d.ts +0 -26
  211. package/dist/tokens/useTokens.d.ts.map +0 -1
  212. package/src/fonts/GoogleFontLoader.tsx +0 -80
  213. package/src/fonts/IconFontLoader.tsx +0 -51
  214. package/src/fonts/SelfHostedFontLoader.tsx +0 -44
  215. package/src/fonts/buildGoogleFontsUrl.ts +0 -2
  216. package/src/fonts/measureFont.ts +0 -55
  217. package/src/fonts/reportQueue.ts +0 -54
  218. package/src/fonts/useLocalCalibration.ts +0 -97
  219. package/src/fonts/useTypographyCalibrations.ts +0 -15
  220. package/src/theme/FrameContext.tsx +0 -31
  221. package/src/theme/NewtoneProvider.tsx +0 -84
  222. package/src/theme/defaults.ts +0 -71
  223. package/src/theme/types.ts +0 -191
  224. package/src/theme/useBreakpoint.ts +0 -14
  225. package/src/tokens/computeTokens.ts +0 -516
  226. package/src/tokens/types.ts +0 -146
  227. package/src/tokens/useTokens.ts +0 -62
@@ -1,16 +1,17 @@
1
1
  import React, { createContext, useMemo, useState, useEffect } from 'react';
2
2
  import { Text as RNText, View } from 'react-native';
3
3
  import type { LayoutChangeEvent, TextStyle } from 'react-native';
4
- import { srgbToHex } from 'newtone';
5
4
  import { resolveResponsiveSize, estimateLineWidths, BREAKPOINT_ROLE_SCALE, scaleRoleStep, REFERENCE_LINE_HEIGHT_RATIO, buildFontFeatureSettings, SEMANTIC_WEIGHT_MAP, ROLE_DEFAULT_WEIGHTS } from '@newtonedev/fonts';
6
- import { useTokens } from '../../tokens/useTokens';
7
- import { useNewtoneTheme } from '../../theme/NewtoneProvider';
8
- import type { UseTokensResult } from '../../tokens/useTokens';
9
- import type { TextProps, TextColor } from './Text.types';
10
- import { useLocalCalibration } from '../../fonts/useLocalCalibration';
11
- import { useTypographyCalibrations } from '../../fonts/useTypographyCalibrations';
12
- import { enqueueObservation } from '../../fonts/reportQueue';
13
- import { useBreakpoint } from '../../theme/useBreakpoint';
5
+ import { useTokens } from 'newtone-api';
6
+ import { useNewtoneTheme } from 'newtone-api';
7
+ import { useFrameContext } from 'newtone-api';
8
+ import type { UseTokensResult } from 'newtone-api';
9
+ import type { ThemeName, AppearanceName } from 'newtone-api';
10
+ import type { TextProps, TextColor, TextRole } from './Text.types';
11
+ import { useLocalCalibration } from 'newtone-api';
12
+ import { useTypographyCalibrations } from 'newtone-api';
13
+ import { enqueueObservation } from 'newtone-api';
14
+ import { useBreakpoint } from 'newtone-api';
14
15
 
15
16
  /**
16
17
  * Context to pass the active scope's weight map to span sub-components.
@@ -22,20 +23,27 @@ export const TextScopeContext = createContext<{
22
23
  readonly weights: { readonly regular: number; readonly medium: number; readonly bold: number };
23
24
  } | null>(null);
24
25
 
26
+ /** Roles considered "large text" — accent uses accentLarge (lighter). */
27
+ const LARGE_TEXT_ROLES = new Set<TextRole>(['headline', 'title', 'heading', 'subheading']);
28
+
25
29
  /**
26
30
  * Resolve a semantic text color to a hex string from the current tokens.
27
- * Neutral text colors are top-level; palette colors use nested PaletteTokens.fill.
31
+ * Neutral colors use the inherited theme/appearance from the nearest Frame.
32
+ * Accent uses accentLarge (large text) or accentSmall (small text) from the inherited theme/appearance.
28
33
  */
29
- export function resolveTextColor(color: TextColor, tokens: UseTokensResult): string {
34
+ export function resolveTextColor(
35
+ color: TextColor,
36
+ tokens: UseTokensResult,
37
+ theme: ThemeName = 'primary',
38
+ appearance: AppearanceName = 'main',
39
+ role: TextRole = 'body',
40
+ ): string {
30
41
  switch (color) {
31
- case 'primary': return srgbToHex(tokens.textPrimary.srgb);
32
- case 'secondary': return srgbToHex(tokens.textSecondary.srgb);
33
- case 'tertiary': return srgbToHex(tokens.textTertiary.srgb);
34
- case 'disabled': return srgbToHex(tokens.textDisabled.srgb);
35
- case 'accent': return srgbToHex(tokens.accent.fill.srgb);
36
- case 'success': return srgbToHex(tokens.success.fill.srgb);
37
- case 'warning': return srgbToHex(tokens.warning.fill.srgb);
38
- case 'error': return srgbToHex(tokens.error.fill.srgb);
42
+ case 'primary': return tokens.colors[theme][appearance].fontPrimary;
43
+ case 'secondary': return tokens.colors[theme][appearance].fontSecondary;
44
+ case 'tertiary': return tokens.colors[theme][appearance].fontTertiary;
45
+ case 'disabled': return tokens.colors[theme][appearance].fontDisabled;
46
+ case 'accent': return tokens.colors[theme][appearance][LARGE_TEXT_ROLES.has(role) ? 'accentLarge' : 'accentSmall'];
39
47
  }
40
48
  }
41
49
 
@@ -90,7 +98,7 @@ function TextBase({
90
98
  weight: weightOverride,
91
99
  align,
92
100
  numberOfLines,
93
- elevation = 1,
101
+ elevation,
94
102
  style,
95
103
  accessibilityRole: accessibilityRoleOverride,
96
104
  testID,
@@ -102,6 +110,9 @@ function TextBase({
102
110
  }: TextProps) {
103
111
  const tokens = useTokens(elevation);
104
112
  const { config, reportingEndpoint } = useNewtoneTheme();
113
+ const frameCtx = useFrameContext();
114
+ const resolvedTheme: ThemeName = frameCtx?.theme ?? 'primary';
115
+ const resolvedAppearance: AppearanceName = frameCtx?.appearance ?? 'main';
105
116
 
106
117
  const size = sizeOverride ?? 'md';
107
118
  const fontSlot = tokens.typography.fonts[scope];
@@ -195,13 +206,13 @@ function TextBase({
195
206
  fontFamily: fontSlot.family,
196
207
  fontSize: activeStep.fontSize,
197
208
  fontWeight: String(resolvedFontWeight) as TextStyle['fontWeight'],
198
- color: resolveTextColor(color, tokens),
209
+ color: resolveTextColor(color, tokens, resolvedTheme, resolvedAppearance, role),
199
210
  lineHeight: correctedLineHeight,
200
211
  textAlign: align,
201
212
  ...(vcOffset !== 0 ? { transform: [{ translateY: vcOffset }] } : {}),
202
213
  ...(featureSettings ? { fontFeatureSettings: featureSettings } as any : {}),
203
214
  };
204
- }, [tokens, fontSlot, step, resolvedStep, responsive, isAdaptive, resolvedFontWeight, color, align, config.typography.fontMetrics, centerVertically, features]);
215
+ }, [tokens, fontSlot, step, resolvedStep, responsive, isAdaptive, resolvedFontWeight, color, align, config.typography.fontMetrics, centerVertically, features, resolvedTheme, resolvedAppearance]);
205
216
 
206
217
  // Auto-derive accessibility role and heading level for heading-like typography roles.
207
218
  // react-native-web uses aria-level to render the correct <h1>/<h2>/<h3> element.
@@ -1,5 +1,5 @@
1
1
  import type { Text as RNText, TextStyle } from 'react-native';
2
- import type { ElevationLevel } from '../../theme/types';
2
+ import type { ElevationLevel } from 'newtone-api';
3
3
 
4
4
  /** Typography size step — selects within the current role's 3-step scale. @default 'md' */
5
5
  export type TextSize = 'sm' | 'md' | 'lg';
@@ -8,7 +8,7 @@ export type TextSize = 'sm' | 'md' | 'lg';
8
8
  export type TextWeight = 'regular' | 'medium' | 'bold';
9
9
 
10
10
  /** Semantic text color tokens — resolved from the current theme's token palette. */
11
- export type TextColor = 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'accent' | 'success' | 'warning' | 'error';
11
+ export type TextColor = 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'accent';
12
12
 
13
13
  /** Font scope — selects which font family slot to use. @default 'main' */
14
14
  export type TextScope = 'main' | 'display' | 'mono' | 'currency';
@@ -66,10 +66,7 @@ export interface TextProps {
66
66
  * - `'secondary'` — Subdued/muted text (captions, labels)
67
67
  * - `'tertiary'` — Hints, placeholders
68
68
  * - `'disabled'` — Disabled text elements
69
- * - `'accent'` — Accent palette color for links/actions
70
- * - `'success'` — Success palette color for positive indicators
71
- * - `'warning'` — Warning palette color for caution indicators
72
- * - `'error'` — Error palette color for destructive/error indicators
69
+ * - `'accent'` — Accent color from the inherited theme/appearance (accentLarge for large text, accentSmall for small text)
73
70
  *
74
71
  * @default 'primary'
75
72
  */
@@ -89,7 +86,7 @@ export interface TextProps {
89
86
  /** Maximum number of lines before truncation with ellipsis. When omitted, text wraps freely. */
90
87
  readonly numberOfLines?: number;
91
88
 
92
- /** Elevation level for token computation. @default 1 */
89
+ /** Elevation level for token computation. When omitted, inherits from nearest parent Frame. */
93
90
  readonly elevation?: ElevationLevel;
94
91
 
95
92
  /** Style overrides (applied last). Supports a single style or an array of styles. */
@@ -1,6 +1,6 @@
1
1
  import type { ViewStyle } from 'react-native';
2
2
  import { StyleSheet } from 'react-native';
3
- import type { ResolvedTokens } from '../../tokens/types';
3
+ import type { ResolvedTokens } from 'newtone-api';
4
4
  import type {
5
5
  Direction,
6
6
  Alignment,
@@ -8,6 +8,9 @@ import type {
8
8
  PaddingProp,
9
9
  GapProp,
10
10
  SizingMode,
11
+ PositionType,
12
+ OffsetValue,
13
+ OverflowMode,
11
14
  } from '../Frame/Frame.types';
12
15
  import {
13
16
  resolvePadding,
@@ -33,6 +36,16 @@ export interface WrapperStyleInput {
33
36
  readonly maxWidth?: number;
34
37
  readonly minHeight?: number;
35
38
  readonly maxHeight?: number;
39
+
40
+ // Positioning
41
+ readonly position?: PositionType;
42
+ readonly top?: OffsetValue;
43
+ readonly right?: OffsetValue;
44
+ readonly bottom?: OffsetValue;
45
+ readonly left?: OffsetValue;
46
+ readonly zIndex?: number;
47
+ readonly overflow?: OverflowMode;
48
+ readonly opacity?: number;
36
49
  }
37
50
 
38
51
  /**
@@ -58,6 +71,14 @@ export function getWrapperStyles(input: WrapperStyleInput): ViewStyle {
58
71
  maxWidth,
59
72
  minHeight,
60
73
  maxHeight,
74
+ position,
75
+ top,
76
+ right,
77
+ bottom,
78
+ left,
79
+ zIndex,
80
+ overflow,
81
+ opacity,
61
82
  } = input;
62
83
 
63
84
  // We build styles as a plain object first, then validate it through
@@ -107,6 +128,17 @@ export function getWrapperStyles(input: WrapperStyleInput): ViewStyle {
107
128
  if (minHeight !== undefined) container.minHeight = minHeight;
108
129
  if (maxHeight !== undefined) container.maxHeight = maxHeight;
109
130
 
131
+ // ── Positioning ──
132
+ // Set CSS position mode and offsets for absolute/fixed/sticky positioning.
133
+ if (position) container.position = position;
134
+ if (top !== undefined) container.top = top;
135
+ if (right !== undefined) container.right = right;
136
+ if (bottom !== undefined) container.bottom = bottom;
137
+ if (left !== undefined) container.left = left;
138
+ if (zIndex !== undefined) container.zIndex = zIndex;
139
+ if (overflow) container.overflow = overflow;
140
+ if (opacity !== undefined) container.opacity = opacity;
141
+
110
142
  // Pass through StyleSheet.create() to validate and optimize the styles,
111
143
  // then extract the single style object with `.c`.
112
144
  return StyleSheet.create({ c: container as ViewStyle }).c;
@@ -2,7 +2,7 @@ import React, { useMemo } from 'react';
2
2
  import { View } from 'react-native';
3
3
  import type { WrapperProps } from './Wrapper.types';
4
4
  import { getWrapperStyles } from './Wrapper.styles';
5
- import { useTokens } from '../../tokens/useTokens';
5
+ import { useTokens } from 'newtone-api';
6
6
 
7
7
  /**
8
8
  * Wrapper — Lightweight, invisible layout container.
@@ -44,6 +44,16 @@ export function Wrapper({
44
44
  maxWidth,
45
45
  minHeight,
46
46
  maxHeight,
47
+ // Positioning
48
+ position,
49
+ top,
50
+ right,
51
+ bottom,
52
+ left,
53
+ zIndex,
54
+ overflow,
55
+ pointerEvents,
56
+ opacity,
47
57
  style,
48
58
  // Testing & platform
49
59
  testID,
@@ -51,9 +61,8 @@ export function Wrapper({
51
61
  ref,
52
62
  }: WrapperProps) {
53
63
  // Get the theme's design tokens so we can convert spacing names (like 'md')
54
- // into pixel values. The "1" is the default elevation level Wrapper doesn't
55
- // have its own elevation, but tokens need one for the spacing lookups.
56
- const tokens = useTokens(1);
64
+ // into pixel values. Wrapper inherits elevation from FrameContext automatically.
65
+ const tokens = useTokens();
57
66
 
58
67
  // Calculate the layout styles (direction, spacing, alignment, sizing).
59
68
  // Wrapped in useMemo so it only recalculates when one of the props changes,
@@ -74,11 +83,20 @@ export function Wrapper({
74
83
  maxWidth,
75
84
  minHeight,
76
85
  maxHeight,
86
+ position,
87
+ top,
88
+ right,
89
+ bottom,
90
+ left,
91
+ zIndex,
92
+ overflow,
93
+ opacity,
77
94
  }),
78
95
  [
79
96
  tokens, direction, wrap, reverse,
80
97
  align, justify, padding, gap,
81
98
  width, height, minWidth, maxWidth, minHeight, maxHeight,
99
+ position, top, right, bottom, left, zIndex, overflow, opacity,
82
100
  ],
83
101
  );
84
102
 
@@ -93,6 +111,7 @@ export function Wrapper({
93
111
  ref={ref}
94
112
  testID={testID}
95
113
  nativeID={nativeID}
114
+ pointerEvents={pointerEvents}
96
115
  // Wrapper is a layout-only container with no semantic meaning.
97
116
  // "none" tells screen readers to skip this element and read its children directly.
98
117
  accessibilityRole="none"
@@ -6,6 +6,10 @@ import type {
6
6
  PaddingProp,
7
7
  GapProp,
8
8
  SizingMode,
9
+ PositionType,
10
+ OffsetValue,
11
+ OverflowMode,
12
+ PointerEventsMode,
9
13
  } from '../Frame/Frame.types';
10
14
 
11
15
  /**
@@ -131,6 +135,47 @@ export interface WrapperProps {
131
135
  /** Maximum height in pixels. */
132
136
  readonly maxHeight?: number;
133
137
 
138
+ // ── Positioning ──
139
+
140
+ /**
141
+ * CSS position mode.
142
+ *
143
+ * `'fixed'` and `'sticky'` are web-only (supported via react-native-web).
144
+ * React Native natively supports `'absolute'` and `'relative'`.
145
+ */
146
+ readonly position?: PositionType;
147
+
148
+ /** Offset from the top edge. Accepts pixels (number) or percentage string. */
149
+ readonly top?: OffsetValue;
150
+
151
+ /** Offset from the right edge. Accepts pixels (number) or percentage string. */
152
+ readonly right?: OffsetValue;
153
+
154
+ /** Offset from the bottom edge. Accepts pixels (number) or percentage string. */
155
+ readonly bottom?: OffsetValue;
156
+
157
+ /** Offset from the left edge. Accepts pixels (number) or percentage string. */
158
+ readonly left?: OffsetValue;
159
+
160
+ /** Stacking order. Higher values render above lower values. */
161
+ readonly zIndex?: number;
162
+
163
+ /** Content overflow behavior. */
164
+ readonly overflow?: OverflowMode;
165
+
166
+ /**
167
+ * Controls whether the element can be the target of touch/pointer events.
168
+ *
169
+ * - `'auto'` — default, element and children receive events
170
+ * - `'none'` — element and children are invisible to events (pass through)
171
+ * - `'box-none'` — element ignores events but children can receive them
172
+ * - `'box-only'` — element receives events but children cannot
173
+ */
174
+ readonly pointerEvents?: PointerEventsMode;
175
+
176
+ /** Opacity of the element (0 = fully transparent, 1 = fully opaque). */
177
+ readonly opacity?: number;
178
+
134
179
  // ── Testing & Platform ──
135
180
 
136
181
  /** Test identifier — maps to `data-testid` on web. Used by testing libraries. */
@@ -1,20 +0,0 @@
1
- import type { FontSlot } from '../theme/types';
2
- interface GoogleFontLoaderProps {
3
- readonly fonts: {
4
- readonly main: FontSlot;
5
- readonly display: FontSlot;
6
- readonly mono: FontSlot;
7
- readonly currency: FontSlot;
8
- };
9
- }
10
- /**
11
- * Manages a single <link> tag in <head> for Google Fonts.
12
- * Removes the previous link when fonts change to avoid accumulation.
13
- * Does nothing when no Google fonts are present.
14
- *
15
- * Uses imperative DOM manipulation because react-native-web's View
16
- * cannot render <link> elements.
17
- */
18
- export declare function GoogleFontLoader({ fonts }: GoogleFontLoaderProps): null;
19
- export {};
20
- //# sourceMappingURL=GoogleFontLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoogleFontLoader.d.ts","sourceRoot":"","sources":["../../src/fonts/GoogleFontLoader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC7B,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,qBAAqB,QA0DhE"}
@@ -1,13 +0,0 @@
1
- interface IconFontLoaderProps {
2
- readonly icons: {
3
- readonly variant: 'outlined' | 'rounded' | 'sharp';
4
- };
5
- }
6
- /**
7
- * Manages a single <link> tag in <head> for the Material Symbols icon font.
8
- * Loads the variable font with all axes (FILL, wght, GRAD, opsz).
9
- * Removes the previous link when the variant changes to avoid accumulation.
10
- */
11
- export declare function IconFontLoader({ icons }: IconFontLoaderProps): null;
12
- export {};
13
- //# sourceMappingURL=IconFontLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconFontLoader.d.ts","sourceRoot":"","sources":["../../src/fonts/IconFontLoader.tsx"],"names":[],"mappings":"AAEA,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;KACpD,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,QAqC5D"}
@@ -1,14 +0,0 @@
1
- interface SelfHostedFontLoaderProps {
2
- /** Raw @font-face CSS string from the theme API. */
3
- readonly fontFaceCss: string;
4
- }
5
- /**
6
- * Injects self-hosted @font-face CSS into <head> via a <style> tag.
7
- * Used instead of GoogleFontLoader when self-hosted font CSS is available.
8
- *
9
- * Uses imperative DOM manipulation because react-native-web's View
10
- * cannot render <style> elements.
11
- */
12
- export declare function SelfHostedFontLoader({ fontFaceCss }: SelfHostedFontLoaderProps): null;
13
- export {};
14
- //# sourceMappingURL=SelfHostedFontLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfHostedFontLoader.d.ts","sourceRoot":"","sources":["../../src/fonts/SelfHostedFontLoader.tsx"],"names":[],"mappings":"AAEA,UAAU,yBAAyB;IACjC,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,yBAAyB,QA6B9E"}
@@ -1,2 +0,0 @@
1
- export { buildGoogleFontsUrl } from '@newtonedev/fonts';
2
- //# sourceMappingURL=buildGoogleFontsUrl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildGoogleFontsUrl.d.ts","sourceRoot":"","sources":["../../src/fonts/buildGoogleFontsUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Measure the average character width ratio for a font using the Canvas API.
3
- *
4
- * Waits for the font to load via `document.fonts.load()` before measuring,
5
- * with a 3-second timeout to prevent hangs when fonts fail to load silently.
6
- * Falls back to 0.55 if the browser context is unavailable, the font fails
7
- * to load, or canvas is not supported.
8
- *
9
- * The returned ratio represents `avgCharWidth / fontSize`. Multiply by a
10
- * desired fontSize to estimate character widths for that font.
11
- *
12
- * @param fontFamily - Font family name, e.g. "Inter" or "system-ui"
13
- * @param fontWeight - CSS font-weight number, e.g. 400
14
- * @param fallback - CSS fallback stack, e.g. "sans-serif"
15
- * @param fontSize - Reference font size in px (default 16)
16
- * @returns Average character width ratio, e.g. 0.52 for Inter
17
- */
18
- export declare function measureAvgCharWidth(fontFamily: string, fontWeight: number, fallback: string, fontSize?: number): Promise<number>;
19
- //# sourceMappingURL=measureFont.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"measureFont.d.ts","sourceRoot":"","sources":["../../src/fonts/measureFont.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,SAAK,GACZ,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -1,7 +0,0 @@
1
- import type { ObserverPayload } from '@newtonedev/fonts';
2
- /**
3
- * Enqueue a typography observation for batch reporting.
4
- * Resets the 2s debounce timer on each call.
5
- */
6
- export declare function enqueueObservation(endpoint: string, payload: ObserverPayload): void;
7
- //# sourceMappingURL=reportQueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reportQueue.d.ts","sourceRoot":"","sources":["../../src/fonts/reportQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA6CzD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAInF"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Returns the avgCharWidth ratio for a font, using a device-local measurement
3
- * cached in localStorage (Layer 2 calibration).
4
- *
5
- * Resolution order:
6
- * 1. localStorage cache (if fresh, < 7 days old)
7
- * 2. `baseCalibration` (Layer 1 — editor-time canvas measurement from theme config)
8
- * 3. 0.55 (fallback constant)
9
- *
10
- * On mount, measures the font if the cache is stale or absent, then updates
11
- * localStorage and triggers a re-render with the device-accurate ratio.
12
- *
13
- * @param fontFamily - CSS font family name, e.g. "Inter"
14
- * @param fontWeight - CSS font-weight number, e.g. 400
15
- * @param fallback - CSS fallback stack, e.g. "sans-serif"
16
- * @param baseCalibration - Layer 1 ratio from `themeConfig.typography.calibrations`
17
- */
18
- export declare function useLocalCalibration(fontFamily: string, fontWeight: number, fallback: string, baseCalibration?: number): number;
19
- //# sourceMappingURL=useLocalCalibration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLocalCalibration.d.ts","sourceRoot":"","sources":["../../src/fonts/useLocalCalibration.ts"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAsCR"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Returns the per-font avgCharWidth calibrations from the current theme config.
3
- *
4
- * These are Layer 1 (editor-time) calibrations — measured with canvas at publish
5
- * time and stored in `themeConfig.typography.calibrations`. Use `useLocalCalibration`
6
- * to overlay device-local (Layer 2) measurements on top.
7
- *
8
- * @returns Record of fontFamily → avgCharWidthRatio, or an empty object if absent.
9
- */
10
- export declare function useTypographyCalibrations(): Record<string, number>;
11
- //# sourceMappingURL=useTypographyCalibrations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTypographyCalibrations.d.ts","sourceRoot":"","sources":["../../src/fonts/useTypographyCalibrations.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlE"}
@@ -1,26 +0,0 @@
1
- import type { ElevationLevel } from './types';
2
- import type { ResolvedTokens } from '../tokens/types';
3
- /**
4
- * Context value provided by Frame to its descendants.
5
- * Contains the resolved elevation and pre-computed tokens.
6
- * Tokens are included to avoid redundant computeTokens calls in child components.
7
- */
8
- export interface FrameContextValue {
9
- readonly elevation: ElevationLevel;
10
- readonly tokens: ResolvedTokens;
11
- }
12
- /**
13
- * FrameContext - Propagates elevation overrides from Frame to descendants.
14
- *
15
- * When null, components fall back to default elevation (1).
16
- * When present, useTokens() reads from this context instead.
17
- */
18
- export declare const FrameContext: import("react").Context<FrameContextValue | null>;
19
- /**
20
- * useFrameContext - Read the nearest Frame's context, if any.
21
- *
22
- * Returns null when no parent Frame exists. This is intentionally not an error —
23
- * components outside a Frame simply fall back to the NewtoneProvider defaults.
24
- */
25
- export declare function useFrameContext(): FrameContextValue | null;
26
- //# sourceMappingURL=FrameContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FrameContext.d.ts","sourceRoot":"","sources":["../../src/theme/FrameContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAE1D"}
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import type { NewtoneThemeConfig, NewtoneThemeContext, ColorMode } from './types';
3
- export interface NewtoneProviderProps {
4
- readonly config?: NewtoneThemeConfig;
5
- readonly initialMode?: ColorMode;
6
- readonly children: React.ReactNode;
7
- /** Optional URL for typography telemetry. When set, adaptive Text instances report observations. */
8
- readonly reportingEndpoint?: string;
9
- /**
10
- * Self-hosted @font-face CSS from the theme API.
11
- * When provided, injects this CSS instead of loading from Google CDN.
12
- * Falls back to Google CDN when absent or null.
13
- */
14
- readonly fontFaceCss?: string | null;
15
- }
16
- /**
17
- * NewtoneProvider - Provides theme context to all Newtone components
18
- *
19
- * Wrap your app with this provider to enable mode switching.
20
- *
21
- * @example
22
- * ```tsx
23
- * <NewtoneProvider initialMode="light">
24
- * <App />
25
- * </NewtoneProvider>
26
- * ```
27
- */
28
- export declare function NewtoneProvider({ config, initialMode, children, reportingEndpoint, fontFaceCss, }: NewtoneProviderProps): React.JSX.Element;
29
- /**
30
- * useNewtoneTheme - Hook to access theme context
31
- *
32
- * Must be used within a NewtoneProvider.
33
- *
34
- * @example
35
- * ```tsx
36
- * const { mode, setMode } = useNewtoneTheme();
37
- * ```
38
- */
39
- export declare function useNewtoneTheme(): NewtoneThemeContext;
40
- //# sourceMappingURL=NewtoneProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NewtoneProvider.d.ts","sourceRoot":"","sources":["../../src/theme/NewtoneProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQlF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,oGAAoG;IACpG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAA6B,EAC7B,WAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,WAAW,GACZ,EAAE,oBAAoB,qBAwBtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,mBAAmB,CAMrD"}
@@ -1,8 +0,0 @@
1
- import type { NewtoneThemeConfig } from './types';
2
- export { DEFAULT_FONT_SIZES, DEFAULT_LINE_HEIGHTS, DEFAULT_ROLE_SCALES } from '@newtonedev/fonts';
3
- /**
4
- * Default theme configuration matching playground defaults.
5
- * Palettes: [0] Neutral, [1] Accent, [2] Success, [3] Warning, [4] Error
6
- */
7
- export declare const DEFAULT_THEME_CONFIG: NewtoneThemeConfig;
8
- //# sourceMappingURL=defaults.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/theme/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgBlD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAgDlC,CAAC"}