@chipmobilesdk/rn-theme 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +124 -1
  2. package/README.md +17 -12
  3. package/lib/commonjs/color/categorical.js +35 -0
  4. package/lib/commonjs/color/categorical.js.map +1 -0
  5. package/lib/commonjs/color/contrast.js +199 -0
  6. package/lib/commonjs/color/contrast.js.map +1 -0
  7. package/lib/commonjs/color/parse.js +110 -0
  8. package/lib/commonjs/color/parse.js.map +1 -0
  9. package/lib/commonjs/color/roles.js +235 -0
  10. package/lib/commonjs/color/roles.js.map +1 -0
  11. package/lib/commonjs/index.js +94 -0
  12. package/lib/commonjs/index.js.map +1 -0
  13. package/lib/commonjs/integration/navigationTheme.js +43 -0
  14. package/lib/commonjs/integration/navigationTheme.js.map +1 -0
  15. package/lib/commonjs/package.json +1 -0
  16. package/lib/commonjs/presets/byTone.js +28 -0
  17. package/lib/commonjs/presets/byTone.js.map +1 -0
  18. package/lib/commonjs/presets/layout.js +67 -0
  19. package/lib/commonjs/presets/layout.js.map +1 -0
  20. package/lib/commonjs/presets/themePresets.js +115 -0
  21. package/lib/commonjs/presets/themePresets.js.map +1 -0
  22. package/lib/commonjs/theme/buildThemes.js +211 -0
  23. package/lib/commonjs/theme/buildThemes.js.map +1 -0
  24. package/lib/commonjs/theme/errors.js +49 -0
  25. package/lib/commonjs/theme/errors.js.map +1 -0
  26. package/lib/commonjs/theme/overrides.js +125 -0
  27. package/lib/commonjs/theme/overrides.js.map +1 -0
  28. package/lib/commonjs/theme/validateThemeConfig.js +157 -0
  29. package/lib/commonjs/theme/validateThemeConfig.js.map +1 -0
  30. package/lib/commonjs/tokens/defaults.js +132 -0
  31. package/lib/commonjs/tokens/defaults.js.map +1 -0
  32. package/lib/commonjs/tokens/typography.js +136 -0
  33. package/lib/commonjs/tokens/typography.js.map +1 -0
  34. package/lib/commonjs/types/brand.js +2 -0
  35. package/lib/commonjs/types/brand.js.map +1 -0
  36. package/lib/commonjs/types/colors.js +2 -0
  37. package/lib/commonjs/types/colors.js.map +1 -0
  38. package/lib/commonjs/types/index.js +2 -0
  39. package/lib/commonjs/types/index.js.map +1 -0
  40. package/lib/commonjs/types/theme.js +6 -0
  41. package/lib/commonjs/types/theme.js.map +1 -0
  42. package/lib/commonjs/types/tokens.js +2 -0
  43. package/lib/commonjs/types/tokens.js.map +1 -0
  44. package/lib/commonjs/types/typography.js +2 -0
  45. package/lib/commonjs/types/typography.js.map +1 -0
  46. package/lib/commonjs/unistyles/createUnistylesConfig.js +113 -0
  47. package/lib/commonjs/unistyles/createUnistylesConfig.js.map +1 -0
  48. package/lib/commonjs/unistyles/themeMode.js +39 -0
  49. package/lib/commonjs/unistyles/themeMode.js.map +1 -0
  50. package/lib/commonjs/vendor/mcu/LICENSE +191 -0
  51. package/lib/commonjs/vendor/mcu/hct/cam16.js +362 -0
  52. package/lib/commonjs/vendor/mcu/hct/cam16.js.map +1 -0
  53. package/lib/commonjs/vendor/mcu/hct/hct.js +183 -0
  54. package/lib/commonjs/vendor/mcu/hct/hct.js.map +1 -0
  55. package/lib/commonjs/vendor/mcu/hct/hct_solver.js +401 -0
  56. package/lib/commonjs/vendor/mcu/hct/hct_solver.js.map +1 -0
  57. package/lib/commonjs/vendor/mcu/hct/viewing_conditions.js +116 -0
  58. package/lib/commonjs/vendor/mcu/hct/viewing_conditions.js.map +1 -0
  59. package/lib/commonjs/vendor/mcu/index.js +27 -0
  60. package/lib/commonjs/vendor/mcu/index.js.map +1 -0
  61. package/lib/commonjs/vendor/mcu/palettes/tonal_palette.js +177 -0
  62. package/lib/commonjs/vendor/mcu/palettes/tonal_palette.js.map +1 -0
  63. package/lib/commonjs/vendor/mcu/utils/color_utils.js +298 -0
  64. package/lib/commonjs/vendor/mcu/utils/color_utils.js.map +1 -0
  65. package/lib/commonjs/vendor/mcu/utils/math_utils.js +158 -0
  66. package/lib/commonjs/vendor/mcu/utils/math_utils.js.map +1 -0
  67. package/lib/module/color/categorical.js +31 -0
  68. package/lib/module/color/categorical.js.map +1 -0
  69. package/lib/module/color/contrast.js +194 -0
  70. package/lib/module/color/contrast.js.map +1 -0
  71. package/lib/module/color/parse.js +101 -0
  72. package/lib/module/color/parse.js.map +1 -0
  73. package/lib/module/color/roles.js +229 -0
  74. package/lib/module/color/roles.js.map +1 -0
  75. package/lib/module/index.js +23 -0
  76. package/lib/module/index.js.map +1 -0
  77. package/lib/module/integration/navigationTheme.js +39 -0
  78. package/lib/module/integration/navigationTheme.js.map +1 -0
  79. package/lib/module/package.json +1 -0
  80. package/lib/module/presets/byTone.js +24 -0
  81. package/lib/module/presets/byTone.js.map +1 -0
  82. package/lib/module/presets/layout.js +63 -0
  83. package/lib/module/presets/layout.js.map +1 -0
  84. package/lib/module/presets/themePresets.js +110 -0
  85. package/lib/module/presets/themePresets.js.map +1 -0
  86. package/lib/module/theme/buildThemes.js +208 -0
  87. package/lib/module/theme/buildThemes.js.map +1 -0
  88. package/lib/module/theme/errors.js +43 -0
  89. package/lib/module/theme/errors.js.map +1 -0
  90. package/lib/module/theme/overrides.js +119 -0
  91. package/lib/module/theme/overrides.js.map +1 -0
  92. package/lib/module/theme/validateThemeConfig.js +152 -0
  93. package/lib/module/theme/validateThemeConfig.js.map +1 -0
  94. package/lib/module/tokens/defaults.js +120 -0
  95. package/lib/module/tokens/defaults.js.map +1 -0
  96. package/lib/module/tokens/typography.js +129 -0
  97. package/lib/module/tokens/typography.js.map +1 -0
  98. package/lib/module/types/brand.js +2 -0
  99. package/lib/module/types/brand.js.map +1 -0
  100. package/lib/module/types/colors.js +2 -0
  101. package/lib/module/types/colors.js.map +1 -0
  102. package/lib/module/types/index.js +2 -0
  103. package/lib/module/types/index.js.map +1 -0
  104. package/lib/module/types/theme.js +4 -0
  105. package/lib/module/types/theme.js.map +1 -0
  106. package/lib/module/types/tokens.js +2 -0
  107. package/lib/module/types/tokens.js.map +1 -0
  108. package/lib/module/types/typography.js +2 -0
  109. package/lib/module/types/typography.js.map +1 -0
  110. package/lib/module/unistyles/createUnistylesConfig.js +109 -0
  111. package/lib/module/unistyles/createUnistylesConfig.js.map +1 -0
  112. package/lib/module/unistyles/themeMode.js +36 -0
  113. package/lib/module/unistyles/themeMode.js.map +1 -0
  114. package/lib/module/vendor/mcu/LICENSE +191 -0
  115. package/lib/module/vendor/mcu/hct/cam16.js +356 -0
  116. package/lib/module/vendor/mcu/hct/cam16.js.map +1 -0
  117. package/lib/module/vendor/mcu/hct/hct.js +178 -0
  118. package/lib/module/vendor/mcu/hct/hct.js.map +1 -0
  119. package/lib/module/vendor/mcu/hct/hct_solver.js +396 -0
  120. package/lib/module/vendor/mcu/hct/hct_solver.js.map +1 -0
  121. package/lib/module/vendor/mcu/hct/viewing_conditions.js +110 -0
  122. package/lib/module/vendor/mcu/hct/viewing_conditions.js.map +1 -0
  123. package/lib/module/vendor/mcu/index.js +8 -0
  124. package/lib/module/vendor/mcu/index.js.map +1 -0
  125. package/lib/module/vendor/mcu/palettes/tonal_palette.js +172 -0
  126. package/lib/module/vendor/mcu/palettes/tonal_palette.js.map +1 -0
  127. package/lib/module/vendor/mcu/utils/color_utils.js +277 -0
  128. package/lib/module/vendor/mcu/utils/color_utils.js.map +1 -0
  129. package/lib/module/vendor/mcu/utils/math_utils.js +146 -0
  130. package/lib/module/vendor/mcu/utils/math_utils.js.map +1 -0
  131. package/lib/typescript/commonjs/color/categorical.d.ts +7 -0
  132. package/lib/typescript/commonjs/color/categorical.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/color/contrast.d.ts +26 -0
  134. package/lib/typescript/commonjs/color/contrast.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/color/parse.d.ts +25 -0
  136. package/lib/typescript/commonjs/color/parse.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/color/roles.d.ts +26 -0
  138. package/lib/typescript/commonjs/color/roles.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/index.d.ts +18 -0
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/integration/navigationTheme.d.ts +30 -0
  142. package/lib/typescript/commonjs/integration/navigationTheme.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/package.json +1 -0
  144. package/lib/typescript/commonjs/presets/byTone.d.ts +19 -0
  145. package/lib/typescript/commonjs/presets/byTone.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/presets/layout.d.ts +63 -0
  147. package/lib/typescript/commonjs/presets/layout.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/presets/themePresets.d.ts +11 -0
  149. package/lib/typescript/commonjs/presets/themePresets.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/theme/buildThemes.d.ts +18 -0
  151. package/lib/typescript/commonjs/theme/buildThemes.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/theme/errors.d.ts +23 -0
  153. package/lib/typescript/commonjs/theme/errors.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/theme/overrides.d.ts +11 -0
  155. package/lib/typescript/commonjs/theme/overrides.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/theme/validateThemeConfig.d.ts +6 -0
  157. package/lib/typescript/commonjs/theme/validateThemeConfig.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/tokens/defaults.d.ts +23 -0
  159. package/lib/typescript/commonjs/tokens/defaults.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/tokens/typography.d.ts +14 -0
  161. package/lib/typescript/commonjs/tokens/typography.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/types/brand.d.ts +21 -0
  163. package/lib/typescript/commonjs/types/brand.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/types/colors.d.ts +76 -0
  165. package/lib/typescript/commonjs/types/colors.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/types/index.d.ts +6 -0
  167. package/lib/typescript/commonjs/types/index.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/types/theme.d.ts +140 -0
  169. package/lib/typescript/commonjs/types/theme.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/types/tokens.d.ts +79 -0
  171. package/lib/typescript/commonjs/types/tokens.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/types/typography.d.ts +53 -0
  173. package/lib/typescript/commonjs/types/typography.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/unistyles/createUnistylesConfig.d.ts +52 -0
  175. package/lib/typescript/commonjs/unistyles/createUnistylesConfig.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/unistyles/themeMode.d.ts +13 -0
  177. package/lib/typescript/commonjs/unistyles/themeMode.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/vendor/mcu/hct/cam16.d.ts +132 -0
  179. package/lib/typescript/commonjs/vendor/mcu/hct/cam16.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/vendor/mcu/hct/hct.d.ts +93 -0
  181. package/lib/typescript/commonjs/vendor/mcu/hct/hct.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/vendor/mcu/hct/hct_solver.d.ts +147 -0
  183. package/lib/typescript/commonjs/vendor/mcu/hct/hct_solver.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/vendor/mcu/hct/viewing_conditions.d.ts +75 -0
  185. package/lib/typescript/commonjs/vendor/mcu/hct/viewing_conditions.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/vendor/mcu/index.d.ts +4 -0
  187. package/lib/typescript/commonjs/vendor/mcu/index.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/vendor/mcu/palettes/tonal_palette.d.ts +56 -0
  189. package/lib/typescript/commonjs/vendor/mcu/palettes/tonal_palette.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/vendor/mcu/utils/color_utils.d.ts +129 -0
  191. package/lib/typescript/commonjs/vendor/mcu/utils/color_utils.d.ts.map +1 -0
  192. package/lib/typescript/commonjs/vendor/mcu/utils/math_utils.d.ts +83 -0
  193. package/lib/typescript/commonjs/vendor/mcu/utils/math_utils.d.ts.map +1 -0
  194. package/lib/typescript/module/color/categorical.d.ts +7 -0
  195. package/lib/typescript/module/color/categorical.d.ts.map +1 -0
  196. package/lib/typescript/module/color/contrast.d.ts +26 -0
  197. package/lib/typescript/module/color/contrast.d.ts.map +1 -0
  198. package/lib/typescript/module/color/parse.d.ts +25 -0
  199. package/lib/typescript/module/color/parse.d.ts.map +1 -0
  200. package/lib/typescript/module/color/roles.d.ts +26 -0
  201. package/lib/typescript/module/color/roles.d.ts.map +1 -0
  202. package/lib/typescript/module/index.d.ts +18 -0
  203. package/lib/typescript/module/index.d.ts.map +1 -0
  204. package/lib/typescript/module/integration/navigationTheme.d.ts +30 -0
  205. package/lib/typescript/module/integration/navigationTheme.d.ts.map +1 -0
  206. package/lib/typescript/module/package.json +1 -0
  207. package/lib/typescript/module/presets/byTone.d.ts +19 -0
  208. package/lib/typescript/module/presets/byTone.d.ts.map +1 -0
  209. package/lib/typescript/module/presets/layout.d.ts +63 -0
  210. package/lib/typescript/module/presets/layout.d.ts.map +1 -0
  211. package/lib/typescript/module/presets/themePresets.d.ts +11 -0
  212. package/lib/typescript/module/presets/themePresets.d.ts.map +1 -0
  213. package/lib/typescript/module/theme/buildThemes.d.ts +18 -0
  214. package/lib/typescript/module/theme/buildThemes.d.ts.map +1 -0
  215. package/lib/typescript/module/theme/errors.d.ts +23 -0
  216. package/lib/typescript/module/theme/errors.d.ts.map +1 -0
  217. package/lib/typescript/module/theme/overrides.d.ts +11 -0
  218. package/lib/typescript/module/theme/overrides.d.ts.map +1 -0
  219. package/lib/typescript/module/theme/validateThemeConfig.d.ts +6 -0
  220. package/lib/typescript/module/theme/validateThemeConfig.d.ts.map +1 -0
  221. package/lib/typescript/module/tokens/defaults.d.ts +23 -0
  222. package/lib/typescript/module/tokens/defaults.d.ts.map +1 -0
  223. package/lib/typescript/module/tokens/typography.d.ts +14 -0
  224. package/lib/typescript/module/tokens/typography.d.ts.map +1 -0
  225. package/lib/typescript/module/types/brand.d.ts +21 -0
  226. package/lib/typescript/module/types/brand.d.ts.map +1 -0
  227. package/lib/typescript/module/types/colors.d.ts +76 -0
  228. package/lib/typescript/module/types/colors.d.ts.map +1 -0
  229. package/lib/typescript/module/types/index.d.ts +6 -0
  230. package/lib/typescript/module/types/index.d.ts.map +1 -0
  231. package/lib/typescript/module/types/theme.d.ts +140 -0
  232. package/lib/typescript/module/types/theme.d.ts.map +1 -0
  233. package/lib/typescript/module/types/tokens.d.ts +79 -0
  234. package/lib/typescript/module/types/tokens.d.ts.map +1 -0
  235. package/lib/typescript/module/types/typography.d.ts +53 -0
  236. package/lib/typescript/module/types/typography.d.ts.map +1 -0
  237. package/lib/typescript/module/unistyles/createUnistylesConfig.d.ts +52 -0
  238. package/lib/typescript/module/unistyles/createUnistylesConfig.d.ts.map +1 -0
  239. package/lib/typescript/module/unistyles/themeMode.d.ts +13 -0
  240. package/lib/typescript/module/unistyles/themeMode.d.ts.map +1 -0
  241. package/lib/typescript/module/vendor/mcu/hct/cam16.d.ts +132 -0
  242. package/lib/typescript/module/vendor/mcu/hct/cam16.d.ts.map +1 -0
  243. package/lib/typescript/module/vendor/mcu/hct/hct.d.ts +93 -0
  244. package/lib/typescript/module/vendor/mcu/hct/hct.d.ts.map +1 -0
  245. package/lib/typescript/module/vendor/mcu/hct/hct_solver.d.ts +147 -0
  246. package/lib/typescript/module/vendor/mcu/hct/hct_solver.d.ts.map +1 -0
  247. package/lib/typescript/module/vendor/mcu/hct/viewing_conditions.d.ts +75 -0
  248. package/lib/typescript/module/vendor/mcu/hct/viewing_conditions.d.ts.map +1 -0
  249. package/lib/typescript/module/vendor/mcu/index.d.ts +4 -0
  250. package/lib/typescript/module/vendor/mcu/index.d.ts.map +1 -0
  251. package/lib/typescript/module/vendor/mcu/palettes/tonal_palette.d.ts +56 -0
  252. package/lib/typescript/module/vendor/mcu/palettes/tonal_palette.d.ts.map +1 -0
  253. package/lib/typescript/module/vendor/mcu/utils/color_utils.d.ts +129 -0
  254. package/lib/typescript/module/vendor/mcu/utils/color_utils.d.ts.map +1 -0
  255. package/lib/typescript/module/vendor/mcu/utils/math_utils.d.ts +83 -0
  256. package/lib/typescript/module/vendor/mcu/utils/math_utils.d.ts.map +1 -0
  257. package/package.json +40 -16
  258. package/src/color/roles.ts +3 -1
  259. package/src/theme/buildThemes.ts +84 -26
  260. package/src/theme/validateThemeConfig.ts +28 -2
  261. package/src/tokens/defaults.ts +14 -8
  262. package/src/unistyles/createUnistylesConfig.ts +4 -1
  263. package/src/vendor/mcu/index.ts +1 -1
@@ -0,0 +1,25 @@
1
+ /** A colour channel set: red/green/blue 0–255, alpha 0–1. */
2
+ export interface Rgba {
3
+ r: number;
4
+ g: number;
5
+ b: number;
6
+ a: number;
7
+ }
8
+ /**
9
+ * Parses the colour formats the package accepts: `#RGB`, `#RGBA`, `#RRGGBB`,
10
+ * `#RRGGBBAA`, `rgb(r, g, b)` and `rgba(r, g, b, a)`. Returns `null` for
11
+ * anything else, including named colours and `hsl()`.
12
+ */
13
+ export declare function parseColor(value: unknown): Rgba | null;
14
+ export declare function isValidColor(value: unknown): value is string;
15
+ export declare function isOpaqueColor(value: unknown): value is string;
16
+ /** ARGB integer of an opaque colour string; throws for anything else. */
17
+ export declare function argbFromColor(value: string): number;
18
+ export declare function hexFromArgb(argb: number): string;
19
+ export declare function formatColor({ r, g, b, a }: Rgba): string;
20
+ /**
21
+ * Applies an opacity to a colour, multiplying any alpha it already has.
22
+ * Returns `#RRGGBBAA` (or `#RRGGBB` when the result is opaque).
23
+ */
24
+ export declare function withAlpha(color: string, alpha: number): string;
25
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/color/parse.ts"],"names":[],"mappings":"AAEA,6DAA6D;AAC7D,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CA0BtD;AAoBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE7D;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQnD;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAIxD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAY9D"}
@@ -0,0 +1,26 @@
1
+ import { TonalPalette } from '../vendor/mcu/index.js';
2
+ import type { BrandColors, SeedColors } from '../types/brand.js';
3
+ import type { AccentRoleName, ColorRoles, ColorScheme, StandardToneName, ToneColors } from '../types/colors.js';
4
+ /**
5
+ * 0.2.x light semantic colours, kept as default seeds so their hues carry over.
6
+ */
7
+ export declare const DEFAULT_SEEDS: Required<Omit<SeedColors, 'neutral'>>;
8
+ /** Material 3 opacities applied to `onSurface` and the scrim. */
9
+ /** The same figure as `opacity.disabledContent`, from its one definition (THM-07). */
10
+ export declare const DISABLED_CONTENT_OPACITY: number;
11
+ export interface PaletteInput {
12
+ brandColors: BrandColors;
13
+ seeds?: SeedColors;
14
+ tones?: Record<string, string>;
15
+ }
16
+ interface Palettes {
17
+ accent: Record<AccentRoleName, TonalPalette>;
18
+ neutral: TonalPalette;
19
+ neutralVariant: TonalPalette;
20
+ custom: Record<string, TonalPalette>;
21
+ }
22
+ export declare function buildPalettes(input: PaletteInput): Palettes;
23
+ export declare function buildColorRoles(palettes: Palettes, scheme: ColorScheme): ColorRoles;
24
+ export declare function buildTones<TTone extends string>(palettes: Palettes, color: ColorRoles, scheme: ColorScheme): Record<StandardToneName | TTone, ToneColors>;
25
+ export {};
26
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../src/color/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,YAAY,EAAE,MAAM,wBAAe,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAgB,CAAC;AAC9D,OAAO,KAAK,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,MAAM,oBAAiB,CAAC;AAIzB;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAK/D,CAAC;AASF,iEAAiE;AACjE,sFAAsF;AACtF,eAAO,MAAM,wBAAwB,QAAkC,CAAC;AAuDxE,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,UAAU,QAAQ;IACjB,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,cAAc,EAAE,YAAY,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC;AAmCD,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAqB3D;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CA+DnF;AAeD,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,EAC9C,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GACjB,MAAM,CAAC,gBAAgB,GAAG,KAAK,EAAE,UAAU,CAAC,CAsB9C"}
@@ -0,0 +1,18 @@
1
+ export { buildThemes } from './theme/buildThemes.js';
2
+ export type { BuildThemesOptions } from './theme/buildThemes.js';
3
+ export { ThemeConfigError, ThemeContrastError } from './theme/errors.js';
4
+ export type { ThemeErrorCode } from './theme/errors.js';
5
+ export { createUnistylesConfig } from './unistyles/createUnistylesConfig.js';
6
+ export type { UnistylesConfig, UnistylesConfigOptions } from './unistyles/createUnistylesConfig.js';
7
+ export { applyThemeMode } from './unistyles/themeMode.js';
8
+ export type { ThemeMode, ThemeModeRuntime } from './unistyles/themeMode.js';
9
+ export { DEFAULT_BREAKPOINTS } from './tokens/defaults.js';
10
+ export { auditTheme, contrastRatio } from './color/contrast.js';
11
+ export type { ContrastFailure } from './color/contrast.js';
12
+ export { withAlpha } from './color/parse.js';
13
+ export { layout, presets } from './presets/layout.js';
14
+ export { byTone } from './presets/byTone.js';
15
+ export { toNavigationTheme } from './integration/navigationTheme.js';
16
+ export type { NavigationTheme } from './integration/navigationTheme.js';
17
+ export type * from './types/index.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAgB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAgB,CAAC;AAGrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAmC,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,sCAAmC,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,0BAAuB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAAuB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAe,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAkB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAkB,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAA+B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,kCAA+B,CAAC;AAGrE,mBAAmB,kBAAS,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ColorRoles, ColorScheme } from '../types/colors.js';
2
+ import type { FontToken, FontWeightName } from '../types/typography.js';
3
+ /**
4
+ * The theme shape React Navigation expects, declared here so the package needs
5
+ * no navigation dependency (spec AC-9.3).
6
+ */
7
+ export interface NavigationTheme {
8
+ dark: boolean;
9
+ colors: {
10
+ primary: string;
11
+ background: string;
12
+ card: string;
13
+ text: string;
14
+ border: string;
15
+ notification: string;
16
+ };
17
+ fonts: {
18
+ regular: FontToken;
19
+ medium: FontToken;
20
+ bold: FontToken;
21
+ heavy: FontToken;
22
+ };
23
+ }
24
+ interface NavigationSource {
25
+ color: ColorRoles;
26
+ font: Record<FontWeightName, FontToken>;
27
+ }
28
+ export declare function toNavigationTheme(theme: NavigationSource, scheme: ColorScheme): NavigationTheme;
29
+ export {};
30
+ //# sourceMappingURL=navigationTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationTheme.d.ts","sourceRoot":"","sources":["../../../../src/integration/navigationTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAqB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACN,OAAO,EAAE,SAAS,CAAC;QACnB,MAAM,EAAE,SAAS,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,SAAS,CAAC;KACjB,CAAC;CACF;AAED,UAAU,gBAAgB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;CACxC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,eAAe,CAoB/F"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,19 @@
1
+ import type { ToneColors } from '../types/colors.js';
2
+ /**
3
+ * Builds a variant map with one entry per tone of the theme.
4
+ *
5
+ * Call it inline under a literal `variants` key, with the stylesheet's own
6
+ * `theme` argument:
7
+ *
8
+ * ```ts
9
+ * toneText: { variants: { tone: byTone(theme, t => ({ color: t.onContainer })) } },
10
+ * ```
11
+ *
12
+ * The Unistyles Babel plugin reads dependencies statically: a variants object
13
+ * built elsewhere, or a `theme` read through an alias, hides them and the
14
+ * style stops updating on theme or variant changes.
15
+ */
16
+ export declare function byTone<TTheme extends {
17
+ tone: Record<string, ToneColors>;
18
+ }, TStyle>(theme: TTheme, build: (tone: ToneColors, name: keyof TTheme['tone'] & string) => TStyle): Record<keyof TTheme['tone'] & string, TStyle>;
19
+ //# sourceMappingURL=byTone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"byTone.d.ts","sourceRoot":"","sources":["../../../../src/presets/byTone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAiB,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,EAAE,MAAM,EACjF,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,KAAK,MAAM,GACtE,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAQ/C"}
@@ -0,0 +1,63 @@
1
+ import type { TextStyle } from 'react-native';
2
+ /**
3
+ * Theme-independent flex presets. Spread them inside `StyleSheet.create` or
4
+ * put them in a style array; styles built only from these carry no theme
5
+ * dependency, so Unistyles never recalculates them on a theme change.
6
+ */
7
+ export declare const layout: {
8
+ readonly row: {
9
+ readonly flexDirection: "row";
10
+ };
11
+ readonly column: {
12
+ readonly flexDirection: "column";
13
+ };
14
+ readonly rowCenter: {
15
+ readonly flexDirection: "row";
16
+ readonly alignItems: "center";
17
+ };
18
+ readonly rowBetween: {
19
+ readonly flexDirection: "row";
20
+ readonly alignItems: "center";
21
+ readonly justifyContent: "space-between";
22
+ };
23
+ readonly center: {
24
+ readonly alignItems: "center";
25
+ readonly justifyContent: "center";
26
+ };
27
+ readonly fill: {
28
+ readonly flex: 1;
29
+ };
30
+ readonly wrap: {
31
+ readonly flexDirection: "row";
32
+ readonly flexWrap: "wrap";
33
+ };
34
+ readonly absoluteFill: {
35
+ readonly position: "absolute";
36
+ readonly top: 0;
37
+ readonly right: 0;
38
+ readonly bottom: 0;
39
+ readonly left: 0;
40
+ };
41
+ readonly selfStart: {
42
+ readonly alignSelf: "flex-start";
43
+ };
44
+ readonly selfCenter: {
45
+ readonly alignSelf: "center";
46
+ };
47
+ readonly selfEnd: {
48
+ readonly alignSelf: "flex-end";
49
+ };
50
+ };
51
+ interface TextPresetsStatic {
52
+ /**
53
+ * For a `Text` used as an icon: Android sizes text boxes from asymmetric
54
+ * font metrics, so a centred glyph sits high or low beside a label unless
55
+ * font padding is removed and the glyph centred in its box. iOS ignores both.
56
+ */
57
+ glyphAlign: Pick<TextStyle, 'includeFontPadding' | 'textAlignVertical'>;
58
+ /** Equal-width digits, so columns of times or amounts do not jitter. */
59
+ tabularNums: Pick<TextStyle, 'fontVariant'>;
60
+ }
61
+ export declare const presets: TextPresetsStatic;
62
+ export {};
63
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/presets/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAY2B,CAAC;AAE/C,UAAU,iBAAiB;IAC1B;;;;OAIG;IACH,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,oBAAoB,GAAG,mBAAmB,CAAC,CAAC;IACxE,wEAAwE;IACxE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CAC5C;AAID,eAAO,MAAM,OAAO,EAAE,iBAGrB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { BaseTheme } from '../types/theme.js';
2
+ type PresetKey = 'text' | 'stack' | 'inline' | 'border' | 'box';
3
+ type TokenSource = Omit<BaseTheme, PresetKey | 'tone'>;
4
+ export declare const PRESET_KEYS: readonly PresetKey[];
5
+ /**
6
+ * Token-reading presets, built from the theme's final (overridden) tokens so
7
+ * they follow every override — e.g. `radius.md = 0` reaches `box.outlined`.
8
+ */
9
+ export declare function buildPresets(tokens: TokenSource): Pick<BaseTheme, PresetKey>;
10
+ export {};
11
+ //# sourceMappingURL=themePresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themePresets.d.ts","sourceRoot":"","sources":["../../../../src/presets/themePresets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,SAAS,EAOT,MAAM,mBAAgB,CAAC;AAIxB,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AAChE,KAAK,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAiD,CAAC;AAoE9F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAY5E"}
@@ -0,0 +1,18 @@
1
+ import { type Platform } from '../tokens/typography.js';
2
+ import type { EmptyExtension, ThemeConfig, Themes } from '../types/theme.js';
3
+ export interface BuildThemesOptions {
4
+ /** Platform whose font resolution applies. Defaults to the running platform. */
5
+ platform?: Platform;
6
+ /**
7
+ * `borderWidth.hairline`. Defaults to React Native's `StyleSheet.hairlineWidth`,
8
+ * or 1 where React Native is not loaded, so `buildThemes` runs on Node (THM-04).
9
+ */
10
+ hairlineWidth?: number;
11
+ }
12
+ /**
13
+ * Builds every theme from brand config — pure, with no Unistyles dependency
14
+ * (spec AC-9.4). `createUnistylesConfig` wraps this; call it directly to feed
15
+ * tokens to other libraries or tests.
16
+ */
17
+ export declare function buildThemes<TExt extends object = EmptyExtension, TTone extends string = never, TName extends string = never>(config: ThemeConfig<TExt, TTone, TName>, options?: BuildThemesOptions): Themes<TExt, TTone, TName>;
18
+ //# sourceMappingURL=buildThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildThemes.d.ts","sourceRoot":"","sources":["../../../../src/theme/buildThemes.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAgD,KAAK,QAAQ,EAAE,MAAM,yBAAsB,CAAC;AAEnG,OAAO,KAAK,EAEX,cAAc,EAEd,WAAW,EAEX,MAAM,EACN,MAAM,mBAAgB,CAAC;AAMxB,MAAM,WAAW,kBAAkB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAyKD;;;;GAIG;AACH,wBAAgB,WAAW,CAC1B,IAAI,SAAS,MAAM,GAAG,cAAc,EACpC,KAAK,SAAS,MAAM,GAAG,KAAK,EAC5B,KAAK,SAAS,MAAM,GAAG,KAAK,EAE5B,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EACvC,OAAO,CAAC,EAAE,kBAAkB,GAC1B,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAkD5B"}
@@ -0,0 +1,23 @@
1
+ import { SdkError } from '@chipmobilesdk/rn-core';
2
+ import type { ContrastFailure } from '../color/contrast.js';
3
+ /**
4
+ * The package's error codes (THM-09): `invalid_config` for a config or override
5
+ * the package rejects, `contrast` for a theme that breaks a contrast guarantee.
6
+ */
7
+ export type ThemeErrorCode = 'invalid_config' | 'contrast';
8
+ /**
9
+ * Invalid configuration or override; `path` names the offending field. An
10
+ * `SdkError` (`@chipmobilesdk/rn-core`) with `pkg: 'rn-theme'`.
11
+ */
12
+ export declare class ThemeConfigError extends SdkError<ThemeErrorCode> {
13
+ readonly path: string;
14
+ constructor(path: string, message: string);
15
+ }
16
+ /** Thrown in `strict` mode when a theme breaks a contrast guarantee. */
17
+ export declare class ThemeContrastError extends SdkError<ThemeErrorCode> {
18
+ readonly themeName: string;
19
+ readonly failures: ContrastFailure[];
20
+ constructor(themeName: string, failures: ContrastFailure[]);
21
+ }
22
+ export declare function describeFailures(failures: ContrastFailure[]): string;
23
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/theme/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC;AAE3D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ,CAAC,cAAc,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKzC;AAED,wEAAwE;AACxE,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,cAAc,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;gBAEzB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE;CAQ1D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAOpE"}
@@ -0,0 +1,11 @@
1
+ type PlainObject = Record<string, unknown>;
2
+ export declare function isPlainObject(value: unknown): value is PlainObject;
3
+ /**
4
+ * Merges `overrides` into a fresh copy of `base`, validating as it goes:
5
+ * keys must exist in `base`, colours must parse, numbers must be finite.
6
+ * Arrays are replaced whole. `base` itself is never mutated.
7
+ */
8
+ export declare function mergeOverrides<T>(base: T, overrides: unknown, path: string, segments?: string[]): T;
9
+ export declare function pick(source: unknown, keys: readonly string[]): PlainObject | undefined;
10
+ export {};
11
+ //# sourceMappingURL=overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../../../src/theme/overrides.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AA2ED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,EAAO,GACrB,CAAC,CAsCH;AAED,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CActF"}
@@ -0,0 +1,6 @@
1
+ /** Validates the config shape; override values are validated while merging. */
2
+ export declare function validateThemeConfig(config: unknown): void;
3
+ export declare function themeNamesOf(config: {
4
+ themes?: object;
5
+ }): string[];
6
+ //# sourceMappingURL=validateThemeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateThemeConfig.d.ts","sourceRoot":"","sources":["../../../../src/theme/validateThemeConfig.ts"],"names":[],"mappings":"AAoLA,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAiBzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAElE"}
@@ -0,0 +1,23 @@
1
+ import type { BorderWidthTokens, MotionTokens, OpacityTokens, RadiusTokens, ShadowTokens, SizeTokens, SpacingTokens, ZIndexTokens } from '../types/tokens.js';
2
+ export declare function buildSpacing(): SpacingTokens;
3
+ export declare function buildRadius(): RadiusTokens;
4
+ /** `hairline` is the device's thinnest line, resolved by `buildThemes` (THM-04). */
5
+ export declare function buildBorderWidth(hairline: number): BorderWidthTokens;
6
+ export declare function buildSize(): SizeTokens;
7
+ /**
8
+ * The opacity scale, as one definition. `color.disabled` is derived from
9
+ * `disabledContent` rather than from a second copy of 0.38 (THM-07).
10
+ */
11
+ export declare const DEFAULT_OPACITY: OpacityTokens;
12
+ export declare function buildOpacity(): OpacityTokens;
13
+ export declare function buildMotion(): MotionTokens;
14
+ export declare function buildZIndex(): ZIndexTokens;
15
+ export declare function buildShadows(shadowColor: string): ShadowTokens;
16
+ export declare const DEFAULT_MAX_FONT_SCALE = 2;
17
+ /** Material 3 window size classes, in points. */
18
+ export declare const DEFAULT_BREAKPOINTS: {
19
+ compact: number;
20
+ medium: number;
21
+ expanded: number;
22
+ };
23
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../src/tokens/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,EACZ,MAAM,oBAAiB,CAAC;AAKzB,wBAAgB,YAAY,IAAI,aAAa,CAe5C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAE1C;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAEpE;AAED,wBAAgB,SAAS,IAAI,UAAU,CAEtC;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,aAO7B,CAAC;AAEF,wBAAgB,YAAY,IAAI,aAAa,CAE5C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAU1C;AAED,wBAAgB,WAAW,IAAI,YAAY,CAE1C;AAkBD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAe9D;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,mBAAmB;;;;CAA6C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { FontToken, FontWeightName, FontWeights, Typography, TypographyConfig } from '../types/typography.js';
2
+ export type Platform = 'ios' | 'android';
3
+ export declare const FONT_WEIGHTS: FontWeights;
4
+ /**
5
+ * Resolves the family and weight a style needs for one named weight on one
6
+ * platform (spec US-2).
7
+ */
8
+ export declare function buildFonts(config: TypographyConfig | undefined, platform: Platform): {
9
+ family: string;
10
+ font: Record<FontWeightName, FontToken>;
11
+ };
12
+ export declare function buildTypography(config: TypographyConfig | undefined, font: Record<FontWeightName, FontToken>, family: string): Typography;
13
+ export declare function buildFontWeight(): FontWeights;
14
+ //# sourceMappingURL=typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,SAAS,EACT,cAAc,EACd,WAAW,EAEX,UAAU,EACV,gBAAgB,EAIhB,MAAM,wBAAqB,CAAC;AAE7B,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAKzC,eAAO,MAAM,YAAY,EAAE,WAM1B,CAAC;AAgDF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ;;;EAsClF;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EACvC,MAAM,EAAE,MAAM,GACZ,UAAU,CAsBZ;AAED,wBAAgB,eAAe,IAAI,WAAW,CAE7C"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Opaque brand colours. Each keeps its hue and chroma; roles take fixed tones.
3
+ *
4
+ * Accepted colour strings everywhere in the package: `#RGB`, `#RGBA`,
5
+ * `#RRGGBB`, `#RRGGBBAA`, `rgb(r, g, b)`, `rgba(r, g, b, a)`.
6
+ */
7
+ export interface BrandColors {
8
+ primary: string;
9
+ secondary: string;
10
+ tertiary: string;
11
+ }
12
+ /** Optional opaque seeds replacing the default neutral and semantic hues. */
13
+ export interface SeedColors {
14
+ /** Without it, neutrals take the primary hue at a very low chroma. */
15
+ neutral?: string;
16
+ error?: string;
17
+ success?: string;
18
+ warning?: string;
19
+ info?: string;
20
+ }
21
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../../src/types/brand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IAC1B,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,76 @@
1
+ export type ColorScheme = 'light' | 'dark';
2
+ /** Colours whose roles come in sets of four: X, onX, XContainer, onXContainer. */
3
+ export type AccentRoleName = 'primary' | 'secondary' | 'tertiary' | 'error' | 'success' | 'warning' | 'info';
4
+ export interface ColorRoles {
5
+ primary: string;
6
+ onPrimary: string;
7
+ primaryContainer: string;
8
+ onPrimaryContainer: string;
9
+ secondary: string;
10
+ onSecondary: string;
11
+ secondaryContainer: string;
12
+ onSecondaryContainer: string;
13
+ tertiary: string;
14
+ onTertiary: string;
15
+ tertiaryContainer: string;
16
+ onTertiaryContainer: string;
17
+ /** Error text/fill; ≥ 4.5:1 on `background` and `surface`. */
18
+ error: string;
19
+ onError: string;
20
+ errorContainer: string;
21
+ onErrorContainer: string;
22
+ success: string;
23
+ onSuccess: string;
24
+ successContainer: string;
25
+ onSuccessContainer: string;
26
+ warning: string;
27
+ onWarning: string;
28
+ warningContainer: string;
29
+ onWarningContainer: string;
30
+ info: string;
31
+ onInfo: string;
32
+ infoContainer: string;
33
+ onInfoContainer: string;
34
+ background: string;
35
+ onBackground: string;
36
+ surface: string;
37
+ onSurface: string;
38
+ surfaceVariant: string;
39
+ /** Muted text; ≥ 4.5:1 on `background`, `surface` and `surfaceVariant`. */
40
+ onSurfaceVariant: string;
41
+ surfaceContainerLowest: string;
42
+ surfaceContainerLow: string;
43
+ surfaceContainer: string;
44
+ surfaceContainerHigh: string;
45
+ surfaceContainerHighest: string;
46
+ inverseSurface: string;
47
+ inverseOnSurface: string;
48
+ inversePrimary: string;
49
+ /** Boundary of interactive components; ≥ 3:1 on `background` and `surface`. */
50
+ outline: string;
51
+ /** Decorative dividers; no contrast guarantee. */
52
+ outlineVariant: string;
53
+ scrim: string;
54
+ shadow: string;
55
+ /**
56
+ * Inactive content. A state colour, exempt from contrast targets
57
+ * (WCAG 1.4.3) — never use it for readable muted text; that is
58
+ * `onSurfaceVariant`.
59
+ */
60
+ disabled: string;
61
+ }
62
+ export type StandardToneName = 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'error';
63
+ /** A matched colour set for one tone, for use with `byTone`. */
64
+ export interface ToneColors {
65
+ /** Text or icon in this tone on `background`/`surface` (≥ 4.5:1). */
66
+ fg: string;
67
+ container: string;
68
+ /** Text on `container` (≥ 4.5:1). */
69
+ onContainer: string;
70
+ /** Boundary in this tone (≥ 3:1 on `background`). */
71
+ border: string;
72
+ fill: string;
73
+ /** Text on `fill` (≥ 4.5:1). */
74
+ onFill: string;
75
+ }
76
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../../src/types/colors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACzB,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjF,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG,gEAAgE;AAChE,MAAM,WAAW,UAAU;IAC1B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,6 @@
1
+ export type { BrandColors, SeedColors } from './brand.js';
2
+ export type { AccentRoleName, ColorRoles, ColorScheme, StandardToneName, ToneColors, } from './colors.js';
3
+ export type { FontConfig, FontToken, FontWeightName, FontWeights, FontWeightValue, Typography, TypographyConfig, TypographyRole, TypographyStyleName, TypographyToken, } from './typography.js';
4
+ export type { BorderWidthTokens, EasingCurve, MotionTokens, OpacityTokens, RadiusTokens, ShadowToken, ShadowTokens, SizeTokens, SpacingKey, SpacingTokens, ZIndexTokens, } from './tokens.js';
5
+ export type { BaseTheme, BorderPresets, BoxPresets, DeepPartial, EmptyExtension, ExtendContext, InlinePreset, NamedThemeConfig, StackPreset, TextPreset, TextPresets, Theme, ThemeConfig, ThemeName, Themes, } from './theme.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AACvD,YAAY,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,GACV,MAAM,aAAU,CAAC;AAClB,YAAY,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,GACf,MAAM,iBAAc,CAAC;AACtB,YAAY,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,GACZ,MAAM,aAAU,CAAC;AAClB,YAAY,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,KAAK,EACL,WAAW,EACX,SAAS,EACT,MAAM,GACN,MAAM,YAAS,CAAC"}
@@ -0,0 +1,140 @@
1
+ import type { BrandColors, SeedColors } from './brand.js';
2
+ import type { ColorRoles, ColorScheme, StandardToneName, ToneColors } from './colors.js';
3
+ import type { BorderWidthTokens, MotionTokens, OpacityTokens, RadiusTokens, ShadowTokens, SizeTokens, SpacingKey, SpacingTokens, ZIndexTokens } from './tokens.js';
4
+ import type { FontToken, FontWeightName, FontWeights, Typography, TypographyConfig, TypographyToken } from './typography.js';
5
+ export type DeepPartial<T> = {
6
+ [K in keyof T]?: T[K] extends readonly unknown[] ? T[K] : T[K] extends object ? DeepPartial<T[K]> : T[K];
7
+ };
8
+ /** A typography token with its colour, ready to spread into a text style. */
9
+ export interface TextPreset extends TypographyToken {
10
+ color: string;
11
+ }
12
+ export interface TextPresets {
13
+ body: TextPreset;
14
+ bodyMuted: TextPreset;
15
+ label: TextPreset;
16
+ labelMuted: TextPreset;
17
+ caption: TextPreset;
18
+ title: TextPreset;
19
+ headline: TextPreset;
20
+ /** Uses the contrast-exempt `disabled` colour. */
21
+ disabled: TextPreset;
22
+ }
23
+ export interface StackPreset {
24
+ flexDirection: 'column';
25
+ gap: number;
26
+ }
27
+ export interface InlinePreset {
28
+ flexDirection: 'row';
29
+ alignItems: 'center';
30
+ gap: number;
31
+ }
32
+ export interface BorderPresets {
33
+ /** Hairline divider on every side (`outlineVariant`). */
34
+ hairline: {
35
+ borderWidth: number;
36
+ borderColor: string;
37
+ };
38
+ /** Divider above (`outlineVariant`). */
39
+ top: {
40
+ borderTopWidth: number;
41
+ borderTopColor: string;
42
+ };
43
+ /** Divider below (`outlineVariant`). */
44
+ bottom: {
45
+ borderBottomWidth: number;
46
+ borderBottomColor: string;
47
+ };
48
+ /** Boundary of an interactive component (`outline`, ≥ 3:1). */
49
+ all: {
50
+ borderWidth: number;
51
+ borderColor: string;
52
+ };
53
+ }
54
+ export interface BoxPresets {
55
+ outlined: {
56
+ borderWidth: number;
57
+ borderColor: string;
58
+ borderRadius: number;
59
+ padding: number;
60
+ gap: number;
61
+ };
62
+ card: {
63
+ backgroundColor: string;
64
+ borderRadius: number;
65
+ padding: number;
66
+ gap: number;
67
+ };
68
+ sheet: {
69
+ backgroundColor: string;
70
+ borderTopLeftRadius: number;
71
+ borderTopRightRadius: number;
72
+ padding: number;
73
+ gap: number;
74
+ };
75
+ touchTarget: {
76
+ minWidth: number;
77
+ minHeight: number;
78
+ justifyContent: 'center';
79
+ };
80
+ }
81
+ export interface BaseTheme<TTone extends string = never> {
82
+ color: ColorRoles;
83
+ tone: Record<StandardToneName | TTone, ToneColors>;
84
+ typography: Typography;
85
+ /** Family + weight per named weight, resolved for the current platform. */
86
+ font: Record<FontWeightName, FontToken>;
87
+ fontWeight: FontWeights;
88
+ spacing: SpacingTokens;
89
+ radius: RadiusTokens;
90
+ borderWidth: BorderWidthTokens;
91
+ size: SizeTokens;
92
+ opacity: OpacityTokens;
93
+ motion: MotionTokens;
94
+ shadow: ShadowTokens;
95
+ zIndex: ZIndexTokens;
96
+ /** Ceiling for `maxFontSizeMultiplier` on the app's `Text`. */
97
+ maxFontScale: number;
98
+ /** Chart series colours (≥ 3:1 on `surface`), starting at the primary hue. */
99
+ categorical: string[];
100
+ text: TextPresets;
101
+ stack: Record<SpacingKey, StackPreset>;
102
+ inline: Record<SpacingKey, InlinePreset>;
103
+ border: BorderPresets;
104
+ box: BoxPresets;
105
+ }
106
+ export type EmptyExtension = Record<never, never>;
107
+ export type Theme<TExt extends object = EmptyExtension, TTone extends string = never> = BaseTheme<TTone> & TExt;
108
+ export type ThemeName<TName extends string = never> = 'light' | 'dark' | TName;
109
+ export type Themes<TExt extends object = EmptyExtension, TTone extends string = never, TName extends string = never> = Record<ThemeName<TName>, Theme<TExt, TTone>>;
110
+ export interface ExtendContext<TTone extends string = never, TName extends string = never> {
111
+ name: ThemeName<TName>;
112
+ scheme: ColorScheme;
113
+ theme: BaseTheme<TTone>;
114
+ }
115
+ /** An extra theme beyond light and dark. Omitted colours come from the base config. */
116
+ export interface NamedThemeConfig<TTone extends string = never> {
117
+ scheme: ColorScheme;
118
+ brandColors?: BrandColors;
119
+ seeds?: SeedColors;
120
+ tones?: Partial<Record<TTone, string>>;
121
+ }
122
+ /** Extension keys may not replace base groups. */
123
+ type NoBaseKeys = {
124
+ [K in keyof BaseTheme]?: never;
125
+ };
126
+ export interface ThemeConfig<TExt extends object = EmptyExtension, TTone extends string = never, TName extends string = never> {
127
+ brandColors: BrandColors;
128
+ seeds?: SeedColors;
129
+ /** Custom tones from one opaque seed each, e.g. `{ accent: '#BD260F' }`. */
130
+ tones?: Record<TTone, string>;
131
+ typography?: TypographyConfig;
132
+ /** App-specific token groups, derived per theme from the generated tokens. */
133
+ extend?: (context: ExtendContext<TTone, TName>) => TExt & NoBaseKeys;
134
+ themes?: Record<TName, NamedThemeConfig<TTone>>;
135
+ overrides?: NoInfer<Partial<Record<ThemeName<TName>, DeepPartial<Theme<TExt, TTone>>>>>;
136
+ /** Throw instead of warning when an override breaks a contrast guarantee. */
137
+ strict?: boolean;
138
+ }
139
+ export {};
140
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/types/theme.ts"],"names":[],"mappings":"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"}