@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.
- package/catalog/a11y.json +25 -1
- package/catalog/core.catalog.json +426 -6
- package/catalog/core.schema.json +634 -4
- package/catalog/host.json +10 -0
- package/catalog/layout.json +3 -2
- package/catalog/limits.json +10 -1
- package/catalog/macros.json +542 -1
- package/catalog/recipes.json +4 -2
- package/catalog/strings.json +14 -2
- package/catalog/style.json +21 -0
- package/catalog/theme.schema.json +3950 -1337
- package/conformance/manifest.json +5 -5
- package/conformance/motion/build-corpus.ts +232 -0
- package/conformance/motion/corpus/SOURCES.md +117 -0
- package/conformance/motion/corpus/images/footage_0.json +1 -0
- package/conformance/motion/corpus/images/img_0.jpg +0 -0
- package/conformance/motion/corpus/images/img_1.jpg +0 -0
- package/conformance/motion/corpus/images/triangle.png +0 -0
- package/conformance/motion/corpus/skottie-3d-parenting-nocamera.json +367 -0
- package/conformance/motion/corpus/skottie-auto-orient-2.json +292 -0
- package/conformance/motion/corpus/skottie-auto-orient.json +717 -0
- package/conformance/motion/corpus/skottie-bezier-extranormal.json +199 -0
- package/conformance/motion/corpus/skottie-blendmode-hardmix.json +558 -0
- package/conformance/motion/corpus/skottie-chained-mattes.json +259 -0
- package/conformance/motion/corpus/skottie-dropshadow-ramp.json +852 -0
- package/conformance/motion/corpus/skottie-dropshadow-style.json +278 -0
- package/conformance/motion/corpus/skottie-effects-transform.json +385 -0
- package/conformance/motion/corpus/skottie-fill-effect.json +358 -0
- package/conformance/motion/corpus/skottie-fill-rule.json +457 -0
- package/conformance/motion/corpus/skottie-gaussian-blur.json +670 -0
- package/conformance/motion/corpus/skottie-gradient-opacity.json +451 -0
- package/conformance/motion/corpus/skottie-gradient-radial-highlight.json +581 -0
- package/conformance/motion/corpus/skottie-hidden-shapes-layers.json +381 -0
- package/conformance/motion/corpus/skottie-huesaturation-effect.json +1117 -0
- package/conformance/motion/corpus/skottie-invert-effect.json +665 -0
- package/conformance/motion/corpus/skottie-luma-matte.json +239 -0
- package/conformance/motion/corpus/skottie-mask-feather.json +892 -0
- package/conformance/motion/corpus/skottie-masking-opaque.json +2376 -0
- package/conformance/motion/corpus/skottie-masking-translucent.json +2376 -0
- package/conformance/motion/corpus/skottie-matte-blendmode.json +196 -0
- package/conformance/motion/corpus/skottie-matte-nonsequential.json +722 -0
- package/conformance/motion/corpus/skottie-matte-visible.json +666 -0
- package/conformance/motion/corpus/skottie-mergepaths-effect.json +722 -0
- package/conformance/motion/corpus/skottie-motion-blur-mask.json +120 -0
- package/conformance/motion/corpus/skottie-nested-animation.json +253 -0
- package/conformance/motion/corpus/skottie-offsetpaths-effect.json +525 -0
- package/conformance/motion/corpus/skottie-phonehub-connecting.json +947 -0
- package/conformance/motion/corpus/skottie-puckerbloat-effect.json +339 -0
- package/conformance/motion/corpus/skottie-repeater.json +234 -0
- package/conformance/motion/corpus/skottie-sample-1.json +168 -0
- package/conformance/motion/corpus/skottie-sample-search.json +329 -0
- package/conformance/motion/corpus/skottie-spatial-supernormal.json +898 -0
- package/conformance/motion/corpus/skottie-text-animator-1.json +1286 -0
- package/conformance/motion/corpus/skottie-text-fill-over-stroke.json +1014 -0
- package/conformance/motion/corpus/skottie-text-tracking.json +950 -0
- package/conformance/motion/corpus/skottie-text-valign.json +484 -0
- package/conformance/motion/corpus/skottie-time-reverse.json +297 -0
- package/conformance/motion/corpus/skottie-transform-skew.json +290 -0
- package/conformance/motion/corpus/skottie-trimpath-fill.json +933 -0
- package/conformance/motion/corpus/skottie-trimpath-modes.json +266 -0
- package/conformance/motion/corpus/skottie-tritone-effect.json +379 -0
- package/conformance/motion/corpus/spec-blend-mode.json +531 -0
- package/conformance/motion/corpus/spec-ellipse.json +142 -0
- package/conformance/motion/corpus/spec-fill.json +193 -0
- package/conformance/motion/corpus/spec-gradient-stroke.json +1263 -0
- package/conformance/motion/corpus/spec-gradient.json +1255 -0
- package/conformance/motion/corpus/spec-mask.json +773 -0
- package/conformance/motion/corpus/spec-masks.json +676 -0
- package/conformance/motion/corpus/spec-matte.json +390 -0
- package/conformance/motion/corpus/spec-metadata.json +1 -0
- package/conformance/motion/corpus/spec-path.json +177 -0
- package/conformance/motion/corpus/spec-pucker-bloat.json +179 -0
- package/conformance/motion/corpus/spec-rectangle.json +145 -0
- package/conformance/motion/corpus/spec-rounded-corners.json +187 -0
- package/conformance/motion/corpus/spec-slots.json +325 -0
- package/conformance/motion/corpus/spec-star.json +159 -0
- package/conformance/motion/corpus/spec-stroke.json +156 -0
- package/conformance/motion/corpus/spec-test-ellipse-xy-pos.json +141 -0
- package/conformance/motion/corpus/spec-test-gradient-fill.json +1 -0
- package/conformance/motion/corpus/spec-test-gradient-stroke.json +229 -0
- package/conformance/motion/corpus/spec-test-unknown-shape.json +63 -0
- package/conformance/motion/corpus/spec-time-remap.json +1090 -0
- package/conformance/motion/corpus/spec-time-stretch.json +594 -0
- package/conformance/motion/corpus/spec-transform.json +273 -0
- package/conformance/motion/corpus/spec-trim-path.json +209 -0
- package/conformance/motion/corpus/web-adrock.json +1 -0
- package/conformance/motion/corpus/web-bacon.json +1 -0
- package/conformance/motion/corpus/web-banner.json +1 -0
- package/conformance/motion/corpus/web-bodymovin.json +1 -0
- package/conformance/motion/corpus/web-dalek.json +1 -0
- package/conformance/motion/corpus/web-footage-data.json +1 -0
- package/conformance/motion/corpus/web-lights.json +1 -0
- package/conformance/motion/corpus/web-ripple.json +1 -0
- package/conformance/motion/corpus/web-starfish.json +1 -0
- package/conformance/motion/known-gaps.json +35 -0
- package/conformance/motion/parity/group-transforms-parenting@0.png +0 -0
- package/conformance/motion/parity/group-transforms-parenting@10.png +0 -0
- package/conformance/motion/parity/hidden-unknown-inactive@0.png +0 -0
- package/conformance/motion/parity/keyframes-transform@0.png +0 -0
- package/conformance/motion/parity/keyframes-transform@10.png +0 -0
- package/conformance/motion/parity/keyframes-transform@15.png +0 -0
- package/conformance/motion/parity/keyframes-transform@5.png +0 -0
- package/conformance/motion/parity/layer-opacity-blend@0.png +0 -0
- package/conformance/motion/parity/linear-gradient@0.png +0 -0
- package/conformance/motion/parity/masks-modes@0.png +0 -0
- package/conformance/motion/parity/matte-alpha@0.png +0 -0
- package/conformance/motion/parity/matte-luma@0.png +0 -0
- package/conformance/motion/parity/matte-parent-tp@0.png +0 -0
- package/conformance/motion/parity/path-evenodd@0.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@0.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@15.png +0 -0
- package/conformance/motion/parity/precomp-clip-offset@5.png +0 -0
- package/conformance/motion/parity/radial-gradient-highlight@0.png +0 -0
- package/conformance/motion/parity/rect-solid-fill@0.png +0 -0
- package/conformance/motion/parity/repeater@0.png +0 -0
- package/conformance/motion/parity/rounded-rect-ellipse@0.png +0 -0
- package/conformance/motion/parity/solid-and-image@0.png +0 -0
- package/conformance/motion/parity/split-position-skew@0.png +0 -0
- package/conformance/motion/parity/split-position-skew@10.png +0 -0
- package/conformance/motion/parity/star-polygon@0.png +0 -0
- package/conformance/motion/parity/stroke-caps-joins@0.png +0 -0
- package/conformance/motion/parity/stroke-dashes@0.png +0 -0
- package/conformance/motion/parity/stroke-dashes@10.png +0 -0
- package/conformance/motion/parity/time-remap@0.png +0 -0
- package/conformance/motion/parity/time-remap@10.png +0 -0
- package/conformance/motion/parity/time-remap@19.png +0 -0
- package/conformance/motion/parity/time-stretch@0.png +0 -0
- package/conformance/motion/parity/time-stretch@10.png +0 -0
- package/conformance/motion/parity/trim-individually@0.png +0 -0
- package/conformance/motion/parity/trim-path@0.png +0 -0
- package/conformance/motion/parity/trim-path@10.png +0 -0
- package/conformance/motion/refs/index.json +688 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@0.png +0 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@150.png +0 -0
- package/conformance/motion/refs/skottie-3d-parenting-nocamera@270.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@0.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@210.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient-2@378.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@0.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@300.png +0 -0
- package/conformance/motion/refs/skottie-auto-orient@540.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@0.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@150.png +0 -0
- package/conformance/motion/refs/skottie-bezier-extranormal@270.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@0.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@150.png +0 -0
- package/conformance/motion/refs/skottie-blendmode-hardmix@270.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@0.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@300.png +0 -0
- package/conformance/motion/refs/skottie-chained-mattes@540.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@0.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@135.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-ramp@75.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@0.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@300.png +0 -0
- package/conformance/motion/refs/skottie-dropshadow-style@540.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@0.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@450.png +0 -0
- package/conformance/motion/refs/skottie-effects-transform@810.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-fill-effect@540.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@0.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@150.png +0 -0
- package/conformance/motion/refs/skottie-fill-rule@270.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@0.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@150.png +0 -0
- package/conformance/motion/refs/skottie-gaussian-blur@270.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@0.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@150.png +0 -0
- package/conformance/motion/refs/skottie-gradient-opacity@270.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@0.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@135.png +0 -0
- package/conformance/motion/refs/skottie-gradient-radial-highlight@75.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@0.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@150.png +0 -0
- package/conformance/motion/refs/skottie-hidden-shapes-layers@270.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@30.png +0 -0
- package/conformance/motion/refs/skottie-huesaturation-effect@54.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-invert-effect@540.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@0.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@150.png +0 -0
- package/conformance/motion/refs/skottie-luma-matte@270.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@0.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@150.png +0 -0
- package/conformance/motion/refs/skottie-mask-feather@270.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@0.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@135.png +0 -0
- package/conformance/motion/refs/skottie-masking-opaque@75.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@0.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@135.png +0 -0
- package/conformance/motion/refs/skottie-masking-translucent@75.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-blendmode@270.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-nonsequential@270.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@0.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@150.png +0 -0
- package/conformance/motion/refs/skottie-matte-visible@270.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@210.png +0 -0
- package/conformance/motion/refs/skottie-mergepaths-effect@378.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@0.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@150.png +0 -0
- package/conformance/motion/refs/skottie-motion-blur-mask@270.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@0.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@300.png +0 -0
- package/conformance/motion/refs/skottie-nested-animation@540.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@150.png +0 -0
- package/conformance/motion/refs/skottie-offsetpaths-effect@270.png +0 -0
- package/conformance/motion/refs/skottie-phonehub-connecting@0.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@210.png +0 -0
- package/conformance/motion/refs/skottie-puckerbloat-effect@378.png +0 -0
- package/conformance/motion/refs/skottie-repeater@0.png +0 -0
- package/conformance/motion/refs/skottie-repeater@300.png +0 -0
- package/conformance/motion/refs/skottie-repeater@540.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@0.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@100.png +0 -0
- package/conformance/motion/refs/skottie-sample-1@180.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@0.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@27.png +0 -0
- package/conformance/motion/refs/skottie-sample-search@48.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@0.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@200.png +0 -0
- package/conformance/motion/refs/skottie-spatial-supernormal@360.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@0.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@150.png +0 -0
- package/conformance/motion/refs/skottie-text-animator-1@270.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@0.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@210.png +0 -0
- package/conformance/motion/refs/skottie-text-fill-over-stroke@378.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@0.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@108.png +0 -0
- package/conformance/motion/refs/skottie-text-tracking@60.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@0.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@150.png +0 -0
- package/conformance/motion/refs/skottie-text-valign@270.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@0.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@300.png +0 -0
- package/conformance/motion/refs/skottie-time-reverse@540.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@0.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@300.png +0 -0
- package/conformance/motion/refs/skottie-transform-skew@540.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@0.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@300.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-fill@540.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@0.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@300.png +0 -0
- package/conformance/motion/refs/skottie-trimpath-modes@540.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@0.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@300.png +0 -0
- package/conformance/motion/refs/skottie-tritone-effect@540.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@0.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@162.png +0 -0
- package/conformance/motion/refs/spec-blend-mode@90.png +0 -0
- package/conformance/motion/refs/spec-ellipse@0.png +0 -0
- package/conformance/motion/refs/spec-ellipse@162.png +0 -0
- package/conformance/motion/refs/spec-ellipse@90.png +0 -0
- package/conformance/motion/refs/spec-fill@0.png +0 -0
- package/conformance/motion/refs/spec-fill@162.png +0 -0
- package/conformance/motion/refs/spec-fill@90.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@162.png +0 -0
- package/conformance/motion/refs/spec-gradient-stroke@90.png +0 -0
- package/conformance/motion/refs/spec-gradient@0.png +0 -0
- package/conformance/motion/refs/spec-gradient@162.png +0 -0
- package/conformance/motion/refs/spec-gradient@90.png +0 -0
- package/conformance/motion/refs/spec-mask@0.png +0 -0
- package/conformance/motion/refs/spec-mask@300.png +0 -0
- package/conformance/motion/refs/spec-mask@540.png +0 -0
- package/conformance/motion/refs/spec-masks@0.png +0 -0
- package/conformance/motion/refs/spec-masks@135.png +0 -0
- package/conformance/motion/refs/spec-masks@75.png +0 -0
- package/conformance/motion/refs/spec-matte@0.png +0 -0
- package/conformance/motion/refs/spec-matte@162.png +0 -0
- package/conformance/motion/refs/spec-matte@90.png +0 -0
- package/conformance/motion/refs/spec-metadata@0.png +0 -0
- package/conformance/motion/refs/spec-metadata@162.png +0 -0
- package/conformance/motion/refs/spec-metadata@90.png +0 -0
- package/conformance/motion/refs/spec-path@0.png +0 -0
- package/conformance/motion/refs/spec-path@162.png +0 -0
- package/conformance/motion/refs/spec-path@90.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@0.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@162.png +0 -0
- package/conformance/motion/refs/spec-pucker-bloat@90.png +0 -0
- package/conformance/motion/refs/spec-rectangle@0.png +0 -0
- package/conformance/motion/refs/spec-rectangle@162.png +0 -0
- package/conformance/motion/refs/spec-rectangle@90.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@0.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@162.png +0 -0
- package/conformance/motion/refs/spec-rounded-corners@90.png +0 -0
- package/conformance/motion/refs/spec-slots@0.png +0 -0
- package/conformance/motion/refs/spec-slots@450.png +0 -0
- package/conformance/motion/refs/spec-slots@810.png +0 -0
- package/conformance/motion/refs/spec-star@0.png +0 -0
- package/conformance/motion/refs/spec-star@162.png +0 -0
- package/conformance/motion/refs/spec-star@90.png +0 -0
- package/conformance/motion/refs/spec-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-stroke@162.png +0 -0
- package/conformance/motion/refs/spec-stroke@90.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@0.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@162.png +0 -0
- package/conformance/motion/refs/spec-test-ellipse-xy-pos@90.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@0.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@30.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-fill@54.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@0.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@30.png +0 -0
- package/conformance/motion/refs/spec-test-gradient-stroke@54.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@0.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@162.png +0 -0
- package/conformance/motion/refs/spec-test-unknown-shape@90.png +0 -0
- package/conformance/motion/refs/spec-time-remap@0.png +0 -0
- package/conformance/motion/refs/spec-time-remap@300.png +0 -0
- package/conformance/motion/refs/spec-time-remap@540.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@0.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@300.png +0 -0
- package/conformance/motion/refs/spec-time-stretch@540.png +0 -0
- package/conformance/motion/refs/spec-transform@0.png +0 -0
- package/conformance/motion/refs/spec-transform@162.png +0 -0
- package/conformance/motion/refs/spec-transform@90.png +0 -0
- package/conformance/motion/refs/spec-trim-path@0.png +0 -0
- package/conformance/motion/refs/spec-trim-path@162.png +0 -0
- package/conformance/motion/refs/spec-trim-path@90.png +0 -0
- package/conformance/motion/refs/web-adrock@0.png +0 -0
- package/conformance/motion/refs/web-adrock@10.png +0 -0
- package/conformance/motion/refs/web-adrock@18.png +0 -0
- package/conformance/motion/refs/web-bacon@0.png +0 -0
- package/conformance/motion/refs/web-bacon@126.png +0 -0
- package/conformance/motion/refs/web-bacon@70.png +0 -0
- package/conformance/motion/refs/web-banner@0.png +0 -0
- package/conformance/motion/refs/web-banner@301.png +0 -0
- package/conformance/motion/refs/web-banner@542.png +0 -0
- package/conformance/motion/refs/web-bodymovin@0.png +0 -0
- package/conformance/motion/refs/web-bodymovin@51.png +0 -0
- package/conformance/motion/refs/web-bodymovin@92.png +0 -0
- package/conformance/motion/refs/web-dalek@0.png +0 -0
- package/conformance/motion/refs/web-dalek@145.png +0 -0
- package/conformance/motion/refs/web-dalek@261.png +0 -0
- package/conformance/motion/refs/web-footage-data@0.png +0 -0
- package/conformance/motion/refs/web-footage-data@180.png +0 -0
- package/conformance/motion/refs/web-footage-data@324.png +0 -0
- package/conformance/motion/refs/web-lights@0.png +0 -0
- package/conformance/motion/refs/web-lights@150.png +0 -0
- package/conformance/motion/refs/web-lights@270.png +0 -0
- package/conformance/motion/refs/web-ripple@0.png +0 -0
- package/conformance/motion/refs/web-ripple@180.png +0 -0
- package/conformance/motion/refs/web-ripple@324.png +0 -0
- package/conformance/motion/refs/web-starfish@0.png +0 -0
- package/conformance/motion/refs/web-starfish@150.png +0 -0
- package/conformance/motion/refs/web-starfish@270.png +0 -0
- package/conformance/motion/render-refs.ts +126 -0
- package/conformance/motion/report.json +1367 -0
- package/conformance/motion/web-parity-gaps.json +12 -0
- package/conformance/motion-parity-entry.ts +3 -0
- package/conformance/motion-parity.ts +101 -0
- package/dist/chunks/{index-gtk2gwsb.js → index-4xczxey5.js} +187 -40
- package/dist/chunks/{index-gtk2gwsb.js.map → index-4xczxey5.js.map} +7 -6
- package/dist/chunks/{index-62yzr94z.js → index-5sjj5p84.js} +270 -8
- package/dist/chunks/{index-62yzr94z.js.map → index-5sjj5p84.js.map} +2 -2
- package/dist/chunks/{index-fy7y2nz8.js → index-cvf7bbs5.js} +23 -2
- package/dist/chunks/{index-fy7y2nz8.js.map → index-cvf7bbs5.js.map} +1 -1
- package/dist/chunks/index-dgkf6yw5.js +48 -0
- package/dist/chunks/index-dgkf6yw5.js.map +10 -0
- package/dist/chunks/{index-5fmaa0xq.js → index-f9wkb6aq.js} +851 -36
- package/dist/chunks/{index-5fmaa0xq.js.map → index-f9wkb6aq.js.map} +2 -2
- package/dist/chunks/index-t2mwfbb6.js +1515 -0
- package/dist/chunks/index-t2mwfbb6.js.map +15 -0
- package/dist/chunks/{index-bg2jsgjq.js → index-vkn82srs.js} +479 -10
- package/dist/chunks/{index-bg2jsgjq.js.map → index-vkn82srs.js.map} +2 -2
- package/dist/chunks/wasm-ctcc3cma.js +424 -0
- package/dist/chunks/wasm-ctcc3cma.js.map +11 -0
- package/dist/conformance.js +10941 -563
- package/dist/conformance.js.map +2 -2
- package/dist/entries/prompt.js +2 -2
- package/dist/entries/schema.js +3 -3
- package/dist/host/index.js +20 -4
- package/dist/host/index.js.map +1 -1
- package/dist/index.js +364 -99
- package/dist/index.js.map +4 -4
- package/dist/types/src/catalog.generated.d.ts +71 -5
- package/dist/types/src/host/contract.d.ts +17 -0
- package/dist/types/src/host/exposes.d.ts +68 -0
- package/dist/types/src/host/index.d.ts +1 -0
- package/dist/types/src/host/package.d.ts +8 -0
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/layout.d.ts +2 -0
- package/dist/types/src/limits.d.ts +1 -0
- package/dist/types/src/motion/index.d.ts +1 -0
- package/dist/types/src/motion/server.d.ts +9 -0
- package/dist/types/src/motion/wasm.d.ts +11 -0
- package/dist/types/src/web/coerce.d.ts +3 -0
- package/dist/types/src/web/focus.d.ts +8 -0
- package/dist/types/src/web/index.d.ts +5 -2
- package/dist/types/src/web/primitives/carousel.d.ts +17 -0
- package/dist/types/src/web/primitives/dock.d.ts +5 -2
- package/dist/types/src/web/primitives/index.d.ts +5 -0
- package/dist/types/src/web/primitives/mosaic.d.ts +30 -0
- package/dist/types/src/web/primitives/motion-paint.d.ts +36 -0
- package/dist/types/src/web/primitives/motion.d.ts +162 -0
- package/dist/types/src/web/primitives/outline.d.ts +22 -0
- package/dist/types/src/web/primitives/zoomable-image.d.ts +158 -0
- package/dist/types/src/web/table.d.ts +8 -0
- package/dist/types/src/zoom.d.ts +128 -0
- package/dist/types/wasm/motion/bytes.d.ts +1 -0
- package/dist/web/index.js +171 -230
- package/dist/web/index.js.map +9 -10
- package/dist/web/primitives/index.js +641 -6
- package/dist/web/primitives/index.js.map +9 -5
- package/docs/components.generated.json +542 -5
- package/docs/package-format.md +56 -1
- package/docs/round-6-contract.md +110 -0
- package/docs/themes.generated.json +66 -2
- package/fixtures/bind-time.json +1468 -0
- package/fixtures/catalog-components.json +1026 -16
- package/fixtures/catalog-macros.json +1279 -157
- package/fixtures/conformance-baseline.json +48893 -47200
- package/fixtures/conformance-known.json +140 -134
- package/fixtures/host-router.json +539 -1
- package/fixtures/kitchen-sink.expanded.json +686 -1
- package/fixtures/kitchen-sink.json +102 -1
- package/fixtures/layout-geometry-round1.json +42 -42
- package/fixtures/motion-frames.json +2618 -0
- package/fixtures/motion-playback.json +528 -0
- package/fixtures/motion-state.json +722 -0
- package/fixtures/motion-validate.json +138 -0
- package/fixtures/primitive-specimens.json +4 -0
- package/fixtures/prompt-budget.json +16 -16
- package/fixtures/specimens.json +839 -21
- package/fixtures/theme-recipes.json +32808 -28396
- package/fixtures/theme-resolved.json +2114 -286
- package/fixtures/zoom.json +1382 -0
- package/generated/ExponentialUICatalog.generated.kt +21 -21
- package/generated/ExponentialUICatalog.generated.swift +21 -21
- package/generated/ExponentialUIThemes.generated.kt +7 -7
- package/generated/ExponentialUIThemes.generated.swift +7 -7
- package/generated/catalog.descriptions.generated.rs +1 -1
- package/generated/catalog.generated.rs +30 -30
- package/generated/catalog.themes.generated.rs +8 -8
- package/generated/core.descriptions.json +267 -5
- package/generated/core.runtime.json +275 -1
- package/package.json +1 -1
- package/themes/neutral.theme.json +460 -3
- package/dist/chunks/index-t6qz1770.js +0 -95
- package/dist/chunks/index-t6qz1770.js.map +0 -11
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Exponential UI — round 6 contract (EXP-1495)
|
|
2
|
+
|
|
3
|
+
Round 6 adds the low-level pieces THE plan page (#EXP-1493,
|
|
4
|
+
`packages/domain-contract/fixtures/plan-page.json`) needs: an anchor list, a
|
|
5
|
+
wide picture group, and a counter + thumbnail strip on the Carousel. This
|
|
6
|
+
file is the CONTRACT half: what changed in `@exponential_app/eui` and what
|
|
7
|
+
each renderer implements to match. Everything here is locked by a fixture
|
|
8
|
+
or a test.
|
|
9
|
+
|
|
10
|
+
## 0. What moved
|
|
11
|
+
|
|
12
|
+
| area | change | source of truth | locked by |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| `Outline` | NEW macro (navigation, lite): `items` (`outlineItem` {id, title, count}), `value` (the active id, bindable, two-way), `caption`; event `select {id}` | `core.catalog.json`, `macros.json`, neutral recipes | `catalog-macros.json`, `bind-time.json` |
|
|
15
|
+
| `Mosaic` | NEW macro (media, not lite): `pictures` (`picture` {src, alt}), `label`; event `select {index}` | same | `catalog-macros.json` |
|
|
16
|
+
| `Carousel` | `counter` (boolean) + `thumbnails` (array of url); parts `counter`, `thumbnails`, `thumbnail` (state `selected`), recipe prop `counter` | `core.catalog.json`, `recipes.json`, neutral recipes | `catalog-components.json`, `theme-recipes.json`, the kitchen sink |
|
|
17
|
+
| strings | `morePictures` (`+{count}`), `morePicturesLabel` (`{alt}, {count} more`), `outline`, `outlineRow` (`{title}, {count}`), `pageCounter` (`{page} / {total}`) | `strings.json` | generated STRING tables |
|
|
18
|
+
| kitchen sink | + Outline (after the Breadcrumb), Mosaic (4 pictures, after the Carousel); the Carousel gains `counter: true` + two thumbnails | `kitchen-sink.json` | `kitchen-sink.expanded.json` |
|
|
19
|
+
| web primitives | `OUTLINE_CLASSES`/`OUTLINE_GEOMETRY`/`outlineCountText`, `MOSAIC_CLASSES`/`MOSAIC_GEOMETRY`/`mosaicTiles`, `CAROUSEL_CLASSES`/`CAROUSEL_GEOMETRY`/`carouselCounterText` | `src/web/primitives/{outline,mosaic,carousel}.ts` | `recipes.test.ts` (no class literal in the React/Solid twins) |
|
|
20
|
+
|
|
21
|
+
Counts: 89 offered components (49 natives, 40 macros; 62 lite),
|
|
22
|
+
+ the hidden TreeGuides and Unknown. Prompt budget 7,900 → 8,034 tokens
|
|
23
|
+
(a named exception: the measured total, no slack).
|
|
24
|
+
|
|
25
|
+
## 1. Outline
|
|
26
|
+
|
|
27
|
+
THE plan page's left column (plan-page.json `layout.outlineRowHeight` 32,
|
|
28
|
+
`outlineActiveBar` 2). Parts: `root` (column, gap xxs; role navigation
|
|
29
|
+
labelled `caption`, else `$string.outline`) → `caption` (Text caption, one
|
|
30
|
+
line, hidden from AT; neutral: 11/16 medium, letter spacing 0.5, UPPERCASE,
|
|
31
|
+
muted, padded sm × xs) → per item `row` (a pressable Box, row, centred,
|
|
32
|
+
gap xs, `$control.rowCompact` (32) tall, padding-x sm, relative, clipping;
|
|
33
|
+
role link labelled `title` (+ `, count` via `$string.outlineRow`),
|
|
34
|
+
`current: location` on the active row; `$recipe` `active` = `item.id ==
|
|
35
|
+
value`; press → `select {id}`, and with a bound `value` the `$set` writes
|
|
36
|
+
the id back) → `bar` (only on the active row: absolute, inset-inline-start 0,
|
|
37
|
+
top/bottom 0, 2 px wide; neutral: foreground) → `title` (Text, one line,
|
|
38
|
+
flex 1; neutral: sm muted, active = foreground medium) → `count` (only when
|
|
39
|
+
`count` > 0: caption `· n`, muted, hidden from AT). Neutral row: radius sm,
|
|
40
|
+
hover = accent, active = accent. No `value` (or none matching) = no active
|
|
41
|
+
row. Scroll-spy stays in the HOST: it binds `value` to the section in view.
|
|
42
|
+
|
|
43
|
+
## 2. Mosaic
|
|
44
|
+
|
|
45
|
+
THE wide picture group (plan-page.json `mosaicTiles` + `mosaic`). No
|
|
46
|
+
`$each`: the macro addresses `props.pictures.0/1/2` directly (the TS and Rust
|
|
47
|
+
`lookup` index arrays by a numeric segment). Parts: `root` (row, full width,
|
|
48
|
+
`aspectRatio` 1.6; role group labelled `label`; neutral gap 10) →
|
|
49
|
+
`lead` (picture 0: 1 picture = the whole group, 2 = a half (flex 1), 3+ =
|
|
50
|
+
`flexBasis` 60 %, no grow/shrink; `$recipe size` large|half) → `pair`
|
|
51
|
+
(picture 1, ONLY when exactly 2: flex 1, `size` half) → `side` (3+ only:
|
|
52
|
+
column, flex 1, neutral gap 10) → `top` (picture 1) + `bottom` (picture 2,
|
|
53
|
+
both flex 1, `size` small) → `more` (on `bottom` when 4+: absolute inset 0,
|
|
54
|
+
centred; neutral fill `#0000008c` = black 0.55) → `moreLabel` (Text
|
|
55
|
+
`$string.morePictures` = `+{count}`, count = n − 3; neutral white xl
|
|
56
|
+
semibold). Every tile = a pressable Box (relative, clipping, min 0; role
|
|
57
|
+
button labelled the picture's `alt`, the `+N` tile `$string.morePicturesLabel`)
|
|
58
|
+
holding `image` (Image `fit: cover`, absolute inset 0, 100 % × 100 %, hidden
|
|
59
|
+
from AT); press → `select {index}` (0, 1 or 2; the host opens its lightbox
|
|
60
|
+
over every picture). Neutral tile: radius lg (10), hairline border, muted
|
|
61
|
+
fill under the picture, hover opacity 0.92. An empty `pictures` = an empty
|
|
62
|
+
group box (hosts draw none).
|
|
63
|
+
|
|
64
|
+
## 3. Carousel `counter` and `thumbnails`
|
|
65
|
+
|
|
66
|
+
Both only with TWO OR MORE pages (like the controls row).
|
|
67
|
+
|
|
68
|
+
- `counter: true` = a pill over the TRACK's top-END corner (mirrored under
|
|
69
|
+
RTL = top-left), inset `$spacing.sm` (8) from the top and the end edge,
|
|
70
|
+
above the pages (the end corner keeps it off the page's own heading, which
|
|
71
|
+
starts at the top-start corner, like a media gallery's counter), never
|
|
72
|
+
intercepting a press or a swipe: part `counter`, text
|
|
73
|
+
`$string.pageCounter` {page: current + 1, total: n}, hidden from AT (each
|
|
74
|
+
page is already `page i of n`). Neutral: height 20, padding-x sm, radius
|
|
75
|
+
full, fill `#0000008c`, text `#ffffff` xs medium, tabular figures.
|
|
76
|
+
- `thumbnails: [url…]` = a strip under the track, BEFORE the controls row:
|
|
77
|
+
part `thumbnails` (row, neutral gap sm, start-aligned, scrolling sideways
|
|
78
|
+
when it overflows; the current thumbnail scrolled into view), one
|
|
79
|
+
`thumbnail` per PAGE (URLs past the page count are ignored; a missing one
|
|
80
|
+
= the empty muted square): a button 52 × 52 (neutral: radius md, a 2 px
|
|
81
|
+
border, transparent → `$color.foreground` when `selected` = the current
|
|
82
|
+
page, muted fill, opacity 0.7 → 1 when selected or hovered), the picture
|
|
83
|
+
covering it inside the border; a press goes to that page (fires `change
|
|
84
|
+
{page}` like a dot). A11y: each a button `$string.pageOf`, the current
|
|
85
|
+
one `current`/`aria-current`.
|
|
86
|
+
|
|
87
|
+
The Rust core lays both out (`layout_tree` containers: the counter is an
|
|
88
|
+
overlay box of the track, out of flow; the strip a row of fixed 52 × 52
|
|
89
|
+
items between the track and the controls), so FFI/gpui painters read the
|
|
90
|
+
frames; the web renderers lay out with CSS.
|
|
91
|
+
|
|
92
|
+
## 4. Per-renderer checklist
|
|
93
|
+
|
|
94
|
+
Every renderer: replay the regenerated `catalog-components.json`,
|
|
95
|
+
`catalog-macros.json`, `bind-time.json`, `theme-recipes.json`,
|
|
96
|
+
`kitchen-sink*.json`; paint the two new specimens (`exponential-ui-outline`,
|
|
97
|
+
`exponential-ui-mosaic`) and the Carousel extras; re-record what the grown
|
|
98
|
+
kitchen sink moves (baselines, snapshots, bench node counts).
|
|
99
|
+
|
|
100
|
+
- **Macros (Outline, Mosaic)**: nothing to paint beyond Box/Text/Image;
|
|
101
|
+
check the Box `aspectRatio`, `position: absolute` + `inset` and
|
|
102
|
+
`insetInlineStart` paths, Image `fit: cover` inside a sized box.
|
|
103
|
+
- **React / Solid / element**: Carousel counter + strip (CSS), the
|
|
104
|
+
`selected` thumbnail recipe, `change` on a thumbnail press; re-record
|
|
105
|
+
`fixtures/conformance-baseline.json`; the primitive twins `Outline`,
|
|
106
|
+
`Mosaic` (+ the carousel extras) on `@exponential_app/eui/web/primitives`.
|
|
107
|
+
- **Rust core / FFI**: the generated catalog, the Carousel counter + strip
|
|
108
|
+
frames in `layout_tree`, the macro fixtures.
|
|
109
|
+
- **gpui / SwiftUI / Compose**: paint the counter + strip from the core's
|
|
110
|
+
frames and recipes; thumbnail press → `change`; snapshots re-recorded.
|
|
@@ -2627,6 +2627,23 @@
|
|
|
2627
2627
|
"fit"
|
|
2628
2628
|
]
|
|
2629
2629
|
},
|
|
2630
|
+
{
|
|
2631
|
+
"name": "ZoomableImage",
|
|
2632
|
+
"kind": "native",
|
|
2633
|
+
"parts": [
|
|
2634
|
+
"root",
|
|
2635
|
+
"image",
|
|
2636
|
+
"pill",
|
|
2637
|
+
"zoomOut",
|
|
2638
|
+
"percent",
|
|
2639
|
+
"zoomIn",
|
|
2640
|
+
"divider",
|
|
2641
|
+
"fit"
|
|
2642
|
+
],
|
|
2643
|
+
"props": [
|
|
2644
|
+
"controls"
|
|
2645
|
+
]
|
|
2646
|
+
},
|
|
2630
2647
|
{
|
|
2631
2648
|
"name": "Icon",
|
|
2632
2649
|
"kind": "native",
|
|
@@ -2694,11 +2711,33 @@
|
|
|
2694
2711
|
"indicator",
|
|
2695
2712
|
"controls",
|
|
2696
2713
|
"previous",
|
|
2697
|
-
"next"
|
|
2714
|
+
"next",
|
|
2715
|
+
"counter",
|
|
2716
|
+
"thumbnails",
|
|
2717
|
+
"thumbnail"
|
|
2698
2718
|
],
|
|
2699
2719
|
"props": [
|
|
2700
2720
|
"loop",
|
|
2701
|
-
"indicators"
|
|
2721
|
+
"indicators",
|
|
2722
|
+
"counter"
|
|
2723
|
+
]
|
|
2724
|
+
},
|
|
2725
|
+
{
|
|
2726
|
+
"name": "Mosaic",
|
|
2727
|
+
"kind": "macro",
|
|
2728
|
+
"parts": [
|
|
2729
|
+
"root",
|
|
2730
|
+
"lead",
|
|
2731
|
+
"image",
|
|
2732
|
+
"pair",
|
|
2733
|
+
"side",
|
|
2734
|
+
"top",
|
|
2735
|
+
"bottom",
|
|
2736
|
+
"more",
|
|
2737
|
+
"moreLabel"
|
|
2738
|
+
],
|
|
2739
|
+
"props": [
|
|
2740
|
+
"size"
|
|
2702
2741
|
]
|
|
2703
2742
|
},
|
|
2704
2743
|
{
|
|
@@ -2842,6 +2881,21 @@
|
|
|
2842
2881
|
"current"
|
|
2843
2882
|
]
|
|
2844
2883
|
},
|
|
2884
|
+
{
|
|
2885
|
+
"name": "Outline",
|
|
2886
|
+
"kind": "macro",
|
|
2887
|
+
"parts": [
|
|
2888
|
+
"root",
|
|
2889
|
+
"caption",
|
|
2890
|
+
"row",
|
|
2891
|
+
"bar",
|
|
2892
|
+
"title",
|
|
2893
|
+
"count"
|
|
2894
|
+
],
|
|
2895
|
+
"props": [
|
|
2896
|
+
"active"
|
|
2897
|
+
]
|
|
2898
|
+
},
|
|
2845
2899
|
{
|
|
2846
2900
|
"name": "Stepper",
|
|
2847
2901
|
"kind": "macro",
|
|
@@ -3642,6 +3696,16 @@
|
|
|
3642
3696
|
"label"
|
|
3643
3697
|
],
|
|
3644
3698
|
"props": []
|
|
3699
|
+
},
|
|
3700
|
+
{
|
|
3701
|
+
"name": "Motion",
|
|
3702
|
+
"kind": "native",
|
|
3703
|
+
"parts": [
|
|
3704
|
+
"root"
|
|
3705
|
+
],
|
|
3706
|
+
"props": [
|
|
3707
|
+
"fit"
|
|
3708
|
+
]
|
|
3645
3709
|
}
|
|
3646
3710
|
]
|
|
3647
3711
|
}
|