zyzz 0.0.0 → 0.0.2

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 (678) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +380 -0
  3. package/dist/Config.d.ts +170 -0
  4. package/dist/Config.d.ts.map +1 -0
  5. package/dist/Config.js +249 -0
  6. package/dist/Config.js.map +1 -0
  7. package/dist/Props.d.ts +7 -0
  8. package/dist/Props.d.ts.map +1 -0
  9. package/dist/Props.js +3 -0
  10. package/dist/Props.js.map +1 -0
  11. package/dist/Style.d.ts +167 -0
  12. package/dist/Style.d.ts.map +1 -0
  13. package/dist/Style.js +284 -0
  14. package/dist/Style.js.map +1 -0
  15. package/dist/Theme.d.ts +154 -0
  16. package/dist/Theme.d.ts.map +1 -0
  17. package/dist/Theme.js +257 -0
  18. package/dist/Theme.js.map +1 -0
  19. package/dist/babel/NativeEdits.d.ts +8 -0
  20. package/dist/babel/NativeEdits.d.ts.map +1 -0
  21. package/dist/babel/NativeEdits.js +233 -0
  22. package/dist/babel/NativeEdits.js.map +1 -0
  23. package/dist/babel/NativeJsx.d.ts +10 -0
  24. package/dist/babel/NativeJsx.d.ts.map +1 -0
  25. package/dist/babel/NativeJsx.js +204 -0
  26. package/dist/babel/NativeJsx.js.map +1 -0
  27. package/dist/babel/index.d.ts +51 -0
  28. package/dist/babel/index.d.ts.map +1 -0
  29. package/dist/babel/index.js +220 -0
  30. package/dist/babel/index.js.map +1 -0
  31. package/dist/cli/index.d.ts +3 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/cli/index.js +178 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/compiler/Graph.d.ts +64 -0
  36. package/dist/compiler/Graph.d.ts.map +1 -0
  37. package/dist/compiler/Graph.js +1111 -0
  38. package/dist/compiler/Graph.js.map +1 -0
  39. package/dist/compiler/Native.d.ts +53 -0
  40. package/dist/compiler/Native.d.ts.map +1 -0
  41. package/dist/compiler/Native.js +617 -0
  42. package/dist/compiler/Native.js.map +1 -0
  43. package/dist/compiler/Source.d.ts +165 -0
  44. package/dist/compiler/Source.d.ts.map +1 -0
  45. package/dist/compiler/Source.js +990 -0
  46. package/dist/compiler/Source.js.map +1 -0
  47. package/dist/compiler/Transform.d.ts +57 -0
  48. package/dist/compiler/Transform.d.ts.map +1 -0
  49. package/dist/compiler/Transform.js +884 -0
  50. package/dist/compiler/Transform.js.map +1 -0
  51. package/dist/compiler/index.d.ts +13 -0
  52. package/dist/compiler/index.d.ts.map +1 -0
  53. package/dist/compiler/index.js +13 -0
  54. package/dist/compiler/index.js.map +1 -0
  55. package/dist/compiler/internal/Applications.d.ts +35 -0
  56. package/dist/compiler/internal/Applications.d.ts.map +1 -0
  57. package/dist/compiler/internal/Applications.js +248 -0
  58. package/dist/compiler/internal/Applications.js.map +1 -0
  59. package/dist/compiler/internal/AtRules.d.ts +8 -0
  60. package/dist/compiler/internal/AtRules.d.ts.map +1 -0
  61. package/dist/compiler/internal/AtRules.js +180 -0
  62. package/dist/compiler/internal/AtRules.js.map +1 -0
  63. package/dist/compiler/internal/Catalogs.d.ts +19 -0
  64. package/dist/compiler/internal/Catalogs.d.ts.map +1 -0
  65. package/dist/compiler/internal/Catalogs.js +68 -0
  66. package/dist/compiler/internal/Catalogs.js.map +1 -0
  67. package/dist/compiler/internal/ColorProfiles.d.ts +3 -0
  68. package/dist/compiler/internal/ColorProfiles.d.ts.map +1 -0
  69. package/dist/compiler/internal/ColorProfiles.js +84 -0
  70. package/dist/compiler/internal/ColorProfiles.js.map +1 -0
  71. package/dist/compiler/internal/CompositionBindings.d.ts +16 -0
  72. package/dist/compiler/internal/CompositionBindings.d.ts.map +1 -0
  73. package/dist/compiler/internal/CompositionBindings.js +89 -0
  74. package/dist/compiler/internal/CompositionBindings.js.map +1 -0
  75. package/dist/compiler/internal/Compositions.d.ts +32 -0
  76. package/dist/compiler/internal/Compositions.d.ts.map +1 -0
  77. package/dist/compiler/internal/Compositions.js +464 -0
  78. package/dist/compiler/internal/Compositions.js.map +1 -0
  79. package/dist/compiler/internal/Configurations.d.ts +21 -0
  80. package/dist/compiler/internal/Configurations.d.ts.map +1 -0
  81. package/dist/compiler/internal/Configurations.js +171 -0
  82. package/dist/compiler/internal/Configurations.js.map +1 -0
  83. package/dist/compiler/internal/Contract.d.ts +27 -0
  84. package/dist/compiler/internal/Contract.d.ts.map +1 -0
  85. package/dist/compiler/internal/Contract.js +600 -0
  86. package/dist/compiler/internal/Contract.js.map +1 -0
  87. package/dist/compiler/internal/Contributions.d.ts +54 -0
  88. package/dist/compiler/internal/Contributions.d.ts.map +1 -0
  89. package/dist/compiler/internal/Contributions.js +1109 -0
  90. package/dist/compiler/internal/Contributions.js.map +1 -0
  91. package/dist/compiler/internal/Descriptors.d.ts +15 -0
  92. package/dist/compiler/internal/Descriptors.d.ts.map +1 -0
  93. package/dist/compiler/internal/Descriptors.js +183 -0
  94. package/dist/compiler/internal/Descriptors.js.map +1 -0
  95. package/dist/compiler/internal/Dynamic.d.ts +14 -0
  96. package/dist/compiler/internal/Dynamic.d.ts.map +1 -0
  97. package/dist/compiler/internal/Dynamic.js +172 -0
  98. package/dist/compiler/internal/Dynamic.js.map +1 -0
  99. package/dist/compiler/internal/Edits.d.ts +12 -0
  100. package/dist/compiler/internal/Edits.d.ts.map +1 -0
  101. package/dist/compiler/internal/Edits.js +5 -0
  102. package/dist/compiler/internal/Edits.js.map +1 -0
  103. package/dist/compiler/internal/Expression.d.ts +12 -0
  104. package/dist/compiler/internal/Expression.d.ts.map +1 -0
  105. package/dist/compiler/internal/Expression.js +98 -0
  106. package/dist/compiler/internal/Expression.js.map +1 -0
  107. package/dist/compiler/internal/Functions.d.ts +5 -0
  108. package/dist/compiler/internal/Functions.d.ts.map +1 -0
  109. package/dist/compiler/internal/Functions.js +191 -0
  110. package/dist/compiler/internal/Functions.js.map +1 -0
  111. package/dist/compiler/internal/Identifiers.d.ts +9 -0
  112. package/dist/compiler/internal/Identifiers.d.ts.map +1 -0
  113. package/dist/compiler/internal/Identifiers.js +106 -0
  114. package/dist/compiler/internal/Identifiers.js.map +1 -0
  115. package/dist/compiler/internal/Keyframes.d.ts +5 -0
  116. package/dist/compiler/internal/Keyframes.d.ts.map +1 -0
  117. package/dist/compiler/internal/Keyframes.js +51 -0
  118. package/dist/compiler/internal/Keyframes.js.map +1 -0
  119. package/dist/compiler/internal/Namespaces.d.ts +17 -0
  120. package/dist/compiler/internal/Namespaces.d.ts.map +1 -0
  121. package/dist/compiler/internal/Namespaces.js +265 -0
  122. package/dist/compiler/internal/Namespaces.js.map +1 -0
  123. package/dist/compiler/internal/NativeBindings.d.ts +74 -0
  124. package/dist/compiler/internal/NativeBindings.d.ts.map +1 -0
  125. package/dist/compiler/internal/NativeBindings.js +117 -0
  126. package/dist/compiler/internal/NativeBindings.js.map +1 -0
  127. package/dist/compiler/internal/PackedStyles.d.ts +35 -0
  128. package/dist/compiler/internal/PackedStyles.d.ts.map +1 -0
  129. package/dist/compiler/internal/PackedStyles.js +345 -0
  130. package/dist/compiler/internal/PackedStyles.js.map +1 -0
  131. package/dist/compiler/internal/Properties.d.ts +5 -0
  132. package/dist/compiler/internal/Properties.d.ts.map +1 -0
  133. package/dist/compiler/internal/Properties.js +82 -0
  134. package/dist/compiler/internal/Properties.js.map +1 -0
  135. package/dist/compiler/internal/RecipeConditions.d.ts +41 -0
  136. package/dist/compiler/internal/RecipeConditions.d.ts.map +1 -0
  137. package/dist/compiler/internal/RecipeConditions.js +82 -0
  138. package/dist/compiler/internal/RecipeConditions.js.map +1 -0
  139. package/dist/compiler/internal/RecipePayloads.d.ts +31 -0
  140. package/dist/compiler/internal/RecipePayloads.d.ts.map +1 -0
  141. package/dist/compiler/internal/RecipePayloads.js +99 -0
  142. package/dist/compiler/internal/RecipePayloads.js.map +1 -0
  143. package/dist/compiler/internal/Recipes.d.ts +32 -0
  144. package/dist/compiler/internal/Recipes.d.ts.map +1 -0
  145. package/dist/compiler/internal/Recipes.js +339 -0
  146. package/dist/compiler/internal/Recipes.js.map +1 -0
  147. package/dist/compiler/internal/Relative.d.ts +19 -0
  148. package/dist/compiler/internal/Relative.d.ts.map +1 -0
  149. package/dist/compiler/internal/Relative.js +62 -0
  150. package/dist/compiler/internal/Relative.js.map +1 -0
  151. package/dist/compiler/internal/Scope.d.ts +10 -0
  152. package/dist/compiler/internal/Scope.d.ts.map +1 -0
  153. package/dist/compiler/internal/Scope.js +28 -0
  154. package/dist/compiler/internal/Scope.js.map +1 -0
  155. package/dist/compiler/internal/Selectors.d.ts +12 -0
  156. package/dist/compiler/internal/Selectors.d.ts.map +1 -0
  157. package/dist/compiler/internal/Selectors.js +265 -0
  158. package/dist/compiler/internal/Selectors.js.map +1 -0
  159. package/dist/compiler/internal/Static.d.ts +39 -0
  160. package/dist/compiler/internal/Static.d.ts.map +1 -0
  161. package/dist/compiler/internal/Static.js +532 -0
  162. package/dist/compiler/internal/Static.js.map +1 -0
  163. package/dist/compiler/internal/Stylesheets.d.ts +47 -0
  164. package/dist/compiler/internal/Stylesheets.d.ts.map +1 -0
  165. package/dist/compiler/internal/Stylesheets.js +272 -0
  166. package/dist/compiler/internal/Stylesheets.js.map +1 -0
  167. package/dist/compiler/internal/Syntax.d.ts +17 -0
  168. package/dist/compiler/internal/Syntax.d.ts.map +1 -0
  169. package/dist/compiler/internal/Syntax.js +19 -0
  170. package/dist/compiler/internal/Syntax.js.map +1 -0
  171. package/dist/compiler/internal/Themes.d.ts +158 -0
  172. package/dist/compiler/internal/Themes.d.ts.map +1 -0
  173. package/dist/compiler/internal/Themes.js +1169 -0
  174. package/dist/compiler/internal/Themes.js.map +1 -0
  175. package/dist/compiler/internal/Variables.d.ts +31 -0
  176. package/dist/compiler/internal/Variables.d.ts.map +1 -0
  177. package/dist/compiler/internal/Variables.js +376 -0
  178. package/dist/compiler/internal/Variables.js.map +1 -0
  179. package/dist/compiler/internal/ViewTransitions.d.ts +3 -0
  180. package/dist/compiler/internal/ViewTransitions.d.ts.map +1 -0
  181. package/dist/compiler/internal/ViewTransitions.js +68 -0
  182. package/dist/compiler/internal/ViewTransitions.js.map +1 -0
  183. package/dist/cx.d.ts +18 -0
  184. package/dist/cx.d.ts.map +1 -0
  185. package/dist/cx.js +60 -0
  186. package/dist/cx.js.map +1 -0
  187. package/dist/default.d.ts +2008 -0
  188. package/dist/default.d.ts.map +1 -0
  189. package/dist/default.js +243 -0
  190. package/dist/default.js.map +7 -0
  191. package/dist/default.js.zyzz.json +1 -0
  192. package/dist/index.d.ts +21 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +19 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/internal/Authoring.d.ts +26 -0
  197. package/dist/internal/Authoring.d.ts.map +1 -0
  198. package/dist/internal/Authoring.js +134 -0
  199. package/dist/internal/Authoring.js.map +1 -0
  200. package/dist/internal/Binding.d.ts +64 -0
  201. package/dist/internal/Binding.d.ts.map +1 -0
  202. package/dist/internal/Binding.js +27 -0
  203. package/dist/internal/Binding.js.map +1 -0
  204. package/dist/internal/BindingDomains.d.ts +11 -0
  205. package/dist/internal/BindingDomains.d.ts.map +1 -0
  206. package/dist/internal/BindingDomains.js +459 -0
  207. package/dist/internal/BindingDomains.js.map +1 -0
  208. package/dist/internal/Cascade.d.ts +45 -0
  209. package/dist/internal/Cascade.d.ts.map +1 -0
  210. package/dist/internal/Cascade.js +165 -0
  211. package/dist/internal/Cascade.js.map +1 -0
  212. package/dist/internal/Compound.d.ts +132 -0
  213. package/dist/internal/Compound.d.ts.map +1 -0
  214. package/dist/internal/Compound.js +2 -0
  215. package/dist/internal/Compound.js.map +1 -0
  216. package/dist/internal/Condition.d.ts +33 -0
  217. package/dist/internal/Condition.d.ts.map +1 -0
  218. package/dist/internal/Condition.js +180 -0
  219. package/dist/internal/Condition.js.map +1 -0
  220. package/dist/internal/Corner.d.ts +9 -0
  221. package/dist/internal/Corner.d.ts.map +1 -0
  222. package/dist/internal/Corner.js +14 -0
  223. package/dist/internal/Corner.js.map +1 -0
  224. package/dist/internal/FunctionSyntax.d.ts +27 -0
  225. package/dist/internal/FunctionSyntax.d.ts.map +1 -0
  226. package/dist/internal/FunctionSyntax.js +91 -0
  227. package/dist/internal/FunctionSyntax.js.map +1 -0
  228. package/dist/internal/FunctionValue.d.ts +19 -0
  229. package/dist/internal/FunctionValue.d.ts.map +1 -0
  230. package/dist/internal/FunctionValue.js +2 -0
  231. package/dist/internal/FunctionValue.js.map +1 -0
  232. package/dist/internal/Geometry.d.ts +8 -0
  233. package/dist/internal/Geometry.d.ts.map +1 -0
  234. package/dist/internal/Geometry.js +2 -0
  235. package/dist/internal/Geometry.js.map +1 -0
  236. package/dist/internal/Grid.d.ts +15 -0
  237. package/dist/internal/Grid.d.ts.map +1 -0
  238. package/dist/internal/Grid.js +2 -0
  239. package/dist/internal/Grid.js.map +1 -0
  240. package/dist/internal/Identifier.d.ts +15 -0
  241. package/dist/internal/Identifier.d.ts.map +1 -0
  242. package/dist/internal/Identifier.js +2 -0
  243. package/dist/internal/Identifier.js.map +1 -0
  244. package/dist/internal/Identity.d.ts +16 -0
  245. package/dist/internal/Identity.d.ts.map +1 -0
  246. package/dist/internal/Identity.js +78 -0
  247. package/dist/internal/Identity.js.map +1 -0
  248. package/dist/internal/Lexical.d.ts +89 -0
  249. package/dist/internal/Lexical.d.ts.map +1 -0
  250. package/dist/internal/Lexical.js +15 -0
  251. package/dist/internal/Lexical.js.map +1 -0
  252. package/dist/internal/Literal.d.ts +3459 -0
  253. package/dist/internal/Literal.d.ts.map +1 -0
  254. package/dist/internal/Literal.js +3371 -0
  255. package/dist/internal/Literal.js.map +1 -0
  256. package/dist/internal/NativeProperties.d.ts +596 -0
  257. package/dist/internal/NativeProperties.d.ts.map +1 -0
  258. package/dist/internal/NativeProperties.js +2 -0
  259. package/dist/internal/NativeProperties.js.map +1 -0
  260. package/dist/internal/Numeric.d.ts +23 -0
  261. package/dist/internal/Numeric.d.ts.map +1 -0
  262. package/dist/internal/Numeric.js +2 -0
  263. package/dist/internal/Numeric.js.map +1 -0
  264. package/dist/internal/Query.d.ts +15 -0
  265. package/dist/internal/Query.d.ts.map +1 -0
  266. package/dist/internal/Query.js +58 -0
  267. package/dist/internal/Query.js.map +1 -0
  268. package/dist/internal/Recipe.d.ts +17 -0
  269. package/dist/internal/Recipe.d.ts.map +1 -0
  270. package/dist/internal/Recipe.js +2 -0
  271. package/dist/internal/Recipe.js.map +1 -0
  272. package/dist/internal/RuleReference.d.ts +23 -0
  273. package/dist/internal/RuleReference.d.ts.map +1 -0
  274. package/dist/internal/RuleReference.js +65 -0
  275. package/dist/internal/RuleReference.js.map +1 -0
  276. package/dist/internal/Scheme.d.ts +12 -0
  277. package/dist/internal/Scheme.d.ts.map +1 -0
  278. package/dist/internal/Scheme.js +16 -0
  279. package/dist/internal/Scheme.js.map +1 -0
  280. package/dist/internal/Shorthands.d.ts +20 -0
  281. package/dist/internal/Shorthands.d.ts.map +1 -0
  282. package/dist/internal/Shorthands.js +49 -0
  283. package/dist/internal/Shorthands.js.map +1 -0
  284. package/dist/internal/Targets.d.ts +43 -0
  285. package/dist/internal/Targets.d.ts.map +1 -0
  286. package/dist/internal/Targets.js +60 -0
  287. package/dist/internal/Targets.js.map +1 -0
  288. package/dist/internal/Token.d.ts +104 -0
  289. package/dist/internal/Token.d.ts.map +1 -0
  290. package/dist/internal/Token.js +162 -0
  291. package/dist/internal/Token.js.map +1 -0
  292. package/dist/internal/Tuple.d.ts +23 -0
  293. package/dist/internal/Tuple.d.ts.map +1 -0
  294. package/dist/internal/Tuple.js +2 -0
  295. package/dist/internal/Tuple.js.map +1 -0
  296. package/dist/internal/Value.d.ts +74 -0
  297. package/dist/internal/Value.d.ts.map +1 -0
  298. package/dist/internal/Value.js +60 -0
  299. package/dist/internal/Value.js.map +1 -0
  300. package/dist/metro/Graph.d.ts +8 -0
  301. package/dist/metro/Graph.d.ts.map +1 -0
  302. package/dist/metro/Graph.js +63 -0
  303. package/dist/metro/Graph.js.map +1 -0
  304. package/dist/metro/Watch.d.ts +21 -0
  305. package/dist/metro/Watch.d.ts.map +1 -0
  306. package/dist/metro/Watch.js +51 -0
  307. package/dist/metro/Watch.js.map +1 -0
  308. package/dist/metro/index.d.ts +30 -0
  309. package/dist/metro/index.d.ts.map +1 -0
  310. package/dist/metro/index.js +52 -0
  311. package/dist/metro/index.js.map +1 -0
  312. package/dist/metro/transformer.d.ts +21 -0
  313. package/dist/metro/transformer.d.ts.map +1 -0
  314. package/dist/metro/transformer.js +71 -0
  315. package/dist/metro/transformer.js.map +1 -0
  316. package/dist/next/index.d.ts +18 -0
  317. package/dist/next/index.d.ts.map +1 -0
  318. package/dist/next/index.js +92 -0
  319. package/dist/next/index.js.map +1 -0
  320. package/dist/next/loader.d.ts +16 -0
  321. package/dist/next/loader.d.ts.map +1 -0
  322. package/dist/next/loader.js +282 -0
  323. package/dist/next/loader.js.map +1 -0
  324. package/dist/node/Host.d.ts +80 -0
  325. package/dist/node/Host.d.ts.map +1 -0
  326. package/dist/node/Host.js +882 -0
  327. package/dist/node/Host.js.map +1 -0
  328. package/dist/node/index.d.ts +7 -0
  329. package/dist/node/index.d.ts.map +1 -0
  330. package/dist/node/index.js +7 -0
  331. package/dist/node/index.js.map +1 -0
  332. package/dist/react-native/Host.d.ts +76 -0
  333. package/dist/react-native/Host.d.ts.map +1 -0
  334. package/dist/react-native/Host.js +209 -0
  335. package/dist/react-native/Host.js.map +1 -0
  336. package/dist/react-native/StyleSheet.d.ts +226 -0
  337. package/dist/react-native/StyleSheet.d.ts.map +1 -0
  338. package/dist/react-native/StyleSheet.js +606 -0
  339. package/dist/react-native/StyleSheet.js.map +1 -0
  340. package/dist/react-native/Variants.d.ts +38 -0
  341. package/dist/react-native/Variants.d.ts.map +1 -0
  342. package/dist/react-native/Variants.js +66 -0
  343. package/dist/react-native/Variants.js.map +1 -0
  344. package/dist/react-native/index.d.ts +8 -0
  345. package/dist/react-native/index.d.ts.map +1 -0
  346. package/dist/react-native/index.js +8 -0
  347. package/dist/react-native/index.js.map +1 -0
  348. package/dist/react-native/internal/Color.d.ts +7 -0
  349. package/dist/react-native/internal/Color.d.ts.map +1 -0
  350. package/dist/react-native/internal/Color.js +93 -0
  351. package/dist/react-native/internal/Color.js.map +1 -0
  352. package/dist/react-native/internal/NativeSchema.d.ts +5138 -0
  353. package/dist/react-native/internal/NativeSchema.d.ts.map +1 -0
  354. package/dist/react-native/internal/NativeSchema.js +3097 -0
  355. package/dist/react-native/internal/NativeSchema.js.map +1 -0
  356. package/dist/react-native/internal/Scalar.d.ts +95 -0
  357. package/dist/react-native/internal/Scalar.d.ts.map +1 -0
  358. package/dist/react-native/internal/Scalar.js +199 -0
  359. package/dist/react-native/internal/Scalar.js.map +1 -0
  360. package/dist/react-native/internal/Values.d.ts +5 -0
  361. package/dist/react-native/internal/Values.d.ts.map +1 -0
  362. package/dist/react-native/internal/Values.js +65 -0
  363. package/dist/react-native/internal/Values.js.map +1 -0
  364. package/dist/react-native/react.d.ts +22 -0
  365. package/dist/react-native/react.d.ts.map +1 -0
  366. package/dist/react-native/react.js +26 -0
  367. package/dist/react-native/react.js.map +1 -0
  368. package/dist/reset.css +244 -0
  369. package/dist/runtime/Appearance.d.ts +55 -0
  370. package/dist/runtime/Appearance.d.ts.map +1 -0
  371. package/dist/runtime/Appearance.js +84 -0
  372. package/dist/runtime/Appearance.js.map +1 -0
  373. package/dist/runtime/Composition.d.ts +46 -0
  374. package/dist/runtime/Composition.d.ts.map +1 -0
  375. package/dist/runtime/Composition.js +52 -0
  376. package/dist/runtime/Composition.js.map +1 -0
  377. package/dist/runtime/CompositionHtml.d.ts +15 -0
  378. package/dist/runtime/CompositionHtml.d.ts.map +1 -0
  379. package/dist/runtime/CompositionHtml.js +20 -0
  380. package/dist/runtime/CompositionHtml.js.map +1 -0
  381. package/dist/runtime/ConditionalRecipe.d.ts +30 -0
  382. package/dist/runtime/ConditionalRecipe.d.ts.map +1 -0
  383. package/dist/runtime/ConditionalRecipe.js +39 -0
  384. package/dist/runtime/ConditionalRecipe.js.map +1 -0
  385. package/dist/runtime/Dynamic.d.ts +19 -0
  386. package/dist/runtime/Dynamic.d.ts.map +1 -0
  387. package/dist/runtime/Dynamic.js +22 -0
  388. package/dist/runtime/Dynamic.js.map +1 -0
  389. package/dist/runtime/Html.d.ts +32 -0
  390. package/dist/runtime/Html.d.ts.map +1 -0
  391. package/dist/runtime/Html.js +63 -0
  392. package/dist/runtime/Html.js.map +1 -0
  393. package/dist/runtime/Native.d.ts +48 -0
  394. package/dist/runtime/Native.d.ts.map +1 -0
  395. package/dist/runtime/Native.js +78 -0
  396. package/dist/runtime/Native.js.map +1 -0
  397. package/dist/runtime/NativeContext.d.ts +17 -0
  398. package/dist/runtime/NativeContext.d.ts.map +1 -0
  399. package/dist/runtime/NativeContext.js +47 -0
  400. package/dist/runtime/NativeContext.js.map +1 -0
  401. package/dist/runtime/NativeDynamic.d.ts +47 -0
  402. package/dist/runtime/NativeDynamic.d.ts.map +1 -0
  403. package/dist/runtime/NativeDynamic.js +141 -0
  404. package/dist/runtime/NativeDynamic.js.map +1 -0
  405. package/dist/runtime/PayloadRecipe.d.ts +22 -0
  406. package/dist/runtime/PayloadRecipe.d.ts.map +1 -0
  407. package/dist/runtime/PayloadRecipe.js +59 -0
  408. package/dist/runtime/PayloadRecipe.js.map +1 -0
  409. package/dist/runtime/Props.d.ts +21 -0
  410. package/dist/runtime/Props.d.ts.map +1 -0
  411. package/dist/runtime/Props.js +17 -0
  412. package/dist/runtime/Props.js.map +1 -0
  413. package/dist/runtime/Recipe.d.ts +52 -0
  414. package/dist/runtime/Recipe.d.ts.map +1 -0
  415. package/dist/runtime/Recipe.js +30 -0
  416. package/dist/runtime/Recipe.js.map +1 -0
  417. package/dist/runtime/Selection.d.ts +31 -0
  418. package/dist/runtime/Selection.d.ts.map +1 -0
  419. package/dist/runtime/Selection.js +30 -0
  420. package/dist/runtime/Selection.js.map +1 -0
  421. package/dist/runtime/Variable.d.ts +6 -0
  422. package/dist/runtime/Variable.d.ts.map +1 -0
  423. package/dist/runtime/Variable.js +10 -0
  424. package/dist/runtime/Variable.js.map +1 -0
  425. package/dist/runtime/index.d.ts +33 -0
  426. package/dist/runtime/index.d.ts.map +1 -0
  427. package/dist/runtime/index.js +33 -0
  428. package/dist/runtime/index.js.map +1 -0
  429. package/dist/styleFunction.d.ts +72 -0
  430. package/dist/styleFunction.d.ts.map +1 -0
  431. package/dist/styleFunction.js +18 -0
  432. package/dist/styleFunction.js.map +1 -0
  433. package/dist/themes/LICENSE.tailwind +21 -0
  434. package/dist/variable.d.ts +50 -0
  435. package/dist/variable.d.ts.map +1 -0
  436. package/dist/variable.js +20 -0
  437. package/dist/variable.js.map +1 -0
  438. package/dist/variants.d.ts +84 -0
  439. package/dist/variants.d.ts.map +1 -0
  440. package/dist/variants.js +21 -0
  441. package/dist/variants.js.map +1 -0
  442. package/dist/vite/index.d.ts +24 -0
  443. package/dist/vite/index.d.ts.map +1 -0
  444. package/dist/vite/index.js +1089 -0
  445. package/dist/vite/index.js.map +1 -0
  446. package/dist/web/Css.d.ts +81 -0
  447. package/dist/web/Css.d.ts.map +1 -0
  448. package/dist/web/Css.js +593 -0
  449. package/dist/web/Css.js.map +1 -0
  450. package/dist/web/colorProfile.d.ts +28 -0
  451. package/dist/web/colorProfile.d.ts.map +1 -0
  452. package/dist/web/colorProfile.js +8 -0
  453. package/dist/web/colorProfile.js.map +1 -0
  454. package/dist/web/counterStyle.d.ts +48 -0
  455. package/dist/web/counterStyle.d.ts.map +1 -0
  456. package/dist/web/counterStyle.js +8 -0
  457. package/dist/web/counterStyle.js.map +1 -0
  458. package/dist/web/cssFunction.d.ts +80 -0
  459. package/dist/web/cssFunction.d.ts.map +1 -0
  460. package/dist/web/cssFunction.js +18 -0
  461. package/dist/web/cssFunction.js.map +1 -0
  462. package/dist/web/customMedia.d.ts +12 -0
  463. package/dist/web/customMedia.d.ts.map +1 -0
  464. package/dist/web/customMedia.js +7 -0
  465. package/dist/web/customMedia.js.map +1 -0
  466. package/dist/web/fontFace.d.ts +26 -0
  467. package/dist/web/fontFace.d.ts.map +1 -0
  468. package/dist/web/fontFace.js +7 -0
  469. package/dist/web/fontFace.js.map +1 -0
  470. package/dist/web/fontFeatureValues.d.ts +40 -0
  471. package/dist/web/fontFeatureValues.d.ts.map +1 -0
  472. package/dist/web/fontFeatureValues.js +7 -0
  473. package/dist/web/fontFeatureValues.js.map +1 -0
  474. package/dist/web/fontPaletteValues.d.ts +21 -0
  475. package/dist/web/fontPaletteValues.d.ts.map +1 -0
  476. package/dist/web/fontPaletteValues.js +9 -0
  477. package/dist/web/fontPaletteValues.js.map +1 -0
  478. package/dist/web/global.d.ts +19 -0
  479. package/dist/web/global.d.ts.map +1 -0
  480. package/dist/web/global.js +6 -0
  481. package/dist/web/global.js.map +1 -0
  482. package/dist/web/importCss.d.ts +18 -0
  483. package/dist/web/importCss.d.ts.map +1 -0
  484. package/dist/web/importCss.js +7 -0
  485. package/dist/web/importCss.js.map +1 -0
  486. package/dist/web/index.d.ts +22 -0
  487. package/dist/web/index.d.ts.map +1 -0
  488. package/dist/web/index.js +22 -0
  489. package/dist/web/index.js.map +1 -0
  490. package/dist/web/internal/Block.d.ts +18 -0
  491. package/dist/web/internal/Block.d.ts.map +1 -0
  492. package/dist/web/internal/Block.js +13 -0
  493. package/dist/web/internal/Block.js.map +1 -0
  494. package/dist/web/internal/ClassName.d.ts +19 -0
  495. package/dist/web/internal/ClassName.d.ts.map +1 -0
  496. package/dist/web/internal/ClassName.js +77 -0
  497. package/dist/web/internal/ClassName.js.map +1 -0
  498. package/dist/web/internal/Context.d.ts +11 -0
  499. package/dist/web/internal/Context.d.ts.map +1 -0
  500. package/dist/web/internal/Context.js +2 -0
  501. package/dist/web/internal/Context.js.map +1 -0
  502. package/dist/web/internal/Contributions.d.ts +70 -0
  503. package/dist/web/internal/Contributions.d.ts.map +1 -0
  504. package/dist/web/internal/Contributions.js +109 -0
  505. package/dist/web/internal/Contributions.js.map +1 -0
  506. package/dist/web/internal/Namespace.d.ts +13 -0
  507. package/dist/web/internal/Namespace.d.ts.map +1 -0
  508. package/dist/web/internal/Namespace.js +13 -0
  509. package/dist/web/internal/Namespace.js.map +1 -0
  510. package/dist/web/internal/Themes.d.ts +13 -0
  511. package/dist/web/internal/Themes.d.ts.map +1 -0
  512. package/dist/web/internal/Themes.js +96 -0
  513. package/dist/web/internal/Themes.js.map +1 -0
  514. package/dist/web/keyframes.d.ts +14 -0
  515. package/dist/web/keyframes.d.ts.map +1 -0
  516. package/dist/web/keyframes.js +8 -0
  517. package/dist/web/keyframes.js.map +1 -0
  518. package/dist/web/layers.d.ts +4 -0
  519. package/dist/web/layers.d.ts.map +1 -0
  520. package/dist/web/layers.js +7 -0
  521. package/dist/web/layers.js.map +1 -0
  522. package/dist/web/namespace.d.ts +14 -0
  523. package/dist/web/namespace.d.ts.map +1 -0
  524. package/dist/web/namespace.js +7 -0
  525. package/dist/web/namespace.js.map +1 -0
  526. package/dist/web/page.d.ts +38 -0
  527. package/dist/web/page.d.ts.map +1 -0
  528. package/dist/web/page.js +7 -0
  529. package/dist/web/page.js.map +1 -0
  530. package/dist/web/positionTry.d.ts +14 -0
  531. package/dist/web/positionTry.d.ts.map +1 -0
  532. package/dist/web/positionTry.js +9 -0
  533. package/dist/web/positionTry.js.map +1 -0
  534. package/dist/web/property.d.ts +24 -0
  535. package/dist/web/property.d.ts.map +1 -0
  536. package/dist/web/property.js +7 -0
  537. package/dist/web/property.js.map +1 -0
  538. package/dist/web/viewTransition.d.ts +29 -0
  539. package/dist/web/viewTransition.d.ts.map +1 -0
  540. package/dist/web/viewTransition.js +7 -0
  541. package/dist/web/viewTransition.js.map +1 -0
  542. package/package.json +136 -10
  543. package/src/Config.ts +690 -0
  544. package/src/Props.ts +8 -0
  545. package/src/Style.ts +748 -0
  546. package/src/Theme.ts +713 -0
  547. package/src/babel/NativeEdits.ts +273 -0
  548. package/src/babel/NativeJsx.ts +260 -0
  549. package/src/babel/index.ts +332 -0
  550. package/src/cli/index.ts +196 -0
  551. package/src/compiler/Graph.ts +1586 -0
  552. package/src/compiler/Native.ts +801 -0
  553. package/src/compiler/Source.ts +1550 -0
  554. package/src/compiler/Transform.ts +1235 -0
  555. package/src/compiler/index.ts +12 -0
  556. package/src/compiler/internal/Applications.ts +378 -0
  557. package/src/compiler/internal/AtRules.ts +202 -0
  558. package/src/compiler/internal/Catalogs.ts +114 -0
  559. package/src/compiler/internal/ColorProfiles.ts +93 -0
  560. package/src/compiler/internal/CompositionBindings.ts +120 -0
  561. package/src/compiler/internal/Compositions.ts +629 -0
  562. package/src/compiler/internal/Configurations.ts +244 -0
  563. package/src/compiler/internal/Contract.ts +846 -0
  564. package/src/compiler/internal/Contributions.ts +1507 -0
  565. package/src/compiler/internal/Descriptors.ts +238 -0
  566. package/src/compiler/internal/Dynamic.ts +266 -0
  567. package/src/compiler/internal/Edits.ts +13 -0
  568. package/src/compiler/internal/Expression.ts +135 -0
  569. package/src/compiler/internal/Functions.ts +206 -0
  570. package/src/compiler/internal/Identifiers.ts +124 -0
  571. package/src/compiler/internal/Keyframes.ts +62 -0
  572. package/src/compiler/internal/Namespaces.ts +296 -0
  573. package/src/compiler/internal/NativeBindings.ts +151 -0
  574. package/src/compiler/internal/PackedStyles.ts +464 -0
  575. package/src/compiler/internal/Properties.ts +121 -0
  576. package/src/compiler/internal/RecipeConditions.ts +139 -0
  577. package/src/compiler/internal/RecipePayloads.ts +132 -0
  578. package/src/compiler/internal/Recipes.ts +531 -0
  579. package/src/compiler/internal/Relative.ts +87 -0
  580. package/src/compiler/internal/Scope.ts +36 -0
  581. package/src/compiler/internal/Selectors.ts +334 -0
  582. package/src/compiler/internal/Static.ts +783 -0
  583. package/src/compiler/internal/Stylesheets.ts +361 -0
  584. package/src/compiler/internal/Syntax.ts +31 -0
  585. package/src/compiler/internal/Themes.ts +1794 -0
  586. package/src/compiler/internal/Variables.ts +497 -0
  587. package/src/compiler/internal/ViewTransitions.ts +82 -0
  588. package/src/cx.ts +98 -0
  589. package/src/default.ts +484 -0
  590. package/src/index.ts +20 -0
  591. package/src/internal/Authoring.ts +199 -0
  592. package/src/internal/Binding.ts +187 -0
  593. package/src/internal/BindingDomains.ts +458 -0
  594. package/src/internal/Cascade.ts +165 -0
  595. package/src/internal/Compound.ts +522 -0
  596. package/src/internal/Condition.ts +283 -0
  597. package/src/internal/Corner.ts +17 -0
  598. package/src/internal/FunctionSyntax.ts +271 -0
  599. package/src/internal/FunctionValue.ts +96 -0
  600. package/src/internal/Geometry.ts +30 -0
  601. package/src/internal/Grid.ts +67 -0
  602. package/src/internal/Identifier.ts +14 -0
  603. package/src/internal/Identity.ts +89 -0
  604. package/src/internal/Lexical.ts +202 -0
  605. package/src/internal/Literal.ts +3820 -0
  606. package/src/internal/NativeProperties.ts +936 -0
  607. package/src/internal/Numeric.ts +77 -0
  608. package/src/internal/Query.ts +87 -0
  609. package/src/internal/Recipe.ts +17 -0
  610. package/src/internal/RuleReference.ts +102 -0
  611. package/src/internal/Scheme.ts +20 -0
  612. package/src/internal/Shorthands.ts +120 -0
  613. package/src/internal/Targets.ts +162 -0
  614. package/src/internal/Token.ts +380 -0
  615. package/src/internal/Tuple.ts +29 -0
  616. package/src/internal/Value.ts +320 -0
  617. package/src/metro/Graph.ts +78 -0
  618. package/src/metro/Watch.ts +88 -0
  619. package/src/metro/index.ts +99 -0
  620. package/src/metro/transformer.ts +97 -0
  621. package/src/next/index.ts +114 -0
  622. package/src/next/loader.ts +369 -0
  623. package/src/node/Host.ts +1204 -0
  624. package/src/node/index.ts +6 -0
  625. package/src/react-native/Host.ts +289 -0
  626. package/src/react-native/StyleSheet.ts +1084 -0
  627. package/src/react-native/Variants.ts +122 -0
  628. package/src/react-native/index.ts +7 -0
  629. package/src/react-native/internal/Color.ts +110 -0
  630. package/src/react-native/internal/NativeSchema.ts +3096 -0
  631. package/src/react-native/internal/Scalar.ts +253 -0
  632. package/src/react-native/internal/Values.ts +87 -0
  633. package/src/react-native/react.ts +47 -0
  634. package/src/reset.css +244 -0
  635. package/src/runtime/Appearance.ts +155 -0
  636. package/src/runtime/Composition.ts +87 -0
  637. package/src/runtime/CompositionHtml.ts +38 -0
  638. package/src/runtime/ConditionalRecipe.ts +70 -0
  639. package/src/runtime/Dynamic.ts +51 -0
  640. package/src/runtime/Html.ts +91 -0
  641. package/src/runtime/Native.ts +144 -0
  642. package/src/runtime/NativeContext.ts +74 -0
  643. package/src/runtime/NativeDynamic.ts +246 -0
  644. package/src/runtime/PayloadRecipe.ts +96 -0
  645. package/src/runtime/Props.ts +33 -0
  646. package/src/runtime/Recipe.ts +74 -0
  647. package/src/runtime/Selection.ts +82 -0
  648. package/src/runtime/Variable.ts +15 -0
  649. package/src/runtime/index.ts +45 -0
  650. package/src/styleFunction.ts +138 -0
  651. package/src/themes/LICENSE.tailwind +21 -0
  652. package/src/variable.ts +105 -0
  653. package/src/variants.ts +218 -0
  654. package/src/vite/index.ts +1473 -0
  655. package/src/web/Css.ts +801 -0
  656. package/src/web/colorProfile.ts +60 -0
  657. package/src/web/counterStyle.ts +82 -0
  658. package/src/web/cssFunction.ts +181 -0
  659. package/src/web/customMedia.ts +16 -0
  660. package/src/web/fontFace.ts +41 -0
  661. package/src/web/fontFeatureValues.ts +79 -0
  662. package/src/web/fontPaletteValues.ts +42 -0
  663. package/src/web/global.ts +39 -0
  664. package/src/web/importCss.ts +23 -0
  665. package/src/web/index.ts +22 -0
  666. package/src/web/internal/Block.ts +29 -0
  667. package/src/web/internal/ClassName.ts +112 -0
  668. package/src/web/internal/Context.ts +16 -0
  669. package/src/web/internal/Contributions.ts +219 -0
  670. package/src/web/internal/Namespace.ts +21 -0
  671. package/src/web/internal/Themes.ts +133 -0
  672. package/src/web/keyframes.ts +43 -0
  673. package/src/web/layers.ts +6 -0
  674. package/src/web/namespace.ts +19 -0
  675. package/src/web/page.ts +140 -0
  676. package/src/web/positionTry.ts +71 -0
  677. package/src/web/property.ts +35 -0
  678. package/src/web/viewTransition.ts +89 -0
@@ -0,0 +1,74 @@
1
+ /** Defers precompiled native selection until a React render supplies its context. @module */
2
+ import type * as Native from './Native.js'
3
+
4
+ const binding = Symbol('zyzz.native.context')
5
+
6
+ /** Render-local theme and resolved appearance. */
7
+ export type Context = {
8
+ /** Resolved system appearance or an explicit override. */
9
+ readonly colorScheme: 'dark' | 'light'
10
+ /** Named compiled theme; omission uses each configuration default. */
11
+ readonly theme?: string | undefined
12
+ }
13
+
14
+ type Callable = (input: never) => Native.Props<object>
15
+ type Tables = Readonly<
16
+ Record<string, Readonly<Record<'dark' | 'light', Callable>>>
17
+ >
18
+
19
+ /** Retains compiled alternatives without selecting a device context at module evaluation. */
20
+ export function create<const tables extends Tables>(
21
+ tables: tables,
22
+ defaultTheme: keyof tables & string,
23
+ ): tables[keyof tables]['light'] {
24
+ const fallback =
25
+ Object.keys(tables).length === 1 && defaultTheme === 'default'
26
+ ? tables.default
27
+ : undefined
28
+
29
+ function select(context: Context, input?: never) {
30
+ const theme = context.theme ?? defaultTheme
31
+ const table = tables[theme] ?? fallback
32
+ if (!table) throw new Error(`Unknown native theme: ${theme}.`)
33
+ return table[context.colorScheme](input!).style
34
+ }
35
+ function props(input?: never) {
36
+ return {
37
+ style: {
38
+ [binding]: (context: Context) => select(context, input),
39
+ },
40
+ }
41
+ }
42
+ const defaults = props()
43
+ Object.freeze(defaults.style)
44
+ Object.freeze(defaults)
45
+ const callable = (input?: never) =>
46
+ input === undefined ? defaults : props(input)
47
+ Object.defineProperty(callable, binding, {
48
+ value: select,
49
+ })
50
+ return callable as tables[keyof tables]['light']
51
+ }
52
+
53
+ /** Resolves generated bindings and arrays while preserving caller-owned native objects. */
54
+ export function resolve(
55
+ value: unknown,
56
+ context: Context | undefined,
57
+ input?: unknown,
58
+ ): unknown {
59
+ if (Array.isArray(value)) return value.map((entry) => resolve(entry, context))
60
+ if (
61
+ value &&
62
+ (typeof value === 'object' || typeof value === 'function') &&
63
+ binding in value
64
+ ) {
65
+ if (!context)
66
+ throw new Error('Compiled native styles require a Zyzz Provider.')
67
+ const select = value[binding]
68
+ if (typeof select === 'function')
69
+ return resolve(select(context, input), context)
70
+ }
71
+ if (typeof value === 'function')
72
+ return (...args: unknown[]) => resolve(value(...args), context)
73
+ return value
74
+ }
@@ -0,0 +1,246 @@
1
+ /** Applies compiled native binding instructions to runtime scalar payloads. @module */
2
+ import * as Scalar from '../react-native/internal/Scalar.js'
3
+ import type * as StyleSheet from '../react-native/StyleSheet.js'
4
+ import * as Native from './Native.js'
5
+ import type * as Recipe from './Recipe.js'
6
+
7
+ /** A generated callable with required application payloads and native overrides. */
8
+ export type Callable<input> = <
9
+ const overrides extends object = StyleSheet.NativeStyle,
10
+ >(
11
+ input: input & {
12
+ /** Caller-owned overrides applied after generated values. */
13
+ readonly style?: StyleSheet.StyleProp<overrides> | undefined
14
+ },
15
+ ) => Native.Props<StyleSheet.NativeStyle | overrides>
16
+
17
+ /** A native variant callable whose omitted input applies declared defaults. */
18
+ export type RecipeCallable<input> = <
19
+ const overrides extends object = StyleSheet.NativeStyle,
20
+ >(
21
+ input?: input & {
22
+ /** Caller-owned overrides applied after selected variant values. */
23
+ readonly style?: StyleSheet.StyleProp<overrides> | undefined
24
+ },
25
+ ) => Native.Props<StyleSheet.NativeStyle | overrides>
26
+
27
+ /** Adapts a published web callable's payload to native styling overrides. */
28
+ export type From<fn> = fn extends (...args: infer args) => unknown
29
+ ? [] extends args
30
+ ? RecipeCallable<
31
+ Omit<NonNullable<args[0]>, 'style' | 'className' | 'variables'>
32
+ >
33
+ : Callable<Omit<NonNullable<args[0]>, 'style' | 'className' | 'variables'>>
34
+ : never
35
+
36
+ /** Ordered static and dynamic assignments selected by finite recipe choices. */
37
+ export type Program = {
38
+ /** Required top-level input fields mapped to internal slot names. */
39
+ readonly slots: Readonly<Record<string, string>>
40
+ /** Base, variant, and compound rules in authored order. */
41
+ readonly rules: readonly {
42
+ readonly matches: readonly (readonly [string, readonly string[]])[]
43
+ readonly steps: readonly (
44
+ | { readonly style: string }
45
+ | {
46
+ readonly property: keyof typeof Scalar.properties
47
+ readonly parts: readonly (
48
+ | string
49
+ | number
50
+ | { readonly slot: string }
51
+ )[]
52
+ }
53
+ )[]
54
+ }[]
55
+ }
56
+
57
+ /** Binds generated instructions without running authoring callbacks or generating CSS. */
58
+ export function create(
59
+ options: create.Options,
60
+ ): Callable<Record<string, unknown>> {
61
+ function freeze(value: object): void {
62
+ if (Object.isFrozen(value)) return
63
+ for (const child of Object.values(value))
64
+ if (child && typeof child === 'object') freeze(child)
65
+ Object.freeze(value)
66
+ }
67
+ for (const style of Object.values(options.styles)) freeze(style)
68
+
69
+ return (input = {}) => {
70
+ const bindings: Record<string, string | number> = Object.create(null)
71
+ const selected: Record<string, string | null | undefined> =
72
+ Object.create(null)
73
+ for (const key of Object.keys(input))
74
+ if (
75
+ key !== 'style' &&
76
+ !Object.hasOwn(options.axes, key) &&
77
+ !Object.hasOwn(options.program.slots, key)
78
+ )
79
+ throw new Native.SelectionError(`Unknown native recipe input: ${key}.`)
80
+
81
+ function bind(slots: Readonly<Record<string, string>>, values: unknown) {
82
+ if (!values || typeof values !== 'object' || Array.isArray(values))
83
+ throw new Native.SelectionError(
84
+ 'Native payloads require scalar fields.',
85
+ )
86
+ const record = values as Record<string, unknown>
87
+ for (const [field, slot] of Object.entries(slots)) {
88
+ const value = Object.hasOwn(record, field) ? record[field] : undefined
89
+ if (
90
+ (typeof value !== 'number' && typeof value !== 'string') ||
91
+ (typeof value === 'number' && !Number.isFinite(value))
92
+ )
93
+ throw new Native.SelectionError(
94
+ `Missing or invalid native payload: ${field}.`,
95
+ )
96
+ bindings[slot] = value
97
+ }
98
+ }
99
+ bind(options.program.slots, input)
100
+ for (const [axis, choices] of Object.entries(options.axes)) {
101
+ let value = Object.hasOwn(input, axis) ? input[axis] : undefined
102
+ if (value === undefined) {
103
+ value = options.defaults[axis]
104
+ if (value != null && Object.hasOwn(options.defaultPayloads ?? {}, axis))
105
+ value = { [String(value)]: options.defaultPayloads![axis] }
106
+ }
107
+ if (value == null) {
108
+ selected[axis] = value
109
+ continue
110
+ }
111
+ let payload: unknown
112
+ if (typeof value === 'object' && !Array.isArray(value)) {
113
+ const entries = Object.entries(value)
114
+ if (entries.length !== 1)
115
+ throw new Native.SelectionError(
116
+ 'Native payloads require exactly one choice.',
117
+ )
118
+ ;[value, payload] = entries[0]!
119
+ }
120
+ if (
121
+ (typeof value !== 'string' && typeof value !== 'boolean') ||
122
+ !choices.includes(String(value))
123
+ )
124
+ throw new Native.SelectionError(
125
+ `Unknown native recipe choice for ${axis}.`,
126
+ )
127
+ const choice = String(value)
128
+ selected[axis] = choice
129
+ const definition = options.payloads?.find(
130
+ (entry) => entry.axis === axis && entry.choice === choice,
131
+ )
132
+ if (definition) bind(definition.slots[0]!, payload)
133
+ else if (payload !== undefined)
134
+ throw new Native.SelectionError(
135
+ `Static native choice does not accept a payload: ${axis}.`,
136
+ )
137
+ }
138
+
139
+ const output: Record<string, unknown> = {}
140
+ let lineHeight: string | number | undefined
141
+ for (const rule of options.program.rules) {
142
+ if (
143
+ !rule.matches.every(
144
+ ([axis, choices]) =>
145
+ selected[axis] != null && choices.includes(selected[axis]!),
146
+ )
147
+ )
148
+ continue
149
+ for (const step of rule.steps) {
150
+ if ('style' in step) {
151
+ const style = options.styles[step.style]
152
+ if (!style)
153
+ throw new Native.SelectionError(
154
+ 'Native binding program is missing a static style.',
155
+ )
156
+ Object.assign(output, style)
157
+ if (style.lineHeight !== undefined) lineHeight = undefined
158
+ continue
159
+ }
160
+ const values = step.parts.map((part) =>
161
+ typeof part === 'object' ? bindings[part.slot] : part,
162
+ )
163
+ if (values.some((value) => value === undefined))
164
+ throw new Native.SelectionError(
165
+ 'Native binding program references an unbound slot.',
166
+ )
167
+ const value = values.length === 1 ? values[0]! : values.join('')
168
+ const { property } = step
169
+ if (property === 'lineHeight') {
170
+ lineHeight = value
171
+ continue
172
+ }
173
+ const converted = Scalar.convert(
174
+ Scalar.properties[property],
175
+ value,
176
+ options,
177
+ [property],
178
+ )
179
+ if (property === 'padding' || property === 'margin') {
180
+ const parts =
181
+ typeof value === 'string' ? value.trim().split(/\s+/) : [value]
182
+ const [top, right = top, bottom = top, left = right] = parts.map(
183
+ (part) =>
184
+ Scalar.length(part, options, property === 'margin', [property]),
185
+ )
186
+ Object.assign(output, {
187
+ [`${property}Top`]: top,
188
+ [`${property}Right`]: right,
189
+ [`${property}Bottom`]: bottom,
190
+ [`${property}Left`]: left,
191
+ })
192
+ } else if (property === 'borderColor' || property === 'borderWidth') {
193
+ for (const side of ['Top', 'Right', 'Bottom', 'Left'])
194
+ output[
195
+ `border${side}${property === 'borderColor' ? 'Color' : 'Width'}`
196
+ ] = converted
197
+ } else if (property === 'borderRadius') {
198
+ for (const corner of [
199
+ 'TopLeft',
200
+ 'TopRight',
201
+ 'BottomRight',
202
+ 'BottomLeft',
203
+ ])
204
+ output[`border${corner}Radius`] = converted
205
+ } else if (property === 'gap') {
206
+ output.columnGap = converted
207
+ output.rowGap = converted
208
+ } else output[property] = converted
209
+ }
210
+ }
211
+ if (lineHeight !== undefined) {
212
+ if (typeof lineHeight === 'number') {
213
+ if (
214
+ !Number.isFinite(lineHeight) ||
215
+ lineHeight < 0 ||
216
+ typeof output.fontSize !== 'number'
217
+ )
218
+ throw new Native.SelectionError(
219
+ 'Numeric lineHeight requires an explicit fontSize and a nonnegative finite multiplier.',
220
+ )
221
+ output.lineHeight = lineHeight * output.fontSize
222
+ if (!Number.isFinite(output.lineHeight))
223
+ throw new Native.SelectionError(
224
+ 'Converted lineHeight must be finite.',
225
+ )
226
+ } else
227
+ output.lineHeight = Scalar.length(lineHeight, options, false, [
228
+ 'lineHeight',
229
+ ])
230
+ }
231
+ const style = output as StyleSheet.NativeStyle
232
+ return { style: input.style ? [style, input.style] : style }
233
+ }
234
+ }
235
+
236
+ /** Compiler-owned metadata consumed by native dynamic application. */
237
+ export declare namespace create {
238
+ /** Selected static data and ordered runtime bindings. */
239
+ type Options = Recipe.Definition &
240
+ Scalar.Options & {
241
+ /** Binding instructions containing no executable authoring code. */
242
+ readonly program: Program
243
+ /** Static fragments for one theme and color scheme. */
244
+ readonly styles: Readonly<Record<string, StyleSheet.NativeStyle>>
245
+ }
246
+ }
@@ -0,0 +1,96 @@
1
+ /** Binds scoped recipe payloads to precompiled per-condition variable slots. @module */
2
+ import type { style } from '../styleFunction.js'
3
+ import * as Html from './Html.js'
4
+ import type * as Recipe from './Recipe.js'
5
+
6
+ /** Creates a serializer over an already compiled recipe selection function. */
7
+ export function create(options: create.Options) {
8
+ const axes = Object.keys(options.axes)
9
+ const catalog = new Map(
10
+ axes.map((axis) => [
11
+ axis,
12
+ new Map(
13
+ options.payloads
14
+ .filter((payload) => payload.axis === axis)
15
+ .map((payload) => [payload.choice, payload.slots]),
16
+ ),
17
+ ]),
18
+ )
19
+
20
+ return (input: Record<string, unknown> & style.Options = {}) => {
21
+ const bindings: Record<string, string | number> = {}
22
+ const normalized: Record<string, unknown> = { ...input }
23
+
24
+ function select(value: unknown, axis: string, context: number) {
25
+ if (value === null || typeof value !== 'object') return value
26
+
27
+ const choice = Object.keys(value)[0]!
28
+ const values = (value as Record<string, Record<string, string | number>>)[
29
+ choice
30
+ ]!
31
+ const slots = catalog.get(axis)!.get(choice)![context]!
32
+ for (const [field, name] of Object.entries(slots)) {
33
+ const value = values[field]!
34
+ bindings[name] = value === '' ? ' ' : value
35
+ }
36
+
37
+ return choice
38
+ }
39
+
40
+ for (const axis of axes) {
41
+ const value = Object.hasOwn(input, axis) ? input[axis] : undefined
42
+ const fallback =
43
+ options.defaultPayloads && Object.hasOwn(options.defaultPayloads, axis)
44
+ ? options.defaultPayloads[axis]
45
+ : undefined
46
+ normalized[axis] = select(
47
+ value === undefined && fallback
48
+ ? { [options.defaults[axis]!]: fallback }
49
+ : value,
50
+ axis,
51
+ 0,
52
+ )
53
+ }
54
+
55
+ const conditions = input.conditions as
56
+ | Record<string, Record<string, unknown> | undefined>
57
+ | undefined
58
+ if (conditions) {
59
+ const selections: Record<string, Record<string, unknown>> = Object.create(
60
+ null,
61
+ )
62
+ for (const [index, name] of (options.conditions ?? []).entries()) {
63
+ const values = Object.hasOwn(conditions, name)
64
+ ? conditions[name]
65
+ : undefined
66
+ if (!values) continue
67
+
68
+ const selected: Record<string, unknown> = {}
69
+ for (const axis of axes)
70
+ if (Object.hasOwn(values, axis))
71
+ selected[axis] = select(values[axis], axis, index + 1)
72
+ selections[name] = selected
73
+ }
74
+ normalized.conditions = selections
75
+ }
76
+
77
+ const props = options.select(normalized) as style.Props
78
+ const result = Object.keys(bindings).length
79
+ ? { ...props, style: { ...props.style, ...bindings } }
80
+ : props
81
+ return options.html ? Html.from(result) : result
82
+ }
83
+ }
84
+
85
+ /** Fixed payload serializer inputs. */
86
+ export declare namespace create {
87
+ /** Validated compiler metadata and a selection-only delegate. */
88
+ type Options = Recipe.Definition & {
89
+ /** Final output uses native HTML attributes when enabled. */
90
+ readonly html?: boolean | undefined
91
+ /** Dynamic choices present in this recipe. */
92
+ readonly payloads: readonly Recipe.Payload[]
93
+ /** Precompiled selector returning React-shaped props. */
94
+ readonly select: ReturnType<typeof Recipe.create>
95
+ }
96
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Binds compiled classes to typed className and inline-style overrides.
3
+ * @module
4
+ */
5
+ import type { style } from '../styleFunction.js'
6
+
7
+ /**
8
+ * Binds compiled classes to the web styling override contract.
9
+ * Returns fresh props; without variable assignments, inline styles retain their identity.
10
+ * Never generates rules or changes the supplied overrides.
11
+ * @returns A callable accepting className, style, and variables.
12
+ */
13
+ export function create({ className }: create.Options): style.ReturnType {
14
+ return ((overrides?: style.Options) => {
15
+ if (!overrides) return { className }
16
+
17
+ const { className: external, style, variables } = overrides
18
+ const inline = variables ? { ...variables, ...style } : style
19
+ const merged =
20
+ className && external ? `${className} ${external}` : external || className
21
+
22
+ return inline ? { className: merged, style: inline } : { className: merged }
23
+ }) as style.ReturnType
24
+ }
25
+
26
+ /** Contracts for generated static web callables. */
27
+ export declare namespace create {
28
+ /** Compiled class binding. */
29
+ type Options = {
30
+ /** Complete generated class list. */
31
+ readonly className: string
32
+ }
33
+ }
@@ -0,0 +1,74 @@
1
+ /** Selects finite precompiled recipe alternatives without generating rules. @module */
2
+ import type { style } from '../styleFunction.js'
3
+ import * as Html from './Html.js'
4
+ import * as Props from './Props.js'
5
+
6
+ /** Compiler-owned static recipe metadata. */
7
+ export type Definition = {
8
+ /** Ordered axis names and their finite choices. */
9
+ readonly axes: Readonly<Record<string, readonly string[]>>
10
+ /** Ordered named conditions; only CSS evaluates their queries. */
11
+ readonly conditions?: readonly string[] | undefined
12
+ /** Normalized default selections. */
13
+ readonly defaults: Readonly<Record<string, string | null>>
14
+ /** Complete scalar defaults for selected dynamic choices. */
15
+ readonly defaultPayloads?:
16
+ | { readonly [axis: string]: { readonly [field: string]: string | number } }
17
+ | undefined
18
+ /** Dynamic choices and separate base/conditional input slots. */
19
+ readonly payloads?: readonly Payload[] | undefined
20
+ }
21
+
22
+ /** Fixed input bindings for one dynamic choice. */
23
+ export type Payload = {
24
+ /** Owning selection axis. */
25
+ readonly axis: string
26
+ /** Choice name used for selectors and compound matching. */
27
+ readonly choice: string
28
+ /** Base slots followed by slots for each condition in declaration order. */
29
+ readonly slots: readonly { readonly [field: string]: `--${string}` }[]
30
+ }
31
+
32
+ /**
33
+ * Binds an unconditional recipe class to selection attributes and styling overrides.
34
+ * Type checking and compilation validate authoring; this path only selects data.
35
+ * @param options - Precompiled classes, defaults, axes, and renderer output.
36
+ * @returns A selection callable producing fresh props without retaining inputs.
37
+ */
38
+ export function create(options: create.Options) {
39
+ const props = Props.create({ className: options.className })
40
+ const axes = Object.keys(options.axes)
41
+
42
+ return (input: Record<string, unknown> & style.Options = {}) => {
43
+ const overrides: style.Options = input
44
+ const result: style.Props & Record<`data-${string}`, string> = {
45
+ ...props(overrides),
46
+ }
47
+
48
+ for (const axis of axes) {
49
+ const selected = Object.hasOwn(input, axis) ? input[axis] : undefined
50
+ const value = (
51
+ selected === undefined
52
+ ? Object.hasOwn(options.defaults, axis)
53
+ ? options.defaults[axis]
54
+ : undefined
55
+ : selected
56
+ ) as string | boolean | null | undefined
57
+ if (value !== null && value !== undefined)
58
+ result[`data-${axis}`] = String(value)
59
+ }
60
+
61
+ return options.html ? Html.from(result) : result
62
+ }
63
+ }
64
+
65
+ /** Generated recipe initialization inputs. */
66
+ export declare namespace create {
67
+ /** Fixed metadata retained by the compiled callable. */
68
+ type Options = Pick<Definition, 'axes' | 'defaults'> & {
69
+ /** Complete compiled class list. */
70
+ readonly className: string
71
+ /** Whether to return native HTML attributes. */
72
+ readonly html?: boolean | undefined
73
+ }
74
+ }
@@ -0,0 +1,82 @@
1
+ /** Selects compiler-owned theme classes without evaluating authoring code. @module */
2
+ import * as Scheme from '../internal/Scheme.js'
3
+
4
+ /**
5
+ * Creates a validated selector with the compatible named theme catalog.
6
+ * A selected scheme adds its stylesheet class beside the scope class and an inline `color-scheme`.
7
+ * @param entries Compatible theme names paired with compiler-owned scope classes.
8
+ * @param html Whether selection returns HTML class/serialized-style props. Defaults to false (React className/object-style props).
9
+ * @returns A callable selector with catalog members exposing their scope class names.
10
+ * @throws {TypeError} When selection names, schemes, or option keys are invalid.
11
+ */
12
+ export function create<
13
+ const entries extends readonly (readonly [string, string])[],
14
+ const html extends boolean = false,
15
+ >(entries: entries, html?: html): create.ReturnType<entries[number][0], html>
16
+ export function create(
17
+ entries: readonly (readonly [string, string])[],
18
+ html = false,
19
+ ) {
20
+ const catalog = Object.fromEntries(entries)
21
+
22
+ const select = (input: { theme: string; colorScheme?: string }) => {
23
+ if (
24
+ !input ||
25
+ typeof input !== 'object' ||
26
+ Array.isArray(input) ||
27
+ !Object.hasOwn(input, 'theme') ||
28
+ typeof input.theme !== 'string' ||
29
+ !Object.hasOwn(catalog, input.theme) ||
30
+ Object.keys(input).some(
31
+ (key) => key !== 'theme' && key !== 'colorScheme',
32
+ ) ||
33
+ (input.colorScheme !== undefined &&
34
+ !['light', 'dark', 'light dark'].includes(input.colorScheme))
35
+ )
36
+ throw new TypeError('Invalid theme selection.')
37
+
38
+ const scheme = input.colorScheme as Scheme.Name | undefined
39
+
40
+ return {
41
+ [html ? 'class' : 'className']: scheme
42
+ ? `${catalog[input.theme]} ${Scheme.classes[scheme]}`
43
+ : catalog[input.theme],
44
+ ...(scheme
45
+ ? {
46
+ style: html ? `color-scheme:${scheme}` : { colorScheme: scheme },
47
+ }
48
+ : {}),
49
+ }
50
+ }
51
+
52
+ return Object.defineProperties(
53
+ select,
54
+ Object.getOwnPropertyDescriptors(
55
+ Object.fromEntries(
56
+ entries.map(([name, className]) => [name, { className }]),
57
+ ),
58
+ ),
59
+ ) as unknown as create.ReturnType<string, boolean>
60
+ }
61
+
62
+ /** Typed compiler-owned selection and compatible catalog members. */
63
+ export declare namespace create {
64
+ type ReturnType<name extends string, html extends boolean = false> = {
65
+ <
66
+ const input extends {
67
+ readonly theme: name
68
+ readonly colorScheme?: 'light' | 'dark' | 'light dark' | undefined
69
+ },
70
+ >(
71
+ input: input &
72
+ Record<Exclude<keyof input, 'theme' | 'colorScheme'>, never>,
73
+ ): html extends true
74
+ ? { readonly class: string; readonly style?: string | undefined }
75
+ : {
76
+ readonly className: string
77
+ readonly style?:
78
+ | { readonly colorScheme: 'light' | 'dark' | 'light dark' }
79
+ | undefined
80
+ }
81
+ } & { readonly [key in name]: { readonly className: string } }
82
+ }
@@ -0,0 +1,15 @@
1
+ /** Binds one compiler-assigned custom property to inline assignments. @module */
2
+ import type * as Binding from '../internal/Binding.js'
3
+ import type { variable } from '../variable.js'
4
+
5
+ /** Creates an immutable reference with no CSS generation or value validation. */
6
+ export function create<kind extends Binding.Domain>(
7
+ slot: Binding.Reference<kind>,
8
+ ): variable.Reference<kind> {
9
+ const { name } = slot
10
+ return Object.freeze({
11
+ ...slot,
12
+ [Symbol.toPrimitive]: () => name,
13
+ set: (value: Binding.Value<kind>) => Object.freeze({ [name]: value }),
14
+ }) as unknown as variable.Reference<kind>
15
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Exposes the isolated helpers required by compiled callable styles.
3
+ * @module
4
+ */
5
+ /** Server-safe root appearance initialization script generation. */
6
+ export * as Appearance from './Appearance.js'
7
+
8
+ /** Binding composition over statically resolved ordered groups. */
9
+ export * as Composition from './Composition.js'
10
+
11
+ /** Canonical HTML inputs retained only for compiled composition. */
12
+ export * as CompositionHtml from './CompositionHtml.js'
13
+
14
+ /** Conditional instructions isolated from unconditional recipes. */
15
+ export * as ConditionalRecipe from './ConditionalRecipe.js'
16
+
17
+ /** Runtime scalar binding isolated from static props. */
18
+ export * as Dynamic from './Dynamic.js'
19
+
20
+ /** Compiler-owned HTML attribute binding. */
21
+ export * as Html from './Html.js'
22
+
23
+ /** Static native selection and ordinary style-prop composition. */
24
+ export * as Native from './Native.js'
25
+
26
+ /** Render-local selection of compiled native alternatives. */
27
+ export * as NativeContext from './NativeContext.js'
28
+
29
+ /** Ordered native scalar bindings for generated dynamic callables. */
30
+ export * as NativeDynamic from './NativeDynamic.js'
31
+
32
+ /** Scoped recipe inputs bound to fixed variable slots. */
33
+ export * as PayloadRecipe from './PayloadRecipe.js'
34
+
35
+ /** Runtime props binding without parsing, compilation, or theme data. */
36
+ export * as Props from './Props.js'
37
+
38
+ /** Precompiled recipe selection and attribute serialization. */
39
+ export * as Recipe from './Recipe.js'
40
+
41
+ /** Validated selection of compiler-owned theme catalogs. */
42
+ export * as Selection from './Selection.js'
43
+
44
+ /** Compiler-generated variable contracts with typed assignments. */
45
+ export * as Variable from './Variable.js'