@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
package/dist/index.js.map
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/
|
|
3
|
+
"sources": ["../src/list.ts", "../src/zoom.ts", "../src/resizable.ts", "../src/direction.ts", "../src/animation.ts", "../src/locale.ts", "../src/code.ts", "../src/text-clusters.ts", "../src/text-shimmer.ts", "../src/voice-wave.ts", "../src/qr-code.ts", "../src/a11y.ts", "../src/chart.ts", "../src/extension.ts", "../src/define.ts", "../src/css.ts", "../src/builder.ts", "../src/geometry.ts", "../src/overlay.ts", "../src/connector/connector.ts", "../src/connector/app.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"// Round 2 (docs/round-2-contract.md §7): the shared layout numbers\n// (catalog/layout.json), one place for the TS reference and the generated\n// constants of every target.\n\nimport layoutJson from \"../catalog/layout.json\" with { type: \"json\" }\n\nexport const LAYOUT_CONSTANTS: Readonly<Record<string, number>> = Object.fromEntries(Object.entries(layoutJson).filter(([k]) => !k.startsWith(`$`))) as Record<string, number>\nexport const WINDOW_THRESHOLD: number = layoutJson.windowThreshold\nexport const WINDOW_OVERSCAN: number = layoutJson.windowOverscan\nexport const RESIZE_STEP: number = layoutJson.resizeStep\nexport const PANEL_MIN: number = layoutJson.panelMin\nexport const RESIZE_HANDLE_HIT: number = layoutJson.resizeHandleHit\nexport const FIELD_INTRINSIC_WIDTH: number = layoutJson.fieldIntrinsicWidth\nexport const MEDIA_INTRINSIC_WIDTH: number = layoutJson.mediaIntrinsicWidth\nexport const MEDIA_ASPECT_RATIO: number = layoutJson.mediaAspectRatio\nexport const TREE_GUIDE_COLUMN: number = layoutJson.treeGuideColumn\n/** Round 3: the elbow's corner radius and how far the guide verticals overshoot a row's top edge (paint only). */\nexport const TREE_GUIDE_RADIUS: number = layoutJson.treeGuideRadius\nexport const TREE_GUIDE_BRIDGE: number = layoutJson.treeGuideBridge\n/** EXP-1259: the pending Button's delay, the Skeleton's pulse and the SearchList's bottom fade (feedback-states.json, search-list.json). */\nexport const PENDING_DELAY_MS: number = layoutJson.pendingDelayMs\nexport const SKELETON_PULSE_MS: number = layoutJson.skeletonPulseMs\nexport const SKELETON_OPACITY_LOW: number = layoutJson.skeletonOpacityLow\nexport const SKELETON_OPACITY_HIGH: number = layoutJson.skeletonOpacityHigh\nexport const SKELETON_REDUCED_OPACITY: number = layoutJson.skeletonReducedOpacity\nexport const SEARCH_LIST_FADE: number = layoutJson.searchListFade\n",
|
|
6
5
|
"// Round 2 (docs/round-2-contract.md §4–5): the LIST numbers every renderer\n// shares — template item keys and instance ids (duplicates and empty keys →\n// `#<index>`, instance suffixes accumulate through nested templates), Table\n// row keys, the virtual window over measured extents (vertical OR horizontal:\n// one axis), sticky section headers and scrollToIndex. Pure, mirrored by the\n// Rust core; fixtures/template-items.json and fixtures/virtual-list.json lock\n// it.\n\nimport { absolutePath, readPointer } from \"./dynamic\"\nimport type { ChildTemplate, ReduceIssue, UiNode } from \"./types\"\n\nimport { WINDOW_OVERSCAN, WINDOW_THRESHOLD } from \"./layout\"\nimport { LIMIT_ISSUES, MAX_COMPONENTS, MAX_TEMPLATE_ITEMS } from \"./limits\"\nexport { WINDOW_THRESHOLD, WINDOW_OVERSCAN } from \"./layout\"\n\n/** The instance key of every item: the value at `keyPointer` (relative to\n * the item; objects as their JSON) — `#<index>` when that value is missing,\n * null, `` or a DUPLICATE of an earlier item's key (more `#`s until unique);\n * without a pointer, the index. */\nexport function templateItemKeys(items: readonly unknown[], keyPointer?: string): string[] {\n const seen = new Set<string>()\n return items.map((item, index) => {\n let key = String(index)\n if (keyPointer !== undefined) {\n const v = readPointer(item, keyPointer.startsWith(`/`) ? keyPointer : `/${keyPointer}`)\n const own = v === undefined || v === null || v === `` ? null : typeof v === `object` ? JSON.stringify(v) : String(v)\n key = own !== null && !seen.has(own) ? own : `#${index}`\n while (seen.has(key)) key = `#${key}`\n }\n seen.add(key)\n return key\n })\n}\n\nconst escapeToken = (token: string) => token.replace(/~/g, `~0`).replace(/\\//g, `~1`)\n\n/** Table row keys: the `rowKey` FIELD (default `id`) under the same rules\n * (`#<index>` for missing, empty or duplicate). */\nexport function tableRowKeys(rows: readonly unknown[], rowKey = `id`): string[] {\n return templateItemKeys(rows, `/${escapeToken(rowKey)}`)\n}\n\n/** A key as one instance-suffix segment: `~` → `~0`, `.` → `~1` (as JSON\n * pointer escapes `/`), so dotted keys never collide across nesting levels\n * (`a.b` + `c` vs `a` + `b.c`). */\nexport const instanceSegment = (key: string) => key.replace(/~/g, `~0`).replace(/\\./g, `~1`)\n\nexport interface TemplateInstance {\n /** The item's key (see `templateItemKeys`). */\n key: string\n /** The item's data pointer: its scope (`/posts/3`). */\n path: string\n index: number\n /** The suffix every node of the item wears: the enclosing instance's\n * suffix + `.<key>`, the key escaped by `instanceSegment` (`.a` for an\n * outer item, `.a.0` inside it, `.a~1b` for key `a.b`). A node's painted\n * id = its id + the suffix. */\n instance: string\n}\n\n/** The items a node's `template` renders in a data scope: one per array\n * item at `template.path` (relative to `scope`), keyed by `template.key`.\n * `instance` = the suffix of the item the template sits in (`` at the top). */\nexport function templateInstances(data: unknown, template: ChildTemplate, scope = ``, instance = ``): TemplateInstance[] {\n const path = absolutePath(template.path, { base: scope })\n const list = readPointer(data, path)\n if (!Array.isArray(list)) return []\n const keys = templateItemKeys(list, template.key)\n // VAPP-103: never more than `maxTemplateItems` (a renderer counts them\n // per surface; past the limit the rest is not rendered).\n return list.slice(0, MAX_TEMPLATE_ITEMS).map((_, index) => ({ key: keys[index], path: `${path}/${index}`, index, instance: `${instance}.${instanceSegment(keys[index])}` }))\n}\n\n/** A template site's key in a `TemplateBudget`: the node holding the\n * template + the data scope it sits in. */\nexport const templateSiteKey = (nodeId: string, scope: string) => `${nodeId}\\u0000${scope}`\n\nexport interface TemplateBudget {\n /** Items each visited template site builds (absent = a site the walk\n * never reached: it sits in an item that is not built). */\n allowed: Map<string, number>\n /** ONE issue per build: the template component whose next item did not\n * fit (`LIMIT_ISSUES.templateItems` or `LIMIT_ISSUES.components`); null =\n * everything fits. */\n issue: ReduceIssue | null\n}\n\n/** Nodes one subtree builds by itself (children + slots; the items of a\n * template inside it count when they are instantiated). Iterative. */\nfunction staticSize(root: UiNode): number {\n let n = 0\n const stack: UiNode[] = [root]\n while (stack.length) {\n const node = stack.pop()!\n n++\n for (const slot of Object.values(node.slots ?? {})) stack.push(slot)\n for (const child of node.children) stack.push(child)\n }\n return n\n}\n\ntype BudgetEntry =\n | { node: UiNode; scope: string }\n | { site: string; component: string; tpl: UiNode; path: string; size: number; index: number; length: number }\n\n/** VAPP-103: the template items ONE surface builds, in the Rust layout\n * build's order (depth-first: a node's slots and static children, then its\n * template items, each item's own subtree, nested items included, before\n * the next item). The build holds `maxComponents` nodes: it starts at the\n * reduced root tree's own nodes (children + slots; template definitions\n * aside), and every item costs 1 against `maxTemplateItems` AND its\n * template subtree's nodes. The first item that does not fit either budget\n * and every later one is not built, with ONE issue on that template\n * component. A windowed List (more than `WINDOW_THRESHOLD` rows) mounts\n * its rows on demand: its items are not counted up front. Iterative. */\nexport function templateBudget(root: UiNode, data: unknown, templateNode: (componentId: string) => UiNode | undefined): TemplateBudget {\n const allowed = new Map<string, number>()\n const sizes = new Map<UiNode, number>()\n const sizeOf = (tpl: UiNode) => {\n let n = sizes.get(tpl)\n if (n === undefined) sizes.set(tpl, (n = staticSize(tpl)))\n return n\n }\n let items = 0\n let nodes = staticSize(root)\n let issue: ReduceIssue | null = null\n const stack: BudgetEntry[] = [{ node: root, scope: `` }]\n while (stack.length) {\n const entry = stack.pop()!\n if (`site` in entry) {\n if (issue || entry.index >= entry.length) continue\n if (items >= MAX_TEMPLATE_ITEMS) issue = { id: entry.component, message: LIMIT_ISSUES.templateItems }\n else if (nodes + entry.size > MAX_COMPONENTS) issue = { id: entry.component, message: LIMIT_ISSUES.components }\n if (issue) continue\n items++\n nodes += entry.size\n allowed.set(entry.site, entry.index + 1)\n stack.push({ ...entry, index: entry.index + 1 })\n stack.push({ node: entry.tpl, scope: `${entry.path}/${entry.index}` })\n continue\n }\n const { node, scope } = entry\n const next: BudgetEntry[] = []\n for (const slot of Object.values(node.slots ?? {})) next.push({ node: slot, scope })\n for (const child of node.children) next.push({ node: child, scope })\n const template = node.template\n const tpl = template ? templateNode(template.component) : undefined\n if (template && tpl) {\n const path = absolutePath(template.path, { base: scope })\n const list = readPointer(data, path)\n const windowed = Array.isArray(list) && node.component === `List` && node.children.length + list.length > WINDOW_THRESHOLD\n if (Array.isArray(list) && !windowed) {\n const site = templateSiteKey(node.id, scope)\n allowed.set(site, 0)\n next.push({ site, component: template.component, tpl, path, size: sizeOf(tpl), index: 0, length: list.length })\n }\n }\n for (let i = next.length - 1; i >= 0; i--) stack.push(next[i]!)\n }\n return { allowed, issue }\n}\n\n// ---------------------------------------------------------------------------\n// The virtual window (one axis)\n// ---------------------------------------------------------------------------\n\n/** Start offsets of items laid end to end on one axis with `gap` between\n * them (a `divided` list adds `$control.hairline` to the gap; the divider\n * is centred in it): `offsets[i]` = where item i starts, `offsets[count]` =\n * the content length. */\nexport function itemOffsets(extents: readonly number[], gap = 0): number[] {\n const out = new Array<number>(extents.length + 1)\n let at = 0\n for (let i = 0; i < extents.length; i++) {\n out[i] = at\n at += extents[i] + (i < extents.length - 1 ? gap : 0)\n }\n out[extents.length] = at\n return out\n}\n\n/** Every item's extent on the list's axis: a measured item keeps its\n * extent; an unmeasured one (`null`) takes the MEAN of the measured\n * extents once any item is measured (the content length stays stable while\n * rows measure in, so a fling lands on the real end), else `row` (the\n * theme's `$control.row`). */\nexport function itemExtents(measured: readonly (number | null | undefined)[], row: number): number[] {\n let sum = 0\n let n = 0\n for (const m of measured) {\n if (typeof m === `number`) {\n sum += m\n n++\n }\n }\n const estimate = n ? sum / n : row\n return measured.map((m) => (typeof m === `number` ? m : estimate))\n}\n\nexport interface WindowRange {\n /** First rendered item. */\n start: number\n /** One past the last rendered item. */\n end: number\n /** Space before `start` / after `end - 1` (the spacers). */\n before: number\n after: number\n /** The content length. */\n total: number\n}\n\n/** The first index in [lo, hi) whose `test` holds, for a test that is\n * false then true along the range (binary search); `hi` when none. */\nfunction firstWhere(lo: number, hi: number, test: (i: number) => boolean): number {\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (test(mid)) hi = mid\n else lo = mid + 1\n }\n return lo\n}\n\n/** The items to render for a viewport `[scroll, scroll + viewport)` on the\n * list's axis (both relative to the list's content start; a list without a\n * bounded size windows against its nearest scrolling ancestor or the host\n * viewport, translated into this frame): every item that intersects it\n * (an item ending exactly at the viewport start still counts) plus\n * `overscan` items on each side. Unmeasured items take `itemExtents`'s\n * estimate (the caller's extents). `offsets` = `itemOffsets(extents, gap)` when the\n * caller caches it (recompute only when an extent changes): the window is\n * then two binary searches, O(log n) per scroll frame. */\nexport function virtualWindow(extents: readonly number[], gap: number, scroll: number, viewport: number, overscan = WINDOW_OVERSCAN, offsets?: readonly number[]): WindowRange {\n const count = extents.length\n const off = offsets ?? itemOffsets(extents, gap)\n const total = off[count]\n let start = firstWhere(0, count, (i) => off[i] + extents[i] >= scroll)\n let end = firstWhere(start, count, (i) => off[i] >= scroll + viewport)\n start = Math.max(0, start - overscan)\n end = Math.min(count, end + overscan)\n if (end <= start) return { start, end: start, before: 0, after: total, total }\n const before = off[start]\n const after = total - (off[end - 1] + extents[end - 1])\n return { start, end, before, after, total }\n}\n\nexport type ScrollAlign = `start` | `center` | `end` | `nearest`\n\n/** The scroll offset that brings item `index` into a viewport of length\n * `viewport` currently at `scroll` (the `scrollToIndex` command): `start` =\n * its start at the viewport start (after `inset`, the pinned header's\n * extent), `end` = its end at the viewport end, `center` = centred,\n * `nearest` (default) = the smallest move that shows it whole (none when it\n * already is). Clamped to `[0, max(0, total - viewport)]`. `offsets` = the\n * cached `itemOffsets`, as for `virtualWindow`. */\nexport function scrollOffsetForIndex(extents: readonly number[], gap: number, index: number, viewport: number, scroll: number, align: ScrollAlign = `nearest`, inset = 0, offsets?: readonly number[]): number {\n const off = offsets ?? itemOffsets(extents, gap)\n const total = off[extents.length]\n if (index < 0 || index >= extents.length) return scroll\n const top = off[index]\n const size = extents[index]\n let next = scroll\n if (align === `start`) next = top - inset\n else if (align === `end`) next = top + size - viewport\n else if (align === `center`) next = top + size / 2 - (viewport + inset) / 2\n else if (top - inset < scroll) next = top - inset\n else if (top + size > scroll + viewport) next = top + size - viewport\n return Math.max(0, Math.min(Math.max(0, total - viewport), next))\n}\n\n// ---------------------------------------------------------------------------\n// Sections and sticky headers\n// ---------------------------------------------------------------------------\n\nexport interface ListSection {\n /** The `sectionBy` value its items share (as `displayString`; `` for\n * missing). */\n value: string\n /** Index of the section's first item in the data. */\n start: number\n count: number\n}\n\n/** Consecutive template items with the same `sectionBy` value (a pointer\n * relative to each item) form a section; the data order is kept (sort the\n * data to group it). */\nexport function listSections(items: readonly unknown[], sectionBy: string): ListSection[] {\n const out: ListSection[] = []\n const pointer = sectionBy.startsWith(`/`) ? sectionBy : `/${sectionBy}`\n items.forEach((item, index) => {\n const v = readPointer(item, pointer)\n const value = v === undefined || v === null ? `` : typeof v === `object` ? JSON.stringify(v) : String(v)\n const last = out.at(-1)\n if (last && last.value === value) last.count++\n else out.push({ value, start: index, count: 1 })\n })\n return out\n}\n\n/** The flat ROW list a sectioned list windows: a header row before each\n * section's items (`{header: sectionIndex}` / `{item: dataIndex}`). */\nexport function sectionRows(sections: readonly ListSection[]): ({ header: number } | { item: number })[] {\n const rows: ({ header: number } | { item: number })[] = []\n sections.forEach((s, i) => {\n rows.push({ header: i })\n for (let k = 0; k < s.count; k++) rows.push({ item: s.start + k })\n })\n return rows\n}\n\n/** `scrollToIndex` on a SECTIONED list: the DATA index → its flat row\n * (`sectionRows`; -1 = absent → no move), then `scrollOffsetForIndex` over\n * the rows' extents with `inset` = the extent of the item's own section\n * header when headers are sticky (it pins over the item), else 0. */\nexport function scrollOffsetForItem(rows: readonly ({ header: number } | { item: number })[], rowExtents: readonly number[], gap: number, dataIndex: number, viewport: number, scroll: number, align: ScrollAlign = `nearest`, stickyHeaders = false, offsets?: readonly number[]): number {\n const row = rows.findIndex((r) => `item` in r && r.item === dataIndex)\n if (row < 0) return scroll\n let header = row\n while (header >= 0 && !(`header` in rows[header])) header--\n const inset = stickyHeaders && header >= 0 ? rowExtents[header] : 0\n return scrollOffsetForIndex(rowExtents, gap, row, viewport, scroll, align, inset, offsets)\n}\n\n/** The sticky header at a scroll offset: the LAST header row starting at or\n * before `scroll` is pinned at the viewport start — pushed back by the next\n * header as it arrives (its offset = min(scroll, nextHeaderStart −\n * extent)). `rowOffsets` = itemOffsets of the flat rows; `headerRows` = the\n * flat indices of the header rows, ascending. Null before the first header\n * reaches the viewport start. Binary search: O(log headers). The pinned header is rendered even when the\n * window does not contain it. */\nexport function stickyHeader(rowOffsets: readonly number[], rowExtents: readonly number[], headerRows: readonly number[], scroll: number): { row: number; offset: number } | null {\n const pinned = firstWhere(0, headerRows.length, (h) => rowOffsets[headerRows[h]] > scroll) - 1\n if (pinned < 0) return null\n const row = headerRows[pinned]\n const next = headerRows[pinned + 1]\n const extent = rowExtents[row]\n const offset = next === undefined ? scroll : Math.min(scroll, rowOffsets[next] - extent)\n return { row, offset }\n}\n",
|
|
6
|
+
"// EXP-1586: the ZoomableImage native's maths (catalog/style.json\n// `zoomableImage`, whose $comment is the spec). Pure: every painter feeds its\n// pointer, wheel, pinch and key input through these functions, so a zoom, a\n// pan or a double tap lands on the same view everywhere. The Rust core's\n// `zoom` ports it; fixtures/zoom.json locks it.\n\nimport styleJson from \"../catalog/style.json\" with { type: \"json\" }\n\nexport const ZOOM = styleJson.zoomableImage\n\nexport type ZoomInitial = `auto` | `fit` | `fitWidth` | `actual`\n\nexport interface ZoomSize {\n width: number\n height: number\n}\n\nexport interface ZoomPoint {\n x: number\n y: number\n}\n\n/** scale = displayed px per image px (1 = 100%); x/y = the picture's\n * top-left in the viewport. */\nexport interface ZoomView {\n scale: number\n x: number\n y: number\n}\n\n/** What every function needs to know about the picture and its box. */\nexport interface ZoomFrame {\n natural: ZoomSize\n viewport: ZoomSize\n initial?: ZoomInitial\n maxScale?: number\n}\n\nconst EPS = 1e-6\n/** Results are rounded to 1e-6 so every platform prints the same numbers. */\nconst tidy = (v: number) => {\n const r = Math.round(v * 1e6) / 1e6\n return Object.is(r, -0) ? 0 : r\n}\nconst tidyView = (v: ZoomView): ZoomView => ({ scale: tidy(v.scale), x: tidy(v.x), y: tidy(v.y) })\nconst clampN = (v: number, lo: number, hi: number) => Math.max(lo, Math.min(hi, v))\nconst positive = (v: number | undefined) => (typeof v === `number` && Number.isFinite(v) && v > 0 ? v : 0)\n\nfunction sizes(frame: ZoomFrame) {\n return {\n iw: positive(frame.natural.width),\n ih: positive(frame.natural.height),\n vw: positive(frame.viewport.width),\n vh: positive(frame.viewport.height),\n }\n}\n\n/** A picture taller than 1 / tallAspect times its width. */\nexport function zoomIsTall(natural: ZoomSize): boolean {\n const w = positive(natural.width)\n const h = positive(natural.height)\n return w > 0 && h > 0 && w / h < ZOOM.tallAspect\n}\n\n/** The whole picture inside the viewport, never upscaled: the minimum. */\nexport function zoomFitScale(frame: ZoomFrame): number {\n return tidy(fitRaw(frame))\n}\n\nfunction fitRaw(frame: ZoomFrame): number {\n const { iw, ih, vw, vh } = sizes(frame)\n if (iw === 0 || ih === 0 || vw === 0 || vh === 0) return 1\n return Math.min(1, vw / iw, vh / ih)\n}\n\nfunction limitsRaw(frame: ZoomFrame): { min: number; max: number } {\n const min = fitRaw(frame)\n const wanted = positive(frame.maxScale) || ZOOM.maxScale\n return { min, max: Math.max(min, wanted) }\n}\n\n/** The scale range: [fit, max(fit, maxScale)]. */\nexport function zoomLimits(frame: ZoomFrame): { min: number; max: number } {\n const { min, max } = limitsRaw(frame)\n return { min: tidy(min), max: tidy(max) }\n}\n\nfunction restRaw(frame: ZoomFrame): number {\n const { iw, vw } = sizes(frame)\n const { min, max } = limitsRaw(frame)\n const initial = frame.initial ?? `auto`\n const mode = initial === `auto` ? (zoomIsTall(frame.natural) ? `fitWidth` : `fit`) : initial\n let scale = min\n if (mode === `fitWidth`) scale = iw > 0 && vw > 0 ? Math.min(1, vw / iw) : 1\n else if (mode === `actual`) scale = 1\n return clampN(scale, min, max)\n}\n\n/** The scale the picture opens at (and a double tap / `0` / the fit button\n * returns to), inside the limits. */\nexport function zoomRestScale(frame: ZoomFrame): number {\n return tidy(restRaw(frame))\n}\n\n/** Clamp one axis: centred when the scaled picture fits, else no gap. */\nfunction clampAxis(offset: number, scaled: number, extent: number): number {\n if (scaled <= extent + EPS) return (extent - scaled) / 2\n return clampN(offset, extent - scaled, 0)\n}\n\n/** The view inside its bounds (scale within the limits, no letterbox). */\nexport function zoomClamp(view: ZoomView, frame: ZoomFrame): ZoomView {\n const { iw, ih, vw, vh } = sizes(frame)\n const { min, max } = limitsRaw(frame)\n const scale = clampN(view.scale, min, max)\n return tidyView({ scale, x: clampAxis(view.x, iw * scale, vw), y: clampAxis(view.y, ih * scale, vh) })\n}\n\n/** The opening view: the rest scale, centred; a taller-than-the-viewport\n * picture starts at its top. */\nexport function zoomRestView(frame: ZoomFrame): ZoomView {\n const { iw, vw } = sizes(frame)\n const scale = restRaw(frame)\n return zoomClamp({ scale, x: (vw - iw * scale) / 2, y: 0 }, frame)\n}\n\n/** Whether the view sits at its rest scale. */\nexport function zoomAtRest(view: ZoomView, frame: ZoomFrame): boolean {\n return Math.abs(view.scale - restRaw(frame)) < 1e-4\n}\n\n/** Zoom to `scale` (clamped) keeping the image point under `anchor` fixed. */\nexport function zoomTo(view: ZoomView, scale: number, anchor: ZoomPoint, frame: ZoomFrame): ZoomView {\n const { min, max } = limitsRaw(frame)\n const next = clampN(scale, min, max)\n const ratio = view.scale > 0 ? next / view.scale : 1\n return zoomClamp(\n { scale: next, x: anchor.x - (anchor.x - view.x) * ratio, y: anchor.y - (anchor.y - view.y) * ratio },\n frame\n )\n}\n\n/** The viewport's centre, the anchor of keys and the pill. */\nexport function zoomCentre(frame: ZoomFrame): ZoomPoint {\n const { vw, vh } = sizes(frame)\n return { x: vw / 2, y: vh / 2 }\n}\n\nexport type WheelDeltaMode = `pixel` | `line`\n\n/** ⌘/ctrl + wheel (or a trackpad pinch delivered as a wheel): the scale\n * factor of one wheel event. */\nexport function zoomWheelFactor(deltaY: number, mode: WheelDeltaMode = `pixel`): number {\n const px = mode === `line` ? deltaY * ZOOM.wheelLinePx : deltaY\n return Math.exp(-px * ZOOM.wheelRate)\n}\n\n/** One ⌘/ctrl-wheel event about the cursor. */\nexport function zoomWheel(view: ZoomView, deltaY: number, mode: WheelDeltaMode, anchor: ZoomPoint, frame: ZoomFrame): ZoomView {\n return zoomTo(view, view.scale * zoomWheelFactor(deltaY, mode), anchor, frame)\n}\n\n/** A plain wheel / two-finger scroll: pans by the deltas, clamped. */\nexport function zoomScroll(view: ZoomView, deltaX: number, deltaY: number, frame: ZoomFrame): ZoomView {\n return zoomClamp({ scale: view.scale, x: view.x - deltaX, y: view.y - deltaY }, frame)\n}\n\n/** The ladder steps walk: the presets plus the rest scale, inside the\n * limits, ascending. */\nexport function zoomLadder(frame: ZoomFrame): number[] {\n const { min, max } = limitsRaw(frame)\n const rest = restRaw(frame)\n const all = [...ZOOM.presets, min, rest, max].filter((s) => s >= min - EPS && s <= max + EPS)\n const out: number[] = []\n for (const s of all.sort((a, b) => a - b)) if (out.length === 0 || s - out[out.length - 1] > 1e-4) out.push(tidy(s))\n return out\n}\n\n/** The next ladder scale strictly above (`1`) or below (`-1`) the current\n * one, or the current one at the end. */\nexport function zoomStepScale(scale: number, direction: 1 | -1, frame: ZoomFrame): number {\n const ladder = zoomLadder(frame)\n if (direction > 0) return ladder.find((s) => s > scale + 1e-4) ?? ladder[ladder.length - 1]\n for (let i = ladder.length - 1; i >= 0; i--) if (ladder[i] < scale - 1e-4) return ladder[i]\n return ladder[0]\n}\n\n/** + / − (keys and the pill) about the viewport centre. */\nexport function zoomStep(view: ZoomView, direction: 1 | -1, frame: ZoomFrame): ZoomView {\n return zoomTo(view, zoomStepScale(view.scale, direction, frame), zoomCentre(frame), frame)\n}\n\n/** The scale a double tap at rest jumps to. */\nexport function zoomDoubleTapScale(frame: ZoomFrame): number {\n const { max } = limitsRaw(frame)\n return tidy(Math.min(max, Math.max(1, ZOOM.doubleTapFactor * restRaw(frame))))\n}\n\n/** Double click / tap: at rest → zoom in about the point; else → rest. */\nexport function zoomDoubleTap(view: ZoomView, point: ZoomPoint, frame: ZoomFrame): ZoomView {\n if (zoomAtRest(view, frame)) return zoomTo(view, zoomDoubleTapScale(frame), point, frame)\n return zoomRestView(frame)\n}\n\nexport type ZoomKey = `+` | `=` | `-` | `−` | `0` | `1`\n\n/** A key while the picture has focus; null = not a zoom key. */\nexport function zoomKey(view: ZoomView, key: string, frame: ZoomFrame): ZoomView | null {\n if (key === `+` || key === `=`) return zoomStep(view, 1, frame)\n if (key === `-` || key === `−` || key === `_`) return zoomStep(view, -1, frame)\n if (key === `0`) return zoomRestView(frame)\n if (key === `1`) return zoomTo(view, 1, zoomCentre(frame), frame)\n return null\n}\n\n/** The overshoot past an edge, damped: (1 − 1 / (o·c/d + 1))·d. */\nexport function zoomRubberBand(overshoot: number, extent: number): number {\n if (extent <= 0 || overshoot === 0) return 0\n const sign = overshoot < 0 ? -1 : 1\n const o = Math.abs(overshoot)\n return tidy(sign * (1 - 1 / ((o * ZOOM.rubber) / extent + 1)) * extent)\n}\n\nfunction rubberAxis(offset: number, scaled: number, extent: number): number {\n const lo = scaled <= extent + EPS ? (extent - scaled) / 2 : extent - scaled\n const hi = scaled <= extent + EPS ? (extent - scaled) / 2 : 0\n if (offset > hi) return hi + zoomRubberBand(offset - hi, extent)\n if (offset < lo) return lo + zoomRubberBand(offset - lo, extent)\n return offset\n}\n\n/** A drag from `start` by (dx, dy) while held: past an edge the overshoot\n * rubber-bands. The release is `zoomClamp` of the last view. */\nexport function zoomDrag(start: ZoomView, dx: number, dy: number, frame: ZoomFrame): ZoomView {\n const { iw, ih, vw, vh } = sizes(frame)\n return tidyView({\n scale: start.scale,\n x: rubberAxis(start.x + dx, iw * start.scale, vw),\n y: rubberAxis(start.y + dy, ih * start.scale, vh),\n })\n}\n\n/** A pinch from `start` by the raw factor about `anchor` while held: past\n * the min/max the scale rubber-bands (d = the limit). The release is\n * `zoomClamp` of the last view. */\nexport function zoomPinch(start: ZoomView, factor: number, anchor: ZoomPoint, frame: ZoomFrame): ZoomView {\n const { iw, ih, vw, vh } = sizes(frame)\n const { min, max } = limitsRaw(frame)\n const raw = start.scale * factor\n let scale = raw\n if (raw > max) scale = max + zoomRubberBand(raw - max, max)\n else if (raw < min) scale = min + zoomRubberBand(raw - min, min)\n const ratio = start.scale > 0 ? scale / start.scale : 1\n return tidyView({\n scale,\n x: rubberAxis(anchor.x - (anchor.x - start.x) * ratio, iw * scale, vw),\n y: rubberAxis(anchor.y - (anchor.y - start.y) * ratio, ih * scale, vh),\n })\n}\n\n/** Mouse-drag momentum `t` ms after a release at velocity (px/ms),\n * exponential decay, stopping at the edges. */\nexport function zoomMomentum(view: ZoomView, vx: number, vy: number, t: number, frame: ZoomFrame): ZoomView {\n const tau = ZOOM.momentumTauMs\n const travel = tau * (1 - Math.exp(-Math.max(0, t) / tau))\n return zoomClamp({ scale: view.scale, x: view.x + vx * travel, y: view.y + vy * travel }, frame)\n}\n\n/** Whether momentum `t` ms after a release is still moving (above 0.01 px/ms). */\nexport function zoomMomentumActive(vx: number, vy: number, t: number): boolean {\n const decay = Math.exp(-Math.max(0, t) / ZOOM.momentumTauMs)\n return Math.hypot(vx, vy) * decay > 0.01\n}\n\n/** The axes the picture can pan on: an axis without room hands a swipe to\n * the host (paging). */\nexport function zoomPanRoom(view: ZoomView, frame: ZoomFrame): { x: boolean; y: boolean } {\n const { iw, ih, vw, vh } = sizes(frame)\n return { x: iw * view.scale > vw + EPS, y: ih * view.scale > vh + EPS }\n}\n\n/** A new viewport: at rest = the new rest view; zoomed = the same scale\n * about the viewport centre, clamped. */\nexport function zoomResize(view: ZoomView, from: ZoomSize, frame: ZoomFrame): ZoomView {\n const before: ZoomFrame = { ...frame, viewport: from }\n if (zoomAtRest(view, before)) return zoomRestView(frame)\n const { vw, vh } = sizes(frame)\n const cx = positive(from.width) / 2\n const cy = positive(from.height) / 2\n return zoomClamp({ scale: view.scale, x: vw / 2 - (cx - view.x), y: vh / 2 - (cy - view.y) }, frame)\n}\n\n/** The pill's label: round(scale × 100) + `%`. */\nexport function zoomPercent(scale: number): string {\n return `${Math.round(scale * 100)}%`\n}\n\nexport interface ZoomMenuItem {\n /** null = Fit (the rest view). */\n scale: number | null\n label: string\n checked: boolean\n}\n\n/** The % button's Menu: Fit, then the menu presets inside the limits. */\nexport function zoomMenu(view: ZoomView, frame: ZoomFrame, fitLabel: string): ZoomMenuItem[] {\n const { min, max } = limitsRaw(frame)\n const atRest = zoomAtRest(view, frame)\n const items: ZoomMenuItem[] = []\n for (const s of ZOOM.menuPresets) {\n if (s === 0) items.push({ scale: null, label: fitLabel, checked: atRest })\n else if (s >= min - EPS && s <= max + EPS) items.push({ scale: s, label: zoomPercent(s), checked: !atRest && Math.abs(view.scale - s) < 1e-4 })\n }\n return items\n}\n\n/** The pill's disabled ends. */\nexport function zoomBounds(view: ZoomView, frame: ZoomFrame): { atMin: boolean; atMax: boolean } {\n const { min, max } = limitsRaw(frame)\n return { atMin: view.scale <= min + 1e-4, atMax: view.scale >= max - 1e-4 }\n}\n",
|
|
7
7
|
"// Round 2 (docs/round-2-contract.md §1, Resizable): the panel arithmetic\n// every renderer shares, so a drag or a key press gives the same sizes\n// everywhere. Sizes are PERCENTAGES of the group's main axis minus its\n// handles (they sum to 100); only the two panels beside the moved handle\n// change. Pure, mirrored by the Rust core; fixtures/resizable.json locks it.\n\n/** One panel's limits (Resizable `panels[i]`), percent. */\nexport interface PanelLimits {\n min?: number\n max?: number\n /** Dragging below half its `min` collapses it to 0; Enter toggles. */\n collapsible?: boolean\n}\n\nimport { PANEL_MIN, RESIZE_STEP } from \"./layout\"\nexport { PANEL_MIN, RESIZE_HANDLE_HIT, RESIZE_STEP } from \"./layout\"\n\nconst EPS = 1e-9\nconst clampN = (v: number, lo: number, hi: number) => Math.max(lo, Math.min(hi, v))\n/** Results are rounded to 1e-6 so every platform prints the same numbers. */\nconst tidy = (v: number) => {\n const r = Math.round(v * 1e6) / 1e6\n return Object.is(r, -0) ? 0 : r\n}\n\nfunction limitsOf(limits: readonly PanelLimits[] | undefined, i: number, count: number): { min: number; max: number; collapsible: boolean } {\n const l = limits?.[i] ?? {}\n const cap = 100 / Math.max(1, count)\n const min = clampN(typeof l.min === `number` && Number.isFinite(l.min) ? l.min : PANEL_MIN, 0, cap)\n const max = clampN(typeof l.max === `number` && Number.isFinite(l.max) ? l.max : 100, min, 100)\n return { min, max, collapsible: l.collapsible === true }\n}\n\n/** The sizes a group of `count` panels starts with: the valid given sizes\n * (finite, ≥ 0), the missing ones sharing what is left of 100 (equal split\n * when nothing is given), scaled to sum 100, then each clamped into its\n * [min, max] (a collapsible panel may stay at 0) with the difference handed\n * to the panels that still have room, in order. A `min` above 100 / count\n * is lowered to it. */\nexport function normalizeSizes(sizes: readonly unknown[] | undefined, count: number, limits?: readonly PanelLimits[]): number[] {\n if (count <= 0) return []\n const given = Array.from({ length: count }, (_, i) => {\n const v = sizes?.[i]\n return typeof v === `number` && Number.isFinite(v) && v >= 0 ? v : null\n })\n const missing = given.filter((v) => v === null).length\n let out: number[]\n if (missing === count) out = given.map(() => 100 / count)\n else {\n const sum = given.reduce<number>((s, v) => s + (v ?? 0), 0)\n const rest = Math.max(0, 100 - sum)\n out = given.map((v) => v ?? rest / missing)\n }\n const total = out.reduce((s, v) => s + v, 0)\n out = total > EPS ? out.map((v) => (v * 100) / total) : out.map(() => 100 / count)\n const lim = out.map((_, i) => limitsOf(limits, i, count))\n out = out.map((v, i) => (lim[i].collapsible && v <= EPS ? 0 : clampN(v, lim[i].min, lim[i].max)))\n let diff = 100 - out.reduce((s, v) => s + v, 0)\n for (let i = 0; i < count && Math.abs(diff) > EPS; i++) {\n if (lim[i].collapsible && out[i] === 0) continue\n const room = diff > 0 ? lim[i].max - out[i] : lim[i].min - out[i]\n const take = diff > 0 ? Math.min(diff, room) : Math.max(diff, room)\n out[i] += take\n diff -= take\n }\n return out.map(tidy)\n}\n\n/** Move handle `handle` (between panels `handle` and `handle + 1`) by\n * `delta` percentage points (positive = the first panel grows). Always\n * computed from the sizes at the START of a drag (no drift). The move is\n * clamped so both panels stay in their [min, max]; a collapsible panel\n * dragged below half its min collapses to 0 (the other takes its space, if\n * it can), and a collapsed one dragged past half its min reopens: at its\n * min, or where the pointer is when that is further (clamped as above).\n * Other panels never change. */\nexport function resizePanels(sizes: readonly number[], handle: number, delta: number, limits?: readonly PanelLimits[]): number[] {\n const out = [...sizes]\n const a = handle\n const b = handle + 1\n if (a < 0 || b >= sizes.length || !Number.isFinite(delta)) return out.map(tidy)\n const la = limitsOf(limits, a, sizes.length)\n const lb = limitsOf(limits, b, sizes.length)\n const lo = Math.max(la.min - sizes[a], sizes[b] - lb.max)\n const hi = Math.min(la.max - sizes[a], sizes[b] - lb.min)\n let d = clampN(delta, Math.min(lo, 0), Math.max(hi, 0))\n // Collapsing and reopening.\n if (la.collapsible && delta < 0 && sizes[a] > 0 && sizes[a] + delta < la.min / 2 && sizes[b] + sizes[a] <= lb.max + EPS) d = -sizes[a]\n else if (lb.collapsible && delta > 0 && sizes[b] > 0 && sizes[b] - delta < lb.min / 2 && sizes[a] + sizes[b] <= la.max + EPS) d = sizes[b]\n // A collapsed panel dragged past half its min reopens at its min at least,\n // then follows the pointer (up to its max and the neighbour's min).\n else if (la.collapsible && sizes[a] === 0) d = delta >= la.min / 2 && hi >= la.min - EPS ? clampN(delta, la.min, hi) : 0\n else if (lb.collapsible && sizes[b] === 0) d = -delta >= lb.min / 2 && -lo >= lb.min - EPS ? -clampN(-delta, lb.min, -lo) : 0\n out[a] = sizes[a] + d\n out[b] = sizes[b] - d\n return out.map(tidy)\n}\n\nexport type ResizeKey = `ArrowLeft` | `ArrowRight` | `ArrowUp` | `ArrowDown` | `Home` | `End` | `Enter`\n\n/** A key on a focused handle. Arrows move the HANDLE on screen by\n * RESIZE_STEP (horizontal group: Left/Right — in rtl the first panel sits\n * on the right, so ArrowRight shrinks it; vertical group: Up/Down); Home /\n * End take the first panel to its min / max (as far as the second allows);\n * Enter collapses the first panel when collapsible (else the second),\n * reopening a collapsed one at its min. Other keys change nothing. */\nexport function keyboardResize(sizes: readonly number[], handle: number, key: ResizeKey | string, orientation: `horizontal` | `vertical`, direction: `ltr` | `rtl` = `ltr`, limits?: readonly PanelLimits[]): number[] {\n const a = handle\n const b = handle + 1\n if (a < 0 || b >= sizes.length) return sizes.map(tidy)\n const la = limitsOf(limits, a, sizes.length)\n const lb = limitsOf(limits, b, sizes.length)\n const flip = orientation === `horizontal` && direction === `rtl` ? -1 : 1\n const step = (sign: number) => resizePanels(sizes, handle, sign * RESIZE_STEP, limits)\n switch (key) {\n case `ArrowRight`:\n return orientation === `horizontal` ? step(flip) : sizes.map(tidy)\n case `ArrowLeft`:\n return orientation === `horizontal` ? step(-flip) : sizes.map(tidy)\n case `ArrowDown`:\n return orientation === `vertical` ? step(1) : sizes.map(tidy)\n case `ArrowUp`:\n return orientation === `vertical` ? step(-1) : sizes.map(tidy)\n case `Home`:\n return resizePanels(sizes, handle, la.min - sizes[a], limits)\n case `End`:\n return resizePanels(sizes, handle, la.max - sizes[a], limits)\n case `Enter`: {\n const out = [...sizes]\n if (la.collapsible) {\n const d = sizes[a] > 0 ? -sizes[a] : Math.min(la.min, sizes[b] - lb.min)\n if (sizes[b] - d > lb.max + EPS || d === 0) return sizes.map(tidy)\n out[a] += d\n out[b] -= d\n } else if (lb.collapsible) {\n const d = sizes[b] > 0 ? sizes[b] : -Math.min(lb.min, sizes[a] - la.min)\n if (sizes[a] + d > la.max + EPS || d === 0) return sizes.map(tidy)\n out[a] += d\n out[b] -= d\n }\n return out.map(tidy)\n }\n default:\n return sizes.map(tidy)\n }\n}\n\n/** Panel lengths in px on the main axis: the container minus every handle\n * (`handleExtent` each, `$control.hairline`), shared by the sizes. */\nexport function panelExtents(sizes: readonly number[], container: number, handleExtent = 1): number[] {\n const avail = Math.max(0, container - Math.max(0, sizes.length - 1) * handleExtent)\n return sizes.map((s) => tidy((avail * s) / 100))\n}\n\n/** A pointer movement (px on the main axis, screen direction) as the\n * percentage delta `resizePanels` takes (rtl horizontal groups flip it). */\nexport function dragDelta(px: number, container: number, panelCount: number, orientation: `horizontal` | `vertical`, direction: `ltr` | `rtl` = `ltr`, handleExtent = 1): number {\n const avail = Math.max(1, container - Math.max(0, panelCount - 1) * handleExtent)\n const flip = orientation === `horizontal` && direction === `rtl` ? -1 : 1\n return tidy(((px * 100) / avail) * flip)\n}\n",
|
|
8
8
|
"// Round 2 (docs/round-2-contract.md §2, direction): `direction` may sit on\n// ANY node and is inherited; everything direction-dependent reads the\n// NODE's resolved direction, not the surface's: flex row order, logical\n// insets and paddings, mirrored glyphs and `textAlign` start/end (the\n// implicit alignment of text is `start`). fixtures/text-direction.json locks\n// it. Pure.\n\nimport { resolveConditions, type ConditionContext } from \"./style\"\nimport type { UiNode } from \"./types\"\n\nexport type Direction = `ltr` | `rtl`\nexport type PhysicalAlign = `left` | `right` | `center` | `justify`\n\nfunction ownDirection(node: UiNode, ctx: ConditionContext | undefined): Direction | undefined {\n if (!node.style) return undefined\n const style = ctx ? resolveConditions(node.style, ctx) : node.style\n const d = style.direction\n return d === `ltr` || d === `rtl` ? d : undefined\n}\n\n/** Every node's direction: its own style `direction` (resolved against\n * `ctx` when given), else its parent's; the root's parent is the surface\n * (catalog/locale.json `textDirection(locale)`). Slots inherit from their\n * owner. A template's items take the direction of the node that renders\n * them (call again with that direction for the template node). */\nexport function nodeDirections(root: UiNode, surface: Direction, ctx?: ConditionContext): Record<string, Direction> {\n const out: Record<string, Direction> = {}\n const walk = (n: UiNode, inherited: Direction) => {\n const dir = ownDirection(n, ctx) ?? inherited\n out[n.id] = dir\n for (const slot of Object.values(n.slots ?? {})) walk(slot, dir)\n for (const child of n.children) walk(child, dir)\n }\n walk(root, surface)\n return out\n}\n\n/** `start`/`end` (and an absent value = `start`) as the physical side for\n * a direction; `left`, `right`, `center` and `justify` stay. */\nexport function physicalTextAlign(align: unknown, direction: Direction): PhysicalAlign {\n switch (align) {\n case `left`:\n case `right`:\n case `center`:\n case `justify`:\n return align\n case `end`:\n return direction === `rtl` ? `left` : `right`\n default:\n return direction === `rtl` ? `right` : `left`\n }\n}\n\n/** A node's text alignment: its style `textAlign`, else a Text's `align`\n * prop, else `start` — resolved against the node's direction. */\nexport function nodeTextAlign(node: UiNode, direction: Direction, ctx?: ConditionContext): PhysicalAlign {\n const style = node.style ? (ctx ? resolveConditions(node.style, ctx) : node.style) : {}\n return physicalTextAlign(style.textAlign ?? node.props.align, direction)\n}\n",
|
|
9
9
|
"// Round 2 (docs/round-2-contract.md §2, animation): the token-only\n// `animation` style key. catalog/style.json `animations` holds the keyframe\n// sets; this module turns one into what a painter needs at a moment —\n// duration from the theme's motion tokens, per-segment easing, the channel\n// values (opacity, translate, rotate, scale, the shimmer band) — and into\n// CSS @keyframes. fixtures/animations.json locks the sampled frames. Pure.\n\nimport styleJson from \"../catalog/style.json\" with { type: \"json\" }\nimport { parseTokenRef } from \"./catalog\"\nimport type { Easing, ResolvedTheme } from \"./theme-types\"\n\nexport interface Keyframe {\n offset: number\n opacity?: number\n translateX?: number\n translateY?: number\n rotate?: number\n scale?: number\n band?: number\n}\n\nexport interface AnimationDef {\n duration: string\n factor: number\n easing: string\n iterations: number | `infinite`\n rest: number\n keyframes: Keyframe[]\n band?: { color: string; stops: { offset: number; alpha: number }[] }\n}\n\n/** The keyframe sets by name (style.json `animations`, `$comment` aside). */\nexport const ANIMATIONS: Readonly<Record<string, AnimationDef>> = Object.fromEntries(Object.entries(styleJson.animations).filter(([k]) => !k.startsWith(`$`))) as unknown as Record<string, AnimationDef>\nexport const ANIMATION_NAMES: readonly string[] = Object.keys(ANIMATIONS)\n\n/** One frame: every channel at its value (`band` null = no shimmer band). */\nexport interface AnimationFrame {\n opacity: number\n translateX: number\n translateY: number\n rotate: number\n scale: number\n band: number | null\n}\n\nexport interface AnimationTiming {\n durationMs: number\n /** A cubic bezier or `linear`. */\n easing: Easing | `linear`\n iterations: number | `infinite`\n}\n\nconst LINEAR: `linear` = `linear`\n\n/** Duration and easing of an animation under a theme: the `duration` token\n * (or `durationToken`, the node's `animationDuration`) × `factor`. */\nexport function animationTiming(name: string, theme: ResolvedTheme, durationToken?: string): AnimationTiming | null {\n const def = ANIMATIONS[name]\n if (!def) return null\n const token = parseTokenRef(durationToken ?? def.duration)\n const base = token && token.group === `motion` ? theme.tokens.motion[token.name] : undefined\n const fallback = parseTokenRef(def.duration)\n const ms = (base ?? (fallback ? theme.tokens.motion[fallback.name] : 0) ?? 0) * def.factor\n const ease = parseTokenRef(def.easing)\n const easing = def.easing === LINEAR ? LINEAR : ease && ease.group === `ease` ? (theme.tokens.ease[ease.name] ?? LINEAR) : LINEAR\n return { durationMs: ms, easing, iterations: def.iterations }\n}\n\n/** y of a CSS cubic-bezier at x (bisection on x, 60 steps: deterministic). */\nexport function cubicBezier(curve: Easing, x: number): number {\n const [x1, y1, x2, y2] = curve\n if (x <= 0) return 0\n if (x >= 1) return 1\n const bx = (t: number) => 3 * x1 * t * (1 - t) ** 2 + 3 * x2 * t * t * (1 - t) + t ** 3\n const by = (t: number) => 3 * y1 * t * (1 - t) ** 2 + 3 * y2 * t * t * (1 - t) + t ** 3\n let lo = 0\n let hi = 1\n for (let i = 0; i < 60; i++) {\n const mid = (lo + hi) / 2\n if (bx(mid) < x) lo = mid\n else hi = mid\n }\n return by((lo + hi) / 2)\n}\n\nconst CHANNELS = [`opacity`, `translateX`, `translateY`, `rotate`, `scale`] as const\nconst REST: AnimationFrame = { opacity: 1, translateX: 0, translateY: 0, rotate: 0, scale: 1, band: null }\nconst r4 = (v: number) => {\n const r = Math.round(v * 1e4) / 1e4\n return Object.is(r, -0) ? 0 : r\n}\n\nfunction frameAt(def: AnimationDef, progress: number, easing: Easing | `linear`): AnimationFrame {\n const ks = def.keyframes\n let k = 0\n while (k < ks.length - 2 && progress > ks[k + 1].offset) k++\n const a = ks[k]\n const b = ks[Math.min(k + 1, ks.length - 1)]\n const span = b.offset - a.offset\n const local = span > 0 ? Math.max(0, Math.min(1, (progress - a.offset) / span)) : 1\n const t = easing === LINEAR ? local : cubicBezier(easing, local)\n const out: AnimationFrame = { ...REST }\n for (const ch of CHANNELS) {\n const va = a[ch] ?? REST[ch]\n const vb = b[ch] ?? REST[ch]\n out[ch] = r4(va + (vb - va) * t)\n }\n if (a.band !== undefined && b.band !== undefined) out.band = r4(a.band + (b.band - a.band) * t)\n return out\n}\n\n/** The frame `elapsedMs` after the node entered the tree. Finished finite\n * animations hold their last keyframe; reduced motion = the `rest`\n * keyframe (no band). */\nexport function animationFrame(name: string, elapsedMs: number, theme: ResolvedTheme, options: { reducedMotion?: boolean; durationToken?: string } = {}): AnimationFrame | null {\n const def = ANIMATIONS[name]\n const timing = animationTiming(name, theme, options.durationToken)\n if (!def || !timing) return null\n if (options.reducedMotion) {\n const rest = frameAt(def, def.rest, LINEAR)\n return { ...rest, band: null }\n }\n const d = timing.durationMs\n if (d <= 0) return frameAt(def, 1, LINEAR)\n const iterations = timing.iterations === `infinite` ? Infinity : timing.iterations\n const t = Math.max(0, elapsedMs)\n if (t >= d * iterations) return frameAt(def, 1, timing.easing)\n return frameAt(def, (t % d) / d, timing.easing)\n}\n\n/** What a painter shows: the node's own opacity × the frame's (an\n * animation MULTIPLIES opacity; it never replaces it). */\nexport function paintedOpacity(own: number | undefined, frame: AnimationFrame | null): number {\n return r4((own ?? 1) * (frame?.opacity ?? 1))\n}\n\nconst css = (n: number) => String(r4(n))\n\n/** The custom properties the keyframes animate, registered so they\n * interpolate: `--xui-a-opacity` (the animation's opacity factor; the node's\n * `opacity` = own × it, see css.ts styleToCss) and `--xui-band` (the shimmer\n * band). A CSS renderer adds this ONCE per document beside the keyframes. */\nexport const ANIMATION_PROPERTIES_CSS = `@property --xui-a-opacity{syntax:\"<number>\";inherits:false;initial-value:1}@property --xui-band{syntax:\"<number>\";inherits:true;initial-value:1}`\n\n/** Whether a keyframe set animates opacity (its node's CSS opacity then\n * multiplies `--xui-a-opacity`). */\nexport function animatesOpacity(name: string): boolean {\n return ANIMATIONS[name]?.keyframes.some((k) => k.opacity !== undefined) ?? false\n}\n\n/** The CSS `@keyframes xui-<name>` rule (individual `translate`/`rotate`/\n * `scale` properties compose OUTSIDE the node's own `transform`; opacity\n * moves `--xui-a-opacity`, which the node's `opacity` multiplies, so the\n * author's opacity survives the `both` fill; the shimmer band moves\n * `--xui-band`, which the renderer's overlay reads). Needs\n * `ANIMATION_PROPERTIES_CSS`. */\nexport function keyframesCss(name: string): string {\n const def = ANIMATIONS[name]\n if (!def) return ``\n const steps = def.keyframes.map((k) => {\n const decl: string[] = []\n if (k.opacity !== undefined) decl.push(`--xui-a-opacity:${css(k.opacity)}`)\n if (k.translateX !== undefined || k.translateY !== undefined) decl.push(`translate:${css(k.translateX ?? 0)}px ${css(k.translateY ?? 0)}px`)\n if (k.rotate !== undefined) decl.push(`rotate:${css(k.rotate)}deg`)\n if (k.scale !== undefined) decl.push(`scale:${css(k.scale)}`)\n if (k.band !== undefined) decl.push(`--xui-band:${css(k.band)}`)\n return `${css(k.offset * 100)}%{${decl.join(`;`)}}`\n })\n return `@keyframes xui-${name}{${steps.join(``)}}`\n}\n\n/** The CSS `animation` shorthand for a resolved timing (per-segment easing\n * is CSS's own semantics). */\nexport function animationCss(name: string, timing: AnimationTiming): string {\n const easing = timing.easing === LINEAR ? `linear` : `cubic-bezier(${timing.easing.join(`, `)})`\n const iterations = timing.iterations === `infinite` ? `infinite` : String(timing.iterations)\n return `xui-${name} ${timing.durationMs}ms ${easing} ${iterations} both`\n}\n",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"// VAPP-91: the Exponential connector. A third-party host runs a declarative\n// app against an Exponential instance: OAuth to Exponential (the MCP OAuth\n// grant, EXP-792 — discovery, dynamic client registration, PKCE S256, the\n// person's consent picks the teams/boards) and `exp:` binding resolvers over\n// that instance's MCP tools (an OAuth token is confined to /api/mcp and to\n// its grant). Plain fetch + WebCrypto; it knows the instance's PUBLIC HTTP\n// API only, nothing of the app's code.\n\nimport type { HostFunction } from \"../host/runtime\"\nimport type { ParsedSource, SourceEmit, SourceResolvers } from \"../host/sources\"\n\nexport interface AuthServerMetadata {\n issuer: string\n authorization_endpoint: string\n token_endpoint: string\n registration_endpoint?: string\n}\n\nexport interface ConnectorTokens {\n accessToken: string\n refreshToken?: string\n /** Epoch ms. */\n expiresAt?: number\n}\n\nexport interface ConnectorOptions {\n /** The Exponential instance, e.g. `https://app.exponential.at`. */\n baseUrl: string\n /** Where the instance sends the person back with `?code=&state=`. */\n redirectUri: string\n clientName?: string\n /** A client id registered earlier (skips dynamic registration). */\n clientId?: string\n tokens?: ConnectorTokens\n /** Called whenever tokens change (persist them). */\n onTokens?: (tokens: ConnectorTokens) => void\n fetch?: typeof fetch\n /** Seconds between re-reads of a bound source (MCP has no live feed). */\n pollSeconds?: number\n}\n\nconst b64url = (bytes: Uint8Array) => btoa(String.fromCharCode(...bytes)).replace(/\\+/g, `-`).replace(/\\//g, `_`).replace(/=+$/, ``)\n\n/** A PKCE verifier and its S256 challenge. */\nexport async function pkcePair(): Promise<{ verifier: string; challenge: string }> {\n const verifier = b64url(crypto.getRandomValues(new Uint8Array(32)))\n const digest = new Uint8Array(await crypto.subtle.digest(`SHA-256`, new TextEncoder().encode(verifier)))\n return { verifier, challenge: b64url(digest) }\n}\n\nexport class ExponentialConnector {\n private metadata?: AuthServerMetadata\n private clientId?: string\n tokens?: ConnectorTokens\n private rpcId = 0\n\n constructor(private options: ConnectorOptions) {\n this.clientId = options.clientId\n this.tokens = options.tokens\n }\n\n private get fetch(): typeof fetch {\n return this.options.fetch ?? fetch\n }\n\n private url(path: string): string {\n return new URL(path, this.options.baseUrl).href\n }\n\n async discover(): Promise<AuthServerMetadata> {\n if (this.metadata) return this.metadata\n const res = await this.fetch(this.url(`/.well-known/oauth-authorization-server`))\n if (!res.ok) throw new Error(`discovery failed: HTTP ${res.status}`)\n this.metadata = (await res.json()) as AuthServerMetadata\n return this.metadata\n }\n\n /** Dynamic client registration (a public client: PKCE, no secret). */\n async register(): Promise<string> {\n if (this.clientId) return this.clientId\n const meta = await this.discover()\n if (!meta.registration_endpoint) throw new Error(`the instance offers no dynamic client registration; pass clientId`)\n const res = await this.fetch(meta.registration_endpoint, {\n method: `POST`,\n headers: { \"content-type\": `application/json` },\n body: JSON.stringify({ client_name: this.options.clientName ?? `Exponential UI host`, redirect_uris: [this.options.redirectUri], grant_types: [`authorization_code`, `refresh_token`], response_types: [`code`], token_endpoint_auth_method: `none` }),\n })\n if (!res.ok) throw new Error(`registration failed: HTTP ${res.status}`)\n this.clientId = ((await res.json()) as { client_id: string }).client_id\n return this.clientId\n }\n\n /** Where to send the person. Keep `verifier`, `state` AND `clientId`\n * for the callback: a connector rebuilt after the redirect needs the\n * dynamically registered client id (pass it to `exchange`, or as\n * `ConnectorOptions.clientId`), or the code was issued to a client the\n * token request does not name. */\n async authorizeUrl(): Promise<{ url: string; verifier: string; state: string; clientId: string }> {\n const meta = await this.discover()\n const clientId = await this.register()\n const { verifier, challenge } = await pkcePair()\n const state = b64url(crypto.getRandomValues(new Uint8Array(16)))\n const url = new URL(meta.authorization_endpoint)\n url.search = new URLSearchParams({ response_type: `code`, client_id: clientId, redirect_uri: this.options.redirectUri, code_challenge: challenge, code_challenge_method: `S256`, state, scope: `openid profile email offline_access` }).toString()\n return { url: url.href, verifier, state, clientId }\n }\n\n private async token(body: Record<string, string>): Promise<ConnectorTokens> {\n const meta = await this.discover()\n const res = await this.fetch(meta.token_endpoint, { method: `POST`, headers: { \"content-type\": `application/x-www-form-urlencoded` }, body: new URLSearchParams({ client_id: this.clientId ?? ``, ...body }).toString() })\n if (!res.ok) throw new Error(`token request failed: HTTP ${res.status}`)\n const json = (await res.json()) as { access_token: string; refresh_token?: string; expires_in?: number }\n this.tokens = { accessToken: json.access_token, refreshToken: json.refresh_token ?? this.tokens?.refreshToken, expiresAt: json.expires_in ? Date.now() + json.expires_in * 1000 : undefined }\n this.options.onTokens?.(this.tokens)\n return this.tokens\n }\n\n /** The callback: trade the code for tokens. `clientId` = the one\n * `authorizeUrl` returned (required unless this connector registered it\n * or got it in its options): the exchange never registers a new client,\n * whose id the code was not issued to. */\n async exchange(code: string, verifier: string, clientId?: string): Promise<ConnectorTokens> {\n if (clientId) this.clientId = clientId\n if (!this.clientId) throw new Error(`no client id for the token exchange; pass the clientId authorizeUrl returned`)\n return this.token({ grant_type: `authorization_code`, code, code_verifier: verifier, redirect_uri: this.options.redirectUri })\n }\n\n async refresh(): Promise<ConnectorTokens> {\n if (!this.tokens?.refreshToken) throw new Error(`no refresh token; authorize again`)\n return this.token({ grant_type: `refresh_token`, refresh_token: this.tokens.refreshToken })\n }\n\n /** One MCP tool call on the instance, as the person who consented.\n * Returns the tool's JSON payload (its text content parsed). */\n async callTool(name: string, args: Record<string, unknown> = {}): Promise<unknown> {\n if (!this.tokens) throw new Error(`not connected; authorize first`)\n if (this.tokens.expiresAt && this.tokens.expiresAt < Date.now() + 30_000 && this.tokens.refreshToken) await this.refresh()\n const res = await this.fetch(this.url(`/api/mcp`), {\n method: `POST`,\n headers: { \"content-type\": `application/json`, accept: `application/json, text/event-stream`, authorization: `Bearer ${this.tokens.accessToken}` },\n body: JSON.stringify({ jsonrpc: `2.0`, id: ++this.rpcId, method: `tools/call`, params: { name, arguments: args } }),\n })\n if (!res.ok) throw new Error(`MCP HTTP ${res.status}`)\n const text = await res.text()\n const line = text.trimStart().startsWith(`{`) ? text : (text.split(`\\n`).find((l) => l.startsWith(`data:`))?.slice(5) ?? `{}`)\n const reply = JSON.parse(line) as { result?: { content?: { type: string; text?: string }[]; structuredContent?: unknown; isError?: boolean }; error?: { message?: string } }\n if (reply.error) throw new Error(reply.error.message ?? `MCP error`)\n const result = reply.result ?? {}\n const body = result.structuredContent ?? (result.content ?? []).filter((c) => c.type === `text`).map((c) => c.text ?? ``).join(``)\n if (result.isError) throw new Error(typeof body === `string` ? body : `tool error`)\n if (typeof body !== `string`) return body\n try {\n return JSON.parse(body)\n } catch {\n return body\n }\n }\n\n /** The `exp:` scheme over MCP: `exp:issues?board=<id>&team=<id>&limit=<n>&search=<q>`,\n * `exp:boards?team=<id>`, `exp:teams`, `exp:members?team=<id>`. Each\n * emits `{rows, count}` and re-reads every `pollSeconds` (default 30, the\n * `poll` param overrides; 0 = once). Unknown names emit `null`. */\n sources(): SourceResolvers {\n return { exp: (source, emit) => this.follow(source, emit) }\n }\n\n private follow(source: ParsedSource, emit: SourceEmit): () => void {\n const p = source.params\n const read = async (): Promise<unknown> => {\n switch (source.name) {\n case `issues`: {\n const args: Record<string, unknown> = { limit: Number(p.limit ?? 50) }\n if (p.board) args.boardId = p.board\n if (p.team) args.teamId = p.team\n if (p.search) args.search = p.search\n return this.callTool(`exponential_issues_list`, args)\n }\n case `boards`:\n return this.callTool(`exponential_boards_list`, p.team ? { teamId: p.team } : {})\n case `teams`:\n return this.callTool(`exponential_teams_list`, {})\n case `members`:\n return this.callTool(`exponential_members_list`, p.team ? { teamId: p.team } : {})\n default:\n return null\n }\n }\n let live = true\n let timer: ReturnType<typeof setTimeout> | undefined\n const seconds = Number(p.poll ?? this.options.pollSeconds ?? 30)\n const tick = async () => {\n try {\n const value = await read()\n if (!live) return\n const rows = Array.isArray(value) ? value : (value as { rows?: unknown[] } | null)?.rows\n emit(rows ? { rows, count: rows.length } : value)\n } catch (e) {\n if (live) emit({ rows: [], count: 0, error: e instanceof Error ? e.message : String(e) })\n }\n if (live && seconds > 0) timer = setTimeout(tick, seconds * 1000)\n }\n void tick()\n return () => {\n live = false\n if (timer) clearTimeout(timer)\n }\n }\n\n /** `exponential.mcp({tool, arguments})` for an ExponentialHost (gate it\n * with an `ask` policy: it acts as the person). */\n functions(): Record<string, HostFunction> {\n return { \"exponential.mcp\": (args) => this.callTool(String(args.tool ?? ``), (args.arguments ?? {}) as Record<string, unknown>) }\n }\n}\n",
|
|
25
25
|
"// VAPP-91: running a declarative app (VAPP-82) in any host: install the\n// package, apply a template onto a surface, bind its sources (the host's own\n// resolvers, or the Exponential connector's `exp:` ones), and let the\n// package's `functions` list narrow the policy. The apps product's own host\n// plugin is this plus its theme and extension.\n\nimport type { ServerMessage } from \"../host/contract\"\nimport type { PackageIssue, AppPackage } from \"../host/package\"\nimport { ExponentialHost } from \"../host/runtime\"\nimport type { HostOptions } from \"../host/runtime\"\n\nexport interface AppHostOptions extends HostOptions {\n /** The package to run. */\n package: AppPackage\n}\n\nexport interface AppHost {\n host: ExponentialHost\n issues: PackageIssue[]\n /** Apply a template of the package onto a surface (default: the first). */\n open(surfaceId: string, templateId?: string, data?: unknown): void\n}\n\nexport function createAppHost(options: AppHostOptions): AppHost {\n const { package: pkg, ...rest } = options\n const host = new ExponentialHost(rest)\n const issues = host.installPackage(pkg)\n return {\n host,\n issues,\n open(surfaceId, templateId = Object.keys(pkg.templates)[0]!, data) {\n const message: ServerMessage = { version: `v0.9`, applyTemplate: { surfaceId, templateId, packageId: pkg.id, ...(data === undefined ? {} : { data }) } }\n host.receive(message)\n },\n }\n}\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "D54551619D5F8EAE64756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|