@exponential_app/eui 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/catalog/a11y.json +25 -1
  2. package/catalog/core.catalog.json +426 -6
  3. package/catalog/core.schema.json +634 -4
  4. package/catalog/host.json +10 -0
  5. package/catalog/layout.json +3 -2
  6. package/catalog/limits.json +10 -1
  7. package/catalog/macros.json +542 -1
  8. package/catalog/recipes.json +4 -2
  9. package/catalog/strings.json +14 -2
  10. package/catalog/style.json +21 -0
  11. package/catalog/theme.schema.json +3950 -1337
  12. package/conformance/manifest.json +5 -5
  13. package/conformance/motion/build-corpus.ts +232 -0
  14. package/conformance/motion/corpus/SOURCES.md +117 -0
  15. package/conformance/motion/corpus/images/footage_0.json +1 -0
  16. package/conformance/motion/corpus/images/img_0.jpg +0 -0
  17. package/conformance/motion/corpus/images/img_1.jpg +0 -0
  18. package/conformance/motion/corpus/images/triangle.png +0 -0
  19. package/conformance/motion/corpus/skottie-3d-parenting-nocamera.json +367 -0
  20. package/conformance/motion/corpus/skottie-auto-orient-2.json +292 -0
  21. package/conformance/motion/corpus/skottie-auto-orient.json +717 -0
  22. package/conformance/motion/corpus/skottie-bezier-extranormal.json +199 -0
  23. package/conformance/motion/corpus/skottie-blendmode-hardmix.json +558 -0
  24. package/conformance/motion/corpus/skottie-chained-mattes.json +259 -0
  25. package/conformance/motion/corpus/skottie-dropshadow-ramp.json +852 -0
  26. package/conformance/motion/corpus/skottie-dropshadow-style.json +278 -0
  27. package/conformance/motion/corpus/skottie-effects-transform.json +385 -0
  28. package/conformance/motion/corpus/skottie-fill-effect.json +358 -0
  29. package/conformance/motion/corpus/skottie-fill-rule.json +457 -0
  30. package/conformance/motion/corpus/skottie-gaussian-blur.json +670 -0
  31. package/conformance/motion/corpus/skottie-gradient-opacity.json +451 -0
  32. package/conformance/motion/corpus/skottie-gradient-radial-highlight.json +581 -0
  33. package/conformance/motion/corpus/skottie-hidden-shapes-layers.json +381 -0
  34. package/conformance/motion/corpus/skottie-huesaturation-effect.json +1117 -0
  35. package/conformance/motion/corpus/skottie-invert-effect.json +665 -0
  36. package/conformance/motion/corpus/skottie-luma-matte.json +239 -0
  37. package/conformance/motion/corpus/skottie-mask-feather.json +892 -0
  38. package/conformance/motion/corpus/skottie-masking-opaque.json +2376 -0
  39. package/conformance/motion/corpus/skottie-masking-translucent.json +2376 -0
  40. package/conformance/motion/corpus/skottie-matte-blendmode.json +196 -0
  41. package/conformance/motion/corpus/skottie-matte-nonsequential.json +722 -0
  42. package/conformance/motion/corpus/skottie-matte-visible.json +666 -0
  43. package/conformance/motion/corpus/skottie-mergepaths-effect.json +722 -0
  44. package/conformance/motion/corpus/skottie-motion-blur-mask.json +120 -0
  45. package/conformance/motion/corpus/skottie-nested-animation.json +253 -0
  46. package/conformance/motion/corpus/skottie-offsetpaths-effect.json +525 -0
  47. package/conformance/motion/corpus/skottie-phonehub-connecting.json +947 -0
  48. package/conformance/motion/corpus/skottie-puckerbloat-effect.json +339 -0
  49. package/conformance/motion/corpus/skottie-repeater.json +234 -0
  50. package/conformance/motion/corpus/skottie-sample-1.json +168 -0
  51. package/conformance/motion/corpus/skottie-sample-search.json +329 -0
  52. package/conformance/motion/corpus/skottie-spatial-supernormal.json +898 -0
  53. package/conformance/motion/corpus/skottie-text-animator-1.json +1286 -0
  54. package/conformance/motion/corpus/skottie-text-fill-over-stroke.json +1014 -0
  55. package/conformance/motion/corpus/skottie-text-tracking.json +950 -0
  56. package/conformance/motion/corpus/skottie-text-valign.json +484 -0
  57. package/conformance/motion/corpus/skottie-time-reverse.json +297 -0
  58. package/conformance/motion/corpus/skottie-transform-skew.json +290 -0
  59. package/conformance/motion/corpus/skottie-trimpath-fill.json +933 -0
  60. package/conformance/motion/corpus/skottie-trimpath-modes.json +266 -0
  61. package/conformance/motion/corpus/skottie-tritone-effect.json +379 -0
  62. package/conformance/motion/corpus/spec-blend-mode.json +531 -0
  63. package/conformance/motion/corpus/spec-ellipse.json +142 -0
  64. package/conformance/motion/corpus/spec-fill.json +193 -0
  65. package/conformance/motion/corpus/spec-gradient-stroke.json +1263 -0
  66. package/conformance/motion/corpus/spec-gradient.json +1255 -0
  67. package/conformance/motion/corpus/spec-mask.json +773 -0
  68. package/conformance/motion/corpus/spec-masks.json +676 -0
  69. package/conformance/motion/corpus/spec-matte.json +390 -0
  70. package/conformance/motion/corpus/spec-metadata.json +1 -0
  71. package/conformance/motion/corpus/spec-path.json +177 -0
  72. package/conformance/motion/corpus/spec-pucker-bloat.json +179 -0
  73. package/conformance/motion/corpus/spec-rectangle.json +145 -0
  74. package/conformance/motion/corpus/spec-rounded-corners.json +187 -0
  75. package/conformance/motion/corpus/spec-slots.json +325 -0
  76. package/conformance/motion/corpus/spec-star.json +159 -0
  77. package/conformance/motion/corpus/spec-stroke.json +156 -0
  78. package/conformance/motion/corpus/spec-test-ellipse-xy-pos.json +141 -0
  79. package/conformance/motion/corpus/spec-test-gradient-fill.json +1 -0
  80. package/conformance/motion/corpus/spec-test-gradient-stroke.json +229 -0
  81. package/conformance/motion/corpus/spec-test-unknown-shape.json +63 -0
  82. package/conformance/motion/corpus/spec-time-remap.json +1090 -0
  83. package/conformance/motion/corpus/spec-time-stretch.json +594 -0
  84. package/conformance/motion/corpus/spec-transform.json +273 -0
  85. package/conformance/motion/corpus/spec-trim-path.json +209 -0
  86. package/conformance/motion/corpus/web-adrock.json +1 -0
  87. package/conformance/motion/corpus/web-bacon.json +1 -0
  88. package/conformance/motion/corpus/web-banner.json +1 -0
  89. package/conformance/motion/corpus/web-bodymovin.json +1 -0
  90. package/conformance/motion/corpus/web-dalek.json +1 -0
  91. package/conformance/motion/corpus/web-footage-data.json +1 -0
  92. package/conformance/motion/corpus/web-lights.json +1 -0
  93. package/conformance/motion/corpus/web-ripple.json +1 -0
  94. package/conformance/motion/corpus/web-starfish.json +1 -0
  95. package/conformance/motion/known-gaps.json +35 -0
  96. package/conformance/motion/parity/group-transforms-parenting@0.png +0 -0
  97. package/conformance/motion/parity/group-transforms-parenting@10.png +0 -0
  98. package/conformance/motion/parity/hidden-unknown-inactive@0.png +0 -0
  99. package/conformance/motion/parity/keyframes-transform@0.png +0 -0
  100. package/conformance/motion/parity/keyframes-transform@10.png +0 -0
  101. package/conformance/motion/parity/keyframes-transform@15.png +0 -0
  102. package/conformance/motion/parity/keyframes-transform@5.png +0 -0
  103. package/conformance/motion/parity/layer-opacity-blend@0.png +0 -0
  104. package/conformance/motion/parity/linear-gradient@0.png +0 -0
  105. package/conformance/motion/parity/masks-modes@0.png +0 -0
  106. package/conformance/motion/parity/matte-alpha@0.png +0 -0
  107. package/conformance/motion/parity/matte-luma@0.png +0 -0
  108. package/conformance/motion/parity/matte-parent-tp@0.png +0 -0
  109. package/conformance/motion/parity/path-evenodd@0.png +0 -0
  110. package/conformance/motion/parity/precomp-clip-offset@0.png +0 -0
  111. package/conformance/motion/parity/precomp-clip-offset@15.png +0 -0
  112. package/conformance/motion/parity/precomp-clip-offset@5.png +0 -0
  113. package/conformance/motion/parity/radial-gradient-highlight@0.png +0 -0
  114. package/conformance/motion/parity/rect-solid-fill@0.png +0 -0
  115. package/conformance/motion/parity/repeater@0.png +0 -0
  116. package/conformance/motion/parity/rounded-rect-ellipse@0.png +0 -0
  117. package/conformance/motion/parity/solid-and-image@0.png +0 -0
  118. package/conformance/motion/parity/split-position-skew@0.png +0 -0
  119. package/conformance/motion/parity/split-position-skew@10.png +0 -0
  120. package/conformance/motion/parity/star-polygon@0.png +0 -0
  121. package/conformance/motion/parity/stroke-caps-joins@0.png +0 -0
  122. package/conformance/motion/parity/stroke-dashes@0.png +0 -0
  123. package/conformance/motion/parity/stroke-dashes@10.png +0 -0
  124. package/conformance/motion/parity/time-remap@0.png +0 -0
  125. package/conformance/motion/parity/time-remap@10.png +0 -0
  126. package/conformance/motion/parity/time-remap@19.png +0 -0
  127. package/conformance/motion/parity/time-stretch@0.png +0 -0
  128. package/conformance/motion/parity/time-stretch@10.png +0 -0
  129. package/conformance/motion/parity/trim-individually@0.png +0 -0
  130. package/conformance/motion/parity/trim-path@0.png +0 -0
  131. package/conformance/motion/parity/trim-path@10.png +0 -0
  132. package/conformance/motion/refs/index.json +688 -0
  133. package/conformance/motion/refs/skottie-3d-parenting-nocamera@0.png +0 -0
  134. package/conformance/motion/refs/skottie-3d-parenting-nocamera@150.png +0 -0
  135. package/conformance/motion/refs/skottie-3d-parenting-nocamera@270.png +0 -0
  136. package/conformance/motion/refs/skottie-auto-orient-2@0.png +0 -0
  137. package/conformance/motion/refs/skottie-auto-orient-2@210.png +0 -0
  138. package/conformance/motion/refs/skottie-auto-orient-2@378.png +0 -0
  139. package/conformance/motion/refs/skottie-auto-orient@0.png +0 -0
  140. package/conformance/motion/refs/skottie-auto-orient@300.png +0 -0
  141. package/conformance/motion/refs/skottie-auto-orient@540.png +0 -0
  142. package/conformance/motion/refs/skottie-bezier-extranormal@0.png +0 -0
  143. package/conformance/motion/refs/skottie-bezier-extranormal@150.png +0 -0
  144. package/conformance/motion/refs/skottie-bezier-extranormal@270.png +0 -0
  145. package/conformance/motion/refs/skottie-blendmode-hardmix@0.png +0 -0
  146. package/conformance/motion/refs/skottie-blendmode-hardmix@150.png +0 -0
  147. package/conformance/motion/refs/skottie-blendmode-hardmix@270.png +0 -0
  148. package/conformance/motion/refs/skottie-chained-mattes@0.png +0 -0
  149. package/conformance/motion/refs/skottie-chained-mattes@300.png +0 -0
  150. package/conformance/motion/refs/skottie-chained-mattes@540.png +0 -0
  151. package/conformance/motion/refs/skottie-dropshadow-ramp@0.png +0 -0
  152. package/conformance/motion/refs/skottie-dropshadow-ramp@135.png +0 -0
  153. package/conformance/motion/refs/skottie-dropshadow-ramp@75.png +0 -0
  154. package/conformance/motion/refs/skottie-dropshadow-style@0.png +0 -0
  155. package/conformance/motion/refs/skottie-dropshadow-style@300.png +0 -0
  156. package/conformance/motion/refs/skottie-dropshadow-style@540.png +0 -0
  157. package/conformance/motion/refs/skottie-effects-transform@0.png +0 -0
  158. package/conformance/motion/refs/skottie-effects-transform@450.png +0 -0
  159. package/conformance/motion/refs/skottie-effects-transform@810.png +0 -0
  160. package/conformance/motion/refs/skottie-fill-effect@0.png +0 -0
  161. package/conformance/motion/refs/skottie-fill-effect@300.png +0 -0
  162. package/conformance/motion/refs/skottie-fill-effect@540.png +0 -0
  163. package/conformance/motion/refs/skottie-fill-rule@0.png +0 -0
  164. package/conformance/motion/refs/skottie-fill-rule@150.png +0 -0
  165. package/conformance/motion/refs/skottie-fill-rule@270.png +0 -0
  166. package/conformance/motion/refs/skottie-gaussian-blur@0.png +0 -0
  167. package/conformance/motion/refs/skottie-gaussian-blur@150.png +0 -0
  168. package/conformance/motion/refs/skottie-gaussian-blur@270.png +0 -0
  169. package/conformance/motion/refs/skottie-gradient-opacity@0.png +0 -0
  170. package/conformance/motion/refs/skottie-gradient-opacity@150.png +0 -0
  171. package/conformance/motion/refs/skottie-gradient-opacity@270.png +0 -0
  172. package/conformance/motion/refs/skottie-gradient-radial-highlight@0.png +0 -0
  173. package/conformance/motion/refs/skottie-gradient-radial-highlight@135.png +0 -0
  174. package/conformance/motion/refs/skottie-gradient-radial-highlight@75.png +0 -0
  175. package/conformance/motion/refs/skottie-hidden-shapes-layers@0.png +0 -0
  176. package/conformance/motion/refs/skottie-hidden-shapes-layers@150.png +0 -0
  177. package/conformance/motion/refs/skottie-hidden-shapes-layers@270.png +0 -0
  178. package/conformance/motion/refs/skottie-huesaturation-effect@0.png +0 -0
  179. package/conformance/motion/refs/skottie-huesaturation-effect@30.png +0 -0
  180. package/conformance/motion/refs/skottie-huesaturation-effect@54.png +0 -0
  181. package/conformance/motion/refs/skottie-invert-effect@0.png +0 -0
  182. package/conformance/motion/refs/skottie-invert-effect@300.png +0 -0
  183. package/conformance/motion/refs/skottie-invert-effect@540.png +0 -0
  184. package/conformance/motion/refs/skottie-luma-matte@0.png +0 -0
  185. package/conformance/motion/refs/skottie-luma-matte@150.png +0 -0
  186. package/conformance/motion/refs/skottie-luma-matte@270.png +0 -0
  187. package/conformance/motion/refs/skottie-mask-feather@0.png +0 -0
  188. package/conformance/motion/refs/skottie-mask-feather@150.png +0 -0
  189. package/conformance/motion/refs/skottie-mask-feather@270.png +0 -0
  190. package/conformance/motion/refs/skottie-masking-opaque@0.png +0 -0
  191. package/conformance/motion/refs/skottie-masking-opaque@135.png +0 -0
  192. package/conformance/motion/refs/skottie-masking-opaque@75.png +0 -0
  193. package/conformance/motion/refs/skottie-masking-translucent@0.png +0 -0
  194. package/conformance/motion/refs/skottie-masking-translucent@135.png +0 -0
  195. package/conformance/motion/refs/skottie-masking-translucent@75.png +0 -0
  196. package/conformance/motion/refs/skottie-matte-blendmode@0.png +0 -0
  197. package/conformance/motion/refs/skottie-matte-blendmode@150.png +0 -0
  198. package/conformance/motion/refs/skottie-matte-blendmode@270.png +0 -0
  199. package/conformance/motion/refs/skottie-matte-nonsequential@0.png +0 -0
  200. package/conformance/motion/refs/skottie-matte-nonsequential@150.png +0 -0
  201. package/conformance/motion/refs/skottie-matte-nonsequential@270.png +0 -0
  202. package/conformance/motion/refs/skottie-matte-visible@0.png +0 -0
  203. package/conformance/motion/refs/skottie-matte-visible@150.png +0 -0
  204. package/conformance/motion/refs/skottie-matte-visible@270.png +0 -0
  205. package/conformance/motion/refs/skottie-mergepaths-effect@0.png +0 -0
  206. package/conformance/motion/refs/skottie-mergepaths-effect@210.png +0 -0
  207. package/conformance/motion/refs/skottie-mergepaths-effect@378.png +0 -0
  208. package/conformance/motion/refs/skottie-motion-blur-mask@0.png +0 -0
  209. package/conformance/motion/refs/skottie-motion-blur-mask@150.png +0 -0
  210. package/conformance/motion/refs/skottie-motion-blur-mask@270.png +0 -0
  211. package/conformance/motion/refs/skottie-nested-animation@0.png +0 -0
  212. package/conformance/motion/refs/skottie-nested-animation@300.png +0 -0
  213. package/conformance/motion/refs/skottie-nested-animation@540.png +0 -0
  214. package/conformance/motion/refs/skottie-offsetpaths-effect@0.png +0 -0
  215. package/conformance/motion/refs/skottie-offsetpaths-effect@150.png +0 -0
  216. package/conformance/motion/refs/skottie-offsetpaths-effect@270.png +0 -0
  217. package/conformance/motion/refs/skottie-phonehub-connecting@0.png +0 -0
  218. package/conformance/motion/refs/skottie-puckerbloat-effect@0.png +0 -0
  219. package/conformance/motion/refs/skottie-puckerbloat-effect@210.png +0 -0
  220. package/conformance/motion/refs/skottie-puckerbloat-effect@378.png +0 -0
  221. package/conformance/motion/refs/skottie-repeater@0.png +0 -0
  222. package/conformance/motion/refs/skottie-repeater@300.png +0 -0
  223. package/conformance/motion/refs/skottie-repeater@540.png +0 -0
  224. package/conformance/motion/refs/skottie-sample-1@0.png +0 -0
  225. package/conformance/motion/refs/skottie-sample-1@100.png +0 -0
  226. package/conformance/motion/refs/skottie-sample-1@180.png +0 -0
  227. package/conformance/motion/refs/skottie-sample-search@0.png +0 -0
  228. package/conformance/motion/refs/skottie-sample-search@27.png +0 -0
  229. package/conformance/motion/refs/skottie-sample-search@48.png +0 -0
  230. package/conformance/motion/refs/skottie-spatial-supernormal@0.png +0 -0
  231. package/conformance/motion/refs/skottie-spatial-supernormal@200.png +0 -0
  232. package/conformance/motion/refs/skottie-spatial-supernormal@360.png +0 -0
  233. package/conformance/motion/refs/skottie-text-animator-1@0.png +0 -0
  234. package/conformance/motion/refs/skottie-text-animator-1@150.png +0 -0
  235. package/conformance/motion/refs/skottie-text-animator-1@270.png +0 -0
  236. package/conformance/motion/refs/skottie-text-fill-over-stroke@0.png +0 -0
  237. package/conformance/motion/refs/skottie-text-fill-over-stroke@210.png +0 -0
  238. package/conformance/motion/refs/skottie-text-fill-over-stroke@378.png +0 -0
  239. package/conformance/motion/refs/skottie-text-tracking@0.png +0 -0
  240. package/conformance/motion/refs/skottie-text-tracking@108.png +0 -0
  241. package/conformance/motion/refs/skottie-text-tracking@60.png +0 -0
  242. package/conformance/motion/refs/skottie-text-valign@0.png +0 -0
  243. package/conformance/motion/refs/skottie-text-valign@150.png +0 -0
  244. package/conformance/motion/refs/skottie-text-valign@270.png +0 -0
  245. package/conformance/motion/refs/skottie-time-reverse@0.png +0 -0
  246. package/conformance/motion/refs/skottie-time-reverse@300.png +0 -0
  247. package/conformance/motion/refs/skottie-time-reverse@540.png +0 -0
  248. package/conformance/motion/refs/skottie-transform-skew@0.png +0 -0
  249. package/conformance/motion/refs/skottie-transform-skew@300.png +0 -0
  250. package/conformance/motion/refs/skottie-transform-skew@540.png +0 -0
  251. package/conformance/motion/refs/skottie-trimpath-fill@0.png +0 -0
  252. package/conformance/motion/refs/skottie-trimpath-fill@300.png +0 -0
  253. package/conformance/motion/refs/skottie-trimpath-fill@540.png +0 -0
  254. package/conformance/motion/refs/skottie-trimpath-modes@0.png +0 -0
  255. package/conformance/motion/refs/skottie-trimpath-modes@300.png +0 -0
  256. package/conformance/motion/refs/skottie-trimpath-modes@540.png +0 -0
  257. package/conformance/motion/refs/skottie-tritone-effect@0.png +0 -0
  258. package/conformance/motion/refs/skottie-tritone-effect@300.png +0 -0
  259. package/conformance/motion/refs/skottie-tritone-effect@540.png +0 -0
  260. package/conformance/motion/refs/spec-blend-mode@0.png +0 -0
  261. package/conformance/motion/refs/spec-blend-mode@162.png +0 -0
  262. package/conformance/motion/refs/spec-blend-mode@90.png +0 -0
  263. package/conformance/motion/refs/spec-ellipse@0.png +0 -0
  264. package/conformance/motion/refs/spec-ellipse@162.png +0 -0
  265. package/conformance/motion/refs/spec-ellipse@90.png +0 -0
  266. package/conformance/motion/refs/spec-fill@0.png +0 -0
  267. package/conformance/motion/refs/spec-fill@162.png +0 -0
  268. package/conformance/motion/refs/spec-fill@90.png +0 -0
  269. package/conformance/motion/refs/spec-gradient-stroke@0.png +0 -0
  270. package/conformance/motion/refs/spec-gradient-stroke@162.png +0 -0
  271. package/conformance/motion/refs/spec-gradient-stroke@90.png +0 -0
  272. package/conformance/motion/refs/spec-gradient@0.png +0 -0
  273. package/conformance/motion/refs/spec-gradient@162.png +0 -0
  274. package/conformance/motion/refs/spec-gradient@90.png +0 -0
  275. package/conformance/motion/refs/spec-mask@0.png +0 -0
  276. package/conformance/motion/refs/spec-mask@300.png +0 -0
  277. package/conformance/motion/refs/spec-mask@540.png +0 -0
  278. package/conformance/motion/refs/spec-masks@0.png +0 -0
  279. package/conformance/motion/refs/spec-masks@135.png +0 -0
  280. package/conformance/motion/refs/spec-masks@75.png +0 -0
  281. package/conformance/motion/refs/spec-matte@0.png +0 -0
  282. package/conformance/motion/refs/spec-matte@162.png +0 -0
  283. package/conformance/motion/refs/spec-matte@90.png +0 -0
  284. package/conformance/motion/refs/spec-metadata@0.png +0 -0
  285. package/conformance/motion/refs/spec-metadata@162.png +0 -0
  286. package/conformance/motion/refs/spec-metadata@90.png +0 -0
  287. package/conformance/motion/refs/spec-path@0.png +0 -0
  288. package/conformance/motion/refs/spec-path@162.png +0 -0
  289. package/conformance/motion/refs/spec-path@90.png +0 -0
  290. package/conformance/motion/refs/spec-pucker-bloat@0.png +0 -0
  291. package/conformance/motion/refs/spec-pucker-bloat@162.png +0 -0
  292. package/conformance/motion/refs/spec-pucker-bloat@90.png +0 -0
  293. package/conformance/motion/refs/spec-rectangle@0.png +0 -0
  294. package/conformance/motion/refs/spec-rectangle@162.png +0 -0
  295. package/conformance/motion/refs/spec-rectangle@90.png +0 -0
  296. package/conformance/motion/refs/spec-rounded-corners@0.png +0 -0
  297. package/conformance/motion/refs/spec-rounded-corners@162.png +0 -0
  298. package/conformance/motion/refs/spec-rounded-corners@90.png +0 -0
  299. package/conformance/motion/refs/spec-slots@0.png +0 -0
  300. package/conformance/motion/refs/spec-slots@450.png +0 -0
  301. package/conformance/motion/refs/spec-slots@810.png +0 -0
  302. package/conformance/motion/refs/spec-star@0.png +0 -0
  303. package/conformance/motion/refs/spec-star@162.png +0 -0
  304. package/conformance/motion/refs/spec-star@90.png +0 -0
  305. package/conformance/motion/refs/spec-stroke@0.png +0 -0
  306. package/conformance/motion/refs/spec-stroke@162.png +0 -0
  307. package/conformance/motion/refs/spec-stroke@90.png +0 -0
  308. package/conformance/motion/refs/spec-test-ellipse-xy-pos@0.png +0 -0
  309. package/conformance/motion/refs/spec-test-ellipse-xy-pos@162.png +0 -0
  310. package/conformance/motion/refs/spec-test-ellipse-xy-pos@90.png +0 -0
  311. package/conformance/motion/refs/spec-test-gradient-fill@0.png +0 -0
  312. package/conformance/motion/refs/spec-test-gradient-fill@30.png +0 -0
  313. package/conformance/motion/refs/spec-test-gradient-fill@54.png +0 -0
  314. package/conformance/motion/refs/spec-test-gradient-stroke@0.png +0 -0
  315. package/conformance/motion/refs/spec-test-gradient-stroke@30.png +0 -0
  316. package/conformance/motion/refs/spec-test-gradient-stroke@54.png +0 -0
  317. package/conformance/motion/refs/spec-test-unknown-shape@0.png +0 -0
  318. package/conformance/motion/refs/spec-test-unknown-shape@162.png +0 -0
  319. package/conformance/motion/refs/spec-test-unknown-shape@90.png +0 -0
  320. package/conformance/motion/refs/spec-time-remap@0.png +0 -0
  321. package/conformance/motion/refs/spec-time-remap@300.png +0 -0
  322. package/conformance/motion/refs/spec-time-remap@540.png +0 -0
  323. package/conformance/motion/refs/spec-time-stretch@0.png +0 -0
  324. package/conformance/motion/refs/spec-time-stretch@300.png +0 -0
  325. package/conformance/motion/refs/spec-time-stretch@540.png +0 -0
  326. package/conformance/motion/refs/spec-transform@0.png +0 -0
  327. package/conformance/motion/refs/spec-transform@162.png +0 -0
  328. package/conformance/motion/refs/spec-transform@90.png +0 -0
  329. package/conformance/motion/refs/spec-trim-path@0.png +0 -0
  330. package/conformance/motion/refs/spec-trim-path@162.png +0 -0
  331. package/conformance/motion/refs/spec-trim-path@90.png +0 -0
  332. package/conformance/motion/refs/web-adrock@0.png +0 -0
  333. package/conformance/motion/refs/web-adrock@10.png +0 -0
  334. package/conformance/motion/refs/web-adrock@18.png +0 -0
  335. package/conformance/motion/refs/web-bacon@0.png +0 -0
  336. package/conformance/motion/refs/web-bacon@126.png +0 -0
  337. package/conformance/motion/refs/web-bacon@70.png +0 -0
  338. package/conformance/motion/refs/web-banner@0.png +0 -0
  339. package/conformance/motion/refs/web-banner@301.png +0 -0
  340. package/conformance/motion/refs/web-banner@542.png +0 -0
  341. package/conformance/motion/refs/web-bodymovin@0.png +0 -0
  342. package/conformance/motion/refs/web-bodymovin@51.png +0 -0
  343. package/conformance/motion/refs/web-bodymovin@92.png +0 -0
  344. package/conformance/motion/refs/web-dalek@0.png +0 -0
  345. package/conformance/motion/refs/web-dalek@145.png +0 -0
  346. package/conformance/motion/refs/web-dalek@261.png +0 -0
  347. package/conformance/motion/refs/web-footage-data@0.png +0 -0
  348. package/conformance/motion/refs/web-footage-data@180.png +0 -0
  349. package/conformance/motion/refs/web-footage-data@324.png +0 -0
  350. package/conformance/motion/refs/web-lights@0.png +0 -0
  351. package/conformance/motion/refs/web-lights@150.png +0 -0
  352. package/conformance/motion/refs/web-lights@270.png +0 -0
  353. package/conformance/motion/refs/web-ripple@0.png +0 -0
  354. package/conformance/motion/refs/web-ripple@180.png +0 -0
  355. package/conformance/motion/refs/web-ripple@324.png +0 -0
  356. package/conformance/motion/refs/web-starfish@0.png +0 -0
  357. package/conformance/motion/refs/web-starfish@150.png +0 -0
  358. package/conformance/motion/refs/web-starfish@270.png +0 -0
  359. package/conformance/motion/render-refs.ts +126 -0
  360. package/conformance/motion/report.json +1367 -0
  361. package/conformance/motion/web-parity-gaps.json +12 -0
  362. package/conformance/motion-parity-entry.ts +3 -0
  363. package/conformance/motion-parity.ts +101 -0
  364. package/dist/chunks/{index-gtk2gwsb.js → index-4xczxey5.js} +187 -40
  365. package/dist/chunks/{index-gtk2gwsb.js.map → index-4xczxey5.js.map} +7 -6
  366. package/dist/chunks/{index-62yzr94z.js → index-5sjj5p84.js} +270 -8
  367. package/dist/chunks/{index-62yzr94z.js.map → index-5sjj5p84.js.map} +2 -2
  368. package/dist/chunks/{index-fy7y2nz8.js → index-cvf7bbs5.js} +23 -2
  369. package/dist/chunks/{index-fy7y2nz8.js.map → index-cvf7bbs5.js.map} +1 -1
  370. package/dist/chunks/index-dgkf6yw5.js +48 -0
  371. package/dist/chunks/index-dgkf6yw5.js.map +10 -0
  372. package/dist/chunks/{index-5fmaa0xq.js → index-f9wkb6aq.js} +851 -36
  373. package/dist/chunks/{index-5fmaa0xq.js.map → index-f9wkb6aq.js.map} +2 -2
  374. package/dist/chunks/index-t2mwfbb6.js +1515 -0
  375. package/dist/chunks/index-t2mwfbb6.js.map +15 -0
  376. package/dist/chunks/{index-bg2jsgjq.js → index-vkn82srs.js} +479 -10
  377. package/dist/chunks/{index-bg2jsgjq.js.map → index-vkn82srs.js.map} +2 -2
  378. package/dist/chunks/wasm-ctcc3cma.js +424 -0
  379. package/dist/chunks/wasm-ctcc3cma.js.map +11 -0
  380. package/dist/conformance.js +10941 -563
  381. package/dist/conformance.js.map +2 -2
  382. package/dist/entries/prompt.js +2 -2
  383. package/dist/entries/schema.js +3 -3
  384. package/dist/host/index.js +20 -4
  385. package/dist/host/index.js.map +1 -1
  386. package/dist/index.js +364 -99
  387. package/dist/index.js.map +4 -4
  388. package/dist/types/src/catalog.generated.d.ts +71 -5
  389. package/dist/types/src/host/contract.d.ts +17 -0
  390. package/dist/types/src/host/exposes.d.ts +68 -0
  391. package/dist/types/src/host/index.d.ts +1 -0
  392. package/dist/types/src/host/package.d.ts +8 -0
  393. package/dist/types/src/index.d.ts +2 -0
  394. package/dist/types/src/layout.d.ts +2 -0
  395. package/dist/types/src/limits.d.ts +1 -0
  396. package/dist/types/src/motion/index.d.ts +1 -0
  397. package/dist/types/src/motion/server.d.ts +9 -0
  398. package/dist/types/src/motion/wasm.d.ts +11 -0
  399. package/dist/types/src/web/coerce.d.ts +3 -0
  400. package/dist/types/src/web/focus.d.ts +8 -0
  401. package/dist/types/src/web/index.d.ts +5 -2
  402. package/dist/types/src/web/primitives/carousel.d.ts +17 -0
  403. package/dist/types/src/web/primitives/dock.d.ts +5 -2
  404. package/dist/types/src/web/primitives/index.d.ts +5 -0
  405. package/dist/types/src/web/primitives/mosaic.d.ts +30 -0
  406. package/dist/types/src/web/primitives/motion-paint.d.ts +36 -0
  407. package/dist/types/src/web/primitives/motion.d.ts +162 -0
  408. package/dist/types/src/web/primitives/outline.d.ts +22 -0
  409. package/dist/types/src/web/primitives/zoomable-image.d.ts +158 -0
  410. package/dist/types/src/web/table.d.ts +8 -0
  411. package/dist/types/src/zoom.d.ts +128 -0
  412. package/dist/types/wasm/motion/bytes.d.ts +1 -0
  413. package/dist/web/index.js +171 -230
  414. package/dist/web/index.js.map +9 -10
  415. package/dist/web/primitives/index.js +641 -6
  416. package/dist/web/primitives/index.js.map +9 -5
  417. package/docs/components.generated.json +542 -5
  418. package/docs/package-format.md +56 -1
  419. package/docs/round-6-contract.md +110 -0
  420. package/docs/themes.generated.json +66 -2
  421. package/fixtures/bind-time.json +1468 -0
  422. package/fixtures/catalog-components.json +1026 -16
  423. package/fixtures/catalog-macros.json +1279 -157
  424. package/fixtures/conformance-baseline.json +48893 -47200
  425. package/fixtures/conformance-known.json +140 -134
  426. package/fixtures/host-router.json +539 -1
  427. package/fixtures/kitchen-sink.expanded.json +686 -1
  428. package/fixtures/kitchen-sink.json +102 -1
  429. package/fixtures/layout-geometry-round1.json +42 -42
  430. package/fixtures/motion-frames.json +2618 -0
  431. package/fixtures/motion-playback.json +528 -0
  432. package/fixtures/motion-state.json +722 -0
  433. package/fixtures/motion-validate.json +138 -0
  434. package/fixtures/primitive-specimens.json +4 -0
  435. package/fixtures/prompt-budget.json +16 -16
  436. package/fixtures/specimens.json +839 -21
  437. package/fixtures/theme-recipes.json +32808 -28396
  438. package/fixtures/theme-resolved.json +2114 -286
  439. package/fixtures/zoom.json +1382 -0
  440. package/generated/ExponentialUICatalog.generated.kt +21 -21
  441. package/generated/ExponentialUICatalog.generated.swift +21 -21
  442. package/generated/ExponentialUIThemes.generated.kt +7 -7
  443. package/generated/ExponentialUIThemes.generated.swift +7 -7
  444. package/generated/catalog.descriptions.generated.rs +1 -1
  445. package/generated/catalog.generated.rs +30 -30
  446. package/generated/catalog.themes.generated.rs +8 -8
  447. package/generated/core.descriptions.json +267 -5
  448. package/generated/core.runtime.json +275 -1
  449. package/package.json +1 -1
  450. package/themes/neutral.theme.json +460 -3
  451. package/dist/chunks/index-t6qz1770.js +0 -95
  452. package/dist/chunks/index-t6qz1770.js.map +0 -11
@@ -3,10 +3,10 @@ import {
3
3
  parseTokenRef2,
4
4
  isKnownToken2,
5
5
  catalogView2
6
- } from "./index-5fmaa0xq.js";
6
+ } from "./index-f9wkb6aq.js";
7
7
  import {
8
8
  style_default
9
- } from "./index-fy7y2nz8.js";
9
+ } from "./index-cvf7bbs5.js";
10
10
 
11
11
  // packages/exponential-ui/src/style.ts
12
12
  var LAYOUT = style_default.layout;
@@ -396,7 +396,7 @@ function contrast2(a, b) {
396
396
  }
397
397
  // packages/exponential-ui/catalog/recipes.json
398
398
  var recipes_default = {
399
- $comment: "VAPP-92: the RECIPE contract. A theme styles a component PART under a `when` selector (the node's recipe props + the interaction `state`); this file fixes what a theme may name. `states` = the interaction states a painter reports (`default` is the absence of all; round 1 adds `invalid` = a field whose checks failed, `dragover` = a drop zone a drag hovers); `keys` = the whitelist a recipe style may set: a SUBSET of style.json's visual keys plus the padding/gap/size keys a part's box needs and `native` (true = the painter may use the platform's own control for this part, geometry still from the tokens); round 1 lets a recipe set `transition`/`transitionEasing` (so a theme's motion tokens finally animate hover/press/open), `transform` (a chevron that rotates when `open`), `borderStyle`, the four per-side border widths (an app bar's bottom rule, a tab bar's top rule), `textDecoration`, `letterSpacing`, `fontStyle`, `textTransform`. A part-level discriminator the painter supplies per drawn piece: CodeBlock/token `kind` (the codeToken enum), Table/headerCell+cell `align` and Table/row `striped` (true on ODD rows of a striped table), Stepper's step `status` (a macro `$recipe`). `native` lists every native component's PARTS (the painter paints each part with its resolved recipe) and the PROPS a `when` may key on (the component's enum/boolean props; the catalog default fills an unset one, so a theme always sees a concrete value; a part-level discriminator the PAINTER supplies is listed too, see below). Macro parts come from macros.json (every template `part`) and their `when` props from the macro's `recipeProps` (+ a part's `$recipe` keys); src/recipes.ts derives them. Both lists are append-only. Round 2 (docs/round-2-contract.md §6): `parts` lists EVERY part a painter lays out (the conformance dump names each `<node id>.<part>[.<index or row key>]`), so the layout-only parts are here too (Switch/body, Radio/items, Slider/header, Table/body, CodeBlock/body+code, FileUpload/title+browse+fileIcon, the fields' `input`, Tooltip/anchor, Accordion/count, List/section, Carousel/controls+previous+next); keys add `backdropBlur` (`$blur.*`) and `animation`; Resizable is new. EXP-1259: SearchList is new (its parts are also a searchable Menu submenu's: head, search, count, list, empty, fade), Tabs gain `close` + `new` (props `closable`, `addable`), Skeleton gains its rows (`row`, `dot`, `bar`). EXP-1324: CodeBlock gains the `variant` (default|destructive) and `size` (default|sm) props, shadcn's code-block. VAPP-162 (docs/round-5-contract.md): Segmented gains `orientation` + the `badge` part (an option `count`), VoiceWave the `variant` prop + the `bar` part (the `bars` meter), QrCode and QrScanner are new.",
399
+ $comment: "VAPP-92: the RECIPE contract. A theme styles a component PART under a `when` selector (the node's recipe props + the interaction `state`); this file fixes what a theme may name. `states` = the interaction states a painter reports (`default` is the absence of all; round 1 adds `invalid` = a field whose checks failed, `dragover` = a drop zone a drag hovers); `keys` = the whitelist a recipe style may set: a SUBSET of style.json's visual keys plus the padding/gap/size keys a part's box needs and `native` (true = the painter may use the platform's own control for this part, geometry still from the tokens); round 1 lets a recipe set `transition`/`transitionEasing` (so a theme's motion tokens finally animate hover/press/open), `transform` (a chevron that rotates when `open`), `borderStyle`, the four per-side border widths (an app bar's bottom rule, a tab bar's top rule), `textDecoration`, `letterSpacing`, `fontStyle`, `textTransform`. A part-level discriminator the painter supplies per drawn piece: CodeBlock/token `kind` (the codeToken enum), Table/headerCell+cell `align` and Table/row `striped` (true on ODD rows of a striped table), Stepper's step `status` (a macro `$recipe`). `native` lists every native component's PARTS (the painter paints each part with its resolved recipe) and the PROPS a `when` may key on (the component's enum/boolean props; the catalog default fills an unset one, so a theme always sees a concrete value; a part-level discriminator the PAINTER supplies is listed too, see below). Macro parts come from macros.json (every template `part`) and their `when` props from the macro's `recipeProps` (+ a part's `$recipe` keys); src/recipes.ts derives them. Both lists are append-only. Round 2 (docs/round-2-contract.md §6): `parts` lists EVERY part a painter lays out (the conformance dump names each `<node id>.<part>[.<index or row key>]`), so the layout-only parts are here too (Switch/body, Radio/items, Slider/header, Table/body, CodeBlock/body+code, FileUpload/title+browse+fileIcon, the fields' `input`, Tooltip/anchor, Accordion/count, List/section, Carousel/controls+previous+next); keys add `backdropBlur` (`$blur.*`) and `animation`; Resizable is new. EXP-1259: SearchList is new (its parts are also a searchable Menu submenu's: head, search, count, list, empty, fade), Tabs gain `close` + `new` (props `closable`, `addable`), Skeleton gains its rows (`row`, `dot`, `bar`). EXP-1324: CodeBlock gains the `variant` (default|destructive) and `size` (default|sm) props, shadcn's code-block. VAPP-162 (docs/round-5-contract.md): Segmented gains `orientation` + the `badge` part (an option `count`), VoiceWave the `variant` prop + the `bar` part (the `bars` meter), QrCode and QrScanner are new. EXP-1495 (docs/round-6-contract.md): Carousel gains `counter` (prop + part) and the `thumbnails` strip (parts `thumbnails`, `thumbnail`, state `selected` = the current page). EXP-1586: ZoomableImage is new (the picture `image` + THE zoom pill: `pill`, `zoomOut`, `percent`, `zoomIn`, `divider`, `fit`; `fit` reports `selected` while the view is at rest).",
400
400
  states: ["hover", "pressed", "focus", "disabled", "checked", "open", "selected", "invalid", "dragover"],
401
401
  keys: [
402
402
  "backgroundColor",
@@ -441,12 +441,14 @@ var recipes_default = {
441
441
  Text: { parts: ["root"], props: ["variant", "tone"] },
442
442
  Markdown: { parts: ["root", "paragraph", "heading", "link", "code", "codeBlock", "quote", "table", "listItem"], props: [] },
443
443
  Image: { parts: ["root", "fallback"], props: ["fit"] },
444
+ Motion: { parts: ["root"], props: ["fit"] },
444
445
  Icon: { parts: ["root"], props: ["size", "tone"] },
445
446
  Video: { parts: ["root", "controls", "poster"], props: ["autoplay"] },
446
447
  AudioPlayer: { parts: ["root", "controls", "track"], props: [] },
447
448
  Avatar: { parts: ["root", "image", "fallback"], props: ["size"] },
448
449
  QrCode: { parts: ["root", "plate", "module", "label"], props: ["level"] },
449
- Carousel: { parts: ["root", "page", "indicator", "controls", "previous", "next"], props: ["loop", "indicators"] },
450
+ ZoomableImage: { parts: ["root", "image", "pill", "zoomOut", "percent", "zoomIn", "divider", "fit"], props: ["controls"] },
451
+ Carousel: { parts: ["root", "page", "indicator", "controls", "previous", "next", "counter", "thumbnails", "thumbnail"], props: ["loop", "indicators", "counter"] },
450
452
  Tabs: { parts: ["root", "list", "tab", "indicator", "content", "close", "new"], props: ["fill", "closable", "addable"] },
451
453
  Segmented: { parts: ["root", "item", "icon", "label", "badge"], props: ["type", "variant", "size", "fill", "orientation"] },
452
454
  Accordion: { parts: ["root", "item", "trigger", "content", "count"], props: ["type"] },
@@ -2671,6 +2673,174 @@ var neutral_theme_default = {
2671
2673
  }
2672
2674
  ]
2673
2675
  },
2676
+ ZoomableImage: {
2677
+ root: [
2678
+ {
2679
+ style: {
2680
+ backgroundColor: "#00000000"
2681
+ }
2682
+ }
2683
+ ],
2684
+ image: [
2685
+ {
2686
+ style: {
2687
+ borderRadius: "$radius.md"
2688
+ }
2689
+ }
2690
+ ],
2691
+ pill: [
2692
+ {
2693
+ style: {
2694
+ padding: 4,
2695
+ gap: 2,
2696
+ borderRadius: "$radius.full",
2697
+ backgroundColor: "$color.popover",
2698
+ borderWidth: "$border.hairline",
2699
+ borderColor: "$color.border",
2700
+ boxShadow: "$shadow.lg",
2701
+ backdropBlur: "$blur.lg"
2702
+ }
2703
+ }
2704
+ ],
2705
+ zoomOut: [
2706
+ {
2707
+ style: {
2708
+ width: 28,
2709
+ height: 28,
2710
+ borderRadius: "$radius.full",
2711
+ color: "$color.foreground",
2712
+ backgroundColor: "#00000000",
2713
+ transition: "$motion.fast"
2714
+ }
2715
+ },
2716
+ {
2717
+ when: {
2718
+ state: "hover"
2719
+ },
2720
+ style: {
2721
+ backgroundColor: "$color.accent",
2722
+ color: "$color.accentForeground"
2723
+ }
2724
+ },
2725
+ {
2726
+ when: {
2727
+ state: "disabled"
2728
+ },
2729
+ style: {
2730
+ opacity: "$opacity.disabled"
2731
+ }
2732
+ }
2733
+ ],
2734
+ percent: [
2735
+ {
2736
+ style: {
2737
+ height: 28,
2738
+ paddingHorizontal: "$spacing.md",
2739
+ borderRadius: "$radius.full",
2740
+ color: "$color.foreground",
2741
+ backgroundColor: "#00000000",
2742
+ fontFamily: "$type.family.sans",
2743
+ fontSize: "$type.size.sm",
2744
+ lineHeight: "$type.lineHeight.sm",
2745
+ fontWeight: "$type.weight.medium",
2746
+ transition: "$motion.fast"
2747
+ }
2748
+ },
2749
+ {
2750
+ when: {
2751
+ state: "hover"
2752
+ },
2753
+ style: {
2754
+ backgroundColor: "$color.accent",
2755
+ color: "$color.accentForeground"
2756
+ }
2757
+ },
2758
+ {
2759
+ when: {
2760
+ state: "disabled"
2761
+ },
2762
+ style: {
2763
+ opacity: "$opacity.disabled"
2764
+ }
2765
+ }
2766
+ ],
2767
+ zoomIn: [
2768
+ {
2769
+ style: {
2770
+ width: 28,
2771
+ height: 28,
2772
+ borderRadius: "$radius.full",
2773
+ color: "$color.foreground",
2774
+ backgroundColor: "#00000000",
2775
+ transition: "$motion.fast"
2776
+ }
2777
+ },
2778
+ {
2779
+ when: {
2780
+ state: "hover"
2781
+ },
2782
+ style: {
2783
+ backgroundColor: "$color.accent",
2784
+ color: "$color.accentForeground"
2785
+ }
2786
+ },
2787
+ {
2788
+ when: {
2789
+ state: "disabled"
2790
+ },
2791
+ style: {
2792
+ opacity: "$opacity.disabled"
2793
+ }
2794
+ }
2795
+ ],
2796
+ divider: [
2797
+ {
2798
+ style: {
2799
+ width: 1,
2800
+ height: 16,
2801
+ backgroundColor: "$color.border"
2802
+ }
2803
+ }
2804
+ ],
2805
+ fit: [
2806
+ {
2807
+ style: {
2808
+ width: 28,
2809
+ height: 28,
2810
+ borderRadius: "$radius.full",
2811
+ color: "$color.foreground",
2812
+ backgroundColor: "#00000000",
2813
+ transition: "$motion.fast"
2814
+ }
2815
+ },
2816
+ {
2817
+ when: {
2818
+ state: "hover"
2819
+ },
2820
+ style: {
2821
+ backgroundColor: "$color.accent",
2822
+ color: "$color.accentForeground"
2823
+ }
2824
+ },
2825
+ {
2826
+ when: {
2827
+ state: "disabled"
2828
+ },
2829
+ style: {
2830
+ opacity: "$opacity.disabled"
2831
+ }
2832
+ },
2833
+ {
2834
+ when: {
2835
+ state: "selected"
2836
+ },
2837
+ style: {
2838
+ backgroundColor: "$color.accent",
2839
+ color: "$color.accentForeground"
2840
+ }
2841
+ }
2842
+ ]
2843
+ },
2674
2844
  QrCode: {
2675
2845
  root: [
2676
2846
  {
@@ -5355,6 +5525,212 @@ var neutral_theme_default = {
5355
5525
  backgroundColor: "$color.primary"
5356
5526
  }
5357
5527
  }
5528
+ ],
5529
+ counter: [
5530
+ {
5531
+ style: {
5532
+ height: 20,
5533
+ paddingHorizontal: "$spacing.sm",
5534
+ borderRadius: "$radius.full",
5535
+ backgroundColor: "#0000008c",
5536
+ color: "#ffffff",
5537
+ fontSize: "$type.size.xs",
5538
+ lineHeight: 20,
5539
+ fontWeight: "$type.weight.medium"
5540
+ }
5541
+ }
5542
+ ],
5543
+ thumbnails: [
5544
+ {
5545
+ style: {
5546
+ gap: "$spacing.sm"
5547
+ }
5548
+ }
5549
+ ],
5550
+ thumbnail: [
5551
+ {
5552
+ style: {
5553
+ width: 52,
5554
+ height: 52,
5555
+ borderRadius: "$radius.md",
5556
+ borderWidth: "$border.thick",
5557
+ borderColor: "#00000000",
5558
+ backgroundColor: "$color.muted",
5559
+ opacity: 0.7,
5560
+ transition: "$motion.fast",
5561
+ transitionEasing: "$ease.standard"
5562
+ }
5563
+ },
5564
+ {
5565
+ when: {
5566
+ state: "hover"
5567
+ },
5568
+ style: {
5569
+ opacity: 1
5570
+ }
5571
+ },
5572
+ {
5573
+ when: {
5574
+ state: "focus"
5575
+ },
5576
+ style: {
5577
+ borderColor: "$color.ring"
5578
+ }
5579
+ },
5580
+ {
5581
+ when: {
5582
+ state: "selected"
5583
+ },
5584
+ style: {
5585
+ borderColor: "$color.foreground",
5586
+ opacity: 1
5587
+ }
5588
+ }
5589
+ ]
5590
+ },
5591
+ Mosaic: {
5592
+ root: [
5593
+ {
5594
+ style: {
5595
+ gap: 10
5596
+ }
5597
+ }
5598
+ ],
5599
+ side: [
5600
+ {
5601
+ style: {
5602
+ gap: 10
5603
+ }
5604
+ }
5605
+ ],
5606
+ lead: [
5607
+ {
5608
+ style: {
5609
+ borderRadius: "$radius.lg",
5610
+ borderWidth: "$border.hairline",
5611
+ borderColor: "$color.border",
5612
+ backgroundColor: "$color.muted",
5613
+ transition: "$motion.fast",
5614
+ transitionEasing: "$ease.standard"
5615
+ }
5616
+ },
5617
+ {
5618
+ when: {
5619
+ state: "hover"
5620
+ },
5621
+ style: {
5622
+ opacity: 0.92
5623
+ }
5624
+ },
5625
+ {
5626
+ when: {
5627
+ state: "focus"
5628
+ },
5629
+ style: {
5630
+ borderColor: "$color.ring"
5631
+ }
5632
+ }
5633
+ ],
5634
+ pair: [
5635
+ {
5636
+ style: {
5637
+ borderRadius: "$radius.lg",
5638
+ borderWidth: "$border.hairline",
5639
+ borderColor: "$color.border",
5640
+ backgroundColor: "$color.muted",
5641
+ transition: "$motion.fast",
5642
+ transitionEasing: "$ease.standard"
5643
+ }
5644
+ },
5645
+ {
5646
+ when: {
5647
+ state: "hover"
5648
+ },
5649
+ style: {
5650
+ opacity: 0.92
5651
+ }
5652
+ },
5653
+ {
5654
+ when: {
5655
+ state: "focus"
5656
+ },
5657
+ style: {
5658
+ borderColor: "$color.ring"
5659
+ }
5660
+ }
5661
+ ],
5662
+ top: [
5663
+ {
5664
+ style: {
5665
+ borderRadius: "$radius.lg",
5666
+ borderWidth: "$border.hairline",
5667
+ borderColor: "$color.border",
5668
+ backgroundColor: "$color.muted",
5669
+ transition: "$motion.fast",
5670
+ transitionEasing: "$ease.standard"
5671
+ }
5672
+ },
5673
+ {
5674
+ when: {
5675
+ state: "hover"
5676
+ },
5677
+ style: {
5678
+ opacity: 0.92
5679
+ }
5680
+ },
5681
+ {
5682
+ when: {
5683
+ state: "focus"
5684
+ },
5685
+ style: {
5686
+ borderColor: "$color.ring"
5687
+ }
5688
+ }
5689
+ ],
5690
+ bottom: [
5691
+ {
5692
+ style: {
5693
+ borderRadius: "$radius.lg",
5694
+ borderWidth: "$border.hairline",
5695
+ borderColor: "$color.border",
5696
+ backgroundColor: "$color.muted",
5697
+ transition: "$motion.fast",
5698
+ transitionEasing: "$ease.standard"
5699
+ }
5700
+ },
5701
+ {
5702
+ when: {
5703
+ state: "hover"
5704
+ },
5705
+ style: {
5706
+ opacity: 0.92
5707
+ }
5708
+ },
5709
+ {
5710
+ when: {
5711
+ state: "focus"
5712
+ },
5713
+ style: {
5714
+ borderColor: "$color.ring"
5715
+ }
5716
+ }
5717
+ ],
5718
+ more: [
5719
+ {
5720
+ style: {
5721
+ backgroundColor: "#0000008c"
5722
+ }
5723
+ }
5724
+ ],
5725
+ moreLabel: [
5726
+ {
5727
+ style: {
5728
+ color: "#ffffff",
5729
+ fontSize: "$type.size.xl",
5730
+ lineHeight: "$type.lineHeight.xl",
5731
+ fontWeight: "$type.weight.semibold"
5732
+ }
5733
+ }
5358
5734
  ]
5359
5735
  },
5360
5736
  AudioPlayer: {
@@ -6350,8 +6726,9 @@ var neutral_theme_default = {
6350
6726
  cell: [
6351
6727
  {
6352
6728
  style: {
6353
- height: "$control.row",
6354
- paddingHorizontal: "$spacing.sm"
6729
+ minHeight: "$control.row",
6730
+ paddingHorizontal: "$spacing.sm",
6731
+ paddingVertical: "$spacing.xs"
6355
6732
  }
6356
6733
  },
6357
6734
  {
@@ -6359,7 +6736,7 @@ var neutral_theme_default = {
6359
6736
  density: "compact"
6360
6737
  },
6361
6738
  style: {
6362
- height: "$control.rowCompact"
6739
+ minHeight: "$control.rowCompact"
6363
6740
  }
6364
6741
  }
6365
6742
  ],
@@ -7613,6 +7990,88 @@ var neutral_theme_default = {
7613
7990
  }
7614
7991
  ]
7615
7992
  },
7993
+ Outline: {
7994
+ caption: [
7995
+ {
7996
+ style: {
7997
+ paddingHorizontal: "$spacing.sm",
7998
+ paddingVertical: "$spacing.xs",
7999
+ fontSize: 11,
8000
+ lineHeight: 16,
8001
+ fontWeight: "$type.weight.medium",
8002
+ letterSpacing: 0.5,
8003
+ textTransform: "uppercase",
8004
+ color: "$color.mutedForeground"
8005
+ }
8006
+ }
8007
+ ],
8008
+ row: [
8009
+ {
8010
+ style: {
8011
+ borderRadius: "$radius.sm",
8012
+ backgroundColor: "#00000000",
8013
+ transition: "$motion.fast",
8014
+ transitionEasing: "$ease.standard"
8015
+ }
8016
+ },
8017
+ {
8018
+ when: {
8019
+ state: "hover"
8020
+ },
8021
+ style: {
8022
+ backgroundColor: "$color.accent"
8023
+ }
8024
+ },
8025
+ {
8026
+ when: {
8027
+ state: "focus"
8028
+ },
8029
+ style: {
8030
+ borderColor: "$color.ring"
8031
+ }
8032
+ },
8033
+ {
8034
+ when: {
8035
+ active: true
8036
+ },
8037
+ style: {
8038
+ backgroundColor: "$color.accent"
8039
+ }
8040
+ }
8041
+ ],
8042
+ bar: [
8043
+ {
8044
+ style: {
8045
+ backgroundColor: "$color.foreground"
8046
+ }
8047
+ }
8048
+ ],
8049
+ title: [
8050
+ {
8051
+ style: {
8052
+ fontSize: "$type.size.sm",
8053
+ lineHeight: "$type.lineHeight.sm",
8054
+ color: "$color.mutedForeground"
8055
+ }
8056
+ },
8057
+ {
8058
+ when: {
8059
+ active: true
8060
+ },
8061
+ style: {
8062
+ color: "$color.foreground",
8063
+ fontWeight: "$type.weight.medium"
8064
+ }
8065
+ }
8066
+ ],
8067
+ count: [
8068
+ {
8069
+ style: {
8070
+ color: "$color.mutedForeground"
8071
+ }
8072
+ }
8073
+ ]
8074
+ },
7616
8075
  AppBar: {
7617
8076
  root: [
7618
8077
  {
@@ -8480,6 +8939,16 @@ var host_default = {
8480
8939
  transports: ["http", "stdio", "script"],
8481
8940
  functionPrefix: "tools."
8482
8941
  },
8942
+ exposes: {
8943
+ $comment: "VAPP-180 (the format half of the eMCP contract, packages/emcp fixtures/exposes.json in the Exponential repo): `exposes: [{name, title, description, input, access, run}]` = MCP tools a host's broker lists (as `<app>__<name>`) and runs as the CALLING person, data never code. `name` matches `limits.namePattern`, at most `limits.nameMax`, never holds `limits.separator`, unique; `title` (at most titleMax) and `description` (at most descriptionMax) non-blank; `input` = a JSON Schema `{type: \"object\", properties?}`; `access` read | write; at most `limits.maxTools` tools. `run` holds EXACTLY ONE of `runKinds`: `records: {op, kind, id?, where?, data?, limit?}` over the package's OWN kinds (op in `recordOps`; `readRecordOps` read, upsert writes; a delete is destructive and refused); `action` (+ `args`) = a host function name matching `actionPattern` (it reads when the last word of its name is a `readOpWords` word, else it writes); `upstream` (+ `tool`, `args`) = one of the package's `upstreams` (the MCP server names the HOST provides: Exponential = the team's MCP servers). Every string of `run` may hold `${input.<dotted path>}` templates whose first key is a declared input property. Destructive is never exposed: an action or upstream tool whose name holds a `destructiveWords` word (words = the lowercase letter runs) is refused. A binding declared read whose run writes is refused; an upstream tool's level is its live annotations', checked by the host at call. Issues come in binding order with the eMCP error code (`exposeIssues`). What a run may reach on a given host (which actions exist and are grantable, destructive arguments, which upstreams the team has) is the host's own check on top.",
8944
+ limits: { namePattern: "^[a-z][a-z0-9_]*$", nameMax: 40, titleMax: 80, descriptionMax: 1024, maxTools: 32, separator: "__" },
8945
+ runKinds: ["records", "action", "upstream"],
8946
+ recordOps: ["list", "get", "upsert"],
8947
+ readRecordOps: ["list", "get"],
8948
+ readOpWords: ["list", "get", "show", "catalog", "activity", "files"],
8949
+ destructiveWords: ["delete", "merge", "close", "end", "remove", "trash"],
8950
+ actionPattern: "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$"
8951
+ },
8483
8952
  extensions: {
8484
8953
  $comment: "VAPP-161: `extensions: [{id, version, components?}]`: an extension catalog id the package needs beyond its catalogId, the minimum MAJOR.MINOR.PATCH (caret: the host's has the same major and is not lower; an unversioned registration satisfies any) and the components it uses. Install issues: an id not registered on the host (`extension <id> is not available on this host`), a version that does not satisfy (`extension <id> <have> does not satisfy ^<want>`), a component the registered extension does not define (`extension <id> has no component <name>`), a duplicate id. A host registers an extension's version as ExtensionDef.version.",
8485
8954
  versionPattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
@@ -8535,7 +9004,7 @@ function actionMessage2(action) {
8535
9004
  return { version: host_default.a2uiVersion, action: out };
8536
9005
  }
8537
9006
 
8538
- export { STYLE_KEYS2, STYLE_LAYOUT_KEYS2, STYLE_VISUAL_KEYS2, STYLE_LAYOUT_EFFECT_KEYS2, STYLE_MEDIA2, STYLE_TRANSFORM2, STYLE_STATES2, styleKeyEnum2, styleKeyType2, validateStyle2, create2, props2, parseMediaCondition2, mediaMatches2, resolveConditions2, activeBreakpoint2, parseColor2, toHex2, isThemeHex2, toThemeHex2, luminance2, contrast2, RECIPE_STATES2, RECIPE_KEYS2, macroParts2, recipeParts2, nativeRecipeProps2, MODES2, DENSITIES2, THEME_SCHEMA_ID2, ThemeError2, validateTheme2, tryLoadTheme2, loadTheme2, resolveMode2, applyDensity2, applyContrast2, resolveToken2, resolveConditionKey2, resolveStyleValues2, recipeStyle2, resolveRecipe2, nodeRecipeQuery2, resolveNodeStyle2, shadowCss2, easingCss2, neutralTheme2, exponentialTheme2, playfulTheme2, orangeTheme2, BUILTIN_THEMES2, BUILTIN_THEME_IDS2, DEFAULT_THEME_ID2, builtinTheme2, themeOrDefault2, builtinThemes2, HOST_CONTRACT2, HOST_CONTRACT_VERSION2, A2UI_MESSAGE_KINDS2, EXTENSION_MESSAGE_KINDS2, MESSAGE_KINDS2, HOST_ERROR_CODES2, DEFAULT_URL_SCHEMES2, DEFAULT_MEDIA_SCHEMES2, MEDIA_LIMITS2, PAINT_ERROR_HOOK2, RENDER_FAILED2, MCP_MIME_TYPES2, MCP_ACTION_TOOL2, SSE_EVENTS2, SURFACE_SETTING_KEYS2, FORMATTER_METHODS2, SURFACE_COMMANDS2, errorMessage2, actionMessage2 };
9007
+ export { STYLE_KEYS2, STYLE_LAYOUT_KEYS2, STYLE_VISUAL_KEYS2, STYLE_LAYOUT_EFFECT_KEYS2, STYLE_MEDIA2, STYLE_TRANSFORM2, STYLE_STATES2, styleKeyEnum2, styleKeyType2, validateStyle2, create2, props2, parseMediaCondition2, mediaMatches2, resolveConditions2, activeBreakpoint2, parseColor2, toHex2, isThemeHex2, toThemeHex2, luminance2, contrast2, RECIPE_STATES2, RECIPE_KEYS2, macroParts2, recipeParts2, nativeRecipeProps2, MODES2, DENSITIES2, THEME_SCHEMA_ID2, ThemeError2, validateTheme2, tryLoadTheme2, loadTheme2, resolveMode2, applyDensity2, applyContrast2, resolveToken2, resolveConditionKey2, resolveStyleValues2, recipeStyle2, resolveRecipe2, nodeRecipeQuery2, resolveNodeStyle2, shadowCss2, easingCss2, neutralTheme2, exponentialTheme2, playfulTheme2, orangeTheme2, BUILTIN_THEMES2, BUILTIN_THEME_IDS2, DEFAULT_THEME_ID2, builtinTheme2, themeOrDefault2, builtinThemes2, host_default, HOST_CONTRACT2, HOST_CONTRACT_VERSION2, A2UI_MESSAGE_KINDS2, EXTENSION_MESSAGE_KINDS2, MESSAGE_KINDS2, HOST_ERROR_CODES2, DEFAULT_URL_SCHEMES2, DEFAULT_MEDIA_SCHEMES2, MEDIA_LIMITS2, PAINT_ERROR_HOOK2, RENDER_FAILED2, MCP_MIME_TYPES2, MCP_ACTION_TOOL2, SSE_EVENTS2, SURFACE_SETTING_KEYS2, FORMATTER_METHODS2, SURFACE_COMMANDS2, errorMessage2, actionMessage2 };
8539
9008
 
8540
- //# debugId=D6ABA18005E3AC6064756E2164756E21
8541
- //# sourceMappingURL=index-bg2jsgjq.js.map
9009
+ //# debugId=65E0D5194D2F9C8F64756E2164756E21
9010
+ //# sourceMappingURL=index-vkn82srs.js.map