@exponential_app/eui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/a11y.json +10 -0
- package/catalog/core.catalog.json +284 -6
- package/catalog/core.schema.json +437 -4
- package/catalog/layout.json +3 -2
- package/catalog/limits.json +10 -1
- package/catalog/macros.json +1 -0
- package/catalog/recipes.json +3 -1
- package/catalog/strings.json +9 -2
- package/catalog/style.json +21 -0
- package/catalog/theme.schema.json +4435 -3676
- package/conformance/manifest.json +2 -2
- 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-4z7f2bp1.js → index-4xczxey5.js} +35 -15
- package/dist/chunks/{index-4z7f2bp1.js.map → index-4xczxey5.js.map} +4 -4
- package/dist/chunks/{index-dx45asrf.js → index-5sjj5p84.js} +174 -8
- package/dist/chunks/{index-dx45asrf.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-abcjanhc.js → index-f9wkb6aq.js} +192 -3
- package/dist/chunks/{index-abcjanhc.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-h3zgfghf.js → index-vkn82srs.js} +179 -8
- package/dist/chunks/{index-h3zgfghf.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 +3154 -63
- 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 +3 -3
- package/dist/index.js +333 -98
- package/dist/index.js.map +4 -4
- package/dist/types/src/catalog.generated.d.ts +50 -4
- 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 +1 -1
- package/dist/types/src/web/primitives/dock.d.ts +5 -2
- package/dist/types/src/web/primitives/index.d.ts +2 -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/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 +165 -230
- package/dist/web/index.js.map +8 -9
- package/dist/web/primitives/index.js +584 -7
- package/dist/web/primitives/index.js.map +7 -6
- package/docs/components.generated.json +392 -4
- package/docs/round-6-contract.md +5 -3
- package/docs/themes.generated.json +27 -0
- package/fixtures/bind-time.json +4 -0
- package/fixtures/catalog-components.json +930 -16
- package/fixtures/catalog-macros.json +11 -0
- package/fixtures/conformance-baseline.json +33020 -32952
- package/fixtures/conformance-known.json +64 -70
- package/fixtures/kitchen-sink.expanded.json +72 -0
- package/fixtures/kitchen-sink.json +33 -0
- 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 +1 -0
- package/fixtures/prompt-budget.json +16 -16
- package/fixtures/specimens.json +717 -21
- package/fixtures/theme-recipes.json +1518 -32
- package/fixtures/theme-resolved.json +732 -56
- package/fixtures/zoom.json +1382 -0
- package/generated/ExponentialUICatalog.generated.kt +20 -20
- package/generated/ExponentialUICatalog.generated.swift +20 -20
- 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 +29 -29
- package/generated/catalog.themes.generated.rs +8 -8
- package/generated/core.descriptions.json +171 -5
- package/generated/core.runtime.json +189 -1
- package/package.json +1 -1
- package/themes/neutral.theme.json +172 -3
- package/dist/chunks/index-t6qz1770.js +0 -95
- package/dist/chunks/index-t6qz1770.js.map +0 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/web/primitives/button.ts", "../src/web/primitives/alert-dialog.ts", "../src/web/primitives/alert.ts", "../src/web/primitives/avatar-color.ts", "../src/web/primitives/avatar.ts", "../src/web/primitives/badge.ts", "../src/web/primitives/breadcrumb.ts", "../src/web/primitives/calendar.ts", "../src/web/primitives/glass-card.ts", "../src/web/primitives/card.ts", "../src/web/primitives/carousel.ts", "../src/web/primitives/checkbox.ts", "../src/web/primitives/choice-tiles.ts", "../src/web/primitives/cn.ts", "../src/web/primitives/code-block.ts", "../src/web/primitives/command.ts", "../src/web/primitives/context-ring.ts", "../src/web/primitives/dialog-arms.ts", "../src/web/primitives/dialog.ts", "../src/web/primitives/disclosure-header.ts", "../src/web/primitives/toast.ts", "../src/web/primitives/dock.ts", "../src/web/primitives/menu-surface.ts", "../src/web/primitives/dropdown-menu.ts", "../src/web/primitives/empty-state.ts", "../src/web/primitives/hover-card.ts", "../src/web/primitives/icon-disc.ts", "../src/web/primitives/input.ts", "../src/web/primitives/kbd.ts", "../src/web/primitives/label.ts", "../src/web/primitives/meter.ts", "../src/web/primitives/mosaic.ts", "../src/web/primitives/outline.ts", "../src/web/primitives/popover.ts", "../src/web/primitives/progress-ring.ts", "../src/web/primitives/progress.ts", "../src/web/primitives/scroll-area.ts", "../src/web/primitives/tabs.ts", "../src/web/primitives/segmented-control.ts", "../src/web/primitives/select.ts", "../src/web/primitives/separator.ts", "../src/web/primitives/sheet-chrome.ts", "../src/web/primitives/sheet.ts", "../src/web/primitives/skeleton.ts", "../src/web/primitives/spinner.ts", "../src/web/primitives/switch.ts", "../src/web/primitives/table.ts", "../src/web/primitives/textarea.ts", "../src/web/primitives/tooltip.ts", "../src/web/primitives/truncate.ts", "../src/web/primitives/typeahead-portal.ts"],
|
|
3
|
+
"sources": ["../src/web/primitives/button.ts", "../src/web/primitives/alert-dialog.ts", "../src/web/primitives/alert.ts", "../src/web/primitives/avatar-color.ts", "../src/web/primitives/avatar.ts", "../src/web/primitives/badge.ts", "../src/web/primitives/breadcrumb.ts", "../src/web/primitives/calendar.ts", "../src/web/primitives/glass-card.ts", "../src/web/primitives/card.ts", "../src/web/primitives/carousel.ts", "../src/web/primitives/checkbox.ts", "../src/web/primitives/choice-tiles.ts", "../src/web/primitives/cn.ts", "../src/web/primitives/code-block.ts", "../src/web/primitives/command.ts", "../src/web/primitives/context-ring.ts", "../src/web/primitives/dialog-arms.ts", "../src/web/primitives/dialog.ts", "../src/web/primitives/disclosure-header.ts", "../src/web/primitives/toast.ts", "../src/web/primitives/dock.ts", "../src/web/primitives/menu-surface.ts", "../src/web/primitives/dropdown-menu.ts", "../src/web/primitives/empty-state.ts", "../src/web/primitives/hover-card.ts", "../src/web/primitives/icon-disc.ts", "../src/web/primitives/input.ts", "../src/web/primitives/kbd.ts", "../src/web/primitives/label.ts", "../src/web/primitives/meter.ts", "../src/web/primitives/mosaic.ts", "../src/web/primitives/outline.ts", "../src/web/primitives/popover.ts", "../src/web/primitives/progress-ring.ts", "../src/web/primitives/progress.ts", "../src/web/primitives/scroll-area.ts", "../src/web/primitives/tabs.ts", "../src/web/primitives/segmented-control.ts", "../src/web/primitives/select.ts", "../src/web/primitives/separator.ts", "../src/web/primitives/sheet-chrome.ts", "../src/web/primitives/sheet.ts", "../src/web/primitives/skeleton.ts", "../src/web/primitives/spinner.ts", "../src/web/primitives/switch.ts", "../src/web/primitives/table.ts", "../src/web/primitives/textarea.ts", "../src/web/primitives/tooltip.ts", "../src/web/primitives/truncate.ts", "../src/web/primitives/typeahead-portal.ts", "../src/web/primitives/zoomable-image.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n `inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all duration-fast ease-standard outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,\n {\n variants: {\n variant: {\n default: `bg-primary text-primary-foreground hover:bg-primary/90`,\n destructive: `bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40`,\n outline: `border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,\n glass: `border border-glass-stroke-card bg-glass-card text-foreground/70 hover:bg-glass-active hover:text-foreground`,\n secondary: `bg-secondary text-secondary-foreground hover:bg-secondary/80`,\n // EXP-960: a ghost TOGGLE says so with `aria-pressed`, and the pressed\n // state is the hover wash held down (the editor's formatting rail).\n // The `hover` arm names dark's half wash too: a pressed button under\n // the pointer must not fade to it.\n ghost: `hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 aria-pressed:bg-accent aria-pressed:text-accent-foreground dark:aria-pressed:hover:bg-accent`,\n link: `text-primary underline-offset-4 hover:underline`,\n // EXP-962: the TEXT button — muted words that brighten under the\n // pointer and never underline: a fold's \"Show more\"/\"Show less\", a\n // step's \"Back to the current step\". `link` goes SOMEWHERE (it\n // underlines like a link); `text` toggles something in place.\n text: `text-muted-foreground hover:text-foreground`,\n },\n // EXP-1176: a TEXT button is a rounded rectangle at the ladder's MD\n // step (10px, the row corner), the shape desktop `web_md`, iOS\n // `GlassSubmitButton` and Android `GlassSubmitButton` already wear. The\n // base `rounded-md` covers every boxed size; EXP-616's capsule is gone\n // from buttons. The capsule is the `Pill` (chips, header actions, the\n // picker trigger), the tabs, the badge and the phone bars, never a\n // Button with words in it. Icon sizes stay circles (the primary-action\n // rule, EXP-771); the ghost icon button alone sits on the MD corner.\n size: {\n default: `h-9 px-4 py-2 has-[>svg]:px-3`,\n xs: `h-6 gap-1 px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,\n sm: `h-8 gap-1.5 px-3 has-[>svg]:px-2.5`,\n lg: `h-10 px-6 has-[>svg]:px-4`,\n icon: `size-9 rounded-full`,\n // EXP-698 — the ONE trailing-action size: every row/header action\n // (play, merge, resume, copy link, the \"…\" menus) is a 32px chromed\n // glass circle.\n \"icon-sm\": `size-8 rounded-full [&_svg:not([class*='size-'])]:size-4`,\n \"icon-xs\": `size-6 rounded-full [&_svg:not([class*='size-'])]:size-3`,\n // S-3 (voice-call.json): the phone call's round buttons (styleguide\n // `call-controls`): a 56px circle with a 24px glyph.\n \"icon-lg\": `size-14 rounded-full [&_svg:not([class*='size-'])]:size-6`,\n // EXP-962: INLINE — no box at all: the words sit in the run of text\n // around them at 12px, only the colour (and, for `link`, the\n // underline) says they are a button. For `link` and `text`; the\n // steer feed's \"Show more\", the session bands' \"Continues in a\n // newer run\", the edited-files card's footer.\n inline: `h-auto gap-1 rounded-sm p-0 text-xs has-[>svg]:px-0 [&_svg:not([class*='size-'])]:size-3`,\n },\n },\n // EXP-862: a GHOST icon button is the secondary control (no circle, no\n // border, the row wash on hover), so its hover paints under the MD corner\n // like desktop `controls::ghost_icon_button` and the styleguide's ghost\n // entry, not as a disc.\n compoundVariants: [\n {\n variant: `ghost`,\n size: [`icon`, `icon-sm`, `icon-xs`, `icon-lg`],\n className: `rounded-md`,\n },\n // EXP-1243: a boxed button presses to `scale.press` (motion-press);\n // the ghost icon button (a row's or toolbar's quiet control) and the\n // words-only link/text buttons do not.\n {\n variant: [`default`, `destructive`, `outline`, `glass`, `secondary`, `ghost`],\n size: [`default`, `xs`, `sm`, `lg`],\n className: `motion-press`,\n },\n {\n variant: [`default`, `destructive`, `outline`, `glass`, `secondary`],\n size: [`icon`, `icon-sm`, `icon-xs`, `icon-lg`],\n className: `motion-press`,\n },\n ],\n defaultVariants: {\n variant: `default`,\n size: `default`,\n },\n }\n)\n\nexport type ButtonVariantProps = VariantProps<typeof buttonVariants>\n",
|
|
6
6
|
"import { buttonVariants } from \"./button\"\n\n// Round 1: shadcn's AlertDialog on Radix — the confirm-or-cancel modal the\n// catalog's AlertDialog macro also paints (no backdrop dismissal, Escape\n// cancels, focus starts on Cancel).\nexport const ALERT_DIALOG_CLASSES = {\n overlay: `fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-fast data-[state=closed]:ease-accelerate data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-standard data-[state=open]:ease-decelerate`,\n content: `fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg motion-dialog sm:max-w-lg`,\n header: `flex flex-col gap-2 text-center sm:text-left`,\n footer: `flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,\n title: `text-lg font-semibold`,\n description: `text-sm text-muted-foreground`,\n action: buttonVariants(),\n cancel: buttonVariants({ variant: `outline` }),\n} as const\n",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"// shadcn's Calendar on react-day-picker: `classNames` is DayPicker's part map\n// (its keys are DayPicker's), the rest are the root, the chevrons, the week\n// number cell and the day button.\nexport const CALENDAR_CLASSES = {\n root: [\n `group/calendar bg-background p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent`,\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n ].join(` `),\n classNames: {\n root: `w-fit`,\n months: `relative flex flex-col gap-4 md:flex-row`,\n month: `flex w-full flex-col gap-4`,\n nav: `absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,\n button_previous: `size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,\n button_next: `size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,\n month_caption: `flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,\n dropdowns: `flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,\n dropdown_root: `relative rounded-md border border-input shadow-xs has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50`,\n dropdown: `absolute inset-0 bg-popover opacity-0`,\n caption_label: `font-medium select-none`,\n table: `w-full border-collapse`,\n weekdays: `flex`,\n weekday: `flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none`,\n week: `mt-2 flex w-full`,\n week_number_header: `w-(--cell-size) select-none`,\n week_number: `text-[0.8rem] text-muted-foreground select-none`,\n day: `group/day relative aspect-square h-full w-full p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-md`,\n range_start: `rounded-l-md bg-accent`,\n range_middle: `rounded-none`,\n range_end: `rounded-r-md bg-accent`,\n today: `rounded-md bg-accent text-accent-foreground data-[selected=true]:rounded-none`,\n outside: `text-muted-foreground aria-selected:text-muted-foreground`,\n disabled: `text-muted-foreground opacity-50`,\n hidden: `invisible`,\n },\n /** `caption_label` per `captionLayout`: `label`, else a dropdown. */\n captionLabel: {\n label: `text-sm`,\n dropdown: `flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground`,\n },\n /** The `day` cell's first-selected corner, with or without week numbers. */\n dayFirst: {\n weekNumbers: `[&:nth-child(2)[data-selected=true]_button]:rounded-l-md`,\n plain: `[&:first-child[data-selected=true]_button]:rounded-l-md`,\n },\n chevron: `size-4`,\n weekNumber: `flex size-(--cell-size) items-center justify-center text-center`,\n dayButton: `flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70`,\n} as const\n",
|
|
13
13
|
"// EXP-903 — the ONE glass-card surface recipe.\n//\n// Five web surfaces painted the same translucent card by copy-paste: the\n// comment row, the agent AskCard, the agent usage bar, the mobile issue\n// properties sheet and the repo picker (which had drifted to `rounded-md` and\n// the bare `border` hairline). This is their common core — the XL radius, the\n// card hairline and the glass fill. Everything a card owns on its own (its\n// padding, its dividers, its overflow rule, a blur or a shadow) stays at the\n// call site, because those genuinely differ per surface. `Card` in card.tsx\n// derives its recipe from this constant; the natives already own the\n// primitive (desktop `surface::glass_card`, iOS `GlassCard`, Android\n// `Modifier.glassCard()`). N-12 (owner 2026-10-22): ONE gray ×4: the fill\n// is the opaque card composite (`bg-glass-card-opaque`), never the\n// translucent wash, so every card reads the same tone wherever it sits.\nexport const GLASS_CARD_CLASS = `rounded-xl border border-glass-stroke-card bg-glass-card-opaque`\n\nexport const GLASS_CARD_CLASSES = { root: GLASS_CARD_CLASS } as const\n",
|
|
14
14
|
"import { GLASS_CARD_CLASS } from \"./glass-card\"\n\nexport const CARD_CLASSES = {\n root: `${GLASS_CARD_CLASS} flex flex-col gap-6 backdrop-blur-md py-6 text-card-foreground shadow-sm`,\n header: `@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,\n title: `leading-none font-semibold`,\n description: `text-sm text-muted-foreground`,\n action: `col-start-2 row-span-2 row-start-1 self-start justify-self-end`,\n content: `px-6`,\n footer: `flex items-center px-6 [.border-t]:pt-6`,\n} as const\n",
|
|
15
|
-
"// EXP-1495: the Carousel's `counter` and `thumbnails` on the app's tokens\n// (the catalog's Carousel parts `counter`, `thumbnails`, `thumbnail`): the\n// \"i / n\" pill over the slide's top-
|
|
15
|
+
"// EXP-1495: the Carousel's `counter` and `thumbnails` on the app's tokens\n// (the catalog's Carousel parts `counter`, `thumbnails`, `thumbnail`): the\n// \"i / n\" pill over the slide's top-end corner and the filmstrip of\n// `CAROUSEL_GEOMETRY.thumbnail` px squares under it, the current one ringed\n// `ring` px in the foreground. The plan page's phone picture group (plan-page\n// .json: THE eUI Carousel) paints through these.\n\nexport const CAROUSEL_GEOMETRY = { thumbnail: 52, ring: 2, thumbnailGap: 8, counterInset: 8 } as const\n\n/** The counter's text: `i / n` (1-based). */\nexport function carouselCounterText(page: number, total: number): string {\n return `${page + 1} / ${total}`\n}\n\nexport const CAROUSEL_CLASSES = {\n /** The pill over the slide; its parent is `relative`. */\n counter: `pointer-events-none absolute end-2 top-2 z-10 rounded-full bg-black/55 px-2 text-xs leading-5 font-medium text-white tabular-nums`,\n /** The filmstrip: one row, scrolling sideways when it overflows. */\n thumbnails: `flex flex-row gap-[8px] overflow-x-auto pt-2 [scrollbar-width:none]`,\n /** One thumbnail: a button; the current one `data-current=true`. */\n thumbnail: `relative size-[52px] shrink-0 cursor-pointer overflow-hidden rounded-md border-2 border-transparent bg-muted p-0 opacity-70 outline-none transition-opacity duration-fast hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[current=true]:border-foreground data-[current=true]:opacity-100`,\n thumbnailImage: `size-full object-cover`,\n} as const\n",
|
|
16
16
|
"export const CHECKBOX_CLASSES = {\n // EXP-616: glass box — the strong stroke keeps a 16px unchecked square\n // legible against the row fill it sits on. 4px corner = the Exponential UI\n // Checkbox box (control-geometry.json); rounded-sm (8px) made it a circle.\n root: `peer size-4 shrink-0 rounded-[4px] border border-glass-stroke-strong bg-glass-row shadow-none transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary`,\n indicator: `grid place-content-center text-current transition-none`,\n icon: `size-3.5`,\n} as const\n",
|
|
17
17
|
"// EXP-1280: picture choice tiles. The pure half (the option shape, the\n// pick arithmetic) and the app-token skin of `ChoiceTiles`; the headless\n// frame lives with each renderer.\n\nexport interface ChoiceTileOption {\n value: string\n label: string\n description?: string | null\n /** The picture's url (a relative `/api/attachments/{id}` resolves in the\n * app through `renderImage`). */\n image?: string | null\n disabled?: boolean\n}\n\n/** `columns` clamped to 1–4 (default 2). */\nexport function choiceColumns(columns: unknown): number {\n const n = typeof columns === `number` && Number.isFinite(columns) ? Math.round(columns) : 2\n return Math.min(4, Math.max(1, n))\n}\n\n/** The values a comma-joined eUI `value` picks (single: the whole string). */\nexport function choiceValues(value: unknown, multiple: boolean): string[] {\n if (Array.isArray(value)) return value.map(String).filter(Boolean)\n const raw = value === undefined || value === null ? `` : String(value)\n if (!multiple) return raw ? [raw] : []\n return raw\n .split(`,`)\n .map((s) => s.trim())\n .filter(Boolean)\n}\n\n/** A press on `value`: single picks it; multiple toggles it, the list kept in\n * OPTION order (fixtures/interactions-round1.json `choiceTiles`). */\nexport function choiceToggle(picked: readonly string[], value: string, multiple: boolean, order: readonly string[]): string[] {\n if (!multiple) return [value]\n const next = picked.includes(value) ? picked.filter((v) => v !== value) : [...picked, value]\n const rank = (v: string) => {\n const i = order.indexOf(v)\n return i < 0 ? Number.MAX_SAFE_INTEGER : i\n }\n return next.slice().sort((a, b) => rank(a) - rank(b))\n}\n\nexport interface TileState {\n index: number\n selected: boolean\n disabled: boolean\n}\n\nexport const CHOICE_TILES_CLASSES = {\n root: `gap-[8px]`,\n // The tile in PX, never rem steps (the app's desktop rem is 18.5px, which\n // would inflate them): THE ChoiceTiles recipe = the exponential theme's\n // recipes.ChoiceTiles = packages/domain-contract/fixtures/plan-card.json\n // `tiles` (the SDK imports nothing from the app, so the numbers are copied\n // here): padding 8 (7 when selected, under the 2px `selectedRing`), `gap` 8\n // between tiles, `radius` 10, `pictureRadius` 6 at `pictureAspect` 1.6,\n // `stroke` 1, `placeholderGlyph` 20 at 0.6, `labelGap` 4 picture→label and\n // label→description, `inertOpacity` 0.5. Text stays the sm/xs steps.\n tile: `flex min-w-0 cursor-pointer flex-col gap-[4px] rounded-[10px] border-[1px] border-border bg-card p-[8px] text-start outline-none transition-colors hover:bg-secondary focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50`,\n tileSelected: `border-[2px] border-primary bg-accent p-[7px] hover:bg-accent`,\n tileInvalid: `border-destructive`,\n picture: `relative flex aspect-[1.6] w-full shrink-0 items-center justify-center overflow-hidden rounded-[6px] bg-muted text-muted-foreground`,\n image: `absolute inset-0 size-full object-cover`,\n placeholder: `size-[20px] opacity-60`,\n label: `min-w-0 text-sm leading-5 font-medium text-foreground`,\n description: `min-w-0 text-xs leading-4 text-muted-foreground`,\n} as const\n",
|
|
18
18
|
"import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\n// The class-name merger every component in this package (and every app that\n// consumes it) styles through: clsx for conditionals, tailwind-merge so a\n// caller's `className` beats the component's own utilities instead of racing\n// it in the cascade.\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function getInitials(value: string) {\n return value\n .split(` `)\n .map((part) => part[0] ?? ``)\n .join(``)\n .toUpperCase()\n .slice(0, 2)\n}\n",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"/** Below `sm` a sheet-arm dialog IS the bottom sheet (EXP-687 → the UI\n * cleanup batch's \"one phone sheet\"). */\nexport const DIALOG_PHONE_QUERY = `(max-width: 639px)`\n\nexport const DIALOG_CLASSES = {\n overlay: `fixed inset-0 z-50 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-fast data-[state=closed]:ease-accelerate data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-standard data-[state=open]:ease-decelerate`,\n // ONE phone sheet: a sheet arm below `sm` renders THROUGH `SheetContent`\n // (its grabber, drag-to-dismiss, overlay-tap close and opaque surface)\n // with these on top; `phoneSheetFull` is the `sheet-full` detent.\n phoneSheet: `gap-4 overflow-hidden px-4 pt-0 pb-[max(1rem,env(safe-area-inset-bottom))] outline-none`,\n phoneSheetFull: `h-[94dvh] max-h-[94dvh]`,\n // The panel is a flex COLUMN that never scrolls itself (EXP-369):\n // header and footer stay pinned and the scrolling happens inside\n // `DialogBody` (`flex-1 min-h-0 overflow-y-auto`). Any dialog whose\n // content can outgrow the viewport MUST wrap that content in a\n // DialogBody — without one, tall content is clipped rather than\n // scrolled (short confirm dialogs only hit that below ~200px of\n // viewport height).\n // Below `sm` the presentation is one of the four arms in\n // ui/dialog-arms.ts, `sheet` by default (EXP-687): a bottom sheet\n // with a grabber and no ✕, dismissed by dragging it down or tapping\n // outside. From `sm` up it is the centered frosted panel (EXP-269),\n // capped to the viewport — THE SAME for every arm, which is why the\n // arms own all the padding; the enter is `motion-dialog` (EXP-1243),\n // the sheet arms swap it for `motion-sheet` below `sm`. Callers that reposition or\n // re-cap the panel must sm:-prefix those classes so they compose\n // with (and tailwind-merge away) the sm: base here.\n // A column flex container also fixes EXP-178 for free: items take\n // the container's definite width and long nowrap lines (e.g. an\n // issue title in a picker row) overflow their item instead of\n // inflating the panel the way a grid track's min-content did.\n // sm:w-[calc(100%-2rem)] keeps the 1rem side gutter the old\n // unprefixed max-w-[calc(100%-2rem)] used to give, without sitting in\n // the max-w-* tailwind-merge group — so a caller's sm:max-w-* still\n // caps the panel instead of dropping the gutter.\n content: `fixed z-50 flex flex-col gap-4 overflow-hidden shadow-lg outline-none motion-dialog sm:inset-auto sm:top-[50%] sm:left-[50%] sm:max-h-[calc(100dvh-2rem)] sm:w-[calc(100%-2rem)] sm:max-w-lg sm:translate-x-[-50%] sm:translate-y-[-50%] sm:rounded-2xl sm:border sm:border-glass-stroke-card sm:bg-card/85 sm:shadow-2xl sm:shadow-black/40 sm:backdrop-blur-2xl`,\n /** The sheet arms' grabber on the centred panel: a phone only. */\n grabber: `hidden max-sm:block`,\n /** The hidden Close a drag-to-dismiss clicks. */\n dragClose: `hidden`,\n close: `absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,\n // Sheets and alerts carry no ✕ on a phone (EXP-687); the\n // full-screen page arm is the one that still needs it.\n closePhoneHidden: `max-sm:hidden`,\n srOnly: `sr-only`,\n // Left-aligned on every viewport (EXP-687): a centered mobile title\n // reads as an alert, and sheets are not alerts.\n header: `flex flex-col gap-2 text-left`,\n // The one scrolling region of a dialog. Everything that can grow — a form's\n // fields, a long list, a wall of explanatory copy — goes in here so the header\n // above it and the footer below it stay pinned to the panel edges. Short\n // content just doesn't scroll: flex-1 only claims free space when the panel is\n // actually height-capped.\n body: `min-h-0 flex-1 overflow-y-auto`,\n // On a phone every action is the full-width `lg` capsule pinned to\n // the bottom of the sheet (EXP-687) — one button shape across web,\n // iOS `GlassSubmitButton` and Android `GlassSubmitButton`.\n footer: `flex flex-col-reverse gap-2 max-sm:[&>[data-slot=button]]:h-10 max-sm:[&>[data-slot=button]]:w-full max-sm:[&>[data-slot=button]]:px-6 sm:flex-row sm:justify-end`,\n /** The Cancel of a sheet arm on a phone (EXP-687): hidden, a sheet is\n * dismissed by dragging it down or tapping outside; `alert`/`page` keep it. */\n cancelPhoneHidden: `max-sm:hidden`,\n title: `text-lg leading-none font-semibold`,\n description: `text-sm text-muted-foreground`,\n} as const\n",
|
|
24
24
|
"// EXP-962 — the DISCLOSURE header: the one-line fold toggle a feed row,\n// a subagent lane, a tool group or a workflow agent opens and closes with.\n// Muted at rest and brightening on hover, a 12px chevron that points right\n// when folded and down when open, `aria-expanded` stating the fold, the\n// whole line the click target. Eight call sites in the steer feed and the\n// workflow card drew it by hand before this.\n//\n// It is NOT the group band: `GlassSectionHeader foldable` / `IssueGroupBand`\n// is a filled strip heading a LIST; this is bare text heading a fold INSIDE\n// a row. Chevron placement: `leading` (the default) sits before the label,\n// the way a tree folds; `trailing` parks it at the far edge after a spacer\n// — a row whose siblings carry no chevron must not indent out of line\n// with them (the tool row's output fold, iOS/Android parity).\n//\n// The header may NOT contain another button: a fold's own action (a\n// group's \"+\", a row's menu) renders beside it, not inside it.\nexport const DISCLOSURE_HEADER_CLASSES = {\n root: `flex w-full min-w-0 cursor-pointer items-center gap-2 rounded-sm text-left text-muted-foreground transition-colors duration-fast outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50`,\n chevron: `size-3 shrink-0`,\n // EXP-1191: a trailing glyph parks itself with `ml-auto` — a flex-1\n // spacer split the free space with a row's own `flex-1` label and left its\n // trailing count mid-row.\n chevronTrailing: `ml-auto`,\n} as const\n",
|
|
25
25
|
"// FEED-131: THE toast of the primitive sets, sonner-free: the class recipe\n// (the Exponential app's `TOAST_*_CLASS` look, packages/ui/src/toast.tsx,\n// minus sonner's overrides) and the framework-free engine both renderers\n// bind: the store (per-toast clocks that pause while the stack is expanded)\n// and the stack geometry of fixtures/toast-stack.json (a copy of the app's\n// contract, drift-tested from packages/ui).\n//\n// VAPP-106: the constants are WRITTEN here, not imported from the fixture:\n// a renderer entry (`@exponential_app/eui/web/primitives`) ships no fixture\n// (release/size.ts gates it); toast.test.ts holds them equal to\n// fixtures/toast-stack.json `constants`.\n\nexport const TOAST_CONSTANTS = {\n width: 356,\n gap: 14,\n peek: 14,\n scaleStep: 0.05,\n visible: 3,\n durationMs: 4000,\n swipeThreshold: 45,\n viewportOffset: 24,\n mobileViewportOffset: 16,\n placement: { pointer: `bottom-right`, touch: `top-center` },\n touchMaxWidth: 600,\n kinds: [`success`, `error`, `info`, `warning`],\n}\n\nexport type ToastKind = `success` | `error` | `info` | `warning`\nexport type ToastPlacement = `bottom-right` | `top-center`\n\nexport const TOAST_KINDS = TOAST_CONSTANTS.kinds as readonly ToastKind[]\n\n/** Touch = up to and including `touchMaxWidth` (the fixture's phone breakpoint). */\nexport const TOAST_TOUCH_QUERY = `(max-width: ${TOAST_CONSTANTS.touchMaxWidth}px)`\n\nexport const TOAST_CLASSES = {\n /** The fixed region (`<section>`), per placement: `viewportOffset` from\n * the corner on a pointer, `mobileViewportOffset` below the status bar\n * on touch. */\n region: `pointer-events-none fixed z-[100] flex`,\n regionPlacement: {\n \"bottom-right\": `right-6 bottom-6`,\n \"top-center\": `inset-x-4 top-[calc(env(safe-area-inset-top,0px)+16px)] justify-center`,\n } satisfies Record<ToastPlacement, string>,\n /** The stack box (`<ol>`): `width` wide, its height = the geometry's. */\n list: `pointer-events-auto relative m-0 w-[356px] max-w-full list-none p-0 transition-[height] duration-standard ease-standard`,\n listPlacement: {\n \"bottom-right\": ``,\n \"top-center\": `w-full`,\n } satisfies Record<ToastPlacement, string>,\n /** The card: the opaque glass card at radius lg, no shadow; placed by its\n * `--offset`/`--scale`. A collapsed back toast hides its contents behind\n * the front one; a toast past `visible` draws nothing. */\n toast: `absolute inset-x-0 top-(--offset) flex items-start gap-3 rounded-lg border border-glass-stroke-card bg-glass-card-opaque p-4 font-sans text-sm text-foreground scale-(--scale) transition-[top,scale,opacity] duration-standard ease-standard data-[expanded=false]:data-[front=false]:*:opacity-0 data-[visible=false]:pointer-events-none data-[visible=false]:opacity-0`,\n /** A back card shrinks about the edge that PEEKS OUT: the top on a bottom\n * stack, the bottom on a top stack. */\n toastOrigin: {\n bottom: `origin-top`,\n top: `origin-bottom`,\n },\n content: `flex min-w-0 flex-1 flex-col gap-0.5`,\n title: `leading-5 font-medium text-foreground`,\n description: `leading-5 text-muted-foreground`,\n action: `inline-flex h-6 shrink-0 cursor-pointer items-center rounded-md border-0 bg-primary px-2 text-xs font-medium text-primary-foreground transition-colors hover:bg-primary/90`,\n /** The close glyph: last in the row. */\n close: `order-last inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground transition-colors hover:text-foreground [&_svg]:size-3.5`,\n iconSlot: `flex h-5 shrink-0 items-center`,\n icon: `size-4 shrink-0`,\n /** The ONLY place a toast wears its kind. */\n kindIcon: {\n success: `text-green-500`,\n error: `text-red-500`,\n info: `text-blue-500`,\n warning: `text-yellow-500`,\n } satisfies Record<ToastKind, string>,\n} as const\n\n/** The Lucide glyph each kind paints (the app's concept icons\n * `ui-success`/`ui-error`/`ui-info`/`ui-warning`, packages/icons/icons.json). */\nexport const TOAST_KIND_GLYPH = {\n success: `circle-check`,\n error: `circle-x`,\n info: `info`,\n warning: `triangle-alert`,\n} as const satisfies Record<ToastKind, string>\n\n/** The fixture's `placement`: bottom-right on a pointer, top-centre on touch;\n * a bottom stack measures its peek above the front toast. */\nexport function toastPlacement(isTouch: boolean): { placement: ToastPlacement; anchoredBottom: boolean } {\n const placement = (isTouch ? TOAST_CONSTANTS.placement.touch : TOAST_CONSTANTS.placement.pointer) as ToastPlacement\n return { placement, anchoredBottom: placement.startsWith(`bottom`) }\n}\n\nexport interface ToastStackItem {\n /** The item's top inside the stack box. */\n offset: number\n /** Its width factor. */\n scale: number\n /** Whether it draws at all. */\n visible: boolean\n}\n\n/** The numbers a stack is drawn from (the toast's, the Dock pile's). */\nexport interface StackConstants {\n /** How far an older item peeks out behind the one in front of it. */\n peek: number\n /** How much smaller each rank behind the front draws. */\n scaleStep: number\n /** How many items draw at all while collapsed. */\n visible: number\n /** The space between items while expanded. */\n gap: number\n}\n\n/** THE stack geometry ×4 (fixtures/toast-stack.json `geometry`; N-12: the\n * Dock pile draws it too): `heights` oldest first (the newest is in front).\n * Collapsed, the item of rank r (0 = front) sits r × `peek` from the\n * anchoring edge, shrunk by `scaleStep` per rank (clamped at the last\n * visible rank), `visible` of them drawn; expanded, every item at full\n * size, `gap` apart. */\nexport function stackGeometry(\n heights: readonly number[],\n expanded: boolean,\n anchoredBottom: boolean,\n constants: StackConstants\n): { height: number; items: ToastStackItem[] } {\n const { gap, peek, scaleStep, visible } = constants\n const n = heights.length\n if (n === 0) return { height: 0, items: [] }\n const rank = (i: number) => n - 1 - i\n if (expanded) {\n const height = heights.reduce((sum, h) => sum + h, 0) + (n - 1) * gap\n // The distance of each item from the anchoring edge: the newer ones first.\n const fromEdge: number[] = new Array(n)\n let at = 0\n for (let i = n - 1; i >= 0; i--) {\n fromEdge[i] = at\n at += heights[i]! + gap\n }\n return { height, items: heights.map((h, i) => ({ offset: anchoredBottom ? height - fromEdge[i]! - h : fromEdge[i]!, scale: 1, visible: true })) }\n }\n const height = Math.max(...heights.map((h, i) => rank(i) * peek + h))\n const items = heights.map((h, i) => {\n const r = rank(i)\n const scale = Math.round((1 - Math.min(r, visible - 1) * scaleStep) * 100) / 100\n return { offset: anchoredBottom ? height - r * peek - h : r * peek, scale, visible: r < visible }\n })\n return { height, items }\n}\n\n/** The toast's stack (`stackGeometry` with the toast's numbers). */\nexport function toastStackGeometry(heights: readonly number[], expanded: boolean, anchoredBottom: boolean): { height: number; items: ToastStackItem[] } {\n return stackGeometry(heights, expanded, anchoredBottom, TOAST_CONSTANTS)\n}\n\nexport interface ToastAction {\n label: string\n onClick?: (event: Event) => void\n}\n\nexport interface ToastOptions {\n /** A fixed id (else the store generates `toast-<n>`); re-using a live id\n * replaces that toast. */\n id?: string\n kind?: ToastKind\n description?: string\n action?: ToastAction\n /** The auto-dismiss clock in ms (default `durationMs`); `Infinity` = sticky. */\n duration?: number\n /** A fixed height for the stack geometry (else the renderer measures). */\n height?: number\n onDismiss?: (toast: ToastRecord) => void\n}\n\nexport interface ToastRecord {\n id: string\n kind?: ToastKind\n title: string\n description?: string\n action?: ToastAction\n duration: number\n height?: number\n}\n\nexport interface ToastFn {\n (title: string, options?: ToastOptions): string\n (options: ToastOptions & { title: string }): string\n success: (title: string, options?: Omit<ToastOptions, `kind`>) => string\n error: (title: string, options?: Omit<ToastOptions, `kind`>) => string\n info: (title: string, options?: Omit<ToastOptions, `kind`>) => string\n warning: (title: string, options?: Omit<ToastOptions, `kind`>) => string\n}\n\nexport interface ToastStore {\n toast: ToastFn\n /** Removes one toast, or every toast without an id. */\n dismiss: (id?: string) => void\n /** The live toasts, oldest first. */\n toasts: () => readonly ToastRecord[]\n /** Called with the toasts on every change; returns the unsubscribe. */\n subscribe: (listener: (toasts: readonly ToastRecord[]) => void) => () => void\n /** Stops every clock (the stack expanded), keeping what is left of each. */\n pauseAll: () => void\n /** Restarts every clock with its remaining time. */\n resumeAll: () => void\n readonly paused: boolean\n}\n\ninterface Clock {\n remaining: number\n startedAt: number\n timer?: ReturnType<typeof setTimeout>\n}\n\n/** A toast store: the queue, the per-toast clocks and their pause. */\nexport function createToastStore(): ToastStore {\n let list: ToastRecord[] = []\n const options = new Map<string, ToastOptions>()\n const clocks = new Map<string, Clock>()\n const listeners = new Set<(toasts: readonly ToastRecord[]) => void>()\n let paused = false\n let counter = 0\n const emit = () => {\n for (const l of [...listeners]) l(list)\n }\n const stop = (id: string) => {\n const clock = clocks.get(id)\n if (!clock?.timer) return\n clearTimeout(clock.timer)\n clock.timer = undefined\n clock.remaining = Math.max(0, clock.remaining - (Date.now() - clock.startedAt))\n }\n const start = (id: string) => {\n const clock = clocks.get(id)\n if (!clock || clock.timer || !Number.isFinite(clock.remaining)) return\n clock.startedAt = Date.now()\n clock.timer = setTimeout(() => dismiss(id), clock.remaining)\n }\n const dismiss = (id?: string) => {\n const gone = id === undefined ? list : list.filter((t) => t.id === id)\n if (gone.length === 0) return\n for (const t of gone) {\n const clock = clocks.get(t.id)\n if (clock?.timer) clearTimeout(clock.timer)\n clocks.delete(t.id)\n }\n list = id === undefined ? [] : list.filter((t) => t.id !== id)\n emit()\n for (const t of gone) {\n const o = options.get(t.id)\n options.delete(t.id)\n o?.onDismiss?.(t)\n }\n }\n const add = (title: string, o: ToastOptions = {}): string => {\n const id = o.id ?? `toast-${++counter}`\n const record: ToastRecord = { id, kind: o.kind, title, description: o.description, action: o.action, duration: o.duration ?? TOAST_CONSTANTS.durationMs, height: o.height }\n const old = clocks.get(id)\n if (old?.timer) clearTimeout(old.timer)\n options.set(id, o)\n clocks.set(id, { remaining: record.duration, startedAt: 0 })\n const at = list.findIndex((t) => t.id === id)\n list = at >= 0 ? list.map((t, i) => (i === at ? record : t)) : [...list, record]\n if (!paused) start(id)\n emit()\n return id\n }\n const toast = ((first: string | (ToastOptions & { title: string }), o?: ToastOptions) => (typeof first === `string` ? add(first, o) : add(first.title, first))) as ToastFn\n for (const kind of TOAST_KINDS) toast[kind] = (title, o) => add(title, { ...o, kind })\n return {\n toast,\n dismiss,\n toasts: () => list,\n subscribe: (listener) => {\n listeners.add(listener)\n return () => listeners.delete(listener)\n },\n pauseAll: () => {\n if (paused) return\n paused = true\n for (const id of clocks.keys()) stop(id)\n },\n resumeAll: () => {\n if (!paused) return\n paused = false\n for (const id of clocks.keys()) start(id)\n },\n get paused() {\n return paused\n },\n }\n}\n",
|
|
26
|
-
"// N-12: THE DockCard and THE Dock pile of the primitive sets: the class\n// recipes and the pile's geometry both renderers bind (React\n// @exponential_app/eui-react/primitives `DockCard`/`DockPile`, Solid\n// @exponential_app/eui-solid/primitives, the same markup). A DockCard is a\n// one-row floating card: the kind glyph and the tinted label, a muted\n// caption, trailing meta, ONE title line and the open chevron (or a trailing\n// action); several pile like the toasts (`stackGeometry` with the Dock's\n// numbers, anchored at the bottom: the front card last, the older ones\n// peeking out above it, `visible` of them drawn; expanded = fanned `gap`\n// apart). The Exponential app's Dock (packages/ui dock.tsx) paints through\n// these; its sheet is the app's.\n//\n// VAPP-106: the constants are WRITTEN here (a renderer entry ships no\n// fixture); packages/ui's dock test holds them equal to the app's\n// fixtures/dock.json `stack`.\n\nimport { GLASS_CARD_CLASS } from \"./glass-card\"\nimport { stackGeometry, type StackConstants, type ToastStackItem } from \"./toast\"\n\nexport const DOCK_PILE_CONSTANTS: StackConstants = { peek: 14, scaleStep: 0.05, visible: 3, gap: 6 }\n\nexport type DockCardTint = `plan` | `question` | `muted` | `warning`\n\nexport const DOCK_CARD_CLASSES = {\n /** THE card: the glass card (ONE gray: the opaque card fill under the\n * card hairline), padded. */\n root: `${GLASS_CARD_CLASS} block w-full p-3 text-left outline-none`,\n /** A card that opens (a press, Enter or Space). */\n pressable: `cursor-pointer transition-colors duration-fast hover:bg-glass-active focus-visible:ring-[3px] focus-visible:ring-ring/50`,\n /** The glyph + text row; a card behind the front one hides its words. */\n body: `flex items-start gap-2 data-[hidden=true]:opacity-0`,\n icon: `mt-0.5 size-3.5 shrink-0`,\n text: `min-w-0 flex-1`,\n header: `mb-1 flex items-center gap-2`,\n label: `truncate text-xs font-medium`,\n caption: `min-w-0 truncate text-xs text-muted-foreground`,\n meta: `ml-auto shrink-0 text-xs text-muted-foreground`,\n row: `flex min-w-0 items-center gap-2`,\n title: `min-w-0 flex-1 truncate text-sm text-foreground/90`,\n chevron: `size-3.5 shrink-0 text-muted-foreground`,\n trailing: `shrink-0`,\n /** The tint sits on the glyph and the label alone. */\n tint: {\n plan: `text-primary`,\n question: `text-yellow-400`,\n muted: `text-muted-foreground`,\n warning: `text-amber-400`,\n } satisfies Record<DockCardTint, string>,\n} as const\n\nexport const DOCK_PILE_CLASSES = {\n /** The pile box: its height = the geometry's, animated over `slow`. */\n root: `relative transition-[height] duration-slow ease-standard motion-reduce:transition-none`,\n /** One card, placed by `--offset`/`--scale`; it shrinks about the TOP\n * edge (the one that peeks out above the front card). */\n item: `absolute inset-x-0 top-(--offset) origin-top scale-(--scale) transition-[top,scale,opacity] duration-slow ease-standard motion-reduce:transition-none data-[visible=false]:pointer-events-none data-[visible=false]:opacity-0`,\n} as const\n\n/** The pile's geometry: `stackGeometry` with the Dock's numbers, anchored\n * at the bottom (the front card is the LAST height). */\nexport function dockPileGeometry(heights: readonly number[], expanded: boolean): { height: number; items: ToastStackItem[] } {\n return stackGeometry(heights, expanded, true, DOCK_PILE_CONSTANTS)\n}\n",
|
|
26
|
+
"// N-12: THE DockCard and THE Dock pile of the primitive sets: the class\n// recipes and the pile's geometry both renderers bind (React\n// @exponential_app/eui-react/primitives `DockCard`/`DockPile`, Solid\n// @exponential_app/eui-solid/primitives, the same markup). A DockCard is a\n// one-row floating card: the kind glyph and the tinted label, a muted\n// caption, trailing meta, ONE title line and the open chevron (or a trailing\n// action); several pile like the toasts (`stackGeometry` with the Dock's\n// numbers, anchored at the bottom: the front card last, the older ones\n// peeking out above it, `visible` of them drawn; expanded = fanned `gap`\n// apart). The Exponential app's Dock (packages/ui dock.tsx) paints through\n// these; its sheet is the app's.\n//\n// VAPP-106: the constants are WRITTEN here (a renderer entry ships no\n// fixture); packages/ui's dock test holds them equal to the app's\n// fixtures/dock.json `stack`.\n\nimport { GLASS_CARD_CLASS } from \"./glass-card\"\nimport { stackGeometry, type StackConstants, type ToastStackItem } from \"./toast\"\n\nexport const DOCK_PILE_CONSTANTS: StackConstants = { peek: 14, scaleStep: 0.05, visible: 3, gap: 6 }\n\nexport type DockCardTint = `plan` | `question` | `muted` | `warning`\n\nexport const DOCK_CARD_CLASSES = {\n /** THE card: the glass card (ONE gray: the opaque card fill under the\n * card hairline), padded. */\n root: `${GLASS_CARD_CLASS} block w-full p-3 text-left outline-none`,\n /** A card that opens (a press, Enter or Space). */\n pressable: `cursor-pointer transition-colors duration-fast hover:bg-glass-active focus-visible:ring-[3px] focus-visible:ring-ring/50`,\n /** The glyph + text row; a card behind the front one hides its words. */\n body: `flex items-start gap-2 data-[hidden=true]:opacity-0`,\n icon: `mt-0.5 size-3.5 shrink-0`,\n text: `min-w-0 flex-1`,\n header: `mb-1 flex items-center gap-2`,\n /** The label never shrinks (a weighted shrink still clipped \"Plan\n * ready\" by a pixel on phones); the caption takes only the leftover\n * width (iOS `layoutPriority`, Android the caption's `weight(fill = false)`). */\n label: `max-w-full shrink-0 truncate text-xs font-medium`,\n caption: `min-w-0 flex-1 basis-0 truncate text-xs text-muted-foreground`,\n meta: `ml-auto shrink-0 text-xs text-muted-foreground`,\n row: `flex min-w-0 items-center gap-2`,\n title: `min-w-0 flex-1 truncate text-sm text-foreground/90`,\n chevron: `size-3.5 shrink-0 text-muted-foreground`,\n trailing: `shrink-0`,\n /** The tint sits on the glyph and the label alone. */\n tint: {\n plan: `text-primary`,\n question: `text-yellow-400`,\n muted: `text-muted-foreground`,\n warning: `text-amber-400`,\n } satisfies Record<DockCardTint, string>,\n} as const\n\nexport const DOCK_PILE_CLASSES = {\n /** The pile box: its height = the geometry's, animated over `slow`. */\n root: `relative transition-[height] duration-slow ease-standard motion-reduce:transition-none`,\n /** One card, placed by `--offset`/`--scale`; it shrinks about the TOP\n * edge (the one that peeks out above the front card). */\n item: `absolute inset-x-0 top-(--offset) origin-top scale-(--scale) transition-[top,scale,opacity] duration-slow ease-standard motion-reduce:transition-none data-[visible=false]:pointer-events-none data-[visible=false]:opacity-0`,\n} as const\n\n/** The pile's geometry: `stackGeometry` with the Dock's numbers, anchored\n * at the bottom (the front card is the LAST height). */\nexport function dockPileGeometry(heights: readonly number[], expanded: boolean): { height: number; items: ToastStackItem[] } {\n return stackGeometry(heights, expanded, true, DOCK_PILE_CONSTANTS)\n}\n",
|
|
27
27
|
"// EXP-887 — the ONE floating-menu surface recipe.\n//\n// Seven contents painted the same glass box by copy-paste: Select, the\n// dropdown menu and its submenu, the context menu and its submenu, Popover\n// and HoverCard. This is their common core — the fill, the hairline, the\n// radius, the text colour and the open/close animation suite. Everything a\n// single surface owns on its own (its Radix transform-origin variable, its\n// height bound, its overflow rule) stays inline at the call site, because\n// those genuinely differ per menu. EXP-1243: the animation is the\n// `motion-popover` recipe (tailwind.css): scale from 0.96 + fade from the\n// trigger's origin, exit fade only.\nexport const MENU_SURFACE_CLASS = `z-50 rounded-lg border border-glass-stroke-card bg-glass-card-opaque text-popover-foreground motion-popover`\n\n// EXP-1074 — and the ONE menu ROW recipe.\n//\n// The GEOMETRY of a menu is not the call site's: every menu-like row (the\n// context and dropdown items, their sub-triggers, check/radio rows, Select\n// items, Command rows, the typeahead rows) reads the --menu-* vars in\n// styles.css, which mirror packages/design-tokens/tokens.json `menu` — the\n// pointer density from md up, the touch density below — so one change moves\n// every web menu. Since the UI cleanup batch every action menu is the ONE\n// `@exp/ui` `Menu` over these constants (dropdown, pointer and phone-sheet\n// presentations alike), and its static `MenuPanel` is what the styleguide\n// draws. Every row carries the pointer cursor; a disabled one the arrow.\nexport const MENU_CONTENT_CLASS = `min-w-(--menu-min-width) max-w-(--menu-max-width) p-(--menu-surface-padding)`\n\nconst MENU_ROW_BASE = `flex min-h-(--menu-item-height) cursor-pointer items-center gap-(--menu-item-gap) rounded-sm px-(--menu-item-padding-x) py-1 text-sm text-foreground/90 outline-hidden select-none focus:bg-glass-active focus:text-foreground data-[disabled]:cursor-default data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-(--menu-icon-size) [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`\n\nexport const MENU_ITEM_CLASS = `relative ${MENU_ROW_BASE} data-[disabled]:pointer-events-none data-[disabled]:opacity-50`\n\n/** A submenu's label never wraps: the value beside it truncates instead.\n * The value (a `MENU_VALUE_CLASS` span) and the chevron both push right;\n * with a value present the chevron gives up its auto margin, so every value\n * ends flush against the chevron column instead of floating mid-row. */\nexport const MENU_SUB_TRIGGER_CLASS = `${MENU_ROW_BASE} whitespace-nowrap data-[state=open]:bg-glass-active data-[variant=destructive]:data-[state=open]:bg-destructive/10 data-[variant=destructive]:data-[state=open]:text-destructive [&>span+svg:last-child]:ml-0`\n\n/** The checkbox / radio rows: the indicator sits in the `pl-8` inset. */\nexport const MENU_CHECK_ITEM_CLASS = `relative flex min-h-(--menu-item-height) cursor-pointer items-center gap-(--menu-item-gap) rounded-sm py-1 pr-(--menu-item-padding-x) pl-8 text-sm text-foreground/90 outline-hidden select-none focus:bg-glass-active focus:text-foreground data-[disabled]:cursor-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-(--menu-icon-size)`\n\nexport const MENU_LABEL_CLASS = `px-(--menu-item-padding-x) py-1.5 text-sm font-medium data-[inset]:pl-8`\n\nexport const MENU_SEPARATOR_CLASS = `-mx-(--menu-surface-padding) my-(--menu-surface-padding) h-px bg-glass-stroke`\n\nexport const MENU_SHORTCUT_CLASS = `ml-auto text-xs tracking-widest text-muted-foreground`\n\n/** The current VALUE beside a submenu's label (\"Status Backlog ›\"): takes\n * what is left of the row and truncates, never the label's room. */\nexport const MENU_VALUE_CLASS = `min-w-0 max-w-[7rem] shrink text-right normal-case tracking-normal truncate`\n\nexport const MENU_CHEVRON_CLASS = `ml-auto size-(--menu-icon-size) shrink-0`\n",
|
|
28
28
|
"import {\n MENU_CHECK_ITEM_CLASS,\n MENU_CHEVRON_CLASS,\n MENU_CONTENT_CLASS,\n MENU_ITEM_CLASS,\n MENU_LABEL_CLASS,\n MENU_SEPARATOR_CLASS,\n MENU_SHORTCUT_CLASS,\n MENU_SUB_TRIGGER_CLASS,\n MENU_SURFACE_CLASS,\n} from \"./menu-surface\"\n\nexport const DROPDOWN_MENU_CLASSES = {\n // EXP-698 menu recipe: opaque card composite, 12 radius, NO blur and\n // NO shadow — see `bg-glass-card-opaque` in styles.css.\n content: `${MENU_SURFACE_CLASS} ${MENU_CONTENT_CLASS} max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto`,\n item: MENU_ITEM_CLASS,\n checkItem: MENU_CHECK_ITEM_CLASS,\n itemIndicator: `pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,\n checkIcon: `size-4`,\n radioIcon: `size-2 fill-current`,\n label: MENU_LABEL_CLASS,\n separator: MENU_SEPARATOR_CLASS,\n shortcut: MENU_SHORTCUT_CLASS,\n subTrigger: MENU_SUB_TRIGGER_CLASS,\n subChevron: MENU_CHEVRON_CLASS,\n // Portaled: un-portaled sub content lives inside the parent content's DOM,\n // and the parent's `glass-panel` backdrop-filter makes it a containing\n // block whose overflow-x-hidden clips the fixed-positioned submenu to\n // invisibility in Safari/WebKit (EXP-305).\n subContent: `${MENU_SURFACE_CLASS} ${MENU_CONTENT_CLASS} origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden`,\n} as const\n",
|
|
29
29
|
"// EXP-1274 — ONE empty state, two sizes (the catalog `EmptyState` macro's\n// `size`; the ×4 contract is `@exp/domain-contract/fixtures/empty-state.json`).\n//\n// `page`: what a whole screen or pane says when it has nothing — the 48px\n// icon disc, a semibold title, an optional muted sentence that TEACHES the\n// next step, and an optional actions row, centred on a column of at most\n// 28rem.\n//\n// `list`: what a list inside a section, a sidebar or a picker says — a bare\n// 20px muted glyph over ONE muted line, centred, 24px of vertical padding.\n// It never carries a description or a button: the section band's trailing\n// pill (or the picker's own field) is the call to action. Without an icon it\n// is the line `CommandEmpty` draws inside a `Command`.\nexport const EMPTY_STATE_SIZES = [`page`, `list`] as const\nexport type EmptyStateSize = (typeof EMPTY_STATE_SIZES)[number]\n\nexport const EMPTY_STATE_CLASSES = {\n list: `flex w-full flex-col items-center gap-1.5 px-3 py-6 text-center text-sm text-muted-foreground`,\n listIcon: `size-5 shrink-0 text-muted-foreground/60`,\n page: `mx-auto flex max-w-md flex-col items-center gap-3 px-6 py-12 text-center`,\n pageTitle: `text-lg font-semibold`,\n pageDescription: `text-sm text-muted-foreground`,\n pageActions: `mt-2 flex flex-wrap items-center justify-center gap-2`,\n // The compact in-list empty line = `EmptyState size=\"list\"` without a glyph\n // (the emoji picker's grid, a filtered admin table). Kept as its own name\n // because a `children` string reads better than `title` at those call sites.\n listEmpty: `px-3 py-6 text-center text-sm text-muted-foreground`,\n // EXP-962: the CLICKABLE empty state — a dashed, full-width nudge standing\n // where the first item will go, that IS the call to action (the actions\n // panel's \"No custom actions yet / Describe one and your agent will build\n // it\"). Dashed because the box is a placeholder for the row it invites; a\n // button because the shortest path to the row is the box itself. `EmptyState`\n // teaches a PAGE or reports a list, this one starts the list. Desktop\n // `actions_view` draws the same dashed strip.\n cta: `flex w-full cursor-pointer flex-col items-start gap-1 rounded-md border border-dashed border-glass-stroke-strong p-3 text-left text-sm text-muted-foreground transition-colors duration-fast outline-none hover:bg-glass-row hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50`,\n ctaTitle: `flex items-center gap-2`,\n ctaIcon: `size-4 shrink-0`,\n ctaDescription: `text-xs`,\n} as const\n",
|
|
@@ -52,9 +52,10 @@
|
|
|
52
52
|
"export const TEXTAREA_CLASSES = {\n // EXP-616: glass by default, matching Input. EXP-698: the same 12\n // radius / card fill / card hairline recipe, focus on the stroke and\n // no ring. `resize-none` is part of it — every field here auto-grows\n // through `field-sizing-content`, so the native grip only ever landed\n // mid-card over a tool row. Browsers without `field-sizing`\n // (Firefox, Safari) keep a vertical grip so the field can still grow.\n root: `flex field-sizing-content min-h-16 w-full resize-y [@supports(field-sizing:content)]:resize-none rounded-lg border border-glass-stroke-card bg-glass-card px-3 py-2 text-base shadow-none transition-[color,border-color] duration-fast outline-none placeholder:text-foreground/50 focus-visible:border-glass-stroke-active focus-visible:ring-0 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:ring-destructive/40`,\n} as const\n",
|
|
53
53
|
"export const TOOLTIP_CLASSES = {\n // Glass tooltip (EXP-269) — no Arrow: a translucent arrow\n // double-renders against the blurred panel behind it. EXP-277:\n // on the shared glass-panel recipe (same 95% step it already sat\n // on; unifies blur radius + shadow).\n content: `glass-panel z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-lg px-3 py-1.5 text-xs text-balance text-popover-foreground motion-popover`,\n} as const\n",
|
|
54
54
|
"// EXP-698 — string shaping shared by the surfaces that print paths. Moved into\n// the package with the diff view (EXP-895), its only caller.\n//\n// A diff's file paths are the one place where `truncate` (a trailing ellipsis)\n// destroys the only part a reader needs: the FILENAME. Middle-truncation drops\n// the middle of the path instead, so `apps/web/src/…/file-diff-card.tsx` still\n// names the file. CSS can't do this, so it is a string transform.\n/**\n * Shorten `value` to at most `max` characters by replacing its middle with an\n * ellipsis, keeping both ends visible (the tail slightly longer, since that is\n * where the filename lives). Shorter values, and any `max` too small to hold a\n * character on each side of the ellipsis, are returned unchanged.\n */\nexport function middleTruncate(value: string, max: number): string {\n if (max <= 0) return value\n // `[...value]` so astral characters (emoji in a path) are never cut in half.\n const chars = [...value]\n if (chars.length <= max) return value\n // 1 for the ellipsis itself, and a character on each side of it.\n if (max < 3) return value\n const keep = max - 1\n const head = Math.floor(keep / 2)\n const tail = keep - head\n return `${chars.slice(0, head).join(``)}…${chars.slice(chars.length - tail).join(``)}`\n}\n",
|
|
55
|
-
"/** The attribute the anchored arm stamps on its portal. It lives outside the\n * host's subtree, so a Radix modal would take a click on it as an OUTSIDE\n * interaction and close: dialog hosts whitelist this selector in their\n * `onInteractOutside`, and treat a mounted one as \"a menu is open\" when\n * routing Escape. */\nexport const TYPEAHEAD_PORTAL_SELECTOR = `[data-editor-autocomplete]`\n\n/** Whether a Radix outside-interaction (its `target` is the pointed-at\n * node) landed inside the anchored arm's portal. `DialogContent` and\n * `SheetContent` ignore that one by default. */\nexport function isTypeaheadPortalInteraction(event: {\n target: EventTarget | null\n}): boolean {\n return (\n event.target instanceof Element &&\n event.target.closest(TYPEAHEAD_PORTAL_SELECTOR) !== null\n )\n}\n"
|
|
55
|
+
"/** The attribute the anchored arm stamps on its portal. It lives outside the\n * host's subtree, so a Radix modal would take a click on it as an OUTSIDE\n * interaction and close: dialog hosts whitelist this selector in their\n * `onInteractOutside`, and treat a mounted one as \"a menu is open\" when\n * routing Escape. */\nexport const TYPEAHEAD_PORTAL_SELECTOR = `[data-editor-autocomplete]`\n\n/** Whether a Radix outside-interaction (its `target` is the pointed-at\n * node) landed inside the anchored arm's portal. `DialogContent` and\n * `SheetContent` ignore that one by default. */\nexport function isTypeaheadPortalInteraction(event: {\n target: EventTarget | null\n}): boolean {\n return (\n event.target instanceof Element &&\n event.target.closest(TYPEAHEAD_PORTAL_SELECTOR) !== null\n )\n}\n",
|
|
56
|
+
"// EXP-1586: THE ZoomableImage of both web painters (the React and Solid\n// natives and their primitive twins `ZoomableImage`, the same markup): a\n// picture that zooms and pans inside its box, with THE zoom pill. The spec is\n// catalog/style.json `zoomableImage` ($comment); the maths is the core's\n// src/zoom.ts (fixtures/zoom.json), INJECTED as `ZoomMath` (the painters pass\n// the functions they import from `@exponential_app/eui`), so this barrel\n// carries neither style.json nor a second copy of a formula. This module holds\n// what the four bindings share: the gesture controller (pointer, wheel,\n// Safari's gesture events, keys, resize, the settle spring, mouse momentum,\n// the pill's auto-hide), the box's aspect rule, the native's layout styles\n// (the theme recipe styles the parts; these only place them) and the\n// primitive's class recipes.\n\nimport type * as Zoom from \"../../zoom\"\nimport type { ZoomFrame, ZoomInitial, ZoomPoint, ZoomSize, ZoomView } from \"../../zoom\"\n\n\ntype Core = typeof Zoom\n\n/** The core functions the controller drives (`@exponential_app/eui`). */\nexport type ZoomMath = Pick<\n Core,\n | `ZOOM`\n | `zoomIsTall`\n | `zoomRestView`\n | `zoomClamp`\n | `zoomAtRest`\n | `zoomTo`\n | `zoomCentre`\n | `zoomWheel`\n | `zoomScroll`\n | `zoomStep`\n | `zoomDoubleTap`\n | `zoomKey`\n | `zoomDrag`\n | `zoomPinch`\n | `zoomMomentum`\n | `zoomMomentumActive`\n | `zoomPanRoom`\n | `zoomResize`\n | `zoomPercent`\n | `zoomMenu`\n | `zoomBounds`\n>\n\nexport const ZOOM_CONTROLS = [`auto`, `always`, `none`] as const\nexport type ZoomControls = (typeof ZOOM_CONTROLS)[number]\n\n/** What the pill draws (changes only when one of these does). */\nexport interface ZoomPillState {\n percent: string\n atMin: boolean\n atMax: boolean\n atRest: boolean\n}\n\n/** Two taps / clicks closer than this (ms, px) are a double tap. */\nexport const ZOOM_DOUBLE_TAP_MS = 300\nexport const ZOOM_DOUBLE_TAP_SLOP = 24\n/** A press that moves less than this (px) is a tap, not a drag. */\nexport const ZOOM_TAP_SLOP = 4\n/** A ⌘/ctrl-wheel run settles (fires `zoom`) after this idle (ms). */\nexport const ZOOM_WHEEL_SETTLE_MS = 150\n\n/** The box's CSS aspect ratio (w/h): the picture's own, capped at the width\n * for a TALL picture (a square window onto its top), else 16:9; none when\n * the style sets a height. */\nexport function zoomBoxAspect(math: Pick<ZoomMath, `zoomIsTall`>, natural: ZoomSize | null, styledHeight: boolean): number | null {\n if (styledHeight) return null\n if (!natural || !(natural.width > 0) || !(natural.height > 0)) return 16 / 9\n if (math.zoomIsTall(natural)) return 1\n return natural.width / natural.height\n}\n\n/** The natural size the props declare (both positive), else null. */\nexport function zoomDeclaredSize(width: unknown, height: unknown): ZoomSize | null {\n const w = typeof width === `number` && Number.isFinite(width) ? width : 0\n const h = typeof height === `number` && Number.isFinite(height) ? height : 0\n return w > 0 && h > 0 ? { width: w, height: h } : null\n}\n\n/** The menu's items (Fit, then the presets inside the limits) for the\n * current view, before the controller measured (the rest view's). */\nexport function zoomPillOf(math: ZoomMath, view: ZoomView, frame: ZoomFrame): ZoomPillState {\n const { atMin, atMax } = math.zoomBounds(view, frame)\n return { percent: math.zoomPercent(view.scale), atMin, atMax, atRest: math.zoomAtRest(view, frame) }\n}\n\nexport interface ZoomControllerOptions {\n math: ZoomMath\n /** The viewport: focusable, takes every gesture. */\n root: HTMLElement\n /** The picture, transformed (`transform-origin: 0 0`). */\n image: HTMLElement\n /** The zoom pill (its hover / focus keep it shown); null = none. */\n pill: () => HTMLElement | null\n /** The picture's pixel size, null while unknown. */\n natural: () => ZoomSize | null\n initial: () => ZoomInitial\n maxScale: () => number | undefined\n /** The scale the host binds (`scale`), undefined = the rest view. */\n boundScale: () => number | undefined\n /** The CSS `transition` of an animated change (the theme's standard\n * motion); null = snap (reduced motion). */\n transition: () => string | null\n /** `controls: auto` (the pill hides on its own). */\n autoHide: () => boolean\n onPill: (pill: ZoomPillState) => void\n onPillVisible: (visible: boolean) => void\n /** A settled zoom change. */\n onZoom: (scale: number, atFit: boolean) => void\n /** A single tap / click at rest. */\n onTap: () => void\n}\n\nexport interface ZoomController {\n view: () => ZoomView\n frame: () => ZoomFrame | null\n /** The pill's − / +. */\n step: (direction: 1 | -1) => void\n /** Back to the rest view (the fit button, the menu's Fit). */\n rest: () => void\n /** To `scale` about the viewport centre (the menu's presets). */\n zoomScale: (scale: number) => void\n /** The bound `scale` changed from outside: apply it, no event. */\n syncScale: () => void\n /** A new picture / natural size / initial / max: the rest view, at once. */\n reset: () => void\n /** Keep the pill shown (its menu is open). */\n holdPill: (hold: boolean) => void\n destroy: () => void\n}\n\ninterface Sample {\n t: number\n x: number\n y: number\n}\n\nconst sameView = (a: ZoomView, b: ZoomView) => Math.abs(a.scale - b.scale) < 1e-6 && Math.abs(a.x - b.x) < 1e-3 && Math.abs(a.y - b.y) < 1e-3\nconst samePill = (a: ZoomPillState | null, b: ZoomPillState) => !!a && a.percent === b.percent && a.atMin === b.atMin && a.atMax === b.atMax && a.atRest === b.atRest\nconst now = () => (typeof performance !== `undefined` ? performance.now() : Date.now())\nconst raf = (fn: (t: number) => void): number => (typeof requestAnimationFrame === `function` ? requestAnimationFrame(fn) : (setTimeout(() => fn(now()), 16) as unknown as number))\nconst cancelRaf = (id: number) => (typeof cancelAnimationFrame === `function` ? cancelAnimationFrame(id) : clearTimeout(id))\n\n/** Binds the gestures to `root` and paints `image`; the pill's state and\n * visibility go out through the callbacks. Every number comes from the\n * core's functions. */\nexport function createZoomController(o: ZoomControllerOptions): ZoomController {\n const m = o.math\n const { root, image } = o\n let view: ZoomView = { scale: 1, x: 0, y: 0 }\n let viewport: ZoomSize = { width: 0, height: 0 }\n let painted = false\n let pill: ZoomPillState | null = null\n let lastEmitted: number | null = null\n // Gestures.\n const pointers = new Map<number, { x: number; y: number; type: string }>()\n let drag: { id: number; type: string; start: ZoomView; sx: number; sy: number; moved: boolean; samples: Sample[] } | null = null\n let pinch: { start: ZoomView; dist: number; mid: ZoomPoint } | null = null\n let safari: { start: ZoomView; anchor: ZoomPoint } | null = null\n let momentum = 0\n let wheelTimer: ReturnType<typeof setTimeout> | null = null\n let tapTimer: ReturnType<typeof setTimeout> | null = null\n let lastTap: { t: number; x: number; y: number } | null = null\n // The pill.\n let visible = true\n let hideTimer: ReturnType<typeof setTimeout> | null = null\n let hovered = false\n let held = false\n\n const frame = (): ZoomFrame | null => {\n const natural = o.natural()\n if (!natural || viewport.width <= 0 || viewport.height <= 0) return null\n return { natural, viewport, initial: o.initial(), maxScale: o.maxScale() }\n }\n const point = (e: { clientX: number; clientY: number }): ZoomPoint => {\n const r = root.getBoundingClientRect()\n return { x: e.clientX - r.left, y: e.clientY - r.top }\n }\n\n const cursor = () => {\n const f = frame()\n if (!f) return\n root.style.cursor = drag && drag.type === `mouse` && drag.moved ? `grabbing` : m.zoomAtRest(view, f) ? `zoom-in` : `grab`\n const room = m.zoomPanRoom(view, f)\n // A swipe along an axis without room belongs to the host (paging,\n // scrolling the page); a pinch is always ours.\n root.style.touchAction = room.x && room.y ? `none` : room.x ? `pan-y` : room.y ? `pan-x` : `pan-x pan-y`\n }\n\n const paint = (next: ZoomView, animated = false) => {\n view = next\n const transition = animated ? o.transition() : null\n image.style.transition = transition ?? ``\n image.style.transform = `translate(${next.x}px, ${next.y}px) scale(${next.scale})`\n if (!painted) {\n painted = true\n image.style.visibility = ``\n }\n const f = frame()\n if (f) {\n const p = zoomPillOf(m, next, f)\n if (!samePill(pill, p)) {\n pill = p\n o.onPill(p)\n }\n }\n cursor()\n }\n\n const settle = () => {\n const f = frame()\n if (!f) return\n if (lastEmitted !== null && Math.abs(lastEmitted - view.scale) < 1e-6) return\n lastEmitted = view.scale\n o.onZoom(view.scale, m.zoomAtRest(view, f))\n }\n\n const stopMotion = () => {\n if (momentum) cancelRaf(momentum)\n momentum = 0\n }\n\n // ── the pill's auto-hide ────────────────────────────────────────────\n const setVisible = (next: boolean) => {\n if (visible === next) return\n visible = next\n o.onPillVisible(next)\n }\n const kept = () => {\n const el = o.pill()\n return held || hovered || (!!el && typeof document !== `undefined` && el.contains(document.activeElement))\n }\n const armHide = () => {\n if (hideTimer) clearTimeout(hideTimer)\n hideTimer = null\n if (!o.autoHide()) return\n hideTimer = setTimeout(() => {\n hideTimer = null\n if (!kept()) setVisible(false)\n }, m.ZOOM.autoHideMs)\n }\n const activity = () => {\n if (!o.autoHide()) return\n setVisible(true)\n armHide()\n }\n\n /** A discrete zoom (keys, the pill, a double tap): animated, settled. */\n const jump = (next: ZoomView) => {\n stopMotion()\n paint(next, true)\n settle()\n activity()\n }\n\n const restView = (f: ZoomFrame): ZoomView => {\n const rest = m.zoomRestView(f)\n const bound = o.boundScale()\n return bound !== undefined && Number.isFinite(bound) && bound > 0 ? m.zoomTo(rest, bound, m.zoomCentre(f), f) : rest\n }\n\n const reset = () => {\n stopMotion()\n drag = null\n pinch = null\n const f = frame()\n if (!f) {\n painted = false\n image.style.visibility = `hidden`\n return\n }\n paint(restView(f))\n lastEmitted = view.scale\n }\n\n const measure = () => {\n const next = { width: root.clientWidth, height: root.clientHeight }\n if (next.width === viewport.width && next.height === viewport.height) return\n const from = viewport\n const before = frame()\n viewport = next\n const f = frame()\n if (!f) return\n if (!before || !painted) {\n paint(restView(f))\n lastEmitted = view.scale\n return\n }\n paint(m.zoomResize(view, from, f))\n }\n\n // ── a single tap / click and the double tap ─────────────────────────\n const tap = (at: ZoomPoint, type: string) => {\n const t = now()\n if (lastTap && t - lastTap.t < ZOOM_DOUBLE_TAP_MS && Math.hypot(at.x - lastTap.x, at.y - lastTap.y) < ZOOM_DOUBLE_TAP_SLOP) {\n if (tapTimer) clearTimeout(tapTimer)\n tapTimer = null\n lastTap = null\n const f = frame()\n if (f) jump(m.zoomDoubleTap(view, at, f))\n return\n }\n lastTap = { t, x: at.x, y: at.y }\n if (tapTimer) clearTimeout(tapTimer)\n tapTimer = setTimeout(() => {\n tapTimer = null\n lastTap = null\n if (type === `touch` && o.autoHide()) {\n if (visible) setVisible(false)\n else activity()\n }\n const f = frame()\n if (f && m.zoomAtRest(view, f)) o.onTap()\n }, ZOOM_DOUBLE_TAP_MS)\n }\n\n /** A released drag / pinch: the clamped view, sprung; a mouse drag\n * inside the bounds coasts on its momentum. */\n const release = (vx = 0, vy = 0) => {\n const f = frame()\n if (!f) return\n const clamped = m.zoomClamp(view, f)\n if (!sameView(clamped, view)) {\n paint(clamped, true)\n settle()\n return\n }\n settle()\n if (!m.zoomMomentumActive(vx, vy, 0)) return\n const from = view\n const started = now()\n const step = () => {\n const t = now() - started\n const g = frame()\n if (!g) return\n paint(m.zoomMomentum(from, vx, vy, t, g))\n momentum = m.zoomMomentumActive(vx, vy, t) ? raf(step) : 0\n }\n momentum = raf(step)\n }\n\n const velocity = (samples: Sample[]): { vx: number; vy: number } => {\n const last = samples[samples.length - 1]\n if (!last || now() - last.t > 50) return { vx: 0, vy: 0 }\n const first = samples.find((s) => last.t - s.t <= 100) ?? last\n const dt = last.t - first.t\n return dt > 0 ? { vx: (last.x - first.x) / dt, vy: (last.y - first.y) / dt } : { vx: 0, vy: 0 }\n }\n\n const inPill = (target: EventTarget | null) => {\n const el = o.pill()\n return !!el && target instanceof Node && el.contains(target)\n }\n\n const startPinch = () => {\n const [a, b] = [...pointers.values()]\n if (!a || !b) return\n drag = null\n pinch = { start: view, dist: Math.max(1, Math.hypot(a.x - b.x, a.y - b.y)), mid: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } }\n }\n\n const onPointerDown = (e: PointerEvent) => {\n if (inPill(e.target)) return\n if (e.pointerType === `mouse` && e.button !== 0) return\n const f = frame()\n if (!f) return\n stopMotion()\n // A spring in flight stops where the person caught it.\n if (image.style.transition) paint(view)\n const at = point(e)\n pointers.set(e.pointerId, { x: at.x, y: at.y, type: e.pointerType })\n try {\n root.setPointerCapture(e.pointerId)\n } catch {\n // A synthetic pointer (tests) cannot be captured.\n }\n if (pointers.size === 2 && e.pointerType === `touch`) {\n startPinch()\n return\n }\n if (pointers.size === 1) drag = { id: e.pointerId, type: e.pointerType, start: view, sx: at.x, sy: at.y, moved: false, samples: [{ t: now(), x: at.x, y: at.y }] }\n }\n\n const onPointerMove = (e: PointerEvent) => {\n if (e.pointerType === `mouse` || pointers.has(e.pointerId)) activity()\n const p = pointers.get(e.pointerId)\n if (!p) return\n const at = point(e)\n p.x = at.x\n p.y = at.y\n const f = frame()\n if (!f) return\n if (pinch) {\n const [a, b] = [...pointers.values()]\n if (!a || !b) return\n const mid = { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }\n const dist = Math.max(1, Math.hypot(a.x - b.x, a.y - b.y))\n // The fingers' midpoint carries the picture as it scales about it.\n const start = { scale: pinch.start.scale, x: pinch.start.x + mid.x - pinch.mid.x, y: pinch.start.y + mid.y - pinch.mid.y }\n paint(m.zoomPinch(start, dist / pinch.dist, mid, f))\n e.preventDefault()\n return\n }\n if (!drag || drag.id !== e.pointerId) return\n let dx = at.x - drag.sx\n let dy = at.y - drag.sy\n if (!drag.moved && Math.hypot(dx, dy) < ZOOM_TAP_SLOP) return\n if (drag.type === `touch`) {\n // One finger pans only where there is room; the rest is the host's.\n const room = m.zoomPanRoom(drag.start, f)\n if (!room.x) dx = 0\n if (!room.y) dy = 0\n if (!drag.moved && dx === 0 && dy === 0) return\n }\n drag.moved = true\n drag.samples.push({ t: now(), x: at.x, y: at.y })\n if (drag.samples.length > 8) drag.samples.shift()\n paint(m.zoomDrag(drag.start, dx, dy, f))\n e.preventDefault()\n }\n\n const onPointerUp = (e: PointerEvent) => {\n const had = pointers.delete(e.pointerId)\n if (!had) return\n const cancelled = e.type === `pointercancel`\n if (pinch) {\n if (pointers.size < 2) {\n pinch = null\n drag = null\n release()\n }\n return\n }\n const d = drag\n if (!d || d.id !== e.pointerId) return\n drag = null\n if (!d.moved) {\n cursor()\n if (!cancelled) tap({ x: d.sx, y: d.sy }, d.type)\n return\n }\n const v = d.type === `mouse` && !cancelled ? velocity(d.samples) : { vx: 0, vy: 0 }\n release(v.vx, v.vy)\n }\n\n const onWheel = (e: WheelEvent) => {\n const f = frame()\n if (!f) return\n const mode = e.deltaMode === 1 ? `line` : `pixel`\n if (e.ctrlKey || e.metaKey) {\n // ⌘/ctrl + wheel, or a trackpad pinch (Chrome, Firefox): zoom about\n // the cursor; never the page's zoom.\n e.preventDefault()\n stopMotion()\n const page = e.deltaMode === 2 ? viewport.height : 1\n paint(m.zoomWheel(view, e.deltaY * page, mode, point(e), f))\n activity()\n if (wheelTimer) clearTimeout(wheelTimer)\n wheelTimer = setTimeout(() => {\n wheelTimer = null\n settle()\n }, ZOOM_WHEEL_SETTLE_MS)\n return\n }\n // A plain wheel / two-finger scroll pans; at an edge (or without room)\n // the page scrolls on.\n const unit = e.deltaMode === 1 ? m.ZOOM.wheelLinePx : e.deltaMode === 2 ? viewport.height : 1\n const next = m.zoomScroll(view, e.deltaX * unit, e.deltaY * unit, f)\n if (sameView(next, view)) return\n e.preventDefault()\n stopMotion()\n paint(next)\n activity()\n }\n\n // Safari's trackpad pinch (GestureEvent; Chrome and Firefox send ⌘-wheels).\n const onGestureStart = (e: Event) => {\n e.preventDefault()\n const g = e as Event & { clientX: number; clientY: number }\n if (!frame()) return\n stopMotion()\n safari = { start: view, anchor: point(g) }\n }\n const onGestureChange = (e: Event) => {\n e.preventDefault()\n const f = frame()\n if (!safari || !f) return\n paint(m.zoomPinch(safari.start, (e as Event & { scale: number }).scale, safari.anchor, f))\n activity()\n }\n const onGestureEnd = (e: Event) => {\n e.preventDefault()\n if (!safari) return\n safari = null\n release()\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey || e.altKey || e.defaultPrevented) return\n if (inPill(e.target) && (e.key === `Enter` || e.key === ` `)) return\n const f = frame()\n if (!f) return\n const next = m.zoomKey(view, e.key, f)\n if (!next) return\n e.preventDefault()\n jump(next)\n }\n\n const onFocusIn = () => activity()\n const onFocusOut = () => armHide()\n // The pill is hovered while the pointer is over it (delegated: the pill\n // may mount and unmount under the controller).\n const onPointerOver = (e: PointerEvent) => {\n hovered = inPill(e.target)\n }\n const onPointerOut = (e: PointerEvent) => {\n if (!hovered || inPill(e.relatedTarget)) return\n hovered = false\n armHide()\n }\n const onDragStart = (e: Event) => e.preventDefault()\n\n root.addEventListener(`pointerdown`, onPointerDown)\n root.addEventListener(`pointermove`, onPointerMove)\n root.addEventListener(`pointerup`, onPointerUp)\n root.addEventListener(`pointercancel`, onPointerUp)\n root.addEventListener(`wheel`, onWheel, { passive: false })\n root.addEventListener(`gesturestart`, onGestureStart)\n root.addEventListener(`gesturechange`, onGestureChange)\n root.addEventListener(`gestureend`, onGestureEnd)\n root.addEventListener(`keydown`, onKeyDown)\n root.addEventListener(`focusin`, onFocusIn)\n root.addEventListener(`focusout`, onFocusOut)\n root.addEventListener(`dragstart`, onDragStart)\n root.addEventListener(`pointerover`, onPointerOver)\n root.addEventListener(`pointerout`, onPointerOut)\n\n let ro: ResizeObserver | null = null\n if (typeof ResizeObserver === `function`) {\n ro = new ResizeObserver(() => measure())\n ro.observe(root)\n }\n if (!frame()) image.style.visibility = `hidden`\n measure()\n armHide()\n\n return {\n view: () => view,\n frame,\n step: (direction) => {\n const f = frame()\n if (f) jump(m.zoomStep(view, direction, f))\n },\n rest: () => {\n const f = frame()\n if (f) jump(m.zoomRestView(f))\n },\n zoomScale: (scale) => {\n const f = frame()\n if (f) jump(m.zoomTo(view, scale, m.zoomCentre(f), f))\n },\n syncScale: () => {\n const f = frame()\n const bound = o.boundScale()\n if (!f || bound === undefined || !Number.isFinite(bound) || Math.abs(bound - view.scale) < 1e-4) return\n stopMotion()\n paint(m.zoomTo(view, bound, m.zoomCentre(f), f), true)\n lastEmitted = view.scale\n },\n reset: () => {\n measure()\n reset()\n },\n holdPill: (hold) => {\n held = hold\n if (hold) setVisible(true)\n else armHide()\n },\n destroy: () => {\n stopMotion()\n if (wheelTimer) clearTimeout(wheelTimer)\n if (tapTimer) clearTimeout(tapTimer)\n if (hideTimer) clearTimeout(hideTimer)\n ro?.disconnect()\n root.removeEventListener(`pointerdown`, onPointerDown)\n root.removeEventListener(`pointermove`, onPointerMove)\n root.removeEventListener(`pointerup`, onPointerUp)\n root.removeEventListener(`pointercancel`, onPointerUp)\n root.removeEventListener(`wheel`, onWheel)\n root.removeEventListener(`gesturestart`, onGestureStart)\n root.removeEventListener(`gesturechange`, onGestureChange)\n root.removeEventListener(`gestureend`, onGestureEnd)\n root.removeEventListener(`keydown`, onKeyDown)\n root.removeEventListener(`focusin`, onFocusIn)\n root.removeEventListener(`focusout`, onFocusOut)\n root.removeEventListener(`dragstart`, onDragStart)\n root.removeEventListener(`pointerover`, onPointerOver)\n root.removeEventListener(`pointerout`, onPointerOut)\n },\n }\n}\n\n/** The native's LAYOUT (inline: the theme recipe styles every part, these\n * only place them; React style objects, Solid passes them through `css`).\n * `pill` = style.json `zoomableImage.pill`. `flexShrink` comes last: jsdom\n * re-appends it when Solid re-applies a style, so React's order holds. */\nexport function zoomableImageLayout(pill: { inset: number; percentMinWidth: number }) {\n return {\n root: { overflow: `clip`, userSelect: `none` },\n image: { position: `absolute`, left: 0, top: 0, display: `block`, maxWidth: `none`, maxHeight: `none`, transformOrigin: `0 0`, pointerEvents: `none`, userSelect: `none` },\n pill: { position: `absolute`, left: `50%`, bottom: pill.inset, transform: `translateX(-50%)`, zIndex: 1, display: `flex`, flexDirection: `row`, alignItems: `center`, whiteSpace: `nowrap`, cursor: `default`, transition: `opacity var(--xui-motion-standard) var(--xui-ease-standard,ease)` },\n pillHidden: { opacity: 0, pointerEvents: `none` },\n button: { display: `inline-flex`, alignItems: `center`, justifyContent: `center`, cursor: `pointer`, flexShrink: 0 },\n percent: { display: `inline-flex`, alignItems: `center`, justifyContent: `center`, cursor: `pointer`, minWidth: pill.percentMinWidth, fontVariantNumeric: `tabular-nums`, flexShrink: 0 },\n divider: { alignSelf: `center`, flexShrink: 0 },\n } as const\n}\n\n/** The settle spring of the native (the theme's standard motion). */\nexport const ZOOMABLE_IMAGE_NATIVE_TRANSITION = `transform var(--xui-motion-standard) var(--xui-ease-standard,ease)`\n/** The primitive's (the app's motion tokens). */\nexport const ZOOMABLE_IMAGE_TRANSITION = `transform var(--motion-duration-standard,var(--xui-duration-standard,180ms)) var(--motion-ease-standard,cubic-bezier(0.2,0,0,1))`\n\n/** The primitive's picture style before the controller paints it. */\nexport function zoomImageStyle(natural: ZoomSize | null): Record<string, string | number> {\n return natural ? { width: natural.width, height: natural.height } : {}\n}\n\nexport const ZOOMABLE_IMAGE_CLASSES = {\n /** The viewport: as wide as its parent, the picture clipped to it. */\n root: `relative w-full min-w-0 overflow-hidden rounded-md select-none outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,\n image: `pointer-events-none absolute top-0 left-0 block max-h-none max-w-none origin-top-left select-none`,\n /** THE pill: one glass capsule bottom-centre, `pill.inset` above the edge. */\n pill: `absolute bottom-4 left-1/2 z-10 flex -translate-x-1/2 flex-row items-center gap-0.5 rounded-full border border-glass-stroke-card bg-popover p-1 whitespace-nowrap shadow-lg backdrop-blur-lg transition-opacity duration-standard ease-standard`,\n pillHidden: `pointer-events-none opacity-0`,\n /** − / + / fit: ghost icon buttons, 28 px circles (no border or fill of\n * their own where the host has no preflight). */\n button: `size-7 rounded-full border-0 bg-transparent`,\n percent: `h-7 min-w-14 rounded-full border-0 bg-transparent px-2 tabular-nums`,\n divider: `mx-0.5 h-4 w-px shrink-0 bg-border`,\n} as const\n"
|
|
56
57
|
],
|
|
57
|
-
"mappings": "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",
|
|
58
|
-
"debugId": "
|
|
58
|
+
"mappings": "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",
|
|
59
|
+
"debugId": "BD3177F492C31D0164756E2164756E21",
|
|
59
60
|
"names": []
|
|
60
61
|
}
|