zyzz 0.0.21 → 0.0.23

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 (233) hide show
  1. package/Zyzz.podspec +16 -0
  2. package/dist/Style.d.ts +3 -1
  3. package/dist/Style.d.ts.map +1 -1
  4. package/dist/Style.js.map +1 -1
  5. package/dist/babel/NativeJsx.d.ts.map +1 -1
  6. package/dist/babel/NativeJsx.js +217 -15
  7. package/dist/babel/NativeJsx.js.map +1 -1
  8. package/dist/babel/index.d.ts +6 -2
  9. package/dist/babel/index.d.ts.map +1 -1
  10. package/dist/babel/index.js +10 -1
  11. package/dist/babel/index.js.map +1 -1
  12. package/dist/compiler/Graph.d.ts.map +1 -1
  13. package/dist/compiler/Graph.js +107 -0
  14. package/dist/compiler/Graph.js.map +1 -1
  15. package/dist/compiler/Native.d.ts +6 -3
  16. package/dist/compiler/Native.d.ts.map +1 -1
  17. package/dist/compiler/Native.js +142 -24
  18. package/dist/compiler/Native.js.map +1 -1
  19. package/dist/compiler/Source.d.ts +2 -0
  20. package/dist/compiler/Source.d.ts.map +1 -1
  21. package/dist/compiler/Source.js +17 -5
  22. package/dist/compiler/Source.js.map +1 -1
  23. package/dist/compiler/internal/Configurations.d.ts +2 -0
  24. package/dist/compiler/internal/Configurations.d.ts.map +1 -1
  25. package/dist/compiler/internal/Configurations.js +21 -3
  26. package/dist/compiler/internal/Configurations.js.map +1 -1
  27. package/dist/compiler/internal/Contract.d.ts.map +1 -1
  28. package/dist/compiler/internal/Contract.js +75 -38
  29. package/dist/compiler/internal/Contract.js.map +1 -1
  30. package/dist/compiler/internal/Contributions.d.ts.map +1 -1
  31. package/dist/compiler/internal/Contributions.js +7 -1
  32. package/dist/compiler/internal/Contributions.js.map +1 -1
  33. package/dist/compiler/internal/Descriptors.d.ts.map +1 -1
  34. package/dist/compiler/internal/Descriptors.js +11 -2
  35. package/dist/compiler/internal/Descriptors.js.map +1 -1
  36. package/dist/compiler/internal/Dynamic.d.ts.map +1 -1
  37. package/dist/compiler/internal/Dynamic.js +3 -0
  38. package/dist/compiler/internal/Dynamic.js.map +1 -1
  39. package/dist/compiler/internal/Expression.js +2 -2
  40. package/dist/compiler/internal/Expression.js.map +1 -1
  41. package/dist/compiler/internal/NativeBindings.d.ts +24 -26
  42. package/dist/compiler/internal/NativeBindings.d.ts.map +1 -1
  43. package/dist/compiler/internal/NativeBindings.js +62 -8
  44. package/dist/compiler/internal/NativeBindings.js.map +1 -1
  45. package/dist/compiler/internal/NativeMedia.d.ts +14 -0
  46. package/dist/compiler/internal/NativeMedia.d.ts.map +1 -0
  47. package/dist/compiler/internal/NativeMedia.js +287 -0
  48. package/dist/compiler/internal/NativeMedia.js.map +1 -0
  49. package/dist/compiler/internal/NativeVars.d.ts +28 -0
  50. package/dist/compiler/internal/NativeVars.d.ts.map +1 -0
  51. package/dist/compiler/internal/NativeVars.js +160 -0
  52. package/dist/compiler/internal/NativeVars.js.map +1 -0
  53. package/dist/compiler/internal/PackedStyles.d.ts +2 -0
  54. package/dist/compiler/internal/PackedStyles.d.ts.map +1 -1
  55. package/dist/compiler/internal/PackedStyles.js +2 -0
  56. package/dist/compiler/internal/PackedStyles.js.map +1 -1
  57. package/dist/compiler/internal/Themes.d.ts +24 -1
  58. package/dist/compiler/internal/Themes.d.ts.map +1 -1
  59. package/dist/compiler/internal/Themes.js +120 -3
  60. package/dist/compiler/internal/Themes.js.map +1 -1
  61. package/dist/compiler/internal/Vars.d.ts +1 -1
  62. package/dist/compiler/internal/Vars.d.ts.map +1 -1
  63. package/dist/compiler/internal/Vars.js +7 -2
  64. package/dist/compiler/internal/Vars.js.map +1 -1
  65. package/dist/default.js.zyzz.json +1 -1
  66. package/dist/internal/Completion.d.ts +1 -1
  67. package/dist/internal/Completion.d.ts.map +1 -1
  68. package/dist/internal/Targets.d.ts.map +1 -1
  69. package/dist/internal/Targets.js +2 -0
  70. package/dist/internal/Targets.js.map +1 -1
  71. package/dist/internal/Token.d.ts +0 -2
  72. package/dist/internal/Token.d.ts.map +1 -1
  73. package/dist/internal/Token.js.map +1 -1
  74. package/dist/internal/Value.d.ts +7 -0
  75. package/dist/internal/Value.d.ts.map +1 -1
  76. package/dist/internal/Value.js.map +1 -1
  77. package/dist/metro/Graph.d.ts +22 -7
  78. package/dist/metro/Graph.d.ts.map +1 -1
  79. package/dist/metro/Graph.js +188 -42
  80. package/dist/metro/Graph.js.map +1 -1
  81. package/dist/metro/Watch.d.ts +28 -4
  82. package/dist/metro/Watch.d.ts.map +1 -1
  83. package/dist/metro/Watch.js +39 -7
  84. package/dist/metro/Watch.js.map +1 -1
  85. package/dist/metro/index.d.ts +15 -4
  86. package/dist/metro/index.d.ts.map +1 -1
  87. package/dist/metro/index.js +27 -0
  88. package/dist/metro/index.js.map +1 -1
  89. package/dist/metro/transformer.d.ts +5 -1
  90. package/dist/metro/transformer.d.ts.map +1 -1
  91. package/dist/metro/transformer.js +5 -3
  92. package/dist/metro/transformer.js.map +1 -1
  93. package/dist/react-native/StyleSheet.d.ts +8 -3
  94. package/dist/react-native/StyleSheet.d.ts.map +1 -1
  95. package/dist/react-native/StyleSheet.js +25 -34
  96. package/dist/react-native/StyleSheet.js.map +1 -1
  97. package/dist/react-native/index.d.ts +1 -1
  98. package/dist/react-native/index.d.ts.map +1 -1
  99. package/dist/react-native/index.js +1 -1
  100. package/dist/react-native/index.js.map +1 -1
  101. package/dist/react-native/index.native.d.ts +5 -0
  102. package/dist/react-native/index.native.js +20 -0
  103. package/dist/react-native/index.native.js.map +7 -0
  104. package/dist/react-native/internal/Calculation.d.ts +7 -0
  105. package/dist/react-native/internal/Calculation.d.ts.map +1 -0
  106. package/dist/react-native/internal/Calculation.js +134 -0
  107. package/dist/react-native/internal/Calculation.js.map +1 -0
  108. package/dist/react-native/internal/Device.js +218 -0
  109. package/dist/react-native/internal/Device.js.map +7 -0
  110. package/dist/react-native/internal/NativeZyzz.js +7 -0
  111. package/dist/react-native/internal/NativeZyzz.js.map +7 -0
  112. package/dist/react-native/internal/Scalar.d.ts +16 -0
  113. package/dist/react-native/internal/Scalar.d.ts.map +1 -1
  114. package/dist/react-native/internal/Scalar.js +62 -4
  115. package/dist/react-native/internal/Scalar.js.map +1 -1
  116. package/dist/react-native/internal/Store.d.ts +32 -0
  117. package/dist/react-native/internal/Store.d.ts.map +1 -0
  118. package/dist/react-native/internal/Store.js +57 -0
  119. package/dist/react-native/internal/Store.js.map +1 -0
  120. package/dist/react-native/internal/Styles.d.ts +19 -0
  121. package/dist/react-native/internal/Styles.d.ts.map +1 -0
  122. package/dist/react-native/internal/Styles.js +35 -0
  123. package/dist/react-native/internal/Styles.js.map +1 -0
  124. package/dist/react-native/internal/Tokens.d.ts +21 -0
  125. package/dist/react-native/internal/Tokens.d.ts.map +1 -0
  126. package/dist/react-native/internal/Tokens.js +58 -0
  127. package/dist/react-native/internal/Tokens.js.map +1 -0
  128. package/dist/react-native/internal/Viewport.d.ts +6 -0
  129. package/dist/react-native/internal/Viewport.d.ts.map +1 -0
  130. package/dist/react-native/internal/Viewport.js +4 -0
  131. package/dist/react-native/internal/Viewport.js.map +1 -0
  132. package/dist/react-native/react.d.ts +102 -14
  133. package/dist/react-native/react.d.ts.map +1 -1
  134. package/dist/react-native/react.js +86 -18
  135. package/dist/react-native/react.js.map +1 -1
  136. package/dist/react-native/reanimated.d.ts +39 -0
  137. package/dist/react-native/reanimated.d.ts.map +1 -0
  138. package/dist/react-native/reanimated.js +76 -0
  139. package/dist/react-native/reanimated.js.map +1 -0
  140. package/dist/runtime/NativeContext.d.ts +10 -1
  141. package/dist/runtime/NativeContext.d.ts.map +1 -1
  142. package/dist/runtime/NativeContext.js +67 -14
  143. package/dist/runtime/NativeContext.js.map +1 -1
  144. package/dist/runtime/NativeDynamic.d.ts +3 -2
  145. package/dist/runtime/NativeDynamic.d.ts.map +1 -1
  146. package/dist/runtime/NativeDynamic.js +37 -7
  147. package/dist/runtime/NativeDynamic.js.map +1 -1
  148. package/dist/runtime/NativeStatic.d.ts +23 -0
  149. package/dist/runtime/NativeStatic.d.ts.map +1 -0
  150. package/dist/runtime/NativeStatic.js +106 -0
  151. package/dist/runtime/NativeStatic.js.map +1 -0
  152. package/dist/runtime/NativeVars.d.ts +53 -0
  153. package/dist/runtime/NativeVars.d.ts.map +1 -0
  154. package/dist/runtime/NativeVars.js +77 -0
  155. package/dist/runtime/NativeVars.js.map +1 -0
  156. package/dist/runtime/index.d.ts +4 -0
  157. package/dist/runtime/index.d.ts.map +1 -1
  158. package/dist/runtime/index.js +4 -0
  159. package/dist/runtime/index.js.map +1 -1
  160. package/dist/runtime/internal/NativeMedia.d.ts +25 -0
  161. package/dist/runtime/internal/NativeMedia.d.ts.map +1 -0
  162. package/dist/runtime/internal/NativeMedia.js +36 -0
  163. package/dist/runtime/internal/NativeMedia.js.map +1 -0
  164. package/dist/vite/index.d.ts.map +1 -1
  165. package/dist/vite/index.js +7 -35
  166. package/dist/vite/index.js.map +1 -1
  167. package/dist/web/Css.d.ts.map +1 -1
  168. package/dist/web/Css.js +31 -19
  169. package/dist/web/Css.js.map +1 -1
  170. package/dist/web/internal/Themes.d.ts +0 -2
  171. package/dist/web/internal/Themes.d.ts.map +1 -1
  172. package/dist/web/internal/Themes.js +30 -28
  173. package/dist/web/internal/Themes.js.map +1 -1
  174. package/dist/web/page.d.ts +2 -0
  175. package/dist/web/page.d.ts.map +1 -1
  176. package/native/NativeZyzz.cpp +215 -0
  177. package/native/NativeZyzz.h +52 -0
  178. package/native/ZyzzSpecJSI.h +65 -0
  179. package/native/android/CMakeLists.txt +8 -0
  180. package/native/android/ZyzzSpec-generated.cpp +50 -0
  181. package/native/android/ZyzzSpec.h +31 -0
  182. package/native/ios/ZyzzModuleProvider.mm +13 -0
  183. package/package.json +39 -1
  184. package/react-native.config.ts +14 -0
  185. package/src/Style.ts +11 -8
  186. package/src/babel/NativeJsx.ts +319 -33
  187. package/src/babel/index.ts +21 -3
  188. package/src/compiler/Graph.ts +126 -0
  189. package/src/compiler/Native.ts +158 -26
  190. package/src/compiler/Source.ts +32 -5
  191. package/src/compiler/internal/Configurations.ts +25 -3
  192. package/src/compiler/internal/Contract.ts +98 -50
  193. package/src/compiler/internal/Contributions.ts +7 -1
  194. package/src/compiler/internal/Descriptors.ts +12 -8
  195. package/src/compiler/internal/Dynamic.ts +4 -0
  196. package/src/compiler/internal/Expression.ts +2 -2
  197. package/src/compiler/internal/NativeBindings.ts +99 -15
  198. package/src/compiler/internal/NativeMedia.ts +342 -0
  199. package/src/compiler/internal/NativeVars.ts +231 -0
  200. package/src/compiler/internal/PackedStyles.ts +4 -0
  201. package/src/compiler/internal/Themes.ts +193 -2
  202. package/src/compiler/internal/Vars.ts +12 -1
  203. package/src/internal/Completion.ts +6 -3
  204. package/src/internal/Targets.ts +2 -0
  205. package/src/internal/Token.ts +0 -2
  206. package/src/internal/Value.ts +20 -0
  207. package/src/metro/Graph.ts +250 -50
  208. package/src/metro/Watch.ts +95 -10
  209. package/src/metro/index.ts +62 -4
  210. package/src/metro/transformer.ts +21 -11
  211. package/src/react-native/StyleSheet.ts +56 -49
  212. package/src/react-native/index.native.ts +10 -0
  213. package/src/react-native/index.ts +1 -1
  214. package/src/react-native/internal/Calculation.ts +159 -0
  215. package/src/react-native/internal/Device.ts +297 -0
  216. package/src/react-native/internal/NativeZyzz.ts +20 -0
  217. package/src/react-native/internal/Scalar.ts +86 -4
  218. package/src/react-native/internal/Store.ts +78 -0
  219. package/src/react-native/internal/Styles.ts +77 -0
  220. package/src/react-native/internal/Tokens.ts +85 -0
  221. package/src/react-native/internal/Viewport.ts +8 -0
  222. package/src/react-native/react.ts +218 -26
  223. package/src/react-native/reanimated.ts +162 -0
  224. package/src/runtime/NativeContext.ts +88 -17
  225. package/src/runtime/NativeDynamic.ts +42 -10
  226. package/src/runtime/NativeStatic.ts +145 -0
  227. package/src/runtime/NativeVars.ts +189 -0
  228. package/src/runtime/index.ts +6 -0
  229. package/src/runtime/internal/NativeMedia.ts +63 -0
  230. package/src/vite/index.ts +9 -42
  231. package/src/web/Css.ts +42 -27
  232. package/src/web/internal/Themes.ts +34 -57
  233. package/src/web/page.ts +2 -0
@@ -1,26 +1,94 @@
1
- /** React lifecycle for automatically compiled native styling. @module */
1
+ /** React subscriptions for compiled native styles and variable values. @module */
2
+ import * as Config from '../Config.js';
3
+ import * as NativeVars from '../runtime/NativeVars.js';
2
4
  import * as React from 'react';
3
- import * as NativeContext from '../runtime/NativeContext.js';
4
- const context = React.createContext(styles(undefined));
5
- /** Supplies set and resolved device appearance to compiled native components. */
5
+ import * as Store from './internal/Store.js';
6
+ import * as Styles from './internal/Styles.js';
7
+ import * as Viewport from './internal/Viewport.js';
8
+ /** Creates native authoring helpers and a Provider typed to the configured variables. */
9
+ export function defineConfig(options = {}) {
10
+ const config = Config.create(options);
11
+ const defaultVars = options.defaultVars;
12
+ const names = defaultVars === undefined
13
+ ? undefined
14
+ : new Set(Object.keys(options.vars));
15
+ function BoundProvider(props) {
16
+ if (props.vars !== undefined && !names?.has(props.vars))
17
+ throw new Error(`Unknown native vars: ${props.vars}.`);
18
+ return React.createElement(Provider, {
19
+ ...props,
20
+ vars: props.vars ?? defaultVars,
21
+ });
22
+ }
23
+ return Object.freeze({
24
+ ...config,
25
+ Provider: BoundProvider,
26
+ });
27
+ }
28
+ /** Supplies selected variables, appearance, and adapter measurements to this subtree. */
6
29
  export function Provider(props) {
30
+ if (Object.hasOwn(props, 'set'))
31
+ throw new Error('Provider uses vars instead of set.');
7
32
  if ((props.colorScheme !== 'light' && props.colorScheme !== 'dark') ||
8
- (props.set !== undefined &&
9
- (typeof props.set !== 'string' || !props.set.trim())))
10
- throw new Error('Native appearance requires a resolved light/dark scheme and a nonempty set name.');
11
- const value = React.useMemo(() => styles({ colorScheme: props.colorScheme, set: props.set }), [props.colorScheme, props.set]);
12
- return React.createElement(context.Provider, { value }, props.children);
33
+ (props.vars !== undefined &&
34
+ (typeof props.vars !== 'string' || !props.vars.trim())))
35
+ throw new Error('Native appearance requires a resolved light/dark scheme and a nonempty vars name.');
36
+ const viewport = React.useContext(Viewport.context);
37
+ const [store] = React.useState(() => Store.create({ colorScheme: props.colorScheme, set: props.vars, viewport }));
38
+ const [, publish] = React.useReducer((version) => version + 1, 0);
39
+ const committed = React.useRef(props.children);
40
+ const snapshot = store.getSnapshot();
41
+ const pending = snapshot.colorScheme !== props.colorScheme ||
42
+ snapshot.set !== props.vars ||
43
+ snapshot.viewport?.width !== viewport?.width ||
44
+ snapshot.viewport?.height !== viewport?.height;
45
+ const children = pending ? committed.current : props.children;
46
+ React.useLayoutEffect(() => {
47
+ committed.current = children;
48
+ if (!pending)
49
+ return;
50
+ // Keep the committed subtree until its selection is published. This avoids
51
+ // rendering new application props with the previous store snapshot, without
52
+ // mutating an external store during a potentially abandoned React render.
53
+ store.update({ colorScheme: props.colorScheme, set: props.vars, viewport });
54
+ publish();
55
+ }, [children, pending, props.colorScheme, props.vars, store, viewport]);
56
+ return React.createElement(Store.context.Provider, { value: store }, children);
13
57
  }
14
- /** Compiler-inserted unconditional subscription, including memoized components. */
58
+ /**
59
+ * Compiler-inserted subscription for resolving native style applications.
60
+ * Outside a Provider, selections use default variables and the light scheme.
61
+ */
15
62
  export function useStyles() {
16
- return React.useContext(context);
63
+ const [fallback] = React.useState(() => Store.create({ colorScheme: 'light' }));
64
+ return Styles.use(React.useContext(Store.context) ?? fallback);
65
+ }
66
+ /** Compiler fallback for native view bindings when no native adapter is installed. */
67
+ export function useNativeStyles() {
68
+ const selected = useStyles();
69
+ return { ...selected, view: selected.props };
70
+ }
71
+ export function useVars(variables, select = (values) => values) {
72
+ const store = React.useContext(Store.context);
73
+ if (!store)
74
+ throw new Error('useVars requires a Zyzz Provider.');
75
+ const read = React.useMemo(() => {
76
+ let previous;
77
+ let selected;
78
+ return () => {
79
+ const snapshot = store.getSnapshot();
80
+ if (snapshot !== previous) {
81
+ const next = select(NativeVars.read(variables, snapshot));
82
+ if (!previous || !Object.is(selected, next))
83
+ selected = next;
84
+ previous = snapshot;
85
+ }
86
+ return selected;
87
+ };
88
+ }, [select, store, variables]);
89
+ return React.useSyncExternalStore(store.subscribe, read, read);
17
90
  }
18
- function styles(value) {
19
- return {
20
- style: (style, input) => NativeContext.resolve(style, value, input),
21
- props: (props) => props && Object.hasOwn(props, 'style')
22
- ? { ...props, style: NativeContext.resolve(props.style, value) }
23
- : props,
24
- };
91
+ export function withStyles(Component, options = {}) {
92
+ return Styles.wrap(Component, options, useStyles);
25
93
  }
26
94
  //# sourceMappingURL=react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react-native/react.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAE5D,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAEtD,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,KAAqB;IAC5C,IACE,CAAC,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC;QAC/D,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;YACtB,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAChE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAC/B,CAAA;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;AACzE,CAAC;AAWD,mFAAmF;AACnF,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,MAAM,CAAC,KAAwC;IACtD,OAAO;QACL,KAAK,EAAE,CAAC,KAAc,EAAE,KAAe,EAAE,EAAE,CACzC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QAC5C,KAAK,EAAE,CAAC,KAAiD,EAAE,EAAE,CAC3D,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YACpC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAChE,CAAC,CAAC,KAAK;KACZ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react-native/react.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import * as NativeVars from '../runtime/NativeVars.js';
2
+ import * as Reanimated from 'react-native-reanimated';
3
+ import type * as StyleSheet from './StyleSheet.js';
4
+ import type * as Vars from '../Vars.js';
5
+ /**
6
+ * Reads a numeric or color property from a selected, composed native style.
7
+ * @param appliedStyle - Applied native style, including arrays and caller overrides.
8
+ * @param property - Numeric or color property to publish.
9
+ * @returns A shared value updated on style input and Provider selection changes.
10
+ * @throws For unresolved bindings, missing properties, or unsupported property values.
11
+ */
12
+ export declare function useAnimatedStyleValue<const property extends useAnimatedStyleValue.Property>(appliedStyle: StyleSheet.StyleProp<object>, property: property): Reanimated.SharedValue<useAnimatedStyleValue.Value<property>>;
13
+ /** Properties supported by scalar style animation bindings. */
14
+ export declare namespace useAnimatedStyleValue {
15
+ /** Numeric native properties and native color properties. */
16
+ type Property = {
17
+ [key in keyof StyleSheet.NativeStyle]-?: key extends 'color' | `${string}Color` ? key : Extract<StyleSheet.NativeStyle[key], number> extends never ? never : key;
18
+ }[keyof StyleSheet.NativeStyle] & string;
19
+ /** Color strings or finite numeric selections, excluding layout strings. */
20
+ type Value<property extends Property> = property extends 'color' | `${string}Color` ? string : number;
21
+ }
22
+ /**
23
+ * Publishes compiled native variables without subscribing the component to React updates.
24
+ * @param variables - Statically linked variables from the owning configuration.
25
+ * @param select - Optional JS selector, with results compared using Object.is.
26
+ * @returns A shared value containing the selected serializable native values.
27
+ * @throws For a missing Provider, unsupported variable reads, or nonserializable selections.
28
+ */
29
+ export declare function useAnimatedVars<const variables extends Vars.Definition>(variables: variables, select?: undefined): Reanimated.SharedValue<NativeVars.Values<Vars.Extract<variables>>>;
30
+ /** Publishes a selected variable value to the UI thread. */
31
+ export declare function useAnimatedVars<const variables extends Vars.Definition, selected extends useAnimatedVars.Value>(variables: variables, select: (values: NativeVars.Values<Vars.Extract<variables>>) => selected): Reanimated.SharedValue<selected>;
32
+ /** Serializable selections shared with animation worklets. */
33
+ export declare namespace useAnimatedVars {
34
+ /** Plain native values, arrays, and objects without functions or class instances. */
35
+ type Value = boolean | null | number | readonly Value[] | string | undefined | {
36
+ readonly [key: string]: Value;
37
+ };
38
+ }
39
+ //# sourceMappingURL=reanimated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reanimated.d.ts","sourceRoot":"","sources":["../../src/react-native/reanimated.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AAGtD,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAA;AAEvC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,QAAQ,SAAS,qBAAqB,CAAC,QAAQ,EAErD,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAC1C,QAAQ,EAAE,QAAQ,GACjB,UAAU,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAsB/D;AAED,+DAA+D;AAC/D,MAAM,CAAC,OAAO,WAAW,qBAAqB,CAAC;IAC7C,6DAA6D;IAC7D,KAAK,QAAQ,GAAG;SACb,GAAG,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,SACxC,OAAO,GACP,GAAG,MAAM,OAAO,GAChB,GAAG,GACH,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,KAAK,GACxD,KAAK,GACL,GAAG;KACV,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,GAC7B,MAAM,CAAA;IACR,4EAA4E;IAC5E,KAAK,KAAK,CAAC,QAAQ,SAAS,QAAQ,IAAI,QAAQ,SAC5C,OAAO,GACP,GAAG,MAAM,OAAO,GAChB,MAAM,GACN,MAAM,CAAA;CACX;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,SAAS,SAAS,IAAI,CAAC,UAAU,EACrE,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,SAAS,GACjB,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACrE,4DAA4D;AAC5D,wBAAgB,eAAe,CAC7B,KAAK,CAAC,SAAS,SAAS,IAAI,CAAC,UAAU,EACvC,QAAQ,SAAS,eAAe,CAAC,KAAK,EAEtC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ,GACvE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAgBnC,8DAA8D;AAC9D,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,qFAAqF;IACrF,KAAK,KAAK,GACN,OAAO,GACP,IAAI,GACJ,MAAM,GACN,SAAS,KAAK,EAAE,GAChB,MAAM,GACN,SAAS,GACT;QAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;CACtC"}
@@ -0,0 +1,76 @@
1
+ /** Publishes scoped native selections to Reanimated shared values. @module */
2
+ import * as NativeContext from '../runtime/NativeContext.js';
3
+ import * as NativeVars from '../runtime/NativeVars.js';
4
+ import * as React from 'react';
5
+ import * as ReactNative from 'react-native';
6
+ import * as Reanimated from 'react-native-reanimated';
7
+ import * as Store from './internal/Store.js';
8
+ /**
9
+ * Reads a numeric or color property from a selected, composed native style.
10
+ * @param appliedStyle - Applied native style, including arrays and caller overrides.
11
+ * @param property - Numeric or color property to publish.
12
+ * @returns A shared value updated on style input and Provider selection changes.
13
+ * @throws For unresolved bindings, missing properties, or unsupported property values.
14
+ */
15
+ export function useAnimatedStyleValue(appliedStyle, property) {
16
+ const store = React.useContext(Store.context);
17
+ const read = React.useCallback(() => {
18
+ const resolved = NativeContext.resolve(appliedStyle, store?.getSnapshot());
19
+ const style = ReactNative.StyleSheet.flatten(resolved);
20
+ const value = style?.[property];
21
+ const color = property === 'color' || property.endsWith('Color');
22
+ if (color
23
+ ? typeof value !== 'string' || ReactNative.processColor(value) == null
24
+ : typeof value !== 'number' || !Number.isFinite(value))
25
+ throw new Error(`useAnimatedStyleValue requires a numeric or color value for ${property}.`);
26
+ return value;
27
+ }, [appliedStyle, property, store]);
28
+ return useSelection(read, store);
29
+ }
30
+ export function useAnimatedVars(variables, select = (values) => values) {
31
+ const store = React.useContext(Store.context);
32
+ if (!store)
33
+ throw new Error('useAnimatedVars requires a Zyzz Provider.');
34
+ const read = React.useCallback(() => select(NativeVars.read(variables, store.getSnapshot())), [select, store, variables]);
35
+ return useSelection(read, store);
36
+ }
37
+ function useSelection(read, store) {
38
+ const initial = read();
39
+ serializable(initial);
40
+ const previous = React.useRef(initial);
41
+ const shared = Reanimated.useSharedValue(initial);
42
+ React.useLayoutEffect(() => {
43
+ const update = () => {
44
+ const next = read();
45
+ if (Object.is(previous.current, next))
46
+ return;
47
+ serializable(next);
48
+ shared.set(next);
49
+ previous.current = next;
50
+ };
51
+ update();
52
+ return store?.subscribe(update);
53
+ }, [read, shared, store]);
54
+ return shared;
55
+ }
56
+ function serializable(value, ancestors = new Set()) {
57
+ if (value == null || typeof value === 'string' || typeof value === 'boolean')
58
+ return;
59
+ if (typeof value === 'number' && Number.isFinite(value))
60
+ return;
61
+ if (typeof value !== 'object' ||
62
+ (Array.isArray(value)
63
+ ? Object.getPrototypeOf(value) !== Array.prototype
64
+ : Object.getPrototypeOf(value) !== Object.prototype &&
65
+ Object.getPrototypeOf(value) !== null))
66
+ throw new Error('Animated selections require finite, serializable native values.');
67
+ if (ancestors.has(value))
68
+ throw new Error('Animated selections cannot contain cycles.');
69
+ if (Object.getOwnPropertySymbols(value).length)
70
+ throw new Error('Animated selections cannot contain symbol properties.');
71
+ ancestors.add(value);
72
+ for (const entry of Object.values(value))
73
+ serializable(entry, ancestors);
74
+ ancestors.delete(value);
75
+ }
76
+ //# sourceMappingURL=reanimated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reanimated.js","sourceRoot":"","sources":["../../src/react-native/reanimated.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- /** Defers precompiled native selection until a React render supplies its context. @module */
1
+ /** Defers precompiled native selection until a consumer supplies its scoped selection. @module */
2
2
  import type * as Native from './Native.js';
3
+ import * as Media from './internal/NativeMedia.js';
3
4
  /** Render-local set and resolved appearance. */
4
5
  export type Context = {
5
6
  /** Resolved system appearance or an explicit override. */
6
7
  readonly colorScheme: 'dark' | 'light';
7
8
  /** Named compiled set; omission uses each configuration default. */
8
9
  readonly set?: string | undefined;
10
+ /** Logical window dimensions supplied by the native adapter. */
11
+ readonly viewport?: Media.Viewport | undefined;
9
12
  };
10
13
  type Callable = (input: never) => Native.Props<object>;
11
14
  type Tables = Readonly<Record<string, Readonly<Record<'dark' | 'light', Callable>>>>;
@@ -13,5 +16,11 @@ type Tables = Readonly<Record<string, Readonly<Record<'dark' | 'light', Callable
13
16
  export declare function create<const tables extends Tables>(tables: tables, defaultVars: keyof tables & string): tables[keyof tables]['light'];
14
17
  /** Resolves generated bindings and arrays while preserving caller-owned native objects. */
15
18
  export declare function resolve(value: unknown, context: Context | undefined, input?: unknown): unknown;
19
+ /** Selects a precompiled media alternative before applying its scoped styling. */
20
+ export declare function responsive<const profiles extends Readonly<Record<string, Callable>>>(queries: readonly Media.Query[], profiles: profiles): profiles[keyof profiles];
21
+ /** Retains a compiled application and its input until a view selects its context. */
22
+ export declare function application(value: unknown, input?: unknown): unknown;
23
+ /** Returns compiler-owned alternatives consumed by a native style application. */
24
+ export declare function key(value: unknown, context: Context): readonly unknown[];
16
25
  export {};
17
26
  //# sourceMappingURL=NativeContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeContext.d.ts","sourceRoot":"","sources":["../../src/runtime/NativeContext.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAI1C,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC,CAAA;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACtD,KAAK,MAAM,GAAG,QAAQ,CACpB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAC7D,CAAA;AAED,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAChD,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,MAAM,GAAG,MAAM,GACjC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,CAAC,CA4B/B;AAED,2FAA2F;AAC3F,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAgBT"}
1
+ {"version":3,"file":"NativeContext.d.ts","sourceRoot":"","sources":["../../src/runtime/NativeContext.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAKlD,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACtD,KAAK,MAAM,GAAG,QAAQ,CACpB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAC7D,CAAA;AAED,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAChD,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,MAAM,GAAG,MAAM,GACjC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,CAAC,CAqB/B;AAED,2FAA2F;AAC3F,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAgBT;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAEzD,OAAO,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,EAC/B,QAAQ,EAAE,QAAQ,GACjB,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAY1B;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAQpE;AAED,kFAAkF;AAClF,wBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,CAaxE"}
@@ -1,9 +1,12 @@
1
+ import * as Media from './internal/NativeMedia.js';
1
2
  const binding = Symbol('zyzz.native.context');
3
+ const dependency = Symbol('zyzz.native.dependency');
2
4
  /** Retains compiled alternatives without selecting a device context at module evaluation. */
3
5
  export function create(tables, defaultVars) {
4
6
  const fallback = Object.keys(tables).length === 1 && defaultVars === 'default'
5
7
  ? tables.default
6
8
  : undefined;
9
+ const selections = new Set(Object.values(tables).flatMap((table) => [table.dark, table.light]));
7
10
  function select(context, input) {
8
11
  const set = context.set ?? defaultVars;
9
12
  const table = tables[set] ?? fallback;
@@ -11,21 +14,12 @@ export function create(tables, defaultVars) {
11
14
  throw new Error(`Unknown native set: ${set}.`);
12
15
  return table[context.colorScheme](input).style;
13
16
  }
14
- function props(input) {
15
- return {
16
- style: {
17
- [binding]: (context) => select(context, input),
18
- },
19
- };
20
- }
21
- const defaults = props();
22
- Object.freeze(defaults.style);
23
- Object.freeze(defaults);
24
- const callable = (input) => input === undefined ? defaults : props(input);
25
- Object.defineProperty(callable, binding, {
26
- value: select,
17
+ return bind(select, (context) => {
18
+ const table = tables[context.set ?? defaultVars] ?? fallback;
19
+ if (!table)
20
+ throw new Error(`Unknown native set: ${context.set ?? defaultVars}.`);
21
+ return selections.size === 1 ? [] : [table[context.colorScheme]];
27
22
  });
28
- return callable;
29
23
  }
30
24
  /** Resolves generated bindings and arrays while preserving caller-owned native objects. */
31
25
  export function resolve(value, context, input) {
@@ -44,4 +38,63 @@ export function resolve(value, context, input) {
44
38
  return (...args) => resolve(value(...args), context);
45
39
  return value;
46
40
  }
41
+ /** Selects a precompiled media alternative before applying its scoped styling. */
42
+ export function responsive(queries, profiles) {
43
+ return bind((context, input) => {
44
+ const profile = profiles[Media.select(queries, context.viewport)];
45
+ if (!profile)
46
+ throw new Error('Native media alternative is missing.');
47
+ return resolve(profile, context, input);
48
+ }, (context) => {
49
+ const profile = profiles[Media.select(queries, context.viewport)];
50
+ return [profile, ...key(profile, context)];
51
+ });
52
+ }
53
+ /** Retains a compiled application and its input until a view selects its context. */
54
+ export function application(value, input) {
55
+ return {
56
+ [binding]: (context) => resolve(value, context, input),
57
+ [dependency]: (context) => [
58
+ ...key(value, context),
59
+ ...key(input, context),
60
+ ],
61
+ };
62
+ }
63
+ /** Returns compiler-owned alternatives consumed by a native style application. */
64
+ export function key(value, context) {
65
+ if (Array.isArray(value))
66
+ return value.flatMap((entry) => key(entry, context));
67
+ if (value &&
68
+ (typeof value === 'object' || typeof value === 'function') &&
69
+ dependency in value) {
70
+ const read = value[dependency];
71
+ if (typeof read === 'function')
72
+ return read(context);
73
+ }
74
+ if (value && typeof value === 'object' && 'style' in value)
75
+ return key(value.style, context);
76
+ return [];
77
+ }
78
+ function bind(select, read) {
79
+ function props(input) {
80
+ return {
81
+ style: {
82
+ [binding]: (context) => select(context, input),
83
+ [dependency]: (context) => [
84
+ ...read(context),
85
+ ...key(input, context),
86
+ ],
87
+ },
88
+ };
89
+ }
90
+ const defaults = props();
91
+ Object.freeze(defaults.style);
92
+ Object.freeze(defaults);
93
+ const callable = (input) => input === undefined ? defaults : props(input);
94
+ Object.defineProperties(callable, {
95
+ [binding]: { value: select },
96
+ [dependency]: { value: read },
97
+ });
98
+ return callable;
99
+ }
47
100
  //# sourceMappingURL=NativeContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeContext.js","sourceRoot":"","sources":["../../src/runtime/NativeContext.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAe7C,6FAA6F;AAC7F,MAAM,UAAU,MAAM,CACpB,MAAc,EACd,WAAkC;IAElC,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,SAAS;QAC3D,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,CAAC,CAAC,SAAS,CAAA;IAEf,SAAS,MAAM,CAAC,OAAgB,EAAE,KAAa;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAA;QACrC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAA;QAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAM,CAAC,CAAC,KAAK,CAAA;IACjD,CAAC;IACD,SAAS,KAAK,CAAC,KAAa;QAC1B,OAAO;YACL,KAAK,EAAE;gBACL,CAAC,OAAO,CAAC,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;aACxD;SACF,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CACjC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;QACvC,KAAK,EAAE,MAAM;KACd,CAAC,CAAA;IACF,OAAO,QAAyC,CAAA;AAClD,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CACrB,KAAc,EACd,OAA4B,EAC5B,KAAe;IAEf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC9E,IACE,KAAK;QACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;QAC1D,OAAO,IAAI,KAAK,EAChB,CAAC;QACD,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7B,IAAI,OAAO,MAAM,KAAK,UAAU;YAC9B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,UAAU;QAC7B,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;IACjE,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"NativeContext.js","sourceRoot":"","sources":["../../src/runtime/NativeContext.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** Applies compiled native binding instructions to runtime scalar payloads. @module */
1
+ /** Selects ordered native fragments and applies runtime scalar payloads. @module */
2
2
  import * as Scalar from '../react-native/internal/Scalar.js';
3
3
  import type * as StyleSheet from '../react-native/StyleSheet.js';
4
4
  import * as Native from './Native.js';
@@ -28,11 +28,12 @@ export type Program = {
28
28
  readonly property: keyof typeof Scalar.properties;
29
29
  readonly parts: readonly (string | number | {
30
30
  readonly slot: string;
31
+ readonly number?: true;
31
32
  })[];
32
33
  })[];
33
34
  }[];
34
35
  };
35
- /** Binds generated instructions without running authoring callbacks or generating CSS. */
36
+ /** Applies generated rules with bounded static caching and fresh scalar results. */
36
37
  export declare function create(options: create.Options): Callable<Record<string, unknown>>;
37
38
  /** Compiler-owned metadata consumed by native dynamic application. */
38
39
  export declare namespace create {
@@ -1 +1 @@
1
- {"version":3,"file":"NativeDynamic.d.ts","sourceRoot":"","sources":["../../src/runtime/NativeDynamic.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAC5D,OAAO,KAAK,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,oFAAoF;AACpF,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,KAAK,CAAC,SAAS,SAAS,MAAM,GAAG,UAAU,CAAC,WAAW,EAEvD,KAAK,EAAE,KAAK,GAAG;IACb,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;CAC7D,KACE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;AAErD,+EAA+E;AAC/E,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,CAClC,KAAK,CAAC,SAAS,SAAS,MAAM,GAAG,UAAU,CAAC,WAAW,EAEvD,KAAK,CAAC,EAAE,KAAK,GAAG;IACd,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;CAC7D,KACE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;AAErD,6EAA6E;AAC7E,MAAM,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,GAC9D,EAAE,SAAS,IAAI,GACb,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GACtE,KAAK,CAAA;AAET,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG;IACpB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAAE,CAAA;QACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,CACrB;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAC1B;YACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,MAAM,CAAC,UAAU,CAAA;YACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,CACrB,MAAM,GACN,MAAM,GACN;gBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAC5B,EAAE,CAAA;SACJ,CACJ,EAAE,CAAA;KACJ,EAAE,CAAA;CACJ,CAAA;AAED,0FAA0F;AAC1F,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8KnC;AAED,sEAAsE;AACtE,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,yDAAyD;IACzD,KAAK,OAAO,GAAG,MAAM,CAAC,UAAU,GAC9B,MAAM,CAAC,OAAO,GAAG;QACf,oEAAoE;QACpE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,uDAAuD;QACvD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;KAClE,CAAA;CACJ"}
1
+ {"version":3,"file":"NativeDynamic.d.ts","sourceRoot":"","sources":["../../src/runtime/NativeDynamic.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAA;AAE5D,OAAO,KAAK,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,oFAAoF;AACpF,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,KAAK,CAAC,SAAS,SAAS,MAAM,GAAG,UAAU,CAAC,WAAW,EAEvD,KAAK,EAAE,KAAK,GAAG;IACb,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;CAC7D,KACE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;AAErD,+EAA+E;AAC/E,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,CAClC,KAAK,CAAC,SAAS,SAAS,MAAM,GAAG,UAAU,CAAC,WAAW,EAEvD,KAAK,CAAC,EAAE,KAAK,GAAG;IACd,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;CAC7D,KACE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;AAErD,6EAA6E;AAC7E,MAAM,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,GAC9D,EAAE,SAAS,IAAI,GACb,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GACtE,KAAK,CAAA;AAET,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG;IACpB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAAE,CAAA;QACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,CACrB;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAC1B;YACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,MAAM,CAAC,UAAU,CAAA;YACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,CACrB,MAAM,GACN,MAAM,GACN;gBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;aAAE,CACpD,EAAE,CAAA;SACJ,CACJ,EAAE,CAAA;KACJ,EAAE,CAAA;CACJ,CAAA;AAED,oFAAoF;AACpF,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6MnC;AAED,sEAAsE;AACtE,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,yDAAyD;IACzD,KAAK,OAAO,GAAG,MAAM,CAAC,UAAU,GAC9B,MAAM,CAAC,OAAO,GAAG;QACf,oEAAoE;QACpE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,uDAAuD;QACvD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;KAClE,CAAA;CACJ"}
@@ -1,7 +1,8 @@
1
- /** Applies compiled native binding instructions to runtime scalar payloads. @module */
1
+ /** Selects ordered native fragments and applies runtime scalar payloads. @module */
2
2
  import * as Scalar from '../react-native/internal/Scalar.js';
3
+ import * as Calculation from '../react-native/internal/Calculation.js';
3
4
  import * as Native from './Native.js';
4
- /** Binds generated instructions without running authoring callbacks or generating CSS. */
5
+ /** Applies generated rules with bounded static caching and fresh scalar results. */
5
6
  export function create(options) {
6
7
  function freeze(value) {
7
8
  if (Object.isFrozen(value))
@@ -13,6 +14,9 @@ export function create(options) {
13
14
  }
14
15
  for (const style of Object.values(options.styles))
15
16
  freeze(style);
17
+ const cache = Object.keys(options.program.slots).length || options.payloads?.length
18
+ ? undefined
19
+ : new Map();
16
20
  return (input = {}) => {
17
21
  const bindings = Object.create(null);
18
22
  const selected = Object.create(null);
@@ -37,7 +41,9 @@ export function create(options) {
37
41
  for (const [axis, choices] of Object.entries(options.axes)) {
38
42
  let value = Object.hasOwn(input, axis) ? input[axis] : undefined;
39
43
  if (value === undefined) {
40
- value = options.defaults[axis];
44
+ value = Object.hasOwn(options.defaults, axis)
45
+ ? options.defaults[axis]
46
+ : undefined;
41
47
  if (value != null && Object.hasOwn(options.defaultPayloads ?? {}, axis))
42
48
  value = { [String(value)]: options.defaultPayloads[axis] };
43
49
  }
@@ -46,7 +52,8 @@ export function create(options) {
46
52
  continue;
47
53
  }
48
54
  let payload;
49
- if (typeof value === 'object' && !Array.isArray(value)) {
55
+ const scoped = typeof value === 'object' && !Array.isArray(value);
56
+ if (scoped) {
50
57
  const entries = Object.entries(value);
51
58
  if (entries.length !== 1)
52
59
  throw new Native.SelectionError('Native payloads require exactly one choice.');
@@ -60,9 +67,13 @@ export function create(options) {
60
67
  const definition = options.payloads?.find((entry) => entry.axis === axis && entry.choice === choice);
61
68
  if (definition)
62
69
  bind(definition.slots[0], payload);
63
- else if (payload !== undefined)
70
+ else if (scoped)
64
71
  throw new Native.SelectionError(`Static native choice does not accept a payload: ${axis}.`);
65
72
  }
73
+ const key = cache ? JSON.stringify(Object.values(selected)) : undefined;
74
+ const cached = key === undefined ? undefined : cache?.get(key);
75
+ if (cached)
76
+ return { style: input.style ? [cached, input.style] : cached };
66
77
  const output = {};
67
78
  let lineHeight;
68
79
  for (const rule of options.program.rules) {
@@ -78,7 +89,14 @@ export function create(options) {
78
89
  lineHeight = undefined;
79
90
  continue;
80
91
  }
81
- const values = step.parts.map((part) => typeof part === 'object' ? bindings[part.slot] : part);
92
+ const values = step.parts.map((part) => {
93
+ if (typeof part !== 'object')
94
+ return part;
95
+ const value = bindings[part.slot];
96
+ if (value !== undefined && part.number && typeof value !== 'number')
97
+ throw new Native.SelectionError('Native numeric bindings require numbers.');
98
+ return value;
99
+ });
82
100
  if (values.some((value) => value === undefined))
83
101
  throw new Native.SelectionError('Native binding program references an unbound slot.');
84
102
  const value = values.length === 1 ? values[0] : values.join('');
@@ -89,7 +107,7 @@ export function create(options) {
89
107
  }
90
108
  const converted = Scalar.convert(Scalar.properties[property], value, options, [property]);
91
109
  if (property === 'padding' || property === 'margin') {
92
- const parts = typeof value === 'string' ? value.trim().split(/\s+/) : [value];
110
+ const parts = typeof value === 'string' ? Calculation.parts(value) : [value];
93
111
  const [top, right = top, bottom = top, left = right] = parts.map((part) => Scalar.length(part, options, property === 'margin', [property]));
94
112
  Object.assign(output, {
95
113
  [`${property}Top`]: top,
@@ -98,6 +116,11 @@ export function create(options) {
98
116
  [`${property}Left`]: left,
99
117
  });
100
118
  }
119
+ else if (property === 'inset') {
120
+ const parts = typeof value === 'string' ? Calculation.parts(value) : [value];
121
+ const [top, right = top, bottom = top, left = right] = parts.map((part) => Scalar.convert('offset', part, options, [property]));
122
+ Object.assign(output, { top, right, bottom, left });
123
+ }
101
124
  else if (property === 'borderColor' || property === 'borderWidth') {
102
125
  for (const side of ['Top', 'Right', 'Bottom', 'Left'])
103
126
  output[`border${side}${property === 'borderColor' ? 'Color' : 'Width'}`] = converted;
@@ -135,6 +158,13 @@ export function create(options) {
135
158
  ]);
136
159
  }
137
160
  const style = output;
161
+ if (cache && key !== undefined) {
162
+ Object.freeze(style);
163
+ // Bound retained selections without limiting the recipe's choice space.
164
+ if (cache.size >= 256)
165
+ cache.delete(cache.keys().next().value);
166
+ cache.set(key, style);
167
+ }
138
168
  return { style: input.style ? [style, input.style] : style };
139
169
  };
140
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NativeDynamic.js","sourceRoot":"","sources":["../../src/runtime/NativeDynamic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeDynamic.js","sourceRoot":"","sources":["../../src/runtime/NativeDynamic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Selects finite native variants from precompiled fragments. @module */
2
+ import * as Native from './Native.js';
3
+ /**
4
+ * Binds finite selection data without including dynamic value converters.
5
+ * @param options - Compiler-owned axes, defaults, ordered rules, and native fragments.
6
+ * @returns A callable preserving finite choices and caller-owned native overrides.
7
+ * @throws {Native.SelectionError} For invalid selections, missing fragments, or invalid line heights.
8
+ */
9
+ export declare function create<const axes extends Readonly<Record<string, readonly string[]>>>(options: create.Options<axes>): Native.Callable<axes>;
10
+ /** Compiler-owned finite metadata and converted native fragments. */
11
+ export declare namespace create {
12
+ /** Numeric steps are line-height multipliers resolved against the final font size. */
13
+ type Options<axes extends Readonly<Record<string, readonly string[]>> = Readonly<Record<string, readonly string[]>>> = Native.create.Options<axes> & {
14
+ /** Ordered rules containing static fragment names and line-height multipliers. */
15
+ readonly rules: readonly {
16
+ /** Axis names and allowed choices, all of which must match. */
17
+ readonly matches: readonly (readonly [string, readonly string[]])[];
18
+ /** Fragment names or line-height multipliers applied in order. */
19
+ readonly steps: readonly (string | number)[];
20
+ }[];
21
+ };
22
+ }
23
+ //# sourceMappingURL=NativeStatic.d.ts.map