@exponential_app/eui 0.3.0 → 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 (442) hide show
  1. package/catalog/a11y.json +10 -0
  2. package/catalog/core.catalog.json +284 -6
  3. package/catalog/core.schema.json +437 -4
  4. package/catalog/layout.json +3 -2
  5. package/catalog/limits.json +10 -1
  6. package/catalog/macros.json +1 -0
  7. package/catalog/recipes.json +3 -1
  8. package/catalog/strings.json +9 -2
  9. package/catalog/style.json +21 -0
  10. package/catalog/theme.schema.json +4435 -3676
  11. package/conformance/manifest.json +2 -2
  12. package/conformance/motion/build-corpus.ts +232 -0
  13. package/conformance/motion/corpus/SOURCES.md +117 -0
  14. package/conformance/motion/corpus/images/footage_0.json +1 -0
  15. package/conformance/motion/corpus/images/img_0.jpg +0 -0
  16. package/conformance/motion/corpus/images/img_1.jpg +0 -0
  17. package/conformance/motion/corpus/images/triangle.png +0 -0
  18. package/conformance/motion/corpus/skottie-3d-parenting-nocamera.json +367 -0
  19. package/conformance/motion/corpus/skottie-auto-orient-2.json +292 -0
  20. package/conformance/motion/corpus/skottie-auto-orient.json +717 -0
  21. package/conformance/motion/corpus/skottie-bezier-extranormal.json +199 -0
  22. package/conformance/motion/corpus/skottie-blendmode-hardmix.json +558 -0
  23. package/conformance/motion/corpus/skottie-chained-mattes.json +259 -0
  24. package/conformance/motion/corpus/skottie-dropshadow-ramp.json +852 -0
  25. package/conformance/motion/corpus/skottie-dropshadow-style.json +278 -0
  26. package/conformance/motion/corpus/skottie-effects-transform.json +385 -0
  27. package/conformance/motion/corpus/skottie-fill-effect.json +358 -0
  28. package/conformance/motion/corpus/skottie-fill-rule.json +457 -0
  29. package/conformance/motion/corpus/skottie-gaussian-blur.json +670 -0
  30. package/conformance/motion/corpus/skottie-gradient-opacity.json +451 -0
  31. package/conformance/motion/corpus/skottie-gradient-radial-highlight.json +581 -0
  32. package/conformance/motion/corpus/skottie-hidden-shapes-layers.json +381 -0
  33. package/conformance/motion/corpus/skottie-huesaturation-effect.json +1117 -0
  34. package/conformance/motion/corpus/skottie-invert-effect.json +665 -0
  35. package/conformance/motion/corpus/skottie-luma-matte.json +239 -0
  36. package/conformance/motion/corpus/skottie-mask-feather.json +892 -0
  37. package/conformance/motion/corpus/skottie-masking-opaque.json +2376 -0
  38. package/conformance/motion/corpus/skottie-masking-translucent.json +2376 -0
  39. package/conformance/motion/corpus/skottie-matte-blendmode.json +196 -0
  40. package/conformance/motion/corpus/skottie-matte-nonsequential.json +722 -0
  41. package/conformance/motion/corpus/skottie-matte-visible.json +666 -0
  42. package/conformance/motion/corpus/skottie-mergepaths-effect.json +722 -0
  43. package/conformance/motion/corpus/skottie-motion-blur-mask.json +120 -0
  44. package/conformance/motion/corpus/skottie-nested-animation.json +253 -0
  45. package/conformance/motion/corpus/skottie-offsetpaths-effect.json +525 -0
  46. package/conformance/motion/corpus/skottie-phonehub-connecting.json +947 -0
  47. package/conformance/motion/corpus/skottie-puckerbloat-effect.json +339 -0
  48. package/conformance/motion/corpus/skottie-repeater.json +234 -0
  49. package/conformance/motion/corpus/skottie-sample-1.json +168 -0
  50. package/conformance/motion/corpus/skottie-sample-search.json +329 -0
  51. package/conformance/motion/corpus/skottie-spatial-supernormal.json +898 -0
  52. package/conformance/motion/corpus/skottie-text-animator-1.json +1286 -0
  53. package/conformance/motion/corpus/skottie-text-fill-over-stroke.json +1014 -0
  54. package/conformance/motion/corpus/skottie-text-tracking.json +950 -0
  55. package/conformance/motion/corpus/skottie-text-valign.json +484 -0
  56. package/conformance/motion/corpus/skottie-time-reverse.json +297 -0
  57. package/conformance/motion/corpus/skottie-transform-skew.json +290 -0
  58. package/conformance/motion/corpus/skottie-trimpath-fill.json +933 -0
  59. package/conformance/motion/corpus/skottie-trimpath-modes.json +266 -0
  60. package/conformance/motion/corpus/skottie-tritone-effect.json +379 -0
  61. package/conformance/motion/corpus/spec-blend-mode.json +531 -0
  62. package/conformance/motion/corpus/spec-ellipse.json +142 -0
  63. package/conformance/motion/corpus/spec-fill.json +193 -0
  64. package/conformance/motion/corpus/spec-gradient-stroke.json +1263 -0
  65. package/conformance/motion/corpus/spec-gradient.json +1255 -0
  66. package/conformance/motion/corpus/spec-mask.json +773 -0
  67. package/conformance/motion/corpus/spec-masks.json +676 -0
  68. package/conformance/motion/corpus/spec-matte.json +390 -0
  69. package/conformance/motion/corpus/spec-metadata.json +1 -0
  70. package/conformance/motion/corpus/spec-path.json +177 -0
  71. package/conformance/motion/corpus/spec-pucker-bloat.json +179 -0
  72. package/conformance/motion/corpus/spec-rectangle.json +145 -0
  73. package/conformance/motion/corpus/spec-rounded-corners.json +187 -0
  74. package/conformance/motion/corpus/spec-slots.json +325 -0
  75. package/conformance/motion/corpus/spec-star.json +159 -0
  76. package/conformance/motion/corpus/spec-stroke.json +156 -0
  77. package/conformance/motion/corpus/spec-test-ellipse-xy-pos.json +141 -0
  78. package/conformance/motion/corpus/spec-test-gradient-fill.json +1 -0
  79. package/conformance/motion/corpus/spec-test-gradient-stroke.json +229 -0
  80. package/conformance/motion/corpus/spec-test-unknown-shape.json +63 -0
  81. package/conformance/motion/corpus/spec-time-remap.json +1090 -0
  82. package/conformance/motion/corpus/spec-time-stretch.json +594 -0
  83. package/conformance/motion/corpus/spec-transform.json +273 -0
  84. package/conformance/motion/corpus/spec-trim-path.json +209 -0
  85. package/conformance/motion/corpus/web-adrock.json +1 -0
  86. package/conformance/motion/corpus/web-bacon.json +1 -0
  87. package/conformance/motion/corpus/web-banner.json +1 -0
  88. package/conformance/motion/corpus/web-bodymovin.json +1 -0
  89. package/conformance/motion/corpus/web-dalek.json +1 -0
  90. package/conformance/motion/corpus/web-footage-data.json +1 -0
  91. package/conformance/motion/corpus/web-lights.json +1 -0
  92. package/conformance/motion/corpus/web-ripple.json +1 -0
  93. package/conformance/motion/corpus/web-starfish.json +1 -0
  94. package/conformance/motion/known-gaps.json +35 -0
  95. package/conformance/motion/parity/group-transforms-parenting@0.png +0 -0
  96. package/conformance/motion/parity/group-transforms-parenting@10.png +0 -0
  97. package/conformance/motion/parity/hidden-unknown-inactive@0.png +0 -0
  98. package/conformance/motion/parity/keyframes-transform@0.png +0 -0
  99. package/conformance/motion/parity/keyframes-transform@10.png +0 -0
  100. package/conformance/motion/parity/keyframes-transform@15.png +0 -0
  101. package/conformance/motion/parity/keyframes-transform@5.png +0 -0
  102. package/conformance/motion/parity/layer-opacity-blend@0.png +0 -0
  103. package/conformance/motion/parity/linear-gradient@0.png +0 -0
  104. package/conformance/motion/parity/masks-modes@0.png +0 -0
  105. package/conformance/motion/parity/matte-alpha@0.png +0 -0
  106. package/conformance/motion/parity/matte-luma@0.png +0 -0
  107. package/conformance/motion/parity/matte-parent-tp@0.png +0 -0
  108. package/conformance/motion/parity/path-evenodd@0.png +0 -0
  109. package/conformance/motion/parity/precomp-clip-offset@0.png +0 -0
  110. package/conformance/motion/parity/precomp-clip-offset@15.png +0 -0
  111. package/conformance/motion/parity/precomp-clip-offset@5.png +0 -0
  112. package/conformance/motion/parity/radial-gradient-highlight@0.png +0 -0
  113. package/conformance/motion/parity/rect-solid-fill@0.png +0 -0
  114. package/conformance/motion/parity/repeater@0.png +0 -0
  115. package/conformance/motion/parity/rounded-rect-ellipse@0.png +0 -0
  116. package/conformance/motion/parity/solid-and-image@0.png +0 -0
  117. package/conformance/motion/parity/split-position-skew@0.png +0 -0
  118. package/conformance/motion/parity/split-position-skew@10.png +0 -0
  119. package/conformance/motion/parity/star-polygon@0.png +0 -0
  120. package/conformance/motion/parity/stroke-caps-joins@0.png +0 -0
  121. package/conformance/motion/parity/stroke-dashes@0.png +0 -0
  122. package/conformance/motion/parity/stroke-dashes@10.png +0 -0
  123. package/conformance/motion/parity/time-remap@0.png +0 -0
  124. package/conformance/motion/parity/time-remap@10.png +0 -0
  125. package/conformance/motion/parity/time-remap@19.png +0 -0
  126. package/conformance/motion/parity/time-stretch@0.png +0 -0
  127. package/conformance/motion/parity/time-stretch@10.png +0 -0
  128. package/conformance/motion/parity/trim-individually@0.png +0 -0
  129. package/conformance/motion/parity/trim-path@0.png +0 -0
  130. package/conformance/motion/parity/trim-path@10.png +0 -0
  131. package/conformance/motion/refs/index.json +688 -0
  132. package/conformance/motion/refs/skottie-3d-parenting-nocamera@0.png +0 -0
  133. package/conformance/motion/refs/skottie-3d-parenting-nocamera@150.png +0 -0
  134. package/conformance/motion/refs/skottie-3d-parenting-nocamera@270.png +0 -0
  135. package/conformance/motion/refs/skottie-auto-orient-2@0.png +0 -0
  136. package/conformance/motion/refs/skottie-auto-orient-2@210.png +0 -0
  137. package/conformance/motion/refs/skottie-auto-orient-2@378.png +0 -0
  138. package/conformance/motion/refs/skottie-auto-orient@0.png +0 -0
  139. package/conformance/motion/refs/skottie-auto-orient@300.png +0 -0
  140. package/conformance/motion/refs/skottie-auto-orient@540.png +0 -0
  141. package/conformance/motion/refs/skottie-bezier-extranormal@0.png +0 -0
  142. package/conformance/motion/refs/skottie-bezier-extranormal@150.png +0 -0
  143. package/conformance/motion/refs/skottie-bezier-extranormal@270.png +0 -0
  144. package/conformance/motion/refs/skottie-blendmode-hardmix@0.png +0 -0
  145. package/conformance/motion/refs/skottie-blendmode-hardmix@150.png +0 -0
  146. package/conformance/motion/refs/skottie-blendmode-hardmix@270.png +0 -0
  147. package/conformance/motion/refs/skottie-chained-mattes@0.png +0 -0
  148. package/conformance/motion/refs/skottie-chained-mattes@300.png +0 -0
  149. package/conformance/motion/refs/skottie-chained-mattes@540.png +0 -0
  150. package/conformance/motion/refs/skottie-dropshadow-ramp@0.png +0 -0
  151. package/conformance/motion/refs/skottie-dropshadow-ramp@135.png +0 -0
  152. package/conformance/motion/refs/skottie-dropshadow-ramp@75.png +0 -0
  153. package/conformance/motion/refs/skottie-dropshadow-style@0.png +0 -0
  154. package/conformance/motion/refs/skottie-dropshadow-style@300.png +0 -0
  155. package/conformance/motion/refs/skottie-dropshadow-style@540.png +0 -0
  156. package/conformance/motion/refs/skottie-effects-transform@0.png +0 -0
  157. package/conformance/motion/refs/skottie-effects-transform@450.png +0 -0
  158. package/conformance/motion/refs/skottie-effects-transform@810.png +0 -0
  159. package/conformance/motion/refs/skottie-fill-effect@0.png +0 -0
  160. package/conformance/motion/refs/skottie-fill-effect@300.png +0 -0
  161. package/conformance/motion/refs/skottie-fill-effect@540.png +0 -0
  162. package/conformance/motion/refs/skottie-fill-rule@0.png +0 -0
  163. package/conformance/motion/refs/skottie-fill-rule@150.png +0 -0
  164. package/conformance/motion/refs/skottie-fill-rule@270.png +0 -0
  165. package/conformance/motion/refs/skottie-gaussian-blur@0.png +0 -0
  166. package/conformance/motion/refs/skottie-gaussian-blur@150.png +0 -0
  167. package/conformance/motion/refs/skottie-gaussian-blur@270.png +0 -0
  168. package/conformance/motion/refs/skottie-gradient-opacity@0.png +0 -0
  169. package/conformance/motion/refs/skottie-gradient-opacity@150.png +0 -0
  170. package/conformance/motion/refs/skottie-gradient-opacity@270.png +0 -0
  171. package/conformance/motion/refs/skottie-gradient-radial-highlight@0.png +0 -0
  172. package/conformance/motion/refs/skottie-gradient-radial-highlight@135.png +0 -0
  173. package/conformance/motion/refs/skottie-gradient-radial-highlight@75.png +0 -0
  174. package/conformance/motion/refs/skottie-hidden-shapes-layers@0.png +0 -0
  175. package/conformance/motion/refs/skottie-hidden-shapes-layers@150.png +0 -0
  176. package/conformance/motion/refs/skottie-hidden-shapes-layers@270.png +0 -0
  177. package/conformance/motion/refs/skottie-huesaturation-effect@0.png +0 -0
  178. package/conformance/motion/refs/skottie-huesaturation-effect@30.png +0 -0
  179. package/conformance/motion/refs/skottie-huesaturation-effect@54.png +0 -0
  180. package/conformance/motion/refs/skottie-invert-effect@0.png +0 -0
  181. package/conformance/motion/refs/skottie-invert-effect@300.png +0 -0
  182. package/conformance/motion/refs/skottie-invert-effect@540.png +0 -0
  183. package/conformance/motion/refs/skottie-luma-matte@0.png +0 -0
  184. package/conformance/motion/refs/skottie-luma-matte@150.png +0 -0
  185. package/conformance/motion/refs/skottie-luma-matte@270.png +0 -0
  186. package/conformance/motion/refs/skottie-mask-feather@0.png +0 -0
  187. package/conformance/motion/refs/skottie-mask-feather@150.png +0 -0
  188. package/conformance/motion/refs/skottie-mask-feather@270.png +0 -0
  189. package/conformance/motion/refs/skottie-masking-opaque@0.png +0 -0
  190. package/conformance/motion/refs/skottie-masking-opaque@135.png +0 -0
  191. package/conformance/motion/refs/skottie-masking-opaque@75.png +0 -0
  192. package/conformance/motion/refs/skottie-masking-translucent@0.png +0 -0
  193. package/conformance/motion/refs/skottie-masking-translucent@135.png +0 -0
  194. package/conformance/motion/refs/skottie-masking-translucent@75.png +0 -0
  195. package/conformance/motion/refs/skottie-matte-blendmode@0.png +0 -0
  196. package/conformance/motion/refs/skottie-matte-blendmode@150.png +0 -0
  197. package/conformance/motion/refs/skottie-matte-blendmode@270.png +0 -0
  198. package/conformance/motion/refs/skottie-matte-nonsequential@0.png +0 -0
  199. package/conformance/motion/refs/skottie-matte-nonsequential@150.png +0 -0
  200. package/conformance/motion/refs/skottie-matte-nonsequential@270.png +0 -0
  201. package/conformance/motion/refs/skottie-matte-visible@0.png +0 -0
  202. package/conformance/motion/refs/skottie-matte-visible@150.png +0 -0
  203. package/conformance/motion/refs/skottie-matte-visible@270.png +0 -0
  204. package/conformance/motion/refs/skottie-mergepaths-effect@0.png +0 -0
  205. package/conformance/motion/refs/skottie-mergepaths-effect@210.png +0 -0
  206. package/conformance/motion/refs/skottie-mergepaths-effect@378.png +0 -0
  207. package/conformance/motion/refs/skottie-motion-blur-mask@0.png +0 -0
  208. package/conformance/motion/refs/skottie-motion-blur-mask@150.png +0 -0
  209. package/conformance/motion/refs/skottie-motion-blur-mask@270.png +0 -0
  210. package/conformance/motion/refs/skottie-nested-animation@0.png +0 -0
  211. package/conformance/motion/refs/skottie-nested-animation@300.png +0 -0
  212. package/conformance/motion/refs/skottie-nested-animation@540.png +0 -0
  213. package/conformance/motion/refs/skottie-offsetpaths-effect@0.png +0 -0
  214. package/conformance/motion/refs/skottie-offsetpaths-effect@150.png +0 -0
  215. package/conformance/motion/refs/skottie-offsetpaths-effect@270.png +0 -0
  216. package/conformance/motion/refs/skottie-phonehub-connecting@0.png +0 -0
  217. package/conformance/motion/refs/skottie-puckerbloat-effect@0.png +0 -0
  218. package/conformance/motion/refs/skottie-puckerbloat-effect@210.png +0 -0
  219. package/conformance/motion/refs/skottie-puckerbloat-effect@378.png +0 -0
  220. package/conformance/motion/refs/skottie-repeater@0.png +0 -0
  221. package/conformance/motion/refs/skottie-repeater@300.png +0 -0
  222. package/conformance/motion/refs/skottie-repeater@540.png +0 -0
  223. package/conformance/motion/refs/skottie-sample-1@0.png +0 -0
  224. package/conformance/motion/refs/skottie-sample-1@100.png +0 -0
  225. package/conformance/motion/refs/skottie-sample-1@180.png +0 -0
  226. package/conformance/motion/refs/skottie-sample-search@0.png +0 -0
  227. package/conformance/motion/refs/skottie-sample-search@27.png +0 -0
  228. package/conformance/motion/refs/skottie-sample-search@48.png +0 -0
  229. package/conformance/motion/refs/skottie-spatial-supernormal@0.png +0 -0
  230. package/conformance/motion/refs/skottie-spatial-supernormal@200.png +0 -0
  231. package/conformance/motion/refs/skottie-spatial-supernormal@360.png +0 -0
  232. package/conformance/motion/refs/skottie-text-animator-1@0.png +0 -0
  233. package/conformance/motion/refs/skottie-text-animator-1@150.png +0 -0
  234. package/conformance/motion/refs/skottie-text-animator-1@270.png +0 -0
  235. package/conformance/motion/refs/skottie-text-fill-over-stroke@0.png +0 -0
  236. package/conformance/motion/refs/skottie-text-fill-over-stroke@210.png +0 -0
  237. package/conformance/motion/refs/skottie-text-fill-over-stroke@378.png +0 -0
  238. package/conformance/motion/refs/skottie-text-tracking@0.png +0 -0
  239. package/conformance/motion/refs/skottie-text-tracking@108.png +0 -0
  240. package/conformance/motion/refs/skottie-text-tracking@60.png +0 -0
  241. package/conformance/motion/refs/skottie-text-valign@0.png +0 -0
  242. package/conformance/motion/refs/skottie-text-valign@150.png +0 -0
  243. package/conformance/motion/refs/skottie-text-valign@270.png +0 -0
  244. package/conformance/motion/refs/skottie-time-reverse@0.png +0 -0
  245. package/conformance/motion/refs/skottie-time-reverse@300.png +0 -0
  246. package/conformance/motion/refs/skottie-time-reverse@540.png +0 -0
  247. package/conformance/motion/refs/skottie-transform-skew@0.png +0 -0
  248. package/conformance/motion/refs/skottie-transform-skew@300.png +0 -0
  249. package/conformance/motion/refs/skottie-transform-skew@540.png +0 -0
  250. package/conformance/motion/refs/skottie-trimpath-fill@0.png +0 -0
  251. package/conformance/motion/refs/skottie-trimpath-fill@300.png +0 -0
  252. package/conformance/motion/refs/skottie-trimpath-fill@540.png +0 -0
  253. package/conformance/motion/refs/skottie-trimpath-modes@0.png +0 -0
  254. package/conformance/motion/refs/skottie-trimpath-modes@300.png +0 -0
  255. package/conformance/motion/refs/skottie-trimpath-modes@540.png +0 -0
  256. package/conformance/motion/refs/skottie-tritone-effect@0.png +0 -0
  257. package/conformance/motion/refs/skottie-tritone-effect@300.png +0 -0
  258. package/conformance/motion/refs/skottie-tritone-effect@540.png +0 -0
  259. package/conformance/motion/refs/spec-blend-mode@0.png +0 -0
  260. package/conformance/motion/refs/spec-blend-mode@162.png +0 -0
  261. package/conformance/motion/refs/spec-blend-mode@90.png +0 -0
  262. package/conformance/motion/refs/spec-ellipse@0.png +0 -0
  263. package/conformance/motion/refs/spec-ellipse@162.png +0 -0
  264. package/conformance/motion/refs/spec-ellipse@90.png +0 -0
  265. package/conformance/motion/refs/spec-fill@0.png +0 -0
  266. package/conformance/motion/refs/spec-fill@162.png +0 -0
  267. package/conformance/motion/refs/spec-fill@90.png +0 -0
  268. package/conformance/motion/refs/spec-gradient-stroke@0.png +0 -0
  269. package/conformance/motion/refs/spec-gradient-stroke@162.png +0 -0
  270. package/conformance/motion/refs/spec-gradient-stroke@90.png +0 -0
  271. package/conformance/motion/refs/spec-gradient@0.png +0 -0
  272. package/conformance/motion/refs/spec-gradient@162.png +0 -0
  273. package/conformance/motion/refs/spec-gradient@90.png +0 -0
  274. package/conformance/motion/refs/spec-mask@0.png +0 -0
  275. package/conformance/motion/refs/spec-mask@300.png +0 -0
  276. package/conformance/motion/refs/spec-mask@540.png +0 -0
  277. package/conformance/motion/refs/spec-masks@0.png +0 -0
  278. package/conformance/motion/refs/spec-masks@135.png +0 -0
  279. package/conformance/motion/refs/spec-masks@75.png +0 -0
  280. package/conformance/motion/refs/spec-matte@0.png +0 -0
  281. package/conformance/motion/refs/spec-matte@162.png +0 -0
  282. package/conformance/motion/refs/spec-matte@90.png +0 -0
  283. package/conformance/motion/refs/spec-metadata@0.png +0 -0
  284. package/conformance/motion/refs/spec-metadata@162.png +0 -0
  285. package/conformance/motion/refs/spec-metadata@90.png +0 -0
  286. package/conformance/motion/refs/spec-path@0.png +0 -0
  287. package/conformance/motion/refs/spec-path@162.png +0 -0
  288. package/conformance/motion/refs/spec-path@90.png +0 -0
  289. package/conformance/motion/refs/spec-pucker-bloat@0.png +0 -0
  290. package/conformance/motion/refs/spec-pucker-bloat@162.png +0 -0
  291. package/conformance/motion/refs/spec-pucker-bloat@90.png +0 -0
  292. package/conformance/motion/refs/spec-rectangle@0.png +0 -0
  293. package/conformance/motion/refs/spec-rectangle@162.png +0 -0
  294. package/conformance/motion/refs/spec-rectangle@90.png +0 -0
  295. package/conformance/motion/refs/spec-rounded-corners@0.png +0 -0
  296. package/conformance/motion/refs/spec-rounded-corners@162.png +0 -0
  297. package/conformance/motion/refs/spec-rounded-corners@90.png +0 -0
  298. package/conformance/motion/refs/spec-slots@0.png +0 -0
  299. package/conformance/motion/refs/spec-slots@450.png +0 -0
  300. package/conformance/motion/refs/spec-slots@810.png +0 -0
  301. package/conformance/motion/refs/spec-star@0.png +0 -0
  302. package/conformance/motion/refs/spec-star@162.png +0 -0
  303. package/conformance/motion/refs/spec-star@90.png +0 -0
  304. package/conformance/motion/refs/spec-stroke@0.png +0 -0
  305. package/conformance/motion/refs/spec-stroke@162.png +0 -0
  306. package/conformance/motion/refs/spec-stroke@90.png +0 -0
  307. package/conformance/motion/refs/spec-test-ellipse-xy-pos@0.png +0 -0
  308. package/conformance/motion/refs/spec-test-ellipse-xy-pos@162.png +0 -0
  309. package/conformance/motion/refs/spec-test-ellipse-xy-pos@90.png +0 -0
  310. package/conformance/motion/refs/spec-test-gradient-fill@0.png +0 -0
  311. package/conformance/motion/refs/spec-test-gradient-fill@30.png +0 -0
  312. package/conformance/motion/refs/spec-test-gradient-fill@54.png +0 -0
  313. package/conformance/motion/refs/spec-test-gradient-stroke@0.png +0 -0
  314. package/conformance/motion/refs/spec-test-gradient-stroke@30.png +0 -0
  315. package/conformance/motion/refs/spec-test-gradient-stroke@54.png +0 -0
  316. package/conformance/motion/refs/spec-test-unknown-shape@0.png +0 -0
  317. package/conformance/motion/refs/spec-test-unknown-shape@162.png +0 -0
  318. package/conformance/motion/refs/spec-test-unknown-shape@90.png +0 -0
  319. package/conformance/motion/refs/spec-time-remap@0.png +0 -0
  320. package/conformance/motion/refs/spec-time-remap@300.png +0 -0
  321. package/conformance/motion/refs/spec-time-remap@540.png +0 -0
  322. package/conformance/motion/refs/spec-time-stretch@0.png +0 -0
  323. package/conformance/motion/refs/spec-time-stretch@300.png +0 -0
  324. package/conformance/motion/refs/spec-time-stretch@540.png +0 -0
  325. package/conformance/motion/refs/spec-transform@0.png +0 -0
  326. package/conformance/motion/refs/spec-transform@162.png +0 -0
  327. package/conformance/motion/refs/spec-transform@90.png +0 -0
  328. package/conformance/motion/refs/spec-trim-path@0.png +0 -0
  329. package/conformance/motion/refs/spec-trim-path@162.png +0 -0
  330. package/conformance/motion/refs/spec-trim-path@90.png +0 -0
  331. package/conformance/motion/refs/web-adrock@0.png +0 -0
  332. package/conformance/motion/refs/web-adrock@10.png +0 -0
  333. package/conformance/motion/refs/web-adrock@18.png +0 -0
  334. package/conformance/motion/refs/web-bacon@0.png +0 -0
  335. package/conformance/motion/refs/web-bacon@126.png +0 -0
  336. package/conformance/motion/refs/web-bacon@70.png +0 -0
  337. package/conformance/motion/refs/web-banner@0.png +0 -0
  338. package/conformance/motion/refs/web-banner@301.png +0 -0
  339. package/conformance/motion/refs/web-banner@542.png +0 -0
  340. package/conformance/motion/refs/web-bodymovin@0.png +0 -0
  341. package/conformance/motion/refs/web-bodymovin@51.png +0 -0
  342. package/conformance/motion/refs/web-bodymovin@92.png +0 -0
  343. package/conformance/motion/refs/web-dalek@0.png +0 -0
  344. package/conformance/motion/refs/web-dalek@145.png +0 -0
  345. package/conformance/motion/refs/web-dalek@261.png +0 -0
  346. package/conformance/motion/refs/web-footage-data@0.png +0 -0
  347. package/conformance/motion/refs/web-footage-data@180.png +0 -0
  348. package/conformance/motion/refs/web-footage-data@324.png +0 -0
  349. package/conformance/motion/refs/web-lights@0.png +0 -0
  350. package/conformance/motion/refs/web-lights@150.png +0 -0
  351. package/conformance/motion/refs/web-lights@270.png +0 -0
  352. package/conformance/motion/refs/web-ripple@0.png +0 -0
  353. package/conformance/motion/refs/web-ripple@180.png +0 -0
  354. package/conformance/motion/refs/web-ripple@324.png +0 -0
  355. package/conformance/motion/refs/web-starfish@0.png +0 -0
  356. package/conformance/motion/refs/web-starfish@150.png +0 -0
  357. package/conformance/motion/refs/web-starfish@270.png +0 -0
  358. package/conformance/motion/render-refs.ts +126 -0
  359. package/conformance/motion/report.json +1367 -0
  360. package/conformance/motion/web-parity-gaps.json +12 -0
  361. package/conformance/motion-parity-entry.ts +3 -0
  362. package/conformance/motion-parity.ts +101 -0
  363. package/dist/chunks/{index-4z7f2bp1.js → index-4xczxey5.js} +35 -15
  364. package/dist/chunks/{index-4z7f2bp1.js.map → index-4xczxey5.js.map} +4 -4
  365. package/dist/chunks/{index-dx45asrf.js → index-5sjj5p84.js} +174 -8
  366. package/dist/chunks/{index-dx45asrf.js.map → index-5sjj5p84.js.map} +2 -2
  367. package/dist/chunks/{index-fy7y2nz8.js → index-cvf7bbs5.js} +23 -2
  368. package/dist/chunks/{index-fy7y2nz8.js.map → index-cvf7bbs5.js.map} +1 -1
  369. package/dist/chunks/index-dgkf6yw5.js +48 -0
  370. package/dist/chunks/index-dgkf6yw5.js.map +10 -0
  371. package/dist/chunks/{index-abcjanhc.js → index-f9wkb6aq.js} +192 -3
  372. package/dist/chunks/{index-abcjanhc.js.map → index-f9wkb6aq.js.map} +2 -2
  373. package/dist/chunks/index-t2mwfbb6.js +1515 -0
  374. package/dist/chunks/index-t2mwfbb6.js.map +15 -0
  375. package/dist/chunks/{index-h3zgfghf.js → index-vkn82srs.js} +179 -8
  376. package/dist/chunks/{index-h3zgfghf.js.map → index-vkn82srs.js.map} +2 -2
  377. package/dist/chunks/wasm-ctcc3cma.js +424 -0
  378. package/dist/chunks/wasm-ctcc3cma.js.map +11 -0
  379. package/dist/conformance.js +3154 -63
  380. package/dist/conformance.js.map +2 -2
  381. package/dist/entries/prompt.js +2 -2
  382. package/dist/entries/schema.js +3 -3
  383. package/dist/host/index.js +3 -3
  384. package/dist/index.js +333 -98
  385. package/dist/index.js.map +4 -4
  386. package/dist/types/src/catalog.generated.d.ts +50 -4
  387. package/dist/types/src/index.d.ts +2 -0
  388. package/dist/types/src/layout.d.ts +2 -0
  389. package/dist/types/src/limits.d.ts +1 -0
  390. package/dist/types/src/motion/index.d.ts +1 -0
  391. package/dist/types/src/motion/server.d.ts +9 -0
  392. package/dist/types/src/motion/wasm.d.ts +11 -0
  393. package/dist/types/src/web/coerce.d.ts +3 -0
  394. package/dist/types/src/web/focus.d.ts +8 -0
  395. package/dist/types/src/web/index.d.ts +5 -2
  396. package/dist/types/src/web/primitives/carousel.d.ts +1 -1
  397. package/dist/types/src/web/primitives/dock.d.ts +5 -2
  398. package/dist/types/src/web/primitives/index.d.ts +2 -0
  399. package/dist/types/src/web/primitives/motion-paint.d.ts +36 -0
  400. package/dist/types/src/web/primitives/motion.d.ts +162 -0
  401. package/dist/types/src/web/primitives/zoomable-image.d.ts +158 -0
  402. package/dist/types/src/web/table.d.ts +8 -0
  403. package/dist/types/src/zoom.d.ts +128 -0
  404. package/dist/types/wasm/motion/bytes.d.ts +1 -0
  405. package/dist/web/index.js +165 -230
  406. package/dist/web/index.js.map +8 -9
  407. package/dist/web/primitives/index.js +584 -7
  408. package/dist/web/primitives/index.js.map +7 -6
  409. package/docs/components.generated.json +392 -4
  410. package/docs/round-6-contract.md +5 -3
  411. package/docs/themes.generated.json +27 -0
  412. package/fixtures/bind-time.json +4 -0
  413. package/fixtures/catalog-components.json +930 -16
  414. package/fixtures/catalog-macros.json +11 -0
  415. package/fixtures/conformance-baseline.json +33020 -32952
  416. package/fixtures/conformance-known.json +64 -70
  417. package/fixtures/kitchen-sink.expanded.json +72 -0
  418. package/fixtures/kitchen-sink.json +33 -0
  419. package/fixtures/layout-geometry-round1.json +42 -42
  420. package/fixtures/motion-frames.json +2618 -0
  421. package/fixtures/motion-playback.json +528 -0
  422. package/fixtures/motion-state.json +722 -0
  423. package/fixtures/motion-validate.json +138 -0
  424. package/fixtures/primitive-specimens.json +1 -0
  425. package/fixtures/prompt-budget.json +16 -16
  426. package/fixtures/specimens.json +717 -21
  427. package/fixtures/theme-recipes.json +1518 -32
  428. package/fixtures/theme-resolved.json +732 -56
  429. package/fixtures/zoom.json +1382 -0
  430. package/generated/ExponentialUICatalog.generated.kt +20 -20
  431. package/generated/ExponentialUICatalog.generated.swift +20 -20
  432. package/generated/ExponentialUIThemes.generated.kt +7 -7
  433. package/generated/ExponentialUIThemes.generated.swift +7 -7
  434. package/generated/catalog.descriptions.generated.rs +1 -1
  435. package/generated/catalog.generated.rs +29 -29
  436. package/generated/catalog.themes.generated.rs +8 -8
  437. package/generated/core.descriptions.json +171 -5
  438. package/generated/core.runtime.json +189 -1
  439. package/package.json +1 -1
  440. package/themes/neutral.theme.json +172 -3
  441. package/dist/chunks/index-t6qz1770.js +0 -95
  442. package/dist/chunks/index-t6qz1770.js.map +0 -11
@@ -0,0 +1,12 @@
1
+ {
2
+ "$comment": "EXP-1604: Motion cases the web Canvas2D painter paints under 99 % of pixels within 2/255 of the raster reference (conformance/motion-parity.ts, headless Chromium). Every difference sits on anti-aliased edges (Skia's analytic coverage vs tiny-skia's 4x supersampling; dashes add the two engines' arc-length approximations) or, for the image, bilinear sampling half an output pixel out of phase with tiny-skia. `floor` = the share the case must keep (measured minus ~0.5 %). This list may only shrink.",
3
+ "gaps": {
4
+ "radial-gradient-highlight@0": { "floor": 0.97, "measured": 0.9739 },
5
+ "solid-and-image@0": { "floor": 0.965, "measured": 0.97 },
6
+ "star-polygon@0": { "floor": 0.975, "measured": 0.9829 },
7
+ "stroke-caps-joins@0": { "floor": 0.975, "measured": 0.9798 },
8
+ "stroke-dashes@0": { "floor": 0.965, "measured": 0.9721 },
9
+ "stroke-dashes@10": { "floor": 0.965, "measured": 0.9721 },
10
+ "trim-path@10": { "floor": 0.98, "measured": 0.9884 }
11
+ }
12
+ }
@@ -0,0 +1,3 @@
1
+ // EXP-1604: the browser entry of conformance/motion-parity.ts.
2
+ import * as painter from "../src/web/primitives/motion-paint"
3
+ ;(globalThis as unknown as { __motionPaint: typeof painter }).__motionPaint = painter
@@ -0,0 +1,101 @@
1
+ // EXP-1604: the web Motion painter's pixel parity (eui-motion README.md
2
+ // › Painting a Motion §7). Every case of fixtures/motion-frames.json is
3
+ // painted by the shared Canvas2D painter (src/web/primitives/motion-paint.ts)
4
+ // in headless Chromium at 160×160 (contain, transparent) and compared with
5
+ // the raster's reference conformance/motion/parity/<case>@<frame>.png:
6
+ // ≤ 2/255 per premultiplied channel on ≥ 99 % of the pixels.
7
+
8
+ import { execFileSync } from "node:child_process"
9
+ import { readFileSync, writeFileSync } from "node:fs"
10
+ import { join } from "node:path"
11
+ import type { Page } from "playwright"
12
+ import { motionWasmSync } from "../src/motion/server"
13
+
14
+ export const MOTION_PARITY_SIZE = 160
15
+ export const MOTION_PARITY_TOLERANCE = 2
16
+ export const MOTION_PARITY_MIN_SHARE = 0.99
17
+
18
+ /** Cases under 99 % on Canvas2D, all on anti-aliased edges (Skia's analytic
19
+ * coverage vs tiny-skia's 4× supersampling) or bilinear sampling (a ½ px
20
+ * phase vs tiny-skia): their floor, a list that may only shrink. */
21
+ export function motionParityFloor(name: string): number {
22
+ const gaps = JSON.parse(readFileSync(join(ROOT, `conformance`, `motion`, `web-parity-gaps.json`), `utf8`)) as { gaps: Record<string, { floor: number }> }
23
+ return gaps.gaps[name]?.floor ?? MOTION_PARITY_MIN_SHARE
24
+ }
25
+
26
+ export type MotionParityCase = { id: string; frame: number; packed: number[]; images: string[]; reference: string }
27
+ export type MotionParityResult = { name: string; matched: number; total: number; share: number; maxDiff: number }
28
+
29
+ const ROOT = join(import.meta.dirname, `..`)
30
+
31
+ /** The cases: one per (fixture case, sampled frame), with the reference PNG as a data URL. */
32
+ export function motionParityCases(): MotionParityCase[] {
33
+ const wasm = motionWasmSync()
34
+ const fixture = JSON.parse(readFileSync(join(ROOT, `fixtures`, `motion-frames.json`), `utf8`)) as { cases: { id: string; lottie: unknown; frames: { frame: number; packed: number[] }[] }[] }
35
+ const out: MotionParityCase[] = []
36
+ for (const c of fixture.cases) {
37
+ const player = new wasm.MotionPlayer(JSON.stringify(c.lottie), ``)
38
+ const images = player.images()
39
+ player.free()
40
+ for (const f of c.frames) {
41
+ const png = readFileSync(join(ROOT, `conformance`, `motion`, `parity`, `${c.id}@${f.frame}.png`))
42
+ out.push({ id: c.id, frame: f.frame, packed: f.packed, images, reference: `data:image/png;base64,${png.toString(`base64`)}` })
43
+ }
44
+ }
45
+ return out
46
+ }
47
+
48
+ /** The painter as a browser script defining `window.__motionPaint`. */
49
+ export async function motionPainterScript(): Promise<string> {
50
+ // A `bun build` child: the browser suites run under vitest (Node workers).
51
+ return execFileSync(`bun`, [`build`, join(ROOT, `conformance`, `motion-parity-entry.ts`), `--target=browser`, `--format=iife`], { encoding: `utf8`, maxBuffer: 64 << 20 })
52
+ }
53
+
54
+ /** Paint every case on `page` (a blank page) and compare. */
55
+ export async function runMotionParity(page: Page, cases = motionParityCases()): Promise<MotionParityResult[]> {
56
+ await page.addScriptTag({ content: await motionPainterScript() })
57
+ const results: MotionParityResult[] = []
58
+ for (const c of cases) {
59
+ const r = await page.evaluate(
60
+ async ({ c, size, tol }) => {
61
+ const P = (window as unknown as { __motionPaint: typeof import("../src/web/primitives/motion-paint") }).__motionPaint
62
+ const load = (src: string) =>
63
+ new Promise<HTMLImageElement | null>((res) => {
64
+ const img = new Image()
65
+ img.onload = () => res(img)
66
+ img.onerror = () => res(null)
67
+ img.src = src
68
+ })
69
+ const images = await Promise.all(c.images.map(load))
70
+ const canvas = document.createElement(`canvas`)
71
+ canvas.width = canvas.height = size
72
+ const ctx = canvas.getContext(`2d`, { willReadFrequently: true })!
73
+ const { width, height } = P.motionFrameSize(c.packed)
74
+ P.paintMotionFrame(ctx, size, size, c.packed, P.motionFitMatrix(width, height, size, size, `contain`), images)
75
+ const got = ctx.getImageData(0, 0, size, size).data
76
+ const ref = await load(c.reference)
77
+ const rc = document.createElement(`canvas`)
78
+ rc.width = rc.height = size
79
+ const rctx = rc.getContext(`2d`, { willReadFrequently: true })!
80
+ rctx.drawImage(ref!, 0, 0)
81
+ const want = rctx.getImageData(0, 0, size, size).data
82
+ let matched = 0
83
+ let maxDiff = 0
84
+ const pm = (d: Uint8ClampedArray, k: number, ch: number) => (ch === 3 ? d[k + 3]! : (d[k + ch]! * d[k + 3]!) / 255)
85
+ for (let k = 0; k < got.length; k += 4) {
86
+ let worst = 0
87
+ for (let ch = 0; ch < 4; ch++) worst = Math.max(worst, Math.abs(pm(got, k, ch) - pm(want, k, ch)))
88
+ worst = Math.round(worst)
89
+ maxDiff = Math.max(maxDiff, worst)
90
+ if (worst <= tol) matched++
91
+ }
92
+ return { matched, total: got.length / 4, maxDiff, png: canvas.toDataURL() }
93
+ },
94
+ { c, size: MOTION_PARITY_SIZE, tol: MOTION_PARITY_TOLERANCE }
95
+ )
96
+ const { png, ...rest } = r
97
+ if (process.env.MOTION_PARITY_DUMP) writeFileSync(join(process.env.MOTION_PARITY_DUMP, `${c.id}@${c.frame}.png`), Buffer.from(png.split(`,`)[1]!, `base64`))
98
+ results.push({ name: `${c.id}@${c.frame}`, ...rest, share: rest.matched / rest.total })
99
+ }
100
+ return results
101
+ }
@@ -10,7 +10,7 @@ import {
10
10
  parseTokenRef2,
11
11
  isKnownToken2,
12
12
  sharedCatalogView2
13
- } from "./index-abcjanhc.js";
13
+ } from "./index-f9wkb6aq.js";
14
14
  import {
15
15
  validateStyle2,
16
16
  tryLoadTheme2,
@@ -28,7 +28,7 @@ import {
28
28
  SSE_EVENTS2,
29
29
  errorMessage2,
30
30
  actionMessage2
31
- } from "./index-h3zgfghf.js";
31
+ } from "./index-vkn82srs.js";
32
32
 
33
33
  // packages/exponential-ui/src/catalog.generated.ts
34
34
  var CATALOG_ID2 = "https://ui.exponential.at/catalogs/core/v1";
@@ -37,12 +37,12 @@ var BASIC_CATALOG_ID2 = "https://a2ui.org/specification/v0_9/basic_catalog.json"
37
37
  var BASIC_VERSION2 = "v0.9";
38
38
  var CATALOG_VERSION2 = "1";
39
39
  var UNKNOWN_COMPONENT_NAME2 = "Unknown";
40
- var COMPONENT_NAMES2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Image", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Mosaic", "Tabs", "Segmented", "Accordion", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Outline", "Stepper", "Dialog", "Drawer", "DockCard", "AlertDialog", "Popover", "Tooltip", "Menu", "Toast", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Spinner", "Skeleton", "VoiceWave", "CallSurface", "Table", "Chart", "Sparkline", "StatTile", "Button", "Link", "Toggle", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "Row", "MessageBubble", "TreeGuides", "Unknown"];
41
- var NATIVE_COMPONENTS2 = ["Box", "List", "Resizable", "Text", "Markdown", "CodeBlock", "Image", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Tabs", "Segmented", "Accordion", "Dialog", "Drawer", "Popover", "Tooltip", "Menu", "Toast", "Ring", "Spinner", "Skeleton", "VoiceWave", "Table", "Chart", "Button", "Link", "Toggle", "Form", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "TreeGuides", "Unknown"];
40
+ var COMPONENT_NAMES2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Image", "ZoomableImage", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Mosaic", "Tabs", "Segmented", "Accordion", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Outline", "Stepper", "Dialog", "Drawer", "DockCard", "AlertDialog", "Popover", "Tooltip", "Menu", "Toast", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Spinner", "Skeleton", "VoiceWave", "CallSurface", "Table", "Chart", "Sparkline", "StatTile", "Button", "Link", "Toggle", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "Row", "MessageBubble", "TreeGuides", "Unknown", "Motion"];
41
+ var NATIVE_COMPONENTS2 = ["Box", "List", "Resizable", "Text", "Markdown", "CodeBlock", "Image", "ZoomableImage", "Icon", "Video", "AudioPlayer", "Avatar", "QrCode", "Carousel", "Tabs", "Segmented", "Accordion", "Dialog", "Drawer", "Popover", "Tooltip", "Menu", "Toast", "Ring", "Spinner", "Skeleton", "VoiceWave", "Table", "Chart", "Button", "Link", "Toggle", "Form", "Input", "Textarea", "NumberField", "Checkbox", "Radio", "ChoiceTiles", "Switch", "Slider", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "QrScanner", "Composer", "TreeGuides", "Unknown", "Motion"];
42
42
  var MACRO_COMPONENTS2 = ["Stack", "Grid", "Card", "Separator", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Heading", "Kbd", "Label", "Mosaic", "Collapsible", "Trace", "TraceItem", "Plan", "Pagination", "Breadcrumb", "Outline", "Stepper", "DockCard", "AlertDialog", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "CallSurface", "Sparkline", "StatTile", "FieldGroup", "FormActions", "Rating", "Row", "MessageBubble"];
43
- var LITE_COMPONENTS2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Icon", "Avatar", "Tabs", "Segmented", "Collapsible", "Trace", "TraceItem", "Plan", "Breadcrumb", "Outline", "Stepper", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Skeleton", "StatTile", "Button", "Link", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Switch", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "Composer", "Row", "MessageBubble"];
44
- var COMPONENT_GROUPS2 = { Box: "layout", Stack: "layout", Grid: "layout", Card: "layout", Separator: "layout", List: "layout", Resizable: "layout", ScrollArea: "layout", Sidebar: "layout", SplitView: "layout", AppBar: "layout", Page: "layout", Toolbar: "layout", Section: "list", Group: "list", Text: "text", Heading: "text", Markdown: "text", CodeBlock: "text", Kbd: "text", Label: "text", Image: "media", Icon: "media", Video: "media", AudioPlayer: "media", Avatar: "media", QrCode: "media", Carousel: "media", Mosaic: "media", Tabs: "navigation", Segmented: "navigation", Accordion: "navigation", Collapsible: "navigation", Trace: "list", TraceItem: "list", Plan: "list", Pagination: "navigation", Breadcrumb: "navigation", Outline: "navigation", Stepper: "navigation", Dialog: "overlay", Drawer: "overlay", DockCard: "overlay", AlertDialog: "overlay", Popover: "overlay", Tooltip: "overlay", Menu: "overlay", Toast: "overlay", Badge: "feedback", Alert: "feedback", Chip: "feedback", EmptyState: "feedback", Progress: "feedback", Meter: "feedback", Ring: "feedback", Spinner: "feedback", Skeleton: "feedback", VoiceWave: "feedback", CallSurface: "media", Table: "data", Chart: "data", Sparkline: "data", StatTile: "data", Button: "action", Link: "action", Toggle: "action", Form: "input", FieldGroup: "input", FormActions: "input", Input: "input", Textarea: "input", NumberField: "input", Checkbox: "input", Radio: "input", ChoiceTiles: "input", Switch: "input", Slider: "input", Rating: "input", Select: "input", SearchList: "input", ChipInput: "input", DatePicker: "input", DateRangePicker: "input", TimePicker: "input", FileUpload: "input", QrScanner: "input", Composer: "input", Row: "list", MessageBubble: "list", TreeGuides: "list", Unknown: "feedback" };
45
- var SPECIMEN_IDS2 = { Box: "exponential-ui-box", Stack: "exponential-ui-stack", Grid: "exponential-ui-grid", Card: "exponential-ui-card", Separator: "exponential-ui-separator", List: "exponential-ui-list", Resizable: "exponential-ui-resizable", ScrollArea: "exponential-ui-scroll-area", Sidebar: "exponential-ui-sidebar", SplitView: "exponential-ui-split-view", AppBar: "exponential-ui-app-bar", Page: "exponential-ui-page", Toolbar: "exponential-ui-toolbar", Section: "exponential-ui-section", Group: "exponential-ui-group", Text: "exponential-ui-text", Heading: "exponential-ui-heading", Markdown: "exponential-ui-markdown", CodeBlock: "exponential-ui-code-block", Kbd: "exponential-ui-kbd", Label: "exponential-ui-label", Image: "exponential-ui-image", Icon: "exponential-ui-icon", Video: "exponential-ui-video", AudioPlayer: "exponential-ui-audio-player", Avatar: "exponential-ui-avatar", QrCode: "exponential-ui-qr-code", Carousel: "exponential-ui-carousel", Mosaic: "exponential-ui-mosaic", Tabs: "exponential-ui-tabs", Segmented: "exponential-ui-segmented", Accordion: "exponential-ui-accordion", Collapsible: "exponential-ui-collapsible", Trace: "exponential-ui-trace", TraceItem: "exponential-ui-trace-item", Plan: "exponential-ui-plan", Pagination: "exponential-ui-pagination", Breadcrumb: "exponential-ui-breadcrumb", Outline: "exponential-ui-outline", Stepper: "exponential-ui-stepper", Dialog: "exponential-ui-dialog", Drawer: "exponential-ui-drawer", DockCard: "exponential-ui-dock-card", AlertDialog: "exponential-ui-alert-dialog", Popover: "exponential-ui-popover", Tooltip: "exponential-ui-tooltip", Menu: "exponential-ui-menu", Toast: "exponential-ui-toast", Badge: "exponential-ui-badge", Alert: "exponential-ui-alert", Chip: "exponential-ui-chip", EmptyState: "exponential-ui-empty-state", Progress: "exponential-ui-progress", Meter: "exponential-ui-meter", Ring: "exponential-ui-ring", Spinner: "exponential-ui-spinner", Skeleton: "exponential-ui-skeleton", VoiceWave: "exponential-ui-voice-wave", CallSurface: "exponential-ui-call-surface", Table: "exponential-ui-table", Chart: "exponential-ui-chart", Sparkline: "exponential-ui-sparkline", StatTile: "exponential-ui-stat-tile", Button: "exponential-ui-button", Link: "exponential-ui-link", Toggle: "exponential-ui-toggle", Form: "exponential-ui-form", FieldGroup: "exponential-ui-field-group", FormActions: "exponential-ui-form-actions", Input: "exponential-ui-input", Textarea: "exponential-ui-textarea", NumberField: "exponential-ui-number-field", Checkbox: "exponential-ui-checkbox", Radio: "exponential-ui-radio", ChoiceTiles: "exponential-ui-choice-tiles", Switch: "exponential-ui-switch", Slider: "exponential-ui-slider", Rating: "exponential-ui-rating", Select: "exponential-ui-select", SearchList: "exponential-ui-search-list", ChipInput: "exponential-ui-chip-input", DatePicker: "exponential-ui-date-picker", DateRangePicker: "exponential-ui-date-range-picker", TimePicker: "exponential-ui-time-picker", FileUpload: "exponential-ui-file-upload", QrScanner: "exponential-ui-qr-scanner", Composer: "exponential-ui-composer", Row: "exponential-ui-row", MessageBubble: "exponential-ui-message-bubble", TreeGuides: "exponential-ui-tree-guides", Unknown: "exponential-ui-unknown" };
43
+ var LITE_COMPONENTS2 = ["Box", "Stack", "Grid", "Card", "Separator", "List", "Resizable", "ScrollArea", "Sidebar", "SplitView", "AppBar", "Page", "Toolbar", "Section", "Group", "Text", "Heading", "Markdown", "CodeBlock", "Kbd", "Label", "Icon", "Avatar", "Tabs", "Segmented", "Collapsible", "Trace", "TraceItem", "Plan", "Breadcrumb", "Outline", "Stepper", "Badge", "Alert", "Chip", "EmptyState", "Progress", "Meter", "Ring", "Skeleton", "StatTile", "Button", "Link", "Form", "FieldGroup", "FormActions", "Input", "Textarea", "NumberField", "Checkbox", "Switch", "Rating", "Select", "SearchList", "ChipInput", "DatePicker", "DateRangePicker", "TimePicker", "FileUpload", "Composer", "Row", "MessageBubble", "Motion"];
44
+ var COMPONENT_GROUPS2 = { Box: "layout", Stack: "layout", Grid: "layout", Card: "layout", Separator: "layout", List: "layout", Resizable: "layout", ScrollArea: "layout", Sidebar: "layout", SplitView: "layout", AppBar: "layout", Page: "layout", Toolbar: "layout", Section: "list", Group: "list", Text: "text", Heading: "text", Markdown: "text", CodeBlock: "text", Kbd: "text", Label: "text", Image: "media", ZoomableImage: "media", Icon: "media", Video: "media", AudioPlayer: "media", Avatar: "media", QrCode: "media", Carousel: "media", Mosaic: "media", Tabs: "navigation", Segmented: "navigation", Accordion: "navigation", Collapsible: "navigation", Trace: "list", TraceItem: "list", Plan: "list", Pagination: "navigation", Breadcrumb: "navigation", Outline: "navigation", Stepper: "navigation", Dialog: "overlay", Drawer: "overlay", DockCard: "overlay", AlertDialog: "overlay", Popover: "overlay", Tooltip: "overlay", Menu: "overlay", Toast: "overlay", Badge: "feedback", Alert: "feedback", Chip: "feedback", EmptyState: "feedback", Progress: "feedback", Meter: "feedback", Ring: "feedback", Spinner: "feedback", Skeleton: "feedback", VoiceWave: "feedback", CallSurface: "media", Table: "data", Chart: "data", Sparkline: "data", StatTile: "data", Button: "action", Link: "action", Toggle: "action", Form: "input", FieldGroup: "input", FormActions: "input", Input: "input", Textarea: "input", NumberField: "input", Checkbox: "input", Radio: "input", ChoiceTiles: "input", Switch: "input", Slider: "input", Rating: "input", Select: "input", SearchList: "input", ChipInput: "input", DatePicker: "input", DateRangePicker: "input", TimePicker: "input", FileUpload: "input", QrScanner: "input", Composer: "input", Row: "list", MessageBubble: "list", TreeGuides: "list", Unknown: "feedback", Motion: "media" };
45
+ var SPECIMEN_IDS2 = { Box: "exponential-ui-box", Stack: "exponential-ui-stack", Grid: "exponential-ui-grid", Card: "exponential-ui-card", Separator: "exponential-ui-separator", List: "exponential-ui-list", Resizable: "exponential-ui-resizable", ScrollArea: "exponential-ui-scroll-area", Sidebar: "exponential-ui-sidebar", SplitView: "exponential-ui-split-view", AppBar: "exponential-ui-app-bar", Page: "exponential-ui-page", Toolbar: "exponential-ui-toolbar", Section: "exponential-ui-section", Group: "exponential-ui-group", Text: "exponential-ui-text", Heading: "exponential-ui-heading", Markdown: "exponential-ui-markdown", CodeBlock: "exponential-ui-code-block", Kbd: "exponential-ui-kbd", Label: "exponential-ui-label", Image: "exponential-ui-image", ZoomableImage: "exponential-ui-zoomable-image", Icon: "exponential-ui-icon", Video: "exponential-ui-video", AudioPlayer: "exponential-ui-audio-player", Avatar: "exponential-ui-avatar", QrCode: "exponential-ui-qr-code", Carousel: "exponential-ui-carousel", Mosaic: "exponential-ui-mosaic", Tabs: "exponential-ui-tabs", Segmented: "exponential-ui-segmented", Accordion: "exponential-ui-accordion", Collapsible: "exponential-ui-collapsible", Trace: "exponential-ui-trace", TraceItem: "exponential-ui-trace-item", Plan: "exponential-ui-plan", Pagination: "exponential-ui-pagination", Breadcrumb: "exponential-ui-breadcrumb", Outline: "exponential-ui-outline", Stepper: "exponential-ui-stepper", Dialog: "exponential-ui-dialog", Drawer: "exponential-ui-drawer", DockCard: "exponential-ui-dock-card", AlertDialog: "exponential-ui-alert-dialog", Popover: "exponential-ui-popover", Tooltip: "exponential-ui-tooltip", Menu: "exponential-ui-menu", Toast: "exponential-ui-toast", Badge: "exponential-ui-badge", Alert: "exponential-ui-alert", Chip: "exponential-ui-chip", EmptyState: "exponential-ui-empty-state", Progress: "exponential-ui-progress", Meter: "exponential-ui-meter", Ring: "exponential-ui-ring", Spinner: "exponential-ui-spinner", Skeleton: "exponential-ui-skeleton", VoiceWave: "exponential-ui-voice-wave", CallSurface: "exponential-ui-call-surface", Table: "exponential-ui-table", Chart: "exponential-ui-chart", Sparkline: "exponential-ui-sparkline", StatTile: "exponential-ui-stat-tile", Button: "exponential-ui-button", Link: "exponential-ui-link", Toggle: "exponential-ui-toggle", Form: "exponential-ui-form", FieldGroup: "exponential-ui-field-group", FormActions: "exponential-ui-form-actions", Input: "exponential-ui-input", Textarea: "exponential-ui-textarea", NumberField: "exponential-ui-number-field", Checkbox: "exponential-ui-checkbox", Radio: "exponential-ui-radio", ChoiceTiles: "exponential-ui-choice-tiles", Switch: "exponential-ui-switch", Slider: "exponential-ui-slider", Rating: "exponential-ui-rating", Select: "exponential-ui-select", SearchList: "exponential-ui-search-list", ChipInput: "exponential-ui-chip-input", DatePicker: "exponential-ui-date-picker", DateRangePicker: "exponential-ui-date-range-picker", TimePicker: "exponential-ui-time-picker", FileUpload: "exponential-ui-file-upload", QrScanner: "exponential-ui-qr-scanner", Composer: "exponential-ui-composer", Row: "exponential-ui-row", MessageBubble: "exponential-ui-message-bubble", TreeGuides: "exponential-ui-tree-guides", Unknown: "exponential-ui-unknown", Motion: "exponential-ui-motion" };
46
46
  var ENUMS2 = {
47
47
  variant: ["default", "secondary", "outline", "ghost", "destructive", "link"],
48
48
  size: ["sm", "default", "lg", "icon"],
@@ -93,7 +93,11 @@ var ENUMS2 = {
93
93
  callState: ["ringing", "connecting", "talking", "ended"],
94
94
  voiceWaveVariant: ["ring", "bars"],
95
95
  qrLevel: ["L", "M", "Q", "H"],
96
- planState: ["proposed", "running", "done", "declined"]
96
+ planState: ["proposed", "running", "done", "declined"],
97
+ zoomInitial: ["auto", "fit", "fitWidth", "actual"],
98
+ zoomControls: ["auto", "always", "none"],
99
+ motionDirection: ["forward", "reverse", "alternate"],
100
+ motionFit: ["contain", "cover", "fill"]
97
101
  };
98
102
  var TOKEN_NAMES2 = {
99
103
  color: ["background", "foreground", "card", "cardForeground", "popover", "popoverForeground", "primary", "primaryForeground", "secondary", "secondaryForeground", "muted", "mutedForeground", "accent", "accentForeground", "destructive", "destructiveForeground", "success", "successForeground", "warning", "warningForeground", "info", "infoForeground", "border", "input", "ring", "chart1", "chart2", "chart3", "chart4", "chart5", "chart6", "chart7", "chart8"],
@@ -116,14 +120,14 @@ var TOKEN_NAMES2 = {
116
120
  };
117
121
  var STYLE_KEY_NAMES2 = ["display", "flexDirection", "flexWrap", "justifyContent", "alignItems", "alignContent", "alignSelf", "justifySelf", "flexGrow", "flexShrink", "flexBasis", "gap", "rowGap", "columnGap", "direction", "overflow", "overflowX", "overflowY", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "aspectRatio", "position", "top", "right", "bottom", "left", "inset", "insetInlineStart", "insetInlineEnd", "insetBlockStart", "insetBlockEnd", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingHorizontal", "paddingVertical", "paddingInlineStart", "paddingInlineEnd", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginHorizontal", "marginVertical", "marginInlineStart", "marginInlineEnd", "gridTemplateColumns", "gridTemplateRows", "gridTemplateAreas", "gridArea", "gridColumn", "gridRow", "backgroundColor", "backgroundGradient", "color", "borderWidth", "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth", "borderColor", "borderStyle", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius", "opacity", "boxShadow", "fontSize", "fontWeight", "lineHeight", "letterSpacing", "textAlign", "textDecoration", "textTransform", "fontStyle", "fontFamily", "transition", "transitionEasing", "transform", "visibility", "pointerEvents", "userSelect", "cursor", "backdropBlur", "animation", "animationDuration"];
118
122
  var STYLE_STATE_NAMES2 = [":hover", ":focus-visible", ":pressed"];
119
- var ICON_NAMES2 = ["a-large-small", "action-chat", "action-create", "action-default", "action-repository", "action-run", "action-suggestion", "activity", "anchor", "app-editor-chat", "archive", "archive-restore", "arrow-down", "arrow-down-left", "arrow-left", "arrow-left-right", "arrow-right", "arrow-up-right", "at-sign", "atom", "audio-lines", "auth-passkey", "award", "ban", "bell", "bell-off", "bold", "book-open", "bookmark", "bot", "boxes", "braces", "brain", "briefcase", "brush-cleaning", "bug", "building", "building-2", "calculator", "calendar", "calendar-days", "call-end", "call-incoming", "call-mute", "call-speaker", "call-speaker-off", "call-unmute", "camera", "car", "chart-line", "check", "check-check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevrons-up-down", "circle", "circle-arrow-up", "circle-check", "circle-dashed", "circle-dot", "circle-question-mark", "circle-slash", "circle-stop", "circle-user", "circle-x", "clipboard-list", "clock", "cloud", "code", "coding-assistant", "coding-command", "coding-compact", "coding-diff", "coding-ended", "coding-in-review", "coding-needs-input", "coding-plan", "coding-running", "coding-stop", "coding-subagent", "coding-tool", "coffee", "compass", "computer", "copy", "corner-down-right", "cpu", "credit-card", "crown", "database", "download", "droplet", "dumbbell", "ear", "editor-bold", "editor-clear-formatting", "editor-code", "editor-emoji", "editor-heading-1", "editor-heading-2", "editor-heading-3", "editor-image", "editor-issue-ref", "editor-italic", "editor-link", "editor-list", "editor-list-ordered", "editor-list-todo", "editor-mention", "editor-quote", "editor-strikethrough", "editor-text", "editor-text-format", "editor-unlink", "ellipsis", "ellipsis-vertical", "event-assignee-changed", "event-board-moved", "event-estimate-changed", "event-label-added", "event-label-removed", "event-priority-changed", "event-relation-added", "event-relation-removed", "event-status-changed", "event-title-changed", "external-link", "eye", "eye-off", "fast-forward", "file", "file-diff", "file-pen-line", "file-text", "fingerprint", "flag", "flame", "flask-conical", "fold-vertical", "folder", "folder-kanban", "folder-open", "gamepad-2", "gauge", "gem", "gift", "git-branch", "git-merge", "git-pull-request", "github", "globe", "graduation-cap", "guide-changes", "hammer", "hand", "hard-drive", "hash", "heading-1", "heading-2", "heading-3", "headphones", "heart", "heart-off", "history", "hourglass", "house", "image", "images", "inbox", "info", "italic", "key", "landmark", "laptop", "layers", "layers-2", "layout-grid", "leaf", "lightbulb", "link", "link-2", "list", "list-checks", "list-end", "list-ordered", "list-todo", "list-tree", "loader-circle", "lock", "lock-open", "log-in", "log-out", "mail", "mail-open", "map", "map-pin", "maximize-2", "media-fast-forward", "media-rewind", "media-skip-next", "media-skip-previous", "media-volume-down", "media-volume-mute", "media-volume-off", "media-volume-up", "megaphone", "menu", "message-circle", "message-square", "message-square-plus", "message-square-reply", "mic", "mic-off", "microscope", "minimize-2", "minus", "monitor", "monitor-off", "moon", "mountain", "move", "music", "nav-account", "nav-actions", "nav-admin", "nav-apps", "nav-boards", "nav-changelog", "nav-computer", "nav-create-issue", "nav-devices", "nav-drafts", "nav-files", "nav-getting-started", "nav-inbox", "nav-issues", "nav-my-issues", "nav-notifications", "nav-rail-collapse", "nav-rail-expand", "nav-report-bug", "nav-search", "nav-settings", "nav-sign-out", "nav-source-control", "nav-team-switcher", "nav-terminal", "nav-threads", "newspaper", "notification-agent-message", "notification-issue-assigned", "notification-issue-comment", "notification-issue-created", "notification-issue-mention", "notification-issue-status-changed", "notification-mark-read", "notification-mute", "notification-pr-merged", "notification-pr-opened", "notification-reporter-reply", "notification-session-blocked", "os-apple", "os-linux", "os-windows", "package", "paintbrush", "palette", "panel-left-close", "panel-left-open", "paperclip", "pause", "pen-tool", "pencil", "phone", "phone-incoming", "phone-off", "pin", "pin-off", "plane", "play", "plug", "plus", "pr-batch", "pr-closed", "pr-draft", "pr-merged", "pr-open", "pr-stack", "printer", "priority-high", "priority-low", "priority-medium", "priority-none", "priority-urgent", "progress-1-4", "progress-1-5", "progress-2-4", "progress-2-5", "progress-3-4", "progress-3-5", "progress-4-5", "puzzle", "qr-code", "quote", "refresh-cw", "relation-blocked-by", "relation-blocks", "relation-duplicate", "relation-parent", "relation-related", "relation-section", "relation-sub-issue", "remove-formatting", "repeat", "rewind", "rocket", "rotate-ccw", "run-pause", "run-resume", "sc-push", "scale", "scan-line", "search", "search-x", "send", "server", "session-shell", "session-tree", "settings", "settings-about", "settings-account", "settings-agents", "settings-api", "settings-billing", "settings-boards", "settings-general", "settings-import", "settings-issues", "settings-labels", "settings-licenses", "settings-local-repos", "settings-mcp", "settings-members", "settings-notifications", "settings-rate", "settings-repositories", "settings-servers", "settings-sessions", "settings-statuses", "settings-storage", "settings-sync", "settings-tools", "settings-voice", "settings-widget", "share-2", "shield", "shield-check", "shield-question-mark", "shopping-bag", "shopping-cart", "signal-high", "signal-low", "signal-medium", "skip-back", "skip-forward", "sliders-horizontal", "smartphone", "smile", "sparkles", "square", "square-check", "square-kanban", "square-minus", "square-pen", "square-slash", "square-terminal", "star", "star-half", "star-off", "status-backlog", "status-cancelled", "status-done", "status-duplicate", "status-in-progress", "status-in-review", "status-todo", "stethoscope", "store", "strikethrough", "sun", "support-open", "support-resolved", "tag", "target", "terminal", "thread-stories", "tool-script", "trace-background", "trace-chevron", "trace-completed", "trace-edit", "trace-failed", "trace-fetch", "trace-read", "trace-reasoning", "trace-search", "trace-subagent", "trace-task-done", "trace-task-pending", "trace-task-running", "trace-terminal", "trace-todo", "trace-tool", "trash-2", "tree-pine", "triangle-alert", "trigger-event", "trigger-schedule", "trophy", "truck", "type", "ui-add", "ui-agent-source", "ui-archive", "ui-arrow-down", "ui-arrow-right", "ui-assignee", "ui-attach", "ui-avatar-placeholder", "ui-back", "ui-branch", "ui-check", "ui-checklist", "ui-chevron-down", "ui-chevron-left", "ui-chevron-right", "ui-chevron-up", "ui-clean", "ui-clear", "ui-clock", "ui-close", "ui-cloud", "ui-copy", "ui-delete", "ui-delete-account", "ui-device", "ui-device-default", "ui-device-offline", "ui-dock-side", "ui-docs", "ui-download", "ui-due-date", "ui-edit", "ui-empty-search", "ui-error", "ui-estimate", "ui-external-link", "ui-favorite-off", "ui-file", "ui-float", "ui-folder", "ui-folder-open", "ui-fullscreen", "ui-fullscreen-exit", "ui-github", "ui-help", "ui-hide", "ui-history", "ui-hold", "ui-icon-placeholder", "ui-indeterminate", "ui-info", "ui-invite", "ui-issue", "ui-link", "ui-loading", "ui-mail", "ui-mark-read", "ui-mark-unread", "ui-mcp", "ui-member", "ui-menu", "ui-minus", "ui-more", "ui-more-vertical", "ui-offline", "ui-organization", "ui-owner", "ui-permission", "ui-pin", "ui-print", "ui-private", "ui-properties", "ui-qr-code", "ui-queued", "ui-read", "ui-redock", "ui-refresh", "ui-remove-member", "ui-repeat", "ui-repository", "ui-scan", "ui-selected", "ui-selector", "ui-send", "ui-server", "ui-share", "ui-sign-in", "ui-sign-out", "ui-staging", "ui-star-half", "ui-star-off", "ui-stop", "ui-submit", "ui-subscribe", "ui-success", "ui-swap", "ui-team", "ui-unarchive", "ui-unassigned", "ui-undo", "ui-undock", "ui-unlock", "ui-unpin", "ui-unselected", "ui-unsubscribe", "ui-update", "ui-usage", "ui-warning", "ui-watch", "ui-widget", "undo-2", "unlink", "upload", "user", "user-minus", "user-plus", "user-x", "users", "video", "voice-call", "voice-level", "volume-1", "volume-2", "volume-off", "volume-x", "wallet", "wifi-off", "work-faces", "work-results", "workflow", "wrench", "x", "zap"];
123
+ var ICON_NAMES2 = ["a-large-small", "action-chat", "action-create", "action-default", "action-repository", "action-run", "action-suggestion", "activity", "anchor", "app-editor-chat", "archive", "archive-restore", "arrow-down", "arrow-down-left", "arrow-left", "arrow-left-right", "arrow-right", "arrow-up-right", "at-sign", "atom", "audio-lines", "auth-passkey", "award", "ban", "bell", "bell-off", "bold", "book-open", "bookmark", "bot", "boxes", "braces", "brain", "briefcase", "brush-cleaning", "bug", "building", "building-2", "calculator", "calendar", "calendar-days", "call-end", "call-incoming", "call-mute", "call-speaker", "call-speaker-off", "call-unmute", "camera", "car", "chart-line", "check", "check-check", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevrons-up-down", "ci-failed", "ci-passed", "ci-queued", "ci-running", "ci-skipped", "circle", "circle-arrow-up", "circle-check", "circle-dashed", "circle-dot", "circle-question-mark", "circle-slash", "circle-stop", "circle-user", "circle-x", "clipboard-list", "clock", "cloud", "code", "coding-assistant", "coding-command", "coding-compact", "coding-diff", "coding-ended", "coding-in-review", "coding-needs-input", "coding-plan", "coding-running", "coding-stop", "coding-subagent", "coding-tool", "coffee", "compass", "computer", "copy", "corner-down-right", "cpu", "credit-card", "crown", "database", "download", "droplet", "dumbbell", "ear", "editor-bold", "editor-clear-formatting", "editor-code", "editor-emoji", "editor-heading-1", "editor-heading-2", "editor-heading-3", "editor-image", "editor-issue-ref", "editor-italic", "editor-link", "editor-list", "editor-list-ordered", "editor-list-todo", "editor-mention", "editor-quote", "editor-strikethrough", "editor-text", "editor-text-format", "editor-unlink", "ellipsis", "ellipsis-vertical", "event-assignee-changed", "event-board-moved", "event-estimate-changed", "event-label-added", "event-label-removed", "event-priority-changed", "event-relation-added", "event-relation-removed", "event-status-changed", "event-title-changed", "external-link", "eye", "eye-off", "fast-forward", "file", "file-diff", "file-pen-line", "file-text", "fingerprint", "flag", "flame", "flask-conical", "fold-vertical", "folder", "folder-kanban", "folder-open", "gamepad-2", "gauge", "gem", "gift", "git-branch", "git-merge", "git-pull-request", "github", "globe", "graduation-cap", "guide-changes", "hammer", "hand", "hard-drive", "hash", "heading-1", "heading-2", "heading-3", "headphones", "heart", "heart-off", "history", "hourglass", "house", "image", "images", "inbox", "info", "italic", "key", "landmark", "laptop", "layers", "layers-2", "layout-grid", "leaf", "lightbulb", "link", "link-2", "list", "list-checks", "list-end", "list-ordered", "list-todo", "list-tree", "loader-circle", "lock", "lock-open", "log-in", "log-out", "mail", "mail-open", "map", "map-pin", "maximize-2", "media-fast-forward", "media-rewind", "media-skip-next", "media-skip-previous", "media-volume-down", "media-volume-mute", "media-volume-off", "media-volume-up", "megaphone", "menu", "message-circle", "message-square", "message-square-plus", "message-square-reply", "mic", "mic-off", "microscope", "minimize-2", "minus", "monitor", "monitor-off", "moon", "mountain", "move", "music", "nav-account", "nav-actions", "nav-admin", "nav-apps", "nav-boards", "nav-changelog", "nav-computer", "nav-create-issue", "nav-devices", "nav-drafts", "nav-files", "nav-getting-started", "nav-inbox", "nav-issues", "nav-my-issues", "nav-notifications", "nav-rail-collapse", "nav-rail-expand", "nav-report-bug", "nav-search", "nav-settings", "nav-sign-out", "nav-source-control", "nav-team-switcher", "nav-terminal", "nav-threads", "newspaper", "notification-agent-message", "notification-agent-signed-out", "notification-issue-assigned", "notification-issue-comment", "notification-issue-created", "notification-issue-mention", "notification-issue-status-changed", "notification-mark-read", "notification-mute", "notification-pr-merged", "notification-pr-opened", "notification-reporter-reply", "notification-session-blocked", "os-apple", "os-linux", "os-windows", "package", "paintbrush", "palette", "panel-left-close", "panel-left-open", "paperclip", "pause", "pen-tool", "pencil", "phone", "phone-incoming", "phone-off", "pin", "pin-off", "plane", "play", "plug", "plus", "pr-batch", "pr-closed", "pr-draft", "pr-merged", "pr-open", "pr-stack", "printer", "priority-high", "priority-low", "priority-medium", "priority-none", "priority-urgent", "progress-1-4", "progress-1-5", "progress-2-4", "progress-2-5", "progress-3-4", "progress-3-5", "progress-4-5", "puzzle", "qr-code", "quote", "refresh-cw", "relation-blocked-by", "relation-blocks", "relation-duplicate", "relation-parent", "relation-related", "relation-section", "relation-sub-issue", "remove-formatting", "repeat", "rewind", "rocket", "rotate-ccw", "run-pause", "run-resume", "sc-push", "scale", "scan-line", "search", "search-x", "send", "server", "session-shell", "session-tree", "settings", "settings-about", "settings-account", "settings-agents", "settings-api", "settings-billing", "settings-boards", "settings-general", "settings-import", "settings-issues", "settings-labels", "settings-licenses", "settings-local-repos", "settings-mcp", "settings-members", "settings-notifications", "settings-rate", "settings-repositories", "settings-servers", "settings-sessions", "settings-statuses", "settings-storage", "settings-sync", "settings-tools", "settings-voice", "settings-widget", "share-2", "shield", "shield-check", "shield-question-mark", "shopping-bag", "shopping-cart", "signal-high", "signal-low", "signal-medium", "skip-back", "skip-forward", "sliders-horizontal", "smartphone", "smile", "sparkles", "square", "square-check", "square-kanban", "square-minus", "square-pen", "square-slash", "square-terminal", "star", "star-half", "star-off", "status-backlog", "status-cancelled", "status-done", "status-duplicate", "status-in-progress", "status-in-review", "status-todo", "stethoscope", "store", "strikethrough", "sun", "support-open", "support-resolved", "tag", "target", "terminal", "thread-stories", "tool-script", "trace-background", "trace-chevron", "trace-completed", "trace-edit", "trace-failed", "trace-fetch", "trace-read", "trace-reasoning", "trace-search", "trace-subagent", "trace-task-done", "trace-task-pending", "trace-task-running", "trace-terminal", "trace-todo", "trace-tool", "trash-2", "tree-pine", "triangle-alert", "trigger-event", "trigger-schedule", "trophy", "truck", "type", "ui-add", "ui-agent-source", "ui-archive", "ui-arrow-down", "ui-arrow-right", "ui-assignee", "ui-attach", "ui-avatar-placeholder", "ui-back", "ui-branch", "ui-check", "ui-checklist", "ui-chevron-down", "ui-chevron-left", "ui-chevron-right", "ui-chevron-up", "ui-clean", "ui-clear", "ui-clock", "ui-close", "ui-cloud", "ui-copy", "ui-delete", "ui-delete-account", "ui-device", "ui-device-default", "ui-device-offline", "ui-dock-side", "ui-docs", "ui-download", "ui-due-date", "ui-edit", "ui-empty-search", "ui-error", "ui-estimate", "ui-external-link", "ui-favorite-off", "ui-file", "ui-float", "ui-folder", "ui-folder-open", "ui-fullscreen", "ui-fullscreen-exit", "ui-github", "ui-help", "ui-hide", "ui-history", "ui-hold", "ui-icon-placeholder", "ui-indeterminate", "ui-info", "ui-invite", "ui-issue", "ui-link", "ui-loading", "ui-mail", "ui-mark-read", "ui-mark-unread", "ui-mcp", "ui-member", "ui-menu", "ui-minus", "ui-more", "ui-more-vertical", "ui-offline", "ui-organization", "ui-owner", "ui-permission", "ui-pin", "ui-print", "ui-private", "ui-properties", "ui-qr-code", "ui-queued", "ui-read", "ui-redock", "ui-refresh", "ui-remove-member", "ui-repeat", "ui-repository", "ui-scan", "ui-selected", "ui-selector", "ui-send", "ui-server", "ui-share", "ui-sign-in", "ui-sign-out", "ui-staging", "ui-star-half", "ui-star-off", "ui-stop", "ui-submit", "ui-subscribe", "ui-success", "ui-swap", "ui-team", "ui-unarchive", "ui-unassigned", "ui-undo", "ui-undock", "ui-unlock", "ui-unpin", "ui-unselected", "ui-unsubscribe", "ui-update", "ui-usage", "ui-warning", "ui-watch", "ui-widget", "undo-2", "unlink", "upload", "user", "user-minus", "user-plus", "user-x", "users", "video", "voice-call", "voice-level", "volume-1", "volume-2", "volume-off", "volume-x", "wallet", "wifi-off", "work-faces", "work-results", "workflow", "wrench", "x", "zap"];
120
124
  var FUNCTION_NAMES2 = ["required", "regex", "length", "numeric", "email", "formatString", "formatNumber", "formatCurrency", "formatDate", "pluralize", "openUrl", "and", "or", "not", "percent", "add", "sub", "eq", "lt", "clamp", "cond", "fallback", "concat", "coalesce", "text", "map", "len", "fill", "set", "formatPercent", "formatRelativeTime", "filter", "bind"];
121
125
  var BASIC_COMPONENT_MAP2 = { Text: "Text", Image: "Image", Icon: "Icon", Video: "Video", AudioPlayer: "AudioPlayer", Row: "Stack", Column: "Stack", List: "List", Card: "Card", Tabs: "Tabs", Modal: "Dialog", Divider: "Separator", Button: "Button", TextField: "Input", CheckBox: "Checkbox", ChoicePicker: "Radio", Slider: "Slider", DateTimeInput: "DatePicker" };
122
126
  var BASIC_ICON_MAP2 = { accountCircle: "ui-assignee", add: "ui-add", arrowBack: "ui-back", arrowForward: "ui-arrow-right", attachFile: "ui-attach", calendarToday: "calendar", call: "phone", camera: "camera", check: "ui-check", close: "ui-close", delete: "ui-delete", download: "ui-download", edit: "ui-edit", event: "ui-due-date", error: "ui-error", fastForward: "media-fast-forward", favorite: "heart", favoriteOff: "ui-favorite-off", folder: "ui-folder", help: "ui-help", home: "house", info: "ui-info", locationOn: "map-pin", lock: "ui-private", lockOpen: "ui-unlock", mail: "ui-mail", menu: "ui-menu", moreVert: "ui-more-vertical", moreHoriz: "ui-more", notificationsOff: "ui-unsubscribe", notifications: "ui-subscribe", pause: "run-pause", payment: "credit-card", person: "ui-avatar-placeholder", phone: "smartphone", photo: "image", play: "action-run", print: "ui-print", refresh: "ui-refresh", rewind: "media-rewind", search: "nav-search", send: "ui-send", settings: "nav-settings", share: "ui-share", shoppingCart: "shopping-cart", skipNext: "media-skip-next", skipPrevious: "media-skip-previous", star: "star", starHalf: "ui-star-half", starOff: "ui-star-off", stop: "ui-stop", upload: "sc-push", visibility: "ui-watch", visibilityOff: "ui-hide", volumeDown: "media-volume-down", volumeMute: "media-volume-mute", volumeOff: "media-volume-off", volumeUp: "media-volume-up", warning: "ui-warning" };
123
127
  var BASIC_PLACEHOLDER_ICON2 = "ui-icon-placeholder";
124
128
  // packages/exponential-ui/catalog/strings.json
125
129
  var strings_default = {
126
- $comment: "Round 1 (docs/round-1-contract.md §4): the built-in UI STRINGS every renderer shows — the copy no author writes (a Select's search placeholder, the calendar's month buttons, the copy button, the Pagination arrows' labels). Keys are the ids, values the English defaults. A renderer ships this table (generated into TS/Swift/Kotlin/Rust as STRING_IDS + STRING_DEFAULTS) and lets the HOST override any id per surface (`strings: {search: \"Suchen…\"}`); the catalog refers to an entry as `$string.<id>` in a prop default or a macro template (`$string.previous`), which the renderer resolves at bind time like a token. `{name}` placeholders are filled by the renderer (src/strings.ts formatString; a macro template uses `$fill` → the core `fill` function): a sentence is ONE id with placeholders, never concatenated fragments. Round 2 adds the names the renderers still hard-coded (`invalidValue` = a failed check without a message, `message` = the Composer field, `codeBlock` = an untitled CodeBlock, `dialog` = an untitled Dialog/Drawer, `table` = an uncaptioned Table, `carousel`/`slide` = the carousel's role descriptions, `resize` = a Resizable handle). EXP-1259 adds `closeTab` and `newTab` (the Tabs close glyph and + button). Append-only (round 1 dropped the unused fragment `of`). VAPP-162 adds the call buttons (`mute`, `unmute`, `speaker`, `speakerOff`, `endCall`), the Plan answers (`yes`, `no`), the MessageBubble delivery labels (`sending`, `sent`, `read`) and the QrScanner's `scanQrCode` + `cameraUnavailable`.",
130
+ $comment: "Round 1 (docs/round-1-contract.md §4): the built-in UI STRINGS every renderer shows — the copy no author writes (a Select's search placeholder, the calendar's month buttons, the copy button, the Pagination arrows' labels). Keys are the ids, values the English defaults. A renderer ships this table (generated into TS/Swift/Kotlin/Rust as STRING_IDS + STRING_DEFAULTS) and lets the HOST override any id per surface (`strings: {search: \"Suchen…\"}`); the catalog refers to an entry as `$string.<id>` in a prop default or a macro template (`$string.previous`), which the renderer resolves at bind time like a token. `{name}` placeholders are filled by the renderer (src/strings.ts formatString; a macro template uses `$fill` → the core `fill` function): a sentence is ONE id with placeholders, never concatenated fragments. Round 2 adds the names the renderers still hard-coded (`invalidValue` = a failed check without a message, `message` = the Composer field, `codeBlock` = an untitled CodeBlock, `dialog` = an untitled Dialog/Drawer, `table` = an uncaptioned Table, `carousel`/`slide` = the carousel's role descriptions, `resize` = a Resizable handle). EXP-1259 adds `closeTab` and `newTab` (the Tabs close glyph and + button). Append-only (round 1 dropped the unused fragment `of`). VAPP-162 adds the call buttons (`mute`, `unmute`, `speaker`, `speakerOff`, `endCall`), the Plan answers (`yes`, `no`), the MessageBubble delivery labels (`sending`, `sent`, `read`) and the QrScanner's `scanQrCode` + `cameraUnavailable`. EXP-1586 adds the ZoomableImage pill (`zoomIn`, `zoomOut`, `zoomToFit`, `zoomLevel` = the percent button's label, `zoomFit` = its Menu's Fit row).",
127
131
  strings: {
128
132
  back: "Back",
129
133
  breadcrumb: "Breadcrumb",
@@ -170,6 +174,8 @@ var strings_default = {
170
174
  pageCounter: "{page} / {total}",
171
175
  pageOf: "Page {page} of {total}",
172
176
  pagination: "Pagination",
177
+ pause: "Pause",
178
+ play: "Play",
173
179
  previous: "Previous",
174
180
  previousMonth: "Previous month",
175
181
  ratingStar: "{value} of {max}",
@@ -208,7 +214,12 @@ var strings_default = {
208
214
  unmute: "Unmute",
209
215
  unsupportedFile: "Unsupported file",
210
216
  unsupportedFileNamed: "{name}: Unsupported file",
211
- yes: "Yes"
217
+ yes: "Yes",
218
+ zoomFit: "Fit",
219
+ zoomIn: "Zoom in",
220
+ zoomLevel: "Zoom level",
221
+ zoomOut: "Zoom out",
222
+ zoomToFit: "Zoom to fit"
212
223
  }
213
224
  };
214
225
 
@@ -1085,11 +1096,20 @@ var limits_default = {
1085
1096
  maxMessageBytes: 4194304,
1086
1097
  maxTemplateItems: 1e4,
1087
1098
  maxPointerBytes: 1024,
1088
- maxPointerSegments: 64
1099
+ maxPointerSegments: 64,
1100
+ motion: {
1101
+ $comment: "EXP-1584/1602: the eUI Motion (Lottie) limits, enforced by the one engine (apps/desktop/crates/eui-motion, src/validate.rs Limits) on every renderer through its WASM and uniffi builds. A source past maxBytes (UTF-8 JSON), maxShapes (shape items: objects with a string `ty` inside a layer's `shapes` or a group's `it`) or maxSeconds ((op − ip) / fr) is refused with an issue (`limit-bytes`, `limit-shapes`, `limit-duration`; expressions are refused too: `expression`); maxVertices = path vertices in one sampled frame (checked per frame by the player, not by the validator); maxFps = the highest frame rate a player samples at; maxPlayingPerSurface = Motion components one surface animates at once. Cases: fixtures/motion-validate.json.",
1102
+ maxBytes: 2097152,
1103
+ maxShapes: 5000,
1104
+ maxVertices: 1e5,
1105
+ maxSeconds: 120,
1106
+ maxFps: 60,
1107
+ maxPlayingPerSurface: 8
1108
+ }
1089
1109
  };
1090
1110
 
1091
1111
  // packages/exponential-ui/src/limits.ts
1092
- var LIMITS2 = Object.fromEntries(Object.entries(limits_default).filter(([k]) => !k.startsWith(`$`)));
1112
+ var LIMITS2 = Object.fromEntries(Object.entries(limits_default).filter(([k, v]) => !k.startsWith(`$`) && typeof v === `number`));
1093
1113
  var MAX_COMPONENTS2 = limits_default.maxComponents;
1094
1114
  var MAX_DEPTH2 = limits_default.maxDepth;
1095
1115
  var MAX_MESSAGE_BYTES2 = limits_default.maxMessageBytes;
@@ -4678,5 +4698,5 @@ class McpTransport2 {
4678
4698
  }
4679
4699
  export { CATALOG_ID2, LITE_CATALOG_ID2, BASIC_CATALOG_ID2, BASIC_VERSION2, CATALOG_VERSION2, UNKNOWN_COMPONENT_NAME2, COMPONENT_NAMES2, NATIVE_COMPONENTS2, MACRO_COMPONENTS2, LITE_COMPONENTS2, COMPONENT_GROUPS2, SPECIMEN_IDS2, ENUMS2, TOKEN_NAMES2, STYLE_KEY_NAMES2, STYLE_STATE_NAMES2, ICON_NAMES2, FUNCTION_NAMES2, BASIC_COMPONENT_MAP2, BASIC_ICON_MAP2, BASIC_PLACEHOLDER_ICON2, DEFAULT_STRINGS2, STRING_IDS2, parseStringRef2, isStringRef2, stringTable2, formatString2, resolveString2, locale_default, displayString2, currencyDigits2, parseDateValue2, formatPattern2, ENGLISH_DATE_PATTERNS2, ENGLISH_TIME_PATTERN2, ENGLISH_DATE_TIME_JOIN2, fixedOffset2, intlZoneOffset2, relativeTimeUnit2, englishFormatter2, intlFormatter2, FORMAT_FUNCTION_NAMES2, formatFunctions2, ENGLISH_FORMAT_FUNCTIONS2, isBinding2, isCall2, isDynamic2, truthy2, valuesEqual2, clampNumber2, fillTemplate2, evalExpr2, evalConditionValue2, evalCondition2, evalValue2, percent2, filterItems2, CORE_FUNCTIONS2, CORE_FUNCTION_NAMES2, LIMITS2, MAX_COMPONENTS2, MAX_DEPTH2, MAX_MESSAGE_BYTES2, MAX_TEMPLATE_ITEMS2, MAX_POINTER_BYTES2, MAX_POINTER_SEGMENTS2, LIMIT_ISSUES2, absolutePath2, hasItem2, readPath2, readPointer2, writeTokens2, POINTER_ISSUES2, writePointer2, BIND_FUNCTIONS2, BIND_FUNCTION_NAMES2, resolveDynamic2, isVisible2, withOwnWrites2, submitClosesOverlay2, runAction2, isDataSchema2, resolveProp2, resolveNodeProps2, hasRowSlots2, rowScope2, bindRowSlot2, sectionScope2, bindSectionHeader2, bindTree2, treeGuides2, isRowRoot2, applyTreeGuides2, BREAKPOINTS2, isResponsiveValue2, responsiveAt2, propsAt2, expandMacros2, isCallableName2, validateNode2, validateProps2, basicMap2, mapBasicIcon2, mapBasicComponent2, BASIC_TRANSFORM_NAMES2, RESERVED_KEYS2, validVisible2, childTemplate2, reduceSurface2, slotAllowed2, reduceNested2, preorder2, BUILTIN_FUNCTIONS2, matchesPattern2, decideFunction2, combineDecisions2, packagePolicy2, isPrivateHost2, decideUrl2, mediaRequest2, safeHref2, sortKeys2, imageDimensions2, svgDimensions2, imageFrames2, mediaImageWithinLimits2, parseSource2, sourceWithParams2, JsonlDecoder2, decodeJsonl2, SseDecoder2, messagesFromMcpResult2, mcpActionCall2, RECORD_KIND_PATTERN2, RECORD_RESERVED_KEYS2, RECORD_FIELD_TYPES2, RECORD_ITEM_TYPES2, RECORD_FORMATS2, validateRecordSchema2, validateRecord2, RECORDS_SCHEME2, RECORDS_FUNCTIONS2, RECORDS_QUERY2, RECORDS_RESERVED_PARAMS2, parseRecordsSource2, recordsValue2, MemoryRecordStore2, recordsHost2, PACKAGE_FILE_SIGNATURE_CONTEXT2, PACKAGE_FILE_SIGNATURE_ALG2, AUTHOR_KEY_PREFIX2, AUTHOR_NAME_MAX2, canonicalJson2, packageFileSignedBytes2, base64UrlEncode2, base64UrlDecode2, authorPublicKey2, signPackageFile2, verifyPackageFile2, TOOL_ID_PATTERN2, TOOL_KINDS2, validateTools2, toolConsent2, toolConsentKey2, toolCall2, EXPOSES_LIMITS2, EXPOSE_RUN_KINDS2, exposeTemplatePaths2, exposeActionAccess2, exposeNameDestructive2, validateUpstreams2, exposeIssues2, validatePackageExposes2, PACKAGE_FORMAT_VERSION2, supportedCatalogIds2, clientCapabilities2, availableExtensions2, versionSatisfies2, validatePackage2, sourceAllowed2, templateMessages2, mergeData2, HostRouter2, normalizePath2, PackageError2, resolveSurfaceTheme2, SurfaceStore2, ExponentialHost2, MemoryTransport2, JsonlStreamTransport2, SseTransport2, WebSocketTransport2, McpTransport2 };
4680
4700
 
4681
- //# debugId=6B9F22BC0C90043D64756E2164756E21
4682
- //# sourceMappingURL=index-4z7f2bp1.js.map
4701
+ //# debugId=D45ACF1E76F349B864756E2164756E21
4702
+ //# sourceMappingURL=index-4xczxey5.js.map