@osmo.inc/cli 0.1.18-preview.2 → 0.1.19
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/DEPLOY.md +62 -16
- package/README.md +31 -17
- package/SETUP.md +19 -7
- package/THIRD_PARTY_NOTICES.md +5 -16
- package/bin/osmo.mjs +12 -0
- package/dist/osmo.js +2500 -8905
- package/package.json +14 -27
- package/release.json +49 -84
- package/third-party/inventory.json +0 -3601
- package/node_modules/@esbuild/darwin-arm64/README.md +0 -3
- package/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
- package/node_modules/@esbuild/darwin-arm64/package.json +0 -20
- package/node_modules/esbuild/LICENSE.md +0 -21
- package/node_modules/esbuild/README.md +0 -3
- package/node_modules/esbuild/bin/esbuild +0 -223
- package/node_modules/esbuild/install.js +0 -289
- package/node_modules/esbuild/lib/main.d.ts +0 -716
- package/node_modules/esbuild/lib/main.js +0 -2532
- package/node_modules/esbuild/package.json +0 -49
- package/node_modules/typescript/LICENSE.txt +0 -55
- package/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
- package/node_modules/typescript/lib/lib.d.ts +0 -22
- package/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
- package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
- package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
- package/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
- package/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
- package/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
- package/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
- package/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
- package/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
- package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
- package/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
- package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
- package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
- package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
- package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
- package/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
- package/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
- package/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
- package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
- package/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
- package/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
- package/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
- package/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
- package/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
- package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
- package/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
- package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
- package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
- package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
- package/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
- package/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
- package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
- package/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
- package/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
- package/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
- package/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
- package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
- package/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
- package/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
- package/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
- package/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
- package/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
- package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
- package/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
- package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
- package/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
- package/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
- package/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
- package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
- package/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
- package/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
- package/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
- package/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
- package/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
- package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
- package/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
- package/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
- package/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
- package/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
- package/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
- package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
- package/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
- package/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
- package/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
- package/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
- package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
- package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
- package/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
- package/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
- package/node_modules/typescript/lib/lib.es6.d.ts +0 -23
- package/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
- package/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
- package/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
- package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
- package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
- package/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
- package/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
- package/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
- package/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
- package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
- package/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
- package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
- package/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
- package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
- package/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
- package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
- package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
- package/node_modules/typescript/lib/typescript.js +0 -382
- package/node_modules/typescript/package.json +0 -57
- package/runtime/apps/native/tools/compile.mjs +0 -217
- package/runtime/packages/scene/scripts/validate-strict.mjs +0 -246
- package/runtime/packages/scene/src/clip.d.mts +0 -14
- package/runtime/packages/scene/src/clip.mjs +0 -15
- package/runtime/packages/scene/src/color-value.d.mts +0 -5
- package/runtime/packages/scene/src/color-value.mjs +0 -19
- package/runtime/packages/scene/src/color.ts +0 -1
- package/runtime/packages/scene/src/effects.ts +0 -213
- package/runtime/packages/scene/src/elements.ts +0 -491
- package/runtime/packages/scene/src/evaluate.ts +0 -919
- package/runtime/packages/scene/src/index.ts +0 -69
- package/runtime/packages/scene/src/jsx-runtime.ts +0 -73
- package/runtime/packages/scene/src/knob-schema.ts +0 -115
- package/runtime/packages/scene/src/knobs.ts +0 -118
- package/runtime/packages/scene/src/mask.d.mts +0 -6
- package/runtime/packages/scene/src/mask.mjs +0 -17
- package/runtime/packages/scene/src/metadata.d.mts +0 -23
- package/runtime/packages/scene/src/metadata.mjs +0 -44
- package/runtime/packages/scene/src/motion-sampling.d.mts +0 -2
- package/runtime/packages/scene/src/motion-sampling.mjs +0 -50
- package/runtime/packages/scene/src/motion.ts +0 -121
- package/runtime/packages/scene/src/shader.ts +0 -57
- package/src/resource-examples/example-image/landscape.svg +0 -7
- package/src/resource-examples/example-image/resource.json +0 -8
- package/src/resource-examples/example-model/gem.glb +0 -0
- package/src/resource-examples/example-model/preview.svg +0 -1
- package/src/resource-examples/example-model/resource.json +0 -7
- package/src/resource-examples/example-scene/resource.json +0 -1
- package/src/resource-examples/example-scene/scene.tsx +0 -8
- package/src/resource-examples/example-shader/effect.wgsl +0 -7
- package/src/resource-examples/example-shader/preview.svg +0 -1
- package/src/resource-examples/example-shader/resource.json +0 -27
- package/src/resource-examples/example-shader/tint.wgsl +0 -7
- package/src/resource-examples/example-video/ambient.mp4 +0 -0
- package/src/resource-examples/example-video/resource.json +0 -9
- package/src/starter/scene.tsx +0 -20
- package/studio/index.html +0 -2
- package/studio/public/check-circle-filled.svg +0 -3
- package/studio/public/comment-cursor/active-outer.svg +0 -3
- package/studio/public/comment-cursor/default.svg +0 -6
- package/studio/public/osmo-studio-logo.svg +0 -12
- package/studio/public/pencil-simple.svg +0 -5
- package/studio/src/active-outer-TVYUEURE.svg +0 -3
- package/studio/src/app.css +0 -4
- package/studio/src/app.js +0 -714
- package/studio/src/default-6CTRH4V5.svg +0 -6
- package/studio/src/engine_bg.wasm +0 -0
- package/studio/src/inter-cyrillic-ext-wght-normal-IYF56FF6.woff2 +0 -0
- package/studio/src/inter-cyrillic-wght-normal-JEOLYBOO.woff2 +0 -0
- package/studio/src/inter-greek-ext-wght-normal-EOVOK2B5.woff2 +0 -0
- package/studio/src/inter-greek-wght-normal-IRE366VL.woff2 +0 -0
- package/studio/src/inter-latin-ext-wght-normal-HA22NDSG.woff2 +0 -0
- package/studio/src/inter-latin-wght-normal-NRMW37G5.woff2 +0 -0
- package/studio/src/inter-vietnamese-wght-normal-CE5GGD3W.woff2 +0 -0
- package/studio/src/osmo-studio-logo-D5R2V77B.svg +0 -12
- package/third-party/cargo/adler2@2.0.1/Cargo.toml +0 -91
- package/third-party/cargo/adler2@2.0.1/LICENSE-0BSD +0 -12
- package/third-party/cargo/adler2@2.0.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/adler2@2.0.1/LICENSE-MIT +0 -23
- package/third-party/cargo/allocator-api2@0.2.21/Cargo.toml +0 -48
- package/third-party/cargo/allocator-api2@0.2.21/LICENSE-APACHE +0 -176
- package/third-party/cargo/allocator-api2@0.2.21/LICENSE-MIT +0 -23
- package/third-party/cargo/arrayref@0.3.9/Cargo.toml +0 -23
- package/third-party/cargo/arrayref@0.3.9/LICENSE +0 -26
- package/third-party/cargo/arrayvec@0.7.8/Cargo.toml +0 -112
- package/third-party/cargo/arrayvec@0.7.8/LICENSE-APACHE +0 -201
- package/third-party/cargo/arrayvec@0.7.8/LICENSE-MIT +0 -25
- package/third-party/cargo/ascii@1.1.0/Cargo.toml +0 -41
- package/third-party/cargo/ascii@1.1.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/ascii@1.1.0/LICENSE-MIT +0 -22
- package/third-party/cargo/ash@0.38.0+1.3.281/Cargo.toml +0 -66
- package/third-party/cargo/ash@0.38.0+1.3.281/LICENSE-APACHE +0 -67
- package/third-party/cargo/ash@0.38.0+1.3.281/LICENSE-MIT +0 -25
- package/third-party/cargo/autocfg@1.5.1/Cargo.toml +0 -75
- package/third-party/cargo/autocfg@1.5.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/autocfg@1.5.1/LICENSE-MIT +0 -25
- package/third-party/cargo/base64@0.13.1/Cargo.toml +0 -53
- package/third-party/cargo/base64@0.13.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/base64@0.13.1/LICENSE-MIT +0 -21
- package/third-party/cargo/base64@0.22.1/Cargo.toml +0 -85
- package/third-party/cargo/base64@0.22.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/base64@0.22.1/LICENSE-MIT +0 -21
- package/third-party/cargo/bit-set@0.10.0/Cargo.toml +0 -108
- package/third-party/cargo/bit-set@0.10.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/bit-set@0.10.0/LICENSE-MIT +0 -25
- package/third-party/cargo/bit-vec@0.9.1/Cargo.toml +0 -94
- package/third-party/cargo/bit-vec@0.9.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/bit-vec@0.9.1/LICENSE-MIT +0 -25
- package/third-party/cargo/bitflags@2.13.0/Cargo.toml +0 -120
- package/third-party/cargo/bitflags@2.13.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/bitflags@2.13.0/LICENSE-MIT +0 -25
- package/third-party/cargo/block2@0.6.2/Cargo.toml +0 -115
- package/third-party/cargo/block2@0.6.2/MIT-terms.txt +0 -22
- package/third-party/cargo/block2@0.6.2/madsmtm-objc2-b4167b582b2f-LICENSE.md +0 -34
- package/third-party/cargo/bumpalo@3.20.3/Cargo.toml +0 -99
- package/third-party/cargo/bumpalo@3.20.3/LICENSE-APACHE +0 -201
- package/third-party/cargo/bumpalo@3.20.3/LICENSE-MIT +0 -25
- package/third-party/cargo/bytemuck@1.25.1/Cargo.toml +0 -153
- package/third-party/cargo/bytemuck@1.25.1/LICENSE-APACHE +0 -61
- package/third-party/cargo/bytemuck@1.25.1/LICENSE-MIT +0 -9
- package/third-party/cargo/bytemuck@1.25.1/LICENSE-ZLIB +0 -11
- package/third-party/cargo/bytemuck_derive@1.11.0/Cargo.toml +0 -60
- package/third-party/cargo/bytemuck_derive@1.11.0/LICENSE-APACHE +0 -61
- package/third-party/cargo/bytemuck_derive@1.11.0/LICENSE-MIT +0 -9
- package/third-party/cargo/bytemuck_derive@1.11.0/LICENSE-ZLIB +0 -11
- package/third-party/cargo/byteorder-lite@0.1.0/Cargo.toml +0 -57
- package/third-party/cargo/byteorder-lite@0.1.0/LICENSE-MIT +0 -21
- package/third-party/cargo/byteorder-lite@0.1.0/UNLICENSE +0 -24
- package/third-party/cargo/byteorder@1.5.0/COPYING +0 -3
- package/third-party/cargo/byteorder@1.5.0/Cargo.toml +0 -54
- package/third-party/cargo/byteorder@1.5.0/LICENSE-MIT +0 -21
- package/third-party/cargo/byteorder@1.5.0/UNLICENSE +0 -24
- package/third-party/cargo/cfg-if@1.0.4/Cargo.toml +0 -47
- package/third-party/cargo/cfg-if@1.0.4/LICENSE-APACHE +0 -201
- package/third-party/cargo/cfg-if@1.0.4/LICENSE-MIT +0 -25
- package/third-party/cargo/cfg_aliases@0.2.1/Cargo.toml +0 -43
- package/third-party/cargo/cfg_aliases@0.2.1/LICENSE +0 -9
- package/third-party/cargo/chunked_transfer@1.5.0/Cargo.toml +0 -27
- package/third-party/cargo/chunked_transfer@1.5.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/chunked_transfer@1.5.0/LICENSE-MIT +0 -22
- package/third-party/cargo/codespan-reporting@0.13.1/Cargo.toml +0 -115
- package/third-party/cargo/codespan-reporting@0.13.1/LICENSE +0 -201
- package/third-party/cargo/color_quant@1.1.0/Cargo.toml +0 -20
- package/third-party/cargo/color_quant@1.1.0/LICENSE +0 -21
- package/third-party/cargo/console_error_panic_hook@0.1.7/Cargo.toml +0 -27
- package/third-party/cargo/console_error_panic_hook@0.1.7/LICENSE-APACHE +0 -201
- package/third-party/cargo/console_error_panic_hook@0.1.7/LICENSE-MIT +0 -25
- package/third-party/cargo/core_maths@0.1.1/Cargo.toml +0 -37
- package/third-party/cargo/core_maths@0.1.1/LICENSE +0 -21
- package/third-party/cargo/cosmic-text@0.19.0/Cargo.toml +0 -214
- package/third-party/cargo/cosmic-text@0.19.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/cosmic-text@0.19.0/LICENSE-MIT +0 -21
- package/third-party/cargo/crc32fast@1.5.0/Cargo.toml +0 -68
- package/third-party/cargo/crc32fast@1.5.0/LICENSE-APACHE +0 -202
- package/third-party/cargo/crc32fast@1.5.0/LICENSE-MIT +0 -21
- package/third-party/cargo/data-url@0.3.2/Cargo.toml +0 -63
- package/third-party/cargo/data-url@0.3.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/data-url@0.3.2/LICENSE-MIT +0 -25
- package/third-party/cargo/dispatch2@0.3.1/Cargo.toml +0 -122
- package/third-party/cargo/dispatch2@0.3.1/MIT-terms.txt +0 -22
- package/third-party/cargo/dispatch2@0.3.1/madsmtm-objc2-8852b424193c-LICENSE.md +0 -34
- package/third-party/cargo/dlib@0.5.3/Cargo.toml +0 -43
- package/third-party/cargo/dlib@0.5.3/LICENSE.txt +0 -19
- package/third-party/cargo/document-features@0.2.12/Cargo.toml +0 -51
- package/third-party/cargo/document-features@0.2.12/LICENSE-APACHE +0 -73
- package/third-party/cargo/document-features@0.2.12/LICENSE-MIT +0 -19
- package/third-party/cargo/equivalent@1.0.2/Cargo.toml +0 -37
- package/third-party/cargo/equivalent@1.0.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/equivalent@1.0.2/LICENSE-MIT +0 -25
- package/third-party/cargo/errno@0.3.14/Cargo.toml +0 -67
- package/third-party/cargo/errno@0.3.14/LICENSE-APACHE +0 -201
- package/third-party/cargo/errno@0.3.14/LICENSE-MIT +0 -25
- package/third-party/cargo/etagere@0.3.0/Cargo.toml +0 -57
- package/third-party/cargo/etagere@0.3.0/LICENSE-APACHE +0 -13
- package/third-party/cargo/etagere@0.3.0/LICENSE-MIT +0 -20
- package/third-party/cargo/euclid@0.22.14/COPYRIGHT +0 -5
- package/third-party/cargo/euclid@0.22.14/Cargo.toml +0 -66
- package/third-party/cargo/euclid@0.22.14/LICENSE-APACHE +0 -201
- package/third-party/cargo/euclid@0.22.14/LICENSE-MIT +0 -25
- package/third-party/cargo/fastrand@2.5.0/Cargo.toml +0 -89
- package/third-party/cargo/fastrand@2.5.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/fastrand@2.5.0/LICENSE-MIT +0 -23
- package/third-party/cargo/fdeflate@0.3.7/Cargo.toml +0 -55
- package/third-party/cargo/fdeflate@0.3.7/LICENSE-APACHE +0 -177
- package/third-party/cargo/fdeflate@0.3.7/LICENSE-MIT +0 -25
- package/third-party/cargo/flate2@1.1.9/Cargo.toml +0 -274
- package/third-party/cargo/flate2@1.1.9/LICENSE-APACHE +0 -201
- package/third-party/cargo/flate2@1.1.9/LICENSE-MIT +0 -25
- package/third-party/cargo/float-cmp@0.9.0/Cargo.toml +0 -39
- package/third-party/cargo/float-cmp@0.9.0/LICENSE +0 -19
- package/third-party/cargo/float_next_after@1.0.0/Cargo.toml +0 -43
- package/third-party/cargo/float_next_after@1.0.0/LICENSE +0 -23
- package/third-party/cargo/foldhash@0.2.0/Cargo.toml +0 -80
- package/third-party/cargo/foldhash@0.2.0/LICENSE +0 -19
- package/third-party/cargo/font-types@0.11.3/Cargo.toml +0 -55
- package/third-party/cargo/font-types@0.11.3/LICENSE-APACHE +0 -67
- package/third-party/cargo/font-types@0.11.3/LICENSE-MIT +0 -25
- package/third-party/cargo/fontdb@0.23.0/Cargo.toml +0 -83
- package/third-party/cargo/fontdb@0.23.0/LICENSE +0 -21
- package/third-party/cargo/futures-core@0.3.32/Cargo.toml +0 -66
- package/third-party/cargo/futures-core@0.3.32/LICENSE-APACHE +0 -202
- package/third-party/cargo/futures-core@0.3.32/LICENSE-MIT +0 -26
- package/third-party/cargo/futures-task@0.3.32/Cargo.toml +0 -58
- package/third-party/cargo/futures-task@0.3.32/LICENSE-APACHE +0 -202
- package/third-party/cargo/futures-task@0.3.32/LICENSE-MIT +0 -26
- package/third-party/cargo/futures-util@0.3.32/Cargo.toml +0 -181
- package/third-party/cargo/futures-util@0.3.32/LICENSE-APACHE +0 -202
- package/third-party/cargo/futures-util@0.3.32/LICENSE-MIT +0 -26
- package/third-party/cargo/getrandom@0.4.3/Cargo.toml +0 -165
- package/third-party/cargo/getrandom@0.4.3/LICENSE-APACHE +0 -201
- package/third-party/cargo/getrandom@0.4.3/LICENSE-MIT +0 -26
- package/third-party/cargo/gif@0.14.2/Cargo.toml +0 -84
- package/third-party/cargo/gif@0.14.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/gif@0.14.2/LICENSE-MIT +0 -21
- package/third-party/cargo/glam@0.33.2/Cargo.toml +0 -354
- package/third-party/cargo/glam@0.33.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/glam@0.33.2/LICENSE-MIT +0 -23
- package/third-party/cargo/glow@0.17.0/Cargo.toml +0 -122
- package/third-party/cargo/glow@0.17.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/glow@0.17.0/LICENSE-MIT +0 -23
- package/third-party/cargo/glow@0.17.0/LICENSE-ZLIB +0 -15
- package/third-party/cargo/gltf-derive@1.4.1/Cargo.toml +0 -34
- package/third-party/cargo/gltf-derive@1.4.1/LICENSE-APACHE +0 -202
- package/third-party/cargo/gltf-derive@1.4.1/LICENSE-MIT +0 -26
- package/third-party/cargo/gltf-json@1.4.1/Cargo.toml +0 -50
- package/third-party/cargo/gltf-json@1.4.1/LICENSE-APACHE +0 -202
- package/third-party/cargo/gltf-json@1.4.1/LICENSE-MIT +0 -26
- package/third-party/cargo/gltf@1.4.1/Cargo.toml +0 -122
- package/third-party/cargo/gltf@1.4.1/LICENSE-APACHE +0 -202
- package/third-party/cargo/gltf@1.4.1/LICENSE-MIT +0 -26
- package/third-party/cargo/glyphon@0.12.0/Cargo.toml +0 -35
- package/third-party/cargo/glyphon@0.12.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/glyphon@0.12.0/LICENSE-MIT +0 -23
- package/third-party/cargo/glyphon@0.12.0/LICENSE-ZLIB +0 -15
- package/third-party/cargo/gpu-allocator@0.28.0/Cargo.toml +0 -180
- package/third-party/cargo/gpu-allocator@0.28.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/gpu-allocator@0.28.0/LICENSE-MIT +0 -7
- package/third-party/cargo/grid@1.0.1/Cargo.toml +0 -77
- package/third-party/cargo/grid@1.0.1/LICENSE +0 -21
- package/third-party/cargo/half@2.7.1/Cargo.toml +0 -137
- package/third-party/cargo/half@2.7.1/LICENSE-APACHE +0 -176
- package/third-party/cargo/half@2.7.1/LICENSE-MIT +0 -19
- package/third-party/cargo/harfrust@0.5.2/Cargo.toml +0 -115
- package/third-party/cargo/harfrust@0.5.2/harfbuzz-harfrust-efdae3142ab7-LICENSE +0 -22
- package/third-party/cargo/hashbrown@0.16.1/Cargo.toml +0 -180
- package/third-party/cargo/hashbrown@0.16.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/hashbrown@0.16.1/LICENSE-MIT +0 -25
- package/third-party/cargo/hashbrown@0.17.1/Cargo.toml +0 -201
- package/third-party/cargo/hashbrown@0.17.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/hashbrown@0.17.1/LICENSE-MIT +0 -25
- package/third-party/cargo/httpdate@1.0.3/Cargo.toml +0 -35
- package/third-party/cargo/httpdate@1.0.3/LICENSE-APACHE +0 -201
- package/third-party/cargo/httpdate@1.0.3/LICENSE-MIT +0 -19
- package/third-party/cargo/image-webp@0.2.4/Cargo.toml +0 -63
- package/third-party/cargo/image-webp@0.2.4/LICENSE-APACHE +0 -177
- package/third-party/cargo/image-webp@0.2.4/LICENSE-MIT +0 -25
- package/third-party/cargo/image@0.25.10/Cargo.toml +0 -248
- package/third-party/cargo/image@0.25.10/LICENSE-APACHE +0 -177
- package/third-party/cargo/image@0.25.10/LICENSE-MIT +0 -25
- package/third-party/cargo/imagesize@0.14.0/Cargo.toml +0 -104
- package/third-party/cargo/imagesize@0.14.0/LICENSE +0 -21
- package/third-party/cargo/indexmap@2.14.0/Cargo.toml +0 -167
- package/third-party/cargo/indexmap@2.14.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/indexmap@2.14.0/LICENSE-MIT +0 -25
- package/third-party/cargo/inflections@1.1.1/Cargo.toml +0 -21
- package/third-party/cargo/inflections@1.1.1/LICENSE +0 -20
- package/third-party/cargo/itoa@1.0.18/Cargo.toml +0 -66
- package/third-party/cargo/itoa@1.0.18/LICENSE-APACHE +0 -176
- package/third-party/cargo/itoa@1.0.18/LICENSE-MIT +0 -23
- package/third-party/cargo/js-sys@0.3.103/Cargo.toml +0 -98
- package/third-party/cargo/js-sys@0.3.103/LICENSE-APACHE +0 -201
- package/third-party/cargo/js-sys@0.3.103/LICENSE-MIT +0 -25
- package/third-party/cargo/khronos-egl@6.0.0/Cargo.toml +0 -82
- package/third-party/cargo/khronos-egl@6.0.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/khronos-egl@6.0.0/LICENSE-MIT +0 -23
- package/third-party/cargo/kurbo@0.13.1/Cargo.toml +0 -230
- package/third-party/cargo/kurbo@0.13.1/LICENSE-APACHE +0 -202
- package/third-party/cargo/kurbo@0.13.1/LICENSE-MIT +0 -25
- package/third-party/cargo/lazy_static@1.5.0/Cargo.toml +0 -46
- package/third-party/cargo/lazy_static@1.5.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/lazy_static@1.5.0/LICENSE-MIT +0 -25
- package/third-party/cargo/libc@0.2.186/Cargo.toml +0 -229
- package/third-party/cargo/libc@0.2.186/LICENSE-APACHE +0 -176
- package/third-party/cargo/libc@0.2.186/LICENSE-MIT +0 -25
- package/third-party/cargo/libloading@0.8.9/Cargo.toml +0 -90
- package/third-party/cargo/libloading@0.8.9/LICENSE +0 -12
- package/third-party/cargo/libm@0.2.16/Cargo.toml +0 -61
- package/third-party/cargo/libm@0.2.16/LICENSE.txt +0 -258
- package/third-party/cargo/linebender_resource_handle@0.1.1/Cargo.toml +0 -107
- package/third-party/cargo/linebender_resource_handle@0.1.1/LICENSE-APACHE +0 -176
- package/third-party/cargo/linebender_resource_handle@0.1.1/LICENSE-MIT +0 -19
- package/third-party/cargo/litrs@1.0.0/Cargo.toml +0 -63
- package/third-party/cargo/litrs@1.0.0/LICENSE-APACHE +0 -176
- package/third-party/cargo/litrs@1.0.0/LICENSE-MIT +0 -25
- package/third-party/cargo/lock_api@0.4.14/Cargo.toml +0 -68
- package/third-party/cargo/lock_api@0.4.14/LICENSE-APACHE +0 -201
- package/third-party/cargo/lock_api@0.4.14/LICENSE-MIT +0 -25
- package/third-party/cargo/log@0.4.33/Cargo.toml +0 -152
- package/third-party/cargo/log@0.4.33/LICENSE-APACHE +0 -201
- package/third-party/cargo/log@0.4.33/LICENSE-MIT +0 -25
- package/third-party/cargo/lru@0.16.4/Cargo.toml +0 -47
- package/third-party/cargo/lru@0.16.4/LICENSE +0 -21
- package/third-party/cargo/lyon_geom@1.0.19/Cargo.toml +0 -69
- package/third-party/cargo/lyon_geom@1.0.19/nical-lyon-56219c95c658-LICENSE-APACHE +0 -13
- package/third-party/cargo/lyon_geom@1.0.19/nical-lyon-56219c95c658-LICENSE-MIT +0 -20
- package/third-party/cargo/lyon_path@1.0.19/Cargo.toml +0 -58
- package/third-party/cargo/lyon_path@1.0.19/nical-lyon-56219c95c658-LICENSE-APACHE +0 -13
- package/third-party/cargo/lyon_path@1.0.19/nical-lyon-56219c95c658-LICENSE-MIT +0 -20
- package/third-party/cargo/lyon_tessellation@1.0.20/Cargo.toml +0 -71
- package/third-party/cargo/lyon_tessellation@1.0.20/nical-lyon-7fa75ea8eea3-LICENSE-APACHE +0 -13
- package/third-party/cargo/lyon_tessellation@1.0.20/nical-lyon-7fa75ea8eea3-LICENSE-MIT +0 -20
- package/third-party/cargo/memchr@2.8.3/COPYING +0 -3
- package/third-party/cargo/memchr@2.8.3/Cargo.toml +0 -89
- package/third-party/cargo/memchr@2.8.3/LICENSE-MIT +0 -21
- package/third-party/cargo/memchr@2.8.3/UNLICENSE +0 -24
- package/third-party/cargo/memmap2@0.9.11/Cargo.toml +0 -59
- package/third-party/cargo/memmap2@0.9.11/LICENSE-APACHE +0 -201
- package/third-party/cargo/memmap2@0.9.11/LICENSE-MIT +0 -26
- package/third-party/cargo/miniz_oxide@0.8.9/Cargo.toml +0 -91
- package/third-party/cargo/miniz_oxide@0.8.9/LICENSE +0 -25
- package/third-party/cargo/miniz_oxide@0.8.9/LICENSE-APACHE.md +0 -177
- package/third-party/cargo/miniz_oxide@0.8.9/LICENSE-MIT.md +0 -24
- package/third-party/cargo/miniz_oxide@0.8.9/LICENSE-ZLIB.md +0 -14
- package/third-party/cargo/moxcms@0.8.1/Cargo.toml +0 -113
- package/third-party/cargo/moxcms@0.8.1/LICENSE-APACHE.md +0 -201
- package/third-party/cargo/moxcms@0.8.1/LICENSE.md +0 -26
- package/third-party/cargo/naga-types@30.0.0/Cargo.toml +0 -94
- package/third-party/cargo/naga-types@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/naga-types@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/naga@30.0.0/Cargo.toml +0 -246
- package/third-party/cargo/naga@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/naga@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/num-traits@0.2.19/Cargo.toml +0 -54
- package/third-party/cargo/num-traits@0.2.19/LICENSE-APACHE +0 -201
- package/third-party/cargo/num-traits@0.2.19/LICENSE-MIT +0 -25
- package/third-party/cargo/objc2-core-foundation@0.3.2/Cargo.toml +0 -221
- package/third-party/cargo/objc2-core-foundation@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-core-foundation@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2-core-graphics@0.3.2/Cargo.toml +0 -331
- package/third-party/cargo/objc2-core-graphics@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-core-graphics@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2-encode@4.1.0/Cargo.toml +0 -81
- package/third-party/cargo/objc2-encode@4.1.0/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-encode@4.1.0/madsmtm-objc2-8d214f547736-LICENSE.md +0 -34
- package/third-party/cargo/objc2-foundation@0.3.2/Cargo.toml +0 -529
- package/third-party/cargo/objc2-foundation@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-foundation@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2-io-surface@0.3.2/Cargo.toml +0 -139
- package/third-party/cargo/objc2-io-surface@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-io-surface@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2-metal@0.3.2/Cargo.toml +0 -601
- package/third-party/cargo/objc2-metal@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-metal@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2-quartz-core@0.3.2/Cargo.toml +0 -302
- package/third-party/cargo/objc2-quartz-core@0.3.2/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2-quartz-core@0.3.2/madsmtm-objc2-7b1abfd750a2-LICENSE.md +0 -34
- package/third-party/cargo/objc2@0.6.4/Cargo.toml +0 -232
- package/third-party/cargo/objc2@0.6.4/MIT-terms.txt +0 -22
- package/third-party/cargo/objc2@0.6.4/madsmtm-objc2-8852b424193c-LICENSE.md +0 -34
- package/third-party/cargo/once_cell@1.21.4/Cargo.toml +0 -119
- package/third-party/cargo/once_cell@1.21.4/LICENSE-APACHE +0 -201
- package/third-party/cargo/once_cell@1.21.4/LICENSE-MIT +0 -23
- package/third-party/cargo/ordered-float@5.3.0/Cargo.toml +0 -162
- package/third-party/cargo/ordered-float@5.3.0/LICENSE-MIT +0 -25
- package/third-party/cargo/parking_lot@0.12.5/Cargo.toml +0 -87
- package/third-party/cargo/parking_lot@0.12.5/LICENSE-APACHE +0 -201
- package/third-party/cargo/parking_lot@0.12.5/LICENSE-MIT +0 -25
- package/third-party/cargo/parking_lot_core@0.9.12/Cargo.toml +0 -72
- package/third-party/cargo/parking_lot_core@0.9.12/LICENSE-APACHE +0 -201
- package/third-party/cargo/parking_lot_core@0.9.12/LICENSE-MIT +0 -25
- package/third-party/cargo/pico-args@0.5.0/Cargo.toml +0 -32
- package/third-party/cargo/pico-args@0.5.0/LICENSE +0 -20
- package/third-party/cargo/pin-project-lite@0.2.17/Cargo.toml +0 -198
- package/third-party/cargo/pin-project-lite@0.2.17/LICENSE-APACHE +0 -177
- package/third-party/cargo/pin-project-lite@0.2.17/LICENSE-MIT +0 -23
- package/third-party/cargo/pkg-config@0.3.33/Cargo.toml +0 -43
- package/third-party/cargo/pkg-config@0.3.33/LICENSE-APACHE +0 -201
- package/third-party/cargo/pkg-config@0.3.33/LICENSE-MIT +0 -25
- package/third-party/cargo/png@0.18.1/Cargo.toml +0 -130
- package/third-party/cargo/png@0.18.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/png@0.18.1/LICENSE-MIT +0 -25
- package/third-party/cargo/pollster@0.4.0/Cargo.toml +0 -53
- package/third-party/cargo/pollster@0.4.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/pollster@0.4.0/LICENSE-MIT +0 -25
- package/third-party/cargo/polycool@0.4.0/Cargo.toml +0 -83
- package/third-party/cargo/polycool@0.4.0/LICENSE-APACHE +0 -202
- package/third-party/cargo/polycool@0.4.0/LICENSE-MIT +0 -25
- package/third-party/cargo/pp-rs@0.2.1/Cargo.toml +0 -23
- package/third-party/cargo/pp-rs@0.2.1/LICENSE +0 -29
- package/third-party/cargo/presser@0.3.1/Cargo.toml +0 -58
- package/third-party/cargo/presser@0.3.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/presser@0.3.1/LICENSE-MIT +0 -25
- package/third-party/cargo/proc-macro2@1.0.106/Cargo.toml +0 -105
- package/third-party/cargo/proc-macro2@1.0.106/LICENSE-APACHE +0 -176
- package/third-party/cargo/proc-macro2@1.0.106/LICENSE-MIT +0 -23
- package/third-party/cargo/profiling@1.0.18/Cargo.toml +0 -96
- package/third-party/cargo/profiling@1.0.18/aclysma-profiling-8271551172eb-LICENSE-APACHE +0 -201
- package/third-party/cargo/profiling@1.0.18/aclysma-profiling-8271551172eb-LICENSE-MIT +0 -21
- package/third-party/cargo/pxfm@0.1.30/Cargo.toml +0 -53
- package/third-party/cargo/pxfm@0.1.30/LICENSE-APACHE.md +0 -201
- package/third-party/cargo/pxfm@0.1.30/LICENSE.md +0 -26
- package/third-party/cargo/quick-error@2.0.1/Cargo.toml +0 -24
- package/third-party/cargo/quick-error@2.0.1/LICENSE-APACHE +0 -202
- package/third-party/cargo/quick-error@2.0.1/LICENSE-MIT +0 -19
- package/third-party/cargo/quote@1.0.46/Cargo.toml +0 -70
- package/third-party/cargo/quote@1.0.46/LICENSE-APACHE +0 -176
- package/third-party/cargo/quote@1.0.46/LICENSE-MIT +0 -23
- package/third-party/cargo/rangemap@1.7.1/Cargo.toml +0 -91
- package/third-party/cargo/rangemap@1.7.1/LICENSE-APACHE +0 -191
- package/third-party/cargo/rangemap@1.7.1/LICENSE-MIT +0 -7
- package/third-party/cargo/raw-window-handle@0.6.2/Cargo.toml +0 -56
- package/third-party/cargo/raw-window-handle@0.6.2/LICENSE-APACHE.md +0 -177
- package/third-party/cargo/raw-window-handle@0.6.2/LICENSE-MIT.md +0 -21
- package/third-party/cargo/raw-window-handle@0.6.2/LICENSE-ZLIB.md +0 -11
- package/third-party/cargo/raw-window-metal@1.1.0/Cargo.toml +0 -111
- package/third-party/cargo/raw-window-metal@1.1.0/LICENSE-APACHE +0 -202
- package/third-party/cargo/raw-window-metal@1.1.0/LICENSE-MIT +0 -17
- package/third-party/cargo/read-fonts@0.37.0/Cargo.toml +0 -95
- package/third-party/cargo/read-fonts@0.37.0/LICENSE-APACHE +0 -67
- package/third-party/cargo/read-fonts@0.37.0/LICENSE-MIT +0 -25
- package/third-party/cargo/read-fonts@0.39.2/Cargo.toml +0 -96
- package/third-party/cargo/read-fonts@0.39.2/LICENSE-APACHE +0 -67
- package/third-party/cargo/read-fonts@0.39.2/LICENSE-MIT +0 -25
- package/third-party/cargo/renderdoc-sys@1.1.0/Cargo.toml +0 -39
- package/third-party/cargo/renderdoc-sys@1.1.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/renderdoc-sys@1.1.0/LICENSE-MIT +0 -25
- package/third-party/cargo/resvg@0.47.0/Cargo.toml +0 -112
- package/third-party/cargo/resvg@0.47.0/LICENSE-APACHE +0 -176
- package/third-party/cargo/resvg@0.47.0/LICENSE-MIT +0 -25
- package/third-party/cargo/rgb@0.8.53/Cargo.toml +0 -110
- package/third-party/cargo/rgb@0.8.53/LICENSE +0 -21
- package/third-party/cargo/roxmltree@0.21.1/Cargo.toml +0 -75
- package/third-party/cargo/roxmltree@0.21.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/roxmltree@0.21.1/LICENSE-MIT +0 -21
- package/third-party/cargo/rustc-hash@1.1.0/Cargo.toml +0 -25
- package/third-party/cargo/rustc-hash@1.1.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/rustc-hash@1.1.0/LICENSE-MIT +0 -23
- package/third-party/cargo/rustc-hash@2.1.3/Cargo.toml +0 -50
- package/third-party/cargo/rustc-hash@2.1.3/LICENSE-APACHE +0 -176
- package/third-party/cargo/rustc-hash@2.1.3/LICENSE-MIT +0 -23
- package/third-party/cargo/rustix@1.1.4/COPYRIGHT +0 -29
- package/third-party/cargo/rustix@1.1.4/Cargo.toml +0 -292
- package/third-party/cargo/rustix@1.1.4/LICENSE-APACHE +0 -201
- package/third-party/cargo/rustix@1.1.4/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -220
- package/third-party/cargo/rustix@1.1.4/LICENSE-MIT +0 -23
- package/third-party/cargo/rustversion@1.0.23/Cargo.toml +0 -69
- package/third-party/cargo/rustversion@1.0.23/LICENSE-APACHE +0 -176
- package/third-party/cargo/rustversion@1.0.23/LICENSE-MIT +0 -23
- package/third-party/cargo/rustybuzz@0.20.1/Cargo.toml +0 -110
- package/third-party/cargo/rustybuzz@0.20.1/LICENSE +0 -22
- package/third-party/cargo/scopeguard@1.2.0/Cargo.toml +0 -43
- package/third-party/cargo/scopeguard@1.2.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/scopeguard@1.2.0/LICENSE-MIT +0 -25
- package/third-party/cargo/self_cell@1.2.2/Cargo.toml +0 -33
- package/third-party/cargo/self_cell@1.2.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/self_cell@1.2.2/LICENSE-GPLv2 +0 -339
- package/third-party/cargo/self_cell@1.3.0/Cargo.toml +0 -33
- package/third-party/cargo/self_cell@1.3.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/self_cell@1.3.0/LICENSE-GPLv2 +0 -339
- package/third-party/cargo/serde@1.0.228/Cargo.toml +0 -84
- package/third-party/cargo/serde@1.0.228/LICENSE-APACHE +0 -176
- package/third-party/cargo/serde@1.0.228/LICENSE-MIT +0 -23
- package/third-party/cargo/serde_core@1.0.228/Cargo.toml +0 -87
- package/third-party/cargo/serde_core@1.0.228/LICENSE-APACHE +0 -176
- package/third-party/cargo/serde_core@1.0.228/LICENSE-MIT +0 -23
- package/third-party/cargo/serde_derive@1.0.228/Cargo.toml +0 -87
- package/third-party/cargo/serde_derive@1.0.228/LICENSE-APACHE +0 -176
- package/third-party/cargo/serde_derive@1.0.228/LICENSE-MIT +0 -23
- package/third-party/cargo/serde_json@1.0.150/Cargo.toml +0 -162
- package/third-party/cargo/serde_json@1.0.150/LICENSE-APACHE +0 -176
- package/third-party/cargo/serde_json@1.0.150/LICENSE-MIT +0 -23
- package/third-party/cargo/simd-adler32@0.3.10/Cargo.toml +0 -68
- package/third-party/cargo/simd-adler32@0.3.10/LICENSE.md +0 -21
- package/third-party/cargo/simplecss@0.2.2/Cargo.toml +0 -146
- package/third-party/cargo/simplecss@0.2.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/simplecss@0.2.2/LICENSE-MIT +0 -21
- package/third-party/cargo/siphasher@1.0.3/COPYING +0 -7
- package/third-party/cargo/siphasher@1.0.3/Cargo.toml +0 -64
- package/third-party/cargo/skrifa@0.40.0/Cargo.toml +0 -86
- package/third-party/cargo/skrifa@0.40.0/LICENSE-APACHE +0 -67
- package/third-party/cargo/skrifa@0.40.0/LICENSE-MIT +0 -25
- package/third-party/cargo/skrifa@0.42.1/Cargo.toml +0 -86
- package/third-party/cargo/skrifa@0.42.1/LICENSE-APACHE +0 -67
- package/third-party/cargo/skrifa@0.42.1/LICENSE-MIT +0 -25
- package/third-party/cargo/slab@0.4.12/Cargo.toml +0 -67
- package/third-party/cargo/slab@0.4.12/LICENSE +0 -25
- package/third-party/cargo/slotmap@1.1.1/Cargo.toml +0 -83
- package/third-party/cargo/slotmap@1.1.1/LICENSE +0 -19
- package/third-party/cargo/smallvec@1.15.2/Cargo.toml +0 -103
- package/third-party/cargo/smallvec@1.15.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/smallvec@1.15.2/LICENSE-MIT +0 -25
- package/third-party/cargo/smol_str@0.3.6/Cargo.toml +0 -155
- package/third-party/cargo/smol_str@0.3.6/LICENSE-APACHE +0 -201
- package/third-party/cargo/smol_str@0.3.6/LICENSE-MIT +0 -23
- package/third-party/cargo/spirv@0.4.0+sdk-1.4.341.0/Cargo.toml +0 -56
- package/third-party/cargo/spirv@0.4.0+sdk-1.4.341.0/gfx-rs-rspirv-8afc3d0ac8e1-LICENSE +0 -202
- package/third-party/cargo/static_assertions@1.1.0/Cargo.toml +0 -39
- package/third-party/cargo/static_assertions@1.1.0/LICENSE-APACHE +0 -202
- package/third-party/cargo/static_assertions@1.1.0/LICENSE-MIT +0 -21
- package/third-party/cargo/strict-num@0.1.1/Cargo.toml +0 -35
- package/third-party/cargo/strict-num@0.1.1/LICENSE +0 -19
- package/third-party/cargo/svgtypes@0.16.1/Cargo.toml +0 -57
- package/third-party/cargo/svgtypes@0.16.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/svgtypes@0.16.1/LICENSE-MIT +0 -20
- package/third-party/cargo/swash@0.2.9/Cargo.toml +0 -93
- package/third-party/cargo/swash@0.2.9/LICENSE-APACHE +0 -201
- package/third-party/cargo/swash@0.2.9/LICENSE-MIT +0 -25
- package/third-party/cargo/syn@2.0.118/Cargo.toml +0 -272
- package/third-party/cargo/syn@2.0.118/LICENSE-APACHE +0 -176
- package/third-party/cargo/syn@2.0.118/LICENSE-MIT +0 -23
- package/third-party/cargo/sys-locale@0.3.2/Cargo.toml +0 -73
- package/third-party/cargo/sys-locale@0.3.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/sys-locale@0.3.2/LICENSE-MIT +0 -21
- package/third-party/cargo/taffy@0.12.1/Cargo.toml +0 -171
- package/third-party/cargo/taffy@0.12.1/DioxusLabs-taffy-1c9e37a0a1cf-LICENSE.md +0 -25
- package/third-party/cargo/tempfile@3.27.0/Cargo.toml +0 -105
- package/third-party/cargo/tempfile@3.27.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/tempfile@3.27.0/LICENSE-MIT +0 -25
- package/third-party/cargo/termcolor@1.4.1/COPYING +0 -3
- package/third-party/cargo/termcolor@1.4.1/Cargo.toml +0 -40
- package/third-party/cargo/termcolor@1.4.1/LICENSE-MIT +0 -21
- package/third-party/cargo/termcolor@1.4.1/UNLICENSE +0 -24
- package/third-party/cargo/thiserror-impl@2.0.18/Cargo.toml +0 -52
- package/third-party/cargo/thiserror-impl@2.0.18/LICENSE-APACHE +0 -176
- package/third-party/cargo/thiserror-impl@2.0.18/LICENSE-MIT +0 -23
- package/third-party/cargo/thiserror@2.0.18/Cargo.toml +0 -119
- package/third-party/cargo/thiserror@2.0.18/LICENSE-APACHE +0 -176
- package/third-party/cargo/thiserror@2.0.18/LICENSE-MIT +0 -23
- package/third-party/cargo/tiny-skia-path@0.12.0/Cargo.toml +0 -58
- package/third-party/cargo/tiny-skia-path@0.12.0/LICENSE +0 -30
- package/third-party/cargo/tiny-skia@0.12.0/Cargo.toml +0 -116
- package/third-party/cargo/tiny-skia@0.12.0/LICENSE +0 -30
- package/third-party/cargo/tiny_http@0.12.0/Cargo.toml +0 -82
- package/third-party/cargo/tiny_http@0.12.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/tiny_http@0.12.0/LICENSE-MIT +0 -25
- package/third-party/cargo/tinyvec@1.12.0/Cargo.toml +0 -184
- package/third-party/cargo/tinyvec@1.12.0/LICENSE-APACHE.md +0 -202
- package/third-party/cargo/tinyvec@1.12.0/LICENSE-MIT.md +0 -5
- package/third-party/cargo/tinyvec@1.12.0/LICENSE-ZLIB.md +0 -11
- package/third-party/cargo/tinyvec_macros@0.1.1/Cargo.toml +0 -19
- package/third-party/cargo/tinyvec_macros@0.1.1/LICENSE-APACHE.md +0 -202
- package/third-party/cargo/tinyvec_macros@0.1.1/LICENSE-MIT.md +0 -21
- package/third-party/cargo/tinyvec_macros@0.1.1/LICENSE-ZLIB.md +0 -20
- package/third-party/cargo/ttf-parser@0.25.1/Cargo.toml +0 -101
- package/third-party/cargo/ttf-parser@0.25.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/ttf-parser@0.25.1/LICENSE-MIT +0 -20
- package/third-party/cargo/unicode-bidi-mirroring@0.4.0/Cargo.toml +0 -22
- package/third-party/cargo/unicode-bidi-mirroring@0.4.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-bidi-mirroring@0.4.0/LICENSE-MIT +0 -21
- package/third-party/cargo/unicode-bidi@0.3.18/COPYRIGHT +0 -8
- package/third-party/cargo/unicode-bidi@0.3.18/Cargo.toml +0 -90
- package/third-party/cargo/unicode-bidi@0.3.18/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-bidi@0.3.18/LICENSE-MIT +0 -25
- package/third-party/cargo/unicode-ccc@0.4.0/Cargo.toml +0 -22
- package/third-party/cargo/unicode-ccc@0.4.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-ccc@0.4.0/LICENSE-MIT +0 -21
- package/third-party/cargo/unicode-ident@1.0.24/Cargo.toml +0 -84
- package/third-party/cargo/unicode-ident@1.0.24/LICENSE-APACHE +0 -176
- package/third-party/cargo/unicode-ident@1.0.24/LICENSE-MIT +0 -23
- package/third-party/cargo/unicode-ident@1.0.24/LICENSE-UNICODE +0 -39
- package/third-party/cargo/unicode-linebreak@0.1.5/Cargo.toml +0 -32
- package/third-party/cargo/unicode-linebreak@0.1.5/LICENSE +0 -201
- package/third-party/cargo/unicode-properties@0.1.4/COPYRIGHT +0 -7
- package/third-party/cargo/unicode-properties@0.1.4/Cargo.toml +0 -65
- package/third-party/cargo/unicode-properties@0.1.4/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-properties@0.1.4/LICENSE-MIT +0 -25
- package/third-party/cargo/unicode-script@0.5.8/Cargo.toml +0 -63
- package/third-party/cargo/unicode-script@0.5.8/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-script@0.5.8/LICENSE-MIT +0 -27
- package/third-party/cargo/unicode-segmentation@1.13.3/COPYRIGHT +0 -7
- package/third-party/cargo/unicode-segmentation@1.13.3/Cargo.toml +0 -91
- package/third-party/cargo/unicode-segmentation@1.13.3/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-segmentation@1.13.3/LICENSE-MIT +0 -25
- package/third-party/cargo/unicode-vo@0.1.0/Cargo.toml +0 -22
- package/third-party/cargo/unicode-vo@0.1.0/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-vo@0.1.0/LICENSE-MIT +0 -21
- package/third-party/cargo/unicode-width@0.2.2/COPYRIGHT +0 -7
- package/third-party/cargo/unicode-width@0.2.2/Cargo.toml +0 -77
- package/third-party/cargo/unicode-width@0.2.2/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-width@0.2.2/LICENSE-MIT +0 -25
- package/third-party/cargo/unicode-xid@0.2.6/COPYRIGHT +0 -7
- package/third-party/cargo/unicode-xid@0.2.6/Cargo.toml +0 -65
- package/third-party/cargo/unicode-xid@0.2.6/LICENSE-APACHE +0 -201
- package/third-party/cargo/unicode-xid@0.2.6/LICENSE-MIT +0 -25
- package/third-party/cargo/urlencoding@2.1.3/Cargo.toml +0 -41
- package/third-party/cargo/urlencoding@2.1.3/LICENSE +0 -20
- package/third-party/cargo/usvg@0.47.0/Cargo.toml +0 -138
- package/third-party/cargo/usvg@0.47.0/LICENSE-APACHE +0 -176
- package/third-party/cargo/usvg@0.47.0/LICENSE-MIT +0 -25
- package/third-party/cargo/version_check@0.9.5/Cargo.toml +0 -38
- package/third-party/cargo/version_check@0.9.5/LICENSE-APACHE +0 -201
- package/third-party/cargo/version_check@0.9.5/LICENSE-MIT +0 -19
- package/third-party/cargo/wasm-bindgen-futures@0.4.76/Cargo.toml +0 -88
- package/third-party/cargo/wasm-bindgen-futures@0.4.76/LICENSE-APACHE +0 -201
- package/third-party/cargo/wasm-bindgen-futures@0.4.76/LICENSE-MIT +0 -25
- package/third-party/cargo/wasm-bindgen-macro-support@0.2.126/Cargo.toml +0 -83
- package/third-party/cargo/wasm-bindgen-macro-support@0.2.126/LICENSE-APACHE +0 -201
- package/third-party/cargo/wasm-bindgen-macro-support@0.2.126/LICENSE-MIT +0 -25
- package/third-party/cargo/wasm-bindgen-macro@0.2.126/Cargo.toml +0 -73
- package/third-party/cargo/wasm-bindgen-macro@0.2.126/LICENSE-APACHE +0 -201
- package/third-party/cargo/wasm-bindgen-macro@0.2.126/LICENSE-MIT +0 -25
- package/third-party/cargo/wasm-bindgen-shared@0.2.126/Cargo.toml +0 -66
- package/third-party/cargo/wasm-bindgen-shared@0.2.126/LICENSE-APACHE +0 -201
- package/third-party/cargo/wasm-bindgen-shared@0.2.126/LICENSE-MIT +0 -25
- package/third-party/cargo/wasm-bindgen@0.2.126/Cargo.toml +0 -122
- package/third-party/cargo/wasm-bindgen@0.2.126/LICENSE-APACHE +0 -201
- package/third-party/cargo/wasm-bindgen@0.2.126/LICENSE-MIT +0 -25
- package/third-party/cargo/wayland-sys@0.31.11/Cargo.toml +0 -81
- package/third-party/cargo/wayland-sys@0.31.11/LICENSE.txt +0 -19
- package/third-party/cargo/web-sys@0.3.103/Cargo.toml +0 -2823
- package/third-party/cargo/web-sys@0.3.103/LICENSE-APACHE +0 -201
- package/third-party/cargo/web-sys@0.3.103/LICENSE-MIT +0 -25
- package/third-party/cargo/weezl@0.1.12/Cargo.toml +0 -120
- package/third-party/cargo/weezl@0.1.12/LICENSE-APACHE +0 -201
- package/third-party/cargo/weezl@0.1.12/LICENSE-MIT +0 -22
- package/third-party/cargo/wgpu-core-deps-apple@30.0.0/Cargo.toml +0 -53
- package/third-party/cargo/wgpu-core-deps-apple@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu-core-deps-apple@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/wgpu-core@30.0.0/Cargo.toml +0 -237
- package/third-party/cargo/wgpu-core@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu-core@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/wgpu-hal@30.0.0/Cargo.toml +0 -541
- package/third-party/cargo/wgpu-hal@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu-hal@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/wgpu-naga-bridge@30.0.0/Cargo.toml +0 -46
- package/third-party/cargo/wgpu-naga-bridge@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu-naga-bridge@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/wgpu-types@30.0.0/Cargo.toml +0 -161
- package/third-party/cargo/wgpu-types@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu-types@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/wgpu@30.0.0/Cargo.toml +0 -278
- package/third-party/cargo/wgpu@30.0.0/LICENSE.APACHE +0 -176
- package/third-party/cargo/wgpu@30.0.0/LICENSE.MIT +0 -21
- package/third-party/cargo/xmlwriter@0.1.0/Cargo.toml +0 -23
- package/third-party/cargo/xmlwriter@0.1.0/LICENSE +0 -21
- package/third-party/cargo/yazi@0.2.1/Cargo.toml +0 -45
- package/third-party/cargo/yazi@0.2.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/yazi@0.2.1/LICENSE-MIT +0 -19
- package/third-party/cargo/zeno@0.3.3/Cargo.toml +0 -65
- package/third-party/cargo/zeno@0.3.3/LICENSE-APACHE +0 -201
- package/third-party/cargo/zeno@0.3.3/LICENSE-MIT +0 -25
- package/third-party/cargo/zerocopy-derive@0.8.54/Cargo.toml +0 -209
- package/third-party/cargo/zerocopy-derive@0.8.54/LICENSE-APACHE +0 -202
- package/third-party/cargo/zerocopy-derive@0.8.54/LICENSE-BSD +0 -24
- package/third-party/cargo/zerocopy-derive@0.8.54/LICENSE-MIT +0 -26
- package/third-party/cargo/zerocopy@0.8.54/Cargo.toml +0 -419
- package/third-party/cargo/zerocopy@0.8.54/LICENSE-APACHE +0 -202
- package/third-party/cargo/zerocopy@0.8.54/LICENSE-BSD +0 -24
- package/third-party/cargo/zerocopy@0.8.54/LICENSE-MIT +0 -26
- package/third-party/cargo/zmij@1.0.23/Cargo.toml +0 -90
- package/third-party/cargo/zmij@1.0.23/LICENSE-MIT +0 -23
- package/third-party/cargo/zune-core@0.5.1/Cargo.toml +0 -47
- package/third-party/cargo/zune-core@0.5.1/LICENSE-APACHE +0 -201
- package/third-party/cargo/zune-core@0.5.1/LICENSE-MIT +0 -21
- package/third-party/cargo/zune-core@0.5.1/LICENSE-ZLIB +0 -19
- package/third-party/cargo/zune-jpeg@0.5.15/Cargo.toml +0 -67
- package/third-party/cargo/zune-jpeg@0.5.15/LICENSE-APACHE +0 -201
- package/third-party/cargo/zune-jpeg@0.5.15/LICENSE-MIT +0 -21
- package/third-party/cargo/zune-jpeg@0.5.15/LICENSE-ZLIB +0 -19
- package/third-party/npm/@esbuild__darwin-arm64@0.27.4/esbuild-0.27.4-LICENSE.md +0 -21
- package/third-party/npm/@esbuild__darwin-arm64@0.27.4/go-LICENSE +0 -27
- package/third-party/npm/@esbuild__darwin-arm64@0.27.4/golang-x-sys-c0bba94af5f8-LICENSE +0 -27
- package/third-party/npm/@esbuild__darwin-arm64@0.27.4/package.json +0 -20
- package/third-party/npm/@floating-ui__core@1.7.5/LICENSE +0 -20
- package/third-party/npm/@floating-ui__core@1.7.5/package.json +0 -63
- package/third-party/npm/@floating-ui__dom@1.7.6/LICENSE +0 -20
- package/third-party/npm/@floating-ui__dom@1.7.6/package.json +0 -71
- package/third-party/npm/@floating-ui__react-dom@2.1.8/LICENSE +0 -20
- package/third-party/npm/@floating-ui__react-dom@2.1.8/package.json +0 -76
- package/third-party/npm/@floating-ui__utils@0.2.11/LICENSE +0 -20
- package/third-party/npm/@floating-ui__utils@0.2.11/package.json +0 -70
- package/third-party/npm/@radix-ui__primitive@1.1.7/LICENSE +0 -21
- package/third-party/npm/@radix-ui__primitive@1.1.7/package.json +0 -79
- package/third-party/npm/@radix-ui__react-arrow@1.1.15/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-arrow@1.1.15/package.json +0 -68
- package/third-party/npm/@radix-ui__react-collection@1.1.15/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-collection@1.1.15/package.json +0 -71
- package/third-party/npm/@radix-ui__react-compose-refs@1.1.5/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-compose-refs@1.1.5/package.json +0 -60
- package/third-party/npm/@radix-ui__react-context-menu@2.3.7/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-context-menu@2.3.7/package.json +0 -73
- package/third-party/npm/@radix-ui__react-context@1.2.2/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-context@1.2.2/package.json +0 -60
- package/third-party/npm/@radix-ui__react-direction@1.1.4/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-direction@1.1.4/package.json +0 -60
- package/third-party/npm/@radix-ui__react-dismissable-layer@1.1.19/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-dismissable-layer@1.1.19/package.json +0 -74
- package/third-party/npm/@radix-ui__react-focus-guards@1.1.6/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-focus-guards@1.1.6/package.json +0 -60
- package/third-party/npm/@radix-ui__react-focus-scope@1.1.16/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-focus-scope@1.1.16/package.json +0 -71
- package/third-party/npm/@radix-ui__react-id@1.1.4/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-id@1.1.4/package.json +0 -63
- package/third-party/npm/@radix-ui__react-menu@2.1.24/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-menu@2.1.24/package.json +0 -86
- package/third-party/npm/@radix-ui__react-popper@1.3.7/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-popper@1.3.7/package.json +0 -78
- package/third-party/npm/@radix-ui__react-portal@1.1.17/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-portal@1.1.17/package.json +0 -69
- package/third-party/npm/@radix-ui__react-presence@1.1.10/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-presence@1.1.10/package.json +0 -68
- package/third-party/npm/@radix-ui__react-primitive@2.1.10/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-primitive@2.1.10/package.json +0 -68
- package/third-party/npm/@radix-ui__react-roving-focus@1.1.19/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-roving-focus@1.1.19/package.json +0 -78
- package/third-party/npm/@radix-ui__react-slot@1.3.3/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-slot@1.3.3/package.json +0 -63
- package/third-party/npm/@radix-ui__react-use-callback-ref@1.1.4/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-callback-ref@1.1.4/package.json +0 -60
- package/third-party/npm/@radix-ui__react-use-controllable-state@1.2.6/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-controllable-state@1.2.6/package.json +0 -65
- package/third-party/npm/@radix-ui__react-use-effect-event@0.0.5/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-effect-event@0.0.5/package.json +0 -65
- package/third-party/npm/@radix-ui__react-use-is-hydrated@0.1.3/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-is-hydrated@0.1.3/package.json +0 -61
- package/third-party/npm/@radix-ui__react-use-layout-effect@1.1.4/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-layout-effect@1.1.4/package.json +0 -60
- package/third-party/npm/@radix-ui__react-use-size@1.1.4/LICENSE +0 -21
- package/third-party/npm/@radix-ui__react-use-size@1.1.4/package.json +0 -63
- package/third-party/npm/aria-hidden@1.2.6/LICENSE +0 -21
- package/third-party/npm/aria-hidden@1.2.6/package.json +0 -71
- package/third-party/npm/detect-node-es@1.1.0/LICENSE +0 -21
- package/third-party/npm/detect-node-es@1.1.0/package.json +0 -29
- package/third-party/npm/esbuild@0.27.4/LICENSE.md +0 -21
- package/third-party/npm/esbuild@0.27.4/package.json +0 -49
- package/third-party/npm/get-nonce@1.0.1/LICENSE +0 -21
- package/third-party/npm/get-nonce@1.0.1/package.json +0 -68
- package/third-party/npm/mediabunny@1.52.2/LICENSE +0 -373
- package/third-party/npm/mediabunny@1.52.2/package.json +0 -136
- package/third-party/npm/mediabunny@1.52.2/source/LICENSE +0 -373
- package/third-party/npm/mediabunny@1.52.2/source/package.json +0 -136
- package/third-party/npm/mediabunny@1.52.2/source/src/adts/adts-demuxer.ts +0 -400
- package/third-party/npm/mediabunny@1.52.2/source/src/adts/adts-muxer.ts +0 -124
- package/third-party/npm/mediabunny@1.52.2/source/src/adts/adts-reader.ts +0 -85
- package/third-party/npm/mediabunny@1.52.2/source/src/aes.ts +0 -307
- package/third-party/npm/mediabunny@1.52.2/source/src/codec-data.ts +0 -3178
- package/third-party/npm/mediabunny@1.52.2/source/src/codec.ts +0 -1154
- package/third-party/npm/mediabunny@1.52.2/source/src/conversion.ts +0 -2042
- package/third-party/npm/mediabunny@1.52.2/source/src/custom-coder.ts +0 -212
- package/third-party/npm/mediabunny@1.52.2/source/src/decode.ts +0 -263
- package/third-party/npm/mediabunny@1.52.2/source/src/demuxer.ts +0 -43
- package/third-party/npm/mediabunny@1.52.2/source/src/encode.ts +0 -1412
- package/third-party/npm/mediabunny@1.52.2/source/src/flac/flac-demuxer.ts +0 -813
- package/third-party/npm/mediabunny@1.52.2/source/src/flac/flac-misc.ts +0 -165
- package/third-party/npm/mediabunny@1.52.2/source/src/flac/flac-muxer.ts +0 -350
- package/third-party/npm/mediabunny@1.52.2/source/src/hls/hls-demuxer.ts +0 -995
- package/third-party/npm/mediabunny@1.52.2/source/src/hls/hls-misc.ts +0 -81
- package/third-party/npm/mediabunny@1.52.2/source/src/hls/hls-muxer.ts +0 -1529
- package/third-party/npm/mediabunny@1.52.2/source/src/hls/hls-segmented-input.ts +0 -772
- package/third-party/npm/mediabunny@1.52.2/source/src/id3.ts +0 -972
- package/third-party/npm/mediabunny@1.52.2/source/src/index.ts +0 -319
- package/third-party/npm/mediabunny@1.52.2/source/src/input-format.ts +0 -819
- package/third-party/npm/mediabunny@1.52.2/source/src/input-track.ts +0 -1141
- package/third-party/npm/mediabunny@1.52.2/source/src/input.ts +0 -571
- package/third-party/npm/mediabunny@1.52.2/source/src/isobmff/isobmff-boxes.ts +0 -1911
- package/third-party/npm/mediabunny@1.52.2/source/src/isobmff/isobmff-demuxer.ts +0 -3953
- package/third-party/npm/mediabunny@1.52.2/source/src/isobmff/isobmff-misc.ts +0 -90
- package/third-party/npm/mediabunny@1.52.2/source/src/isobmff/isobmff-muxer.ts +0 -1595
- package/third-party/npm/mediabunny@1.52.2/source/src/isobmff/isobmff-reader.ts +0 -91
- package/third-party/npm/mediabunny@1.52.2/source/src/logging.ts +0 -120
- package/third-party/npm/mediabunny@1.52.2/source/src/matroska/ebml.ts +0 -770
- package/third-party/npm/mediabunny@1.52.2/source/src/matroska/matroska-demuxer.ts +0 -2598
- package/third-party/npm/mediabunny@1.52.2/source/src/matroska/matroska-misc.ts +0 -29
- package/third-party/npm/mediabunny@1.52.2/source/src/matroska/matroska-muxer.ts +0 -1360
- package/third-party/npm/mediabunny@1.52.2/source/src/media-sink.ts +0 -2589
- package/third-party/npm/mediabunny@1.52.2/source/src/media-source.ts +0 -3041
- package/third-party/npm/mediabunny@1.52.2/source/src/metadata.ts +0 -335
- package/third-party/npm/mediabunny@1.52.2/source/src/misc.ts +0 -1336
- package/third-party/npm/mediabunny@1.52.2/source/src/mp3/mp3-demuxer.ts +0 -469
- package/third-party/npm/mediabunny@1.52.2/source/src/mp3/mp3-muxer.ts +0 -169
- package/third-party/npm/mediabunny@1.52.2/source/src/mp3/mp3-reader.ts +0 -61
- package/third-party/npm/mediabunny@1.52.2/source/src/mp3/mp3-writer.ts +0 -121
- package/third-party/npm/mediabunny@1.52.2/source/src/mpeg-ts/mpeg-ts-demuxer.ts +0 -2519
- package/third-party/npm/mediabunny@1.52.2/source/src/mpeg-ts/mpeg-ts-misc.ts +0 -32
- package/third-party/npm/mediabunny@1.52.2/source/src/mpeg-ts/mpeg-ts-muxer.ts +0 -842
- package/third-party/npm/mediabunny@1.52.2/source/src/muxer.ts +0 -80
- package/third-party/npm/mediabunny@1.52.2/source/src/node.ts +0 -11
- package/third-party/npm/mediabunny@1.52.2/source/src/ogg/ogg-demuxer.ts +0 -1087
- package/third-party/npm/mediabunny@1.52.2/source/src/ogg/ogg-misc.ts +0 -116
- package/third-party/npm/mediabunny@1.52.2/source/src/ogg/ogg-muxer.ts +0 -527
- package/third-party/npm/mediabunny@1.52.2/source/src/ogg/ogg-reader.ts +0 -93
- package/third-party/npm/mediabunny@1.52.2/source/src/output-format.ts +0 -1425
- package/third-party/npm/mediabunny@1.52.2/source/src/output.ts +0 -940
- package/third-party/npm/mediabunny@1.52.2/source/src/packet.ts +0 -287
- package/third-party/npm/mediabunny@1.52.2/source/src/pcm.ts +0 -112
- package/third-party/npm/mediabunny@1.52.2/source/src/reader.ts +0 -391
- package/third-party/npm/mediabunny@1.52.2/source/src/resample.ts +0 -287
- package/third-party/npm/mediabunny@1.52.2/source/src/sample.ts +0 -3231
- package/third-party/npm/mediabunny@1.52.2/source/src/segmented-input.ts +0 -575
- package/third-party/npm/mediabunny@1.52.2/source/src/source.ts +0 -2588
- package/third-party/npm/mediabunny@1.52.2/source/src/subtitles.ts +0 -131
- package/third-party/npm/mediabunny@1.52.2/source/src/target.ts +0 -871
- package/third-party/npm/mediabunny@1.52.2/source/src/tsconfig.json +0 -16
- package/third-party/npm/mediabunny@1.52.2/source/src/wave/riff-writer.ts +0 -36
- package/third-party/npm/mediabunny@1.52.2/source/src/wave/wave-demuxer.ts +0 -583
- package/third-party/npm/mediabunny@1.52.2/source/src/wave/wave-muxer.ts +0 -375
- package/third-party/npm/mediabunny@1.52.2/source/src/writer.ts +0 -128
- package/third-party/npm/react-dom@19.3.0/LICENSE +0 -21
- package/third-party/npm/react-dom@19.3.0/package.json +0 -117
- package/third-party/npm/react-remove-scroll-bar@2.3.8/package.json +0 -85
- package/third-party/npm/react-remove-scroll-bar@2.3.8/react-remove-scroll-bar-LICENSE +0 -21
- package/third-party/npm/react-remove-scroll@2.7.2/LICENSE +0 -21
- package/third-party/npm/react-remove-scroll@2.7.2/package.json +0 -98
- package/third-party/npm/react-style-singleton@2.2.3/LICENSE +0 -21
- package/third-party/npm/react-style-singleton@2.2.3/package.json +0 -90
- package/third-party/npm/react@19.3.0/LICENSE +0 -21
- package/third-party/npm/react@19.3.0/package.json +0 -51
- package/third-party/npm/scheduler@0.28.0/LICENSE +0 -21
- package/third-party/npm/scheduler@0.28.0/package.json +0 -27
- package/third-party/npm/tslib@2.8.1/LICENSE.txt +0 -12
- package/third-party/npm/tslib@2.8.1/package.json +0 -47
- package/third-party/npm/typescript@5.9.3/LICENSE.txt +0 -55
- package/third-party/npm/typescript@5.9.3/ThirdPartyNoticeText.txt +0 -193
- package/third-party/npm/typescript@5.9.3/package.json +0 -120
- package/third-party/npm/use-callback-ref@1.3.3/LICENSE +0 -21
- package/third-party/npm/use-callback-ref@1.3.3/package.json +0 -85
- package/third-party/npm/use-sidecar@1.1.3/LICENSE +0 -21
- package/third-party/npm/use-sidecar@1.1.3/package.json +0 -93
- package/third-party/packages/render-engine/assets/OFL.txt +0 -93
- package/third-party/packages/studio/public/fonts/OFL.txt +0 -93
- package/third-party/packages/studio/vendor/osmo-icons/LICENSE +0 -21
- package/third-party/packages/studio/vendor/shadcn/LICENSE +0 -21
- package/third-party/repository-notices.md +0 -41
- package/third-party/rust-standard-library/COPYRIGHT-library.html +0 -5556
- package/third-party/rust-standard-library/licenses/Apache-2.0.txt +0 -73
- package/third-party/rust-standard-library/licenses/BSD-2-Clause.txt +0 -9
- package/third-party/rust-standard-library/licenses/CC-BY-SA-4.0.txt +0 -427
- package/third-party/rust-standard-library/licenses/GCC-exception-3.1.txt +0 -30
- package/third-party/rust-standard-library/licenses/GPL-2.0-only.txt +0 -133
- package/third-party/rust-standard-library/licenses/GPL-3.0-or-later.txt +0 -202
- package/third-party/rust-standard-library/licenses/ISC.txt +0 -7
- package/third-party/rust-standard-library/licenses/LLVM-exception.txt +0 -15
- package/third-party/rust-standard-library/licenses/MIT.txt +0 -9
- package/third-party/rust-standard-library/licenses/NCSA.txt +0 -29
- package/third-party/rust-standard-library/licenses/OFL-1.1.txt +0 -43
- package/third-party/rust-standard-library/licenses/Unicode-3.0.txt +0 -39
- package/third-party/rust-standard-library/version.txt +0 -1
- package/vendor/osmo-lite +0 -0
- package/vendor/osmo-scene-0.1.0.tgz +0 -0
- package/vendor/platform.json +0 -1
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export { Scene, Camera, Group, Rect, Path, Text, Image, Video, Audio, Shader, Fragment, Model, Surface } from "./elements.js";
|
|
2
|
-
export type {
|
|
3
|
-
ClipProps,
|
|
4
|
-
RootClipProps,
|
|
5
|
-
PathProps,
|
|
6
|
-
PathStroke,
|
|
7
|
-
ModelProps,
|
|
8
|
-
SurfaceProps,
|
|
9
|
-
ModelSelector,
|
|
10
|
-
ShaderProps,
|
|
11
|
-
UniformValue,
|
|
12
|
-
SceneProps,
|
|
13
|
-
TrackMetadata,
|
|
14
|
-
CameraProps,
|
|
15
|
-
GroupProps,
|
|
16
|
-
Mask,
|
|
17
|
-
GroupInstanceProps,
|
|
18
|
-
SceneInstanceProps,
|
|
19
|
-
GroupInstance,
|
|
20
|
-
ImageProps,
|
|
21
|
-
VideoProps,
|
|
22
|
-
AudioProps,
|
|
23
|
-
MediaTiming,
|
|
24
|
-
Stroke,
|
|
25
|
-
RectProps,
|
|
26
|
-
TextProps,
|
|
27
|
-
TextPath,
|
|
28
|
-
TextStyleProps,
|
|
29
|
-
TransformProps,
|
|
30
|
-
FrameContext,
|
|
31
|
-
Component,
|
|
32
|
-
Element,
|
|
33
|
-
Child,
|
|
34
|
-
Color,
|
|
35
|
-
Vec2,
|
|
36
|
-
Vec3,
|
|
37
|
-
Input,
|
|
38
|
-
} from "./elements.js";
|
|
39
|
-
export { defineMotion, describeMotion, sampleMotion } from "./motion.js";
|
|
40
|
-
export type {
|
|
41
|
-
Motion,
|
|
42
|
-
MotionValue,
|
|
43
|
-
TrackDefinition,
|
|
44
|
-
Keyframe,
|
|
45
|
-
Easing,
|
|
46
|
-
MotionDefinition,
|
|
47
|
-
Motions,
|
|
48
|
-
} from "./motion.js";
|
|
49
|
-
export { evaluateFrame } from "./evaluate.js";
|
|
50
|
-
export type {
|
|
51
|
-
EvaluatedScene,
|
|
52
|
-
EvaluatedCamera,
|
|
53
|
-
SceneNode,
|
|
54
|
-
GroupNode,
|
|
55
|
-
RectNode,
|
|
56
|
-
PathNode,
|
|
57
|
-
TextNode,
|
|
58
|
-
MediaNode,
|
|
59
|
-
ShaderNode,
|
|
60
|
-
ModelNode,
|
|
61
|
-
SurfaceNode,
|
|
62
|
-
Transform,
|
|
63
|
-
} from "./evaluate.js";
|
|
64
|
-
|
|
65
|
-
export { defineEffect, describeEffect, blur, grain } from "./effects.js";
|
|
66
|
-
export type { EffectPadding, Knob, KnobGroup, Knobs, KnobValues, EffectDefinition, EffectBindings, EffectFactory, EffectInstance, EvaluatedEffect } from "./effects.js";
|
|
67
|
-
|
|
68
|
-
export { defineKnobs, describeKnobs } from "./knobs.js";
|
|
69
|
-
export type { KnobRef, KnobSet, KnobBindings, KnobDescription } from "./knobs.js";
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
element,
|
|
3
|
-
type Element as SceneElement,
|
|
4
|
-
type InputProps,
|
|
5
|
-
type SceneProps,
|
|
6
|
-
type Component,
|
|
7
|
-
type GroupInstance,
|
|
8
|
-
Scene,
|
|
9
|
-
Group,
|
|
10
|
-
} from "./elements.js";
|
|
11
|
-
export { Fragment } from "./elements.js";
|
|
12
|
-
|
|
13
|
-
export function jsx(
|
|
14
|
-
type: SceneElement["type"] | SceneElement,
|
|
15
|
-
props: object | null,
|
|
16
|
-
key?: string | number,
|
|
17
|
-
): SceneElement {
|
|
18
|
-
if (typeof type === "object" && type !== null) {
|
|
19
|
-
if (type.type === Scene || type.type === "scene") {
|
|
20
|
-
const overrides = (props ?? {}) as Record<string, unknown>;
|
|
21
|
-
const allowed = new Set(['id','label','track','start','duration','trimIn','width','height','position','z','rotation','scale','origin','opacity','effects','hidden','solo']);
|
|
22
|
-
for (const name of Object.keys(overrides)) if (!allowed.has(name))
|
|
23
|
-
throw new Error(`Scene instance.${name}: edit scene settings in the source file`);
|
|
24
|
-
return element("composition", {duration:type.props.duration, ...overrides, scene:type}, key);
|
|
25
|
-
}
|
|
26
|
-
if (type.type !== Group && type.type !== "group")
|
|
27
|
-
throw new Error("Reusable files must export a Scene (or legacy Group)");
|
|
28
|
-
const overrides = (props ?? {}) as Record<string, unknown>;
|
|
29
|
-
if ("children" in overrides || "knobs" in overrides)
|
|
30
|
-
throw new Error("An animation instance cannot replace children or knob definitions; use values or edit its source");
|
|
31
|
-
const values = overrides.values;
|
|
32
|
-
if (values !== undefined && (!values || typeof values !== "object" || Array.isArray(values)))
|
|
33
|
-
throw new Error("Animation values must be named knob bindings");
|
|
34
|
-
return Object.freeze({
|
|
35
|
-
...element(type.type, { ...type.props, ...overrides,
|
|
36
|
-
...(values === undefined ? {} : { values: { ...(type.props.values as object ?? {}), ...values } }),
|
|
37
|
-
}, key),
|
|
38
|
-
...(type.sourceFile ? { sourceFile: type.sourceFile } : {}),
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return element(type, props ?? {}, key);
|
|
42
|
-
}
|
|
43
|
-
export const jsxs = jsx;
|
|
44
|
-
export function jsxDEV(
|
|
45
|
-
type: SceneElement["type"] | SceneElement,
|
|
46
|
-
props: object | null,
|
|
47
|
-
key?: string | number,
|
|
48
|
-
_staticChildren?: boolean,
|
|
49
|
-
source?: { fileName?: string },
|
|
50
|
-
): SceneElement {
|
|
51
|
-
return Object.freeze({
|
|
52
|
-
...jsx(type, props, key),
|
|
53
|
-
...(typeof type === "object" && type?.sourceFile && type.type!==Scene && type.type!=="scene" ? { sourceFile: type.sourceFile }
|
|
54
|
-
: source?.fileName ? { sourceFile: source.fileName } : {}),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export namespace JSX {
|
|
59
|
-
/** Static JSX documents can be used as tags by this runtime. The signature
|
|
60
|
-
* describes instance attributes for TypeScript; do not call documents as JS functions. */
|
|
61
|
-
export type Element = SceneElement & GroupInstance;
|
|
62
|
-
export type ElementType = Component<any> | (SceneElement & GroupInstance);
|
|
63
|
-
export interface ElementChildrenAttribute {
|
|
64
|
-
children: unknown;
|
|
65
|
-
}
|
|
66
|
-
export interface IntrinsicAttributes {
|
|
67
|
-
key?: string | number;
|
|
68
|
-
}
|
|
69
|
-
export interface IntrinsicElements {}
|
|
70
|
-
export type LibraryManagedAttributes<C, P> = C extends typeof Scene
|
|
71
|
-
? SceneProps
|
|
72
|
-
: InputProps<P>;
|
|
73
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { parseColor } from "./color.js";
|
|
2
|
-
type When = Readonly<Record<string, string | number | boolean>>;
|
|
3
|
-
interface Control {
|
|
4
|
-
/** Display label; optional, otherwise use the knob name. */
|
|
5
|
-
label?: string;
|
|
6
|
-
/** Named group from the declaration’s groups map. */
|
|
7
|
-
group?: string;
|
|
8
|
-
/** UI visibility: all named scalar knobs must equal these values. Does not disable rendering or animation. */
|
|
9
|
-
visibleWhen?: When;
|
|
10
|
-
}
|
|
11
|
-
/** Typed control schema. Number step is required; min/max are UI bounds, not runtime clamping.
|
|
12
|
-
* select/multiselect options map stored values to display labels; text needs a uniform mapping in custom effects.
|
|
13
|
-
*/
|
|
14
|
-
export type Knob = Control & (
|
|
15
|
-
| {
|
|
16
|
-
type: "number";
|
|
17
|
-
default: number;
|
|
18
|
-
/** Positive drag/slider increment, e.g. 0.1 or 1. Does not quantize animation. */
|
|
19
|
-
step: number;
|
|
20
|
-
/** Optional UI lower bound; min and max together enable a bounded slider. */
|
|
21
|
-
min?: number;
|
|
22
|
-
/** Optional UI upper bound; must exceed min if both are supplied. */
|
|
23
|
-
max?: number;
|
|
24
|
-
}
|
|
25
|
-
| { type: "color" | "text"; default: string }
|
|
26
|
-
| { type: "boolean"; default: boolean }
|
|
27
|
-
| { type: "select"; default: string; options: Readonly<Record<string, string>> }
|
|
28
|
-
| { type: "multiselect"; default: readonly string[]; options: Readonly<Record<string, string>> }
|
|
29
|
-
);
|
|
30
|
-
/** Foldable UI section; groups can nest and depend on preset/boolean knob values. */
|
|
31
|
-
export interface KnobGroup {
|
|
32
|
-
label?: string;
|
|
33
|
-
/** Parent group name; cycles are rejected. */
|
|
34
|
-
parent?: string;
|
|
35
|
-
/** Initial folded state. */
|
|
36
|
-
collapsed?: boolean;
|
|
37
|
-
/** Same equality conditions as Knob.visibleWhen; parent visibility also applies. */
|
|
38
|
-
visibleWhen?: When;
|
|
39
|
-
}
|
|
40
|
-
export type Knobs = Readonly<Record<string, Knob>>;
|
|
41
|
-
export type KnobValue<K extends Knob> = K extends { type: "number" } ? number : K extends { type: "boolean" } ? boolean
|
|
42
|
-
: K extends { type: "multiselect" } ? readonly string[] : string;
|
|
43
|
-
export type KnobValues<K extends Knobs> = { readonly [P in keyof K]: KnobValue<K[P]> };
|
|
44
|
-
|
|
45
|
-
function fail(message: string): never { throw new Error(`Knobs: ${message}`); }
|
|
46
|
-
function record(value: unknown): value is Record<string, any> {
|
|
47
|
-
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
48
|
-
}
|
|
49
|
-
function keys(value: object, allowed: readonly string[], label: string) {
|
|
50
|
-
for (const key of Object.keys(value)) if (!allowed.includes(key)) fail(`${label}: unsupported property ${key}`);
|
|
51
|
-
}
|
|
52
|
-
function finite(value: unknown): value is number { return typeof value === "number" && Number.isFinite(value); }
|
|
53
|
-
export function freeze<T>(value: T): T {
|
|
54
|
-
if (value && typeof value === "object") { for (const child of Object.values(value)) freeze(child); Object.freeze(value); }
|
|
55
|
-
return value;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function validateKnobValue(knob: Knob, value: unknown, name: string) {
|
|
59
|
-
switch (knob.type) {
|
|
60
|
-
case "number": if (!finite(value)) fail(`${name}: expected a finite number`); break;
|
|
61
|
-
case "boolean": if (typeof value !== "boolean") fail(`${name}: expected a boolean`); break;
|
|
62
|
-
case "text": if (typeof value !== "string") fail(`${name}: expected text`); break;
|
|
63
|
-
case "color": if (!parseColor(value)) fail(`${name}: expected a hex color or transparent`); break;
|
|
64
|
-
case "select": if (typeof value !== "string" || !Object.hasOwn(knob.options, value)) fail(`${name}: unknown choice`); break;
|
|
65
|
-
case "multiselect":
|
|
66
|
-
if (!Array.isArray(value) || value.some(v => typeof v !== "string" || !Object.hasOwn(knob.options, v)) || new Set(value).size !== value.length)
|
|
67
|
-
fail(`${name}: expected unique known choices`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
export function validateKnobSchema(knobs: Knobs, inputGroups: Readonly<Record<string, KnobGroup>> = {}) {
|
|
73
|
-
if (!record(knobs) || Object.keys(knobs).length > 32) fail("expected at most 32 named knobs");
|
|
74
|
-
const groups = inputGroups;
|
|
75
|
-
if (!record(groups)) fail("groups must be named definitions");
|
|
76
|
-
const condition = (when: When | undefined) => {
|
|
77
|
-
if (when === undefined) return;
|
|
78
|
-
if (!record(when)) fail("visibleWhen must be a condition object");
|
|
79
|
-
for (const [name, expected] of Object.entries(when)) {
|
|
80
|
-
if (!Object.hasOwn(knobs, name)) fail(`visibleWhen: unknown knob ${name}`);
|
|
81
|
-
if (!["number", "boolean", "text", "select"].includes(knobs[name].type)) fail(`visibleWhen: ${name} must be a scalar knob`);
|
|
82
|
-
validateKnobValue(knobs[name], expected, `visibleWhen.${name}`);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
for (const [name, group] of Object.entries(groups)) {
|
|
86
|
-
if (!record(group)) fail(`group ${name}: expected a definition`);
|
|
87
|
-
keys(group, ["label", "parent", "collapsed", "visibleWhen"], name);
|
|
88
|
-
if (group.label !== undefined && typeof group.label !== "string") fail(`${name}.label: expected text`);
|
|
89
|
-
if (group.collapsed !== undefined && typeof group.collapsed !== "boolean") fail(`${name}.collapsed: expected boolean`);
|
|
90
|
-
const seen = new Set([name]); let parent = group.parent;
|
|
91
|
-
while (parent !== undefined) {
|
|
92
|
-
if (!Object.hasOwn(groups, parent)) fail(`${name}: unknown parent group ${parent}`);
|
|
93
|
-
if (seen.has(parent)) fail(`${name}: group cycle`);
|
|
94
|
-
seen.add(parent); parent = groups[parent].parent;
|
|
95
|
-
}
|
|
96
|
-
condition(group.visibleWhen);
|
|
97
|
-
}
|
|
98
|
-
for (const [name, knob] of Object.entries(knobs)) {
|
|
99
|
-
if (!/^[a-zA-Z][a-zA-Z0-9_]*$/.test(name) || !record(knob)) fail(`invalid knob ${name}`);
|
|
100
|
-
const extras = knob.type === "number" ? ["min", "max", "step"] : ["select", "multiselect"].includes(knob.type) ? ["options"] : [];
|
|
101
|
-
keys(knob, ["type", "default", "label", "group", "visibleWhen", ...extras], name);
|
|
102
|
-
if (!["number", "color", "text", "boolean", "select", "multiselect"].includes(knob.type)) fail(`${name}: unknown knob type`);
|
|
103
|
-
if (knob.label !== undefined && typeof knob.label !== "string") fail(`${name}.label: expected text`);
|
|
104
|
-
if (knob.group !== undefined && !Object.hasOwn(groups, knob.group)) fail(`${name}: unknown group ${knob.group}`);
|
|
105
|
-
if (knob.type === "number") {
|
|
106
|
-
if (!finite(knob.step) || knob.step <= 0) fail(`${name}: step must be positive`);
|
|
107
|
-
for (const bound of [knob.min, knob.max]) if (bound !== undefined && !finite(bound)) fail(`${name}: invalid bound`);
|
|
108
|
-
if (knob.min !== undefined && knob.max !== undefined && knob.min >= knob.max) fail(`${name}: min must be below max`);
|
|
109
|
-
}
|
|
110
|
-
if (knob.type === "select" || knob.type === "multiselect") {
|
|
111
|
-
if (!record(knob.options) || !Object.keys(knob.options).length || Object.values(knob.options).some(v => typeof v !== "string")) fail(`${name}: options must map values to labels`);
|
|
112
|
-
}
|
|
113
|
-
validateKnobValue(knob, knob.default, name); condition(knob.visibleWhen);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import type { Color } from "./elements.js";
|
|
2
|
-
import { isMotion, sampleMotion, type Motion, type MotionValue, type TrackDefinition } from "./motion.js";
|
|
3
|
-
import { freeze, validateKnobSchema, validateKnobValue, type Knob, type KnobGroup, type Knobs, type KnobValue } from "./knob-schema.js";
|
|
4
|
-
|
|
5
|
-
const SET = Symbol("osmo.knobs");
|
|
6
|
-
const REF = Symbol("osmo.knob.reference");
|
|
7
|
-
const VALUE = Symbol("osmo.knob.value-type");
|
|
8
|
-
type ControlValue<K extends Knob> = K extends { type: "color" } ? Color
|
|
9
|
-
: K extends { type: "select"; options: infer O } ? keyof O & string
|
|
10
|
-
: K extends { type: "multiselect"; options: infer O } ? readonly (keyof O & string)[]
|
|
11
|
-
: KnobValue<K>;
|
|
12
|
-
|
|
13
|
-
/** Bind to a compatible descendant prop; resolved by the nearest owning Group, never used in arithmetic. */
|
|
14
|
-
export interface KnobRef<T = unknown> {
|
|
15
|
-
readonly [REF]: { readonly set: KnobSet; readonly name: string };
|
|
16
|
-
readonly [VALUE]?: T;
|
|
17
|
-
}
|
|
18
|
-
export type KnobSet<K extends Knobs = Knobs> = {
|
|
19
|
-
readonly [SET]: { readonly knobs: K; readonly groups: Readonly<Record<string, KnobGroup>> };
|
|
20
|
-
} & { readonly [P in keyof K]: KnobRef<ControlValue<K[P]>> };
|
|
21
|
-
/** Per-Group overrides. Parent knob references forward values into a child scope; motion tracks animate them. */
|
|
22
|
-
export type KnobBindings<K extends Knobs> = {
|
|
23
|
-
readonly [P in keyof K]?: ControlValue<K[P]> | Motion<KnobValue<K[P]>> | KnobRef<ControlValue<K[P]>>;
|
|
24
|
-
};
|
|
25
|
-
export interface KnobDescription {
|
|
26
|
-
readonly knobs: Knobs;
|
|
27
|
-
readonly groups: Readonly<Record<string, KnobGroup>>;
|
|
28
|
-
readonly values: Readonly<Record<string, MotionValue>>;
|
|
29
|
-
readonly tracks: Readonly<Record<string, TrackDefinition>>;
|
|
30
|
-
readonly visibleGroups: Readonly<Record<string, boolean>>;
|
|
31
|
-
readonly visibleKnobs: Readonly<Record<string, boolean>>;
|
|
32
|
-
}
|
|
33
|
-
export type KnobScope = readonly { set: KnobSet; description: KnobDescription }[];
|
|
34
|
-
|
|
35
|
-
/** Declare convenience controls shared by any number of descendant props.
|
|
36
|
-
* Attach with Group.knobs; override defaults with Group.values. Nesting the same
|
|
37
|
-
* set creates a new scope; nesting a different set retains access to parent refs.
|
|
38
|
-
* @example
|
|
39
|
-
* const style = defineKnobs({ size: { type: "number", default: 48, step: 1 }, ink: { type: "color", default: "#ffffff" } });
|
|
40
|
-
* // <Group knobs={style} values={{ size: 64 }}><Text fontSize={style.size} color={style.ink}>Hello</Text></Group>
|
|
41
|
-
*/
|
|
42
|
-
export function defineKnobs<const K extends Knobs>(knobs: K, options: { groups?: Readonly<Record<string, KnobGroup>> } = {}): KnobSet<K> {
|
|
43
|
-
if (!options || typeof options !== "object" || Array.isArray(options) || Object.keys(options).some(k => k !== "groups"))
|
|
44
|
-
throw new Error("Knobs: options may only contain groups");
|
|
45
|
-
validateKnobSchema(knobs, options.groups);
|
|
46
|
-
const definition = freeze(JSON.parse(JSON.stringify({ knobs, groups: options.groups ?? {} })));
|
|
47
|
-
const set = Object.create(null);
|
|
48
|
-
Object.defineProperty(set, SET, { value: definition });
|
|
49
|
-
for (const name of Object.keys(knobs)) {
|
|
50
|
-
set[name] = Object.freeze({
|
|
51
|
-
[REF]: Object.freeze({ set, name }),
|
|
52
|
-
[Symbol.toPrimitive]() { throw new Error(`Knob ${name} is a reference, not a value; bind it to a prop`); },
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
return Object.freeze(set);
|
|
56
|
-
}
|
|
57
|
-
export function isKnobSet(value: unknown): value is KnobSet {
|
|
58
|
-
return !!value && typeof value === "object" && SET in value;
|
|
59
|
-
}
|
|
60
|
-
export function isKnobRef(value: unknown): value is KnobRef {
|
|
61
|
-
return !!value && typeof value === "object" && REF in value;
|
|
62
|
-
}
|
|
63
|
-
export function resolveKnob(ref: KnobRef, scope: KnobScope): MotionValue {
|
|
64
|
-
const { set, name } = ref[REF];
|
|
65
|
-
for (let i = scope.length - 1; i >= 0; i--)
|
|
66
|
-
if (scope[i].set === set) return scope[i].description.values[name];
|
|
67
|
-
throw new Error(`Knob "${name}" has no owning Group in this scope`);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Track definitions are immutable. Validate all future keys once per knob,
|
|
71
|
-
// rather than rescanning a long timeline on every rendered frame.
|
|
72
|
-
const validatedTracks = new WeakMap<Motion, WeakSet<Knob>>();
|
|
73
|
-
function validateBinding(knob: Knob, binding: MotionValue | Motion, name: string) {
|
|
74
|
-
if (!isMotion(binding)) { validateKnobValue(knob, binding, name); return; }
|
|
75
|
-
let checked = validatedTracks.get(binding);
|
|
76
|
-
if (checked?.has(knob)) return;
|
|
77
|
-
for (const value of [binding.definition.default, ...(binding.definition.keyframes ?? []).map(k => k.value)])
|
|
78
|
-
validateKnobValue(knob, value, name);
|
|
79
|
-
if (!checked) { checked = new WeakSet(); validatedTracks.set(binding, checked); }
|
|
80
|
-
checked.add(knob);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export function describeKnobs<K extends Knobs>(set: KnobSet<K>, bindings: KnobBindings<K> = {}, time = 0): KnobDescription {
|
|
84
|
-
return evaluateKnobs(set, bindings, time, []);
|
|
85
|
-
}
|
|
86
|
-
export function evaluateKnobs(set: KnobSet, bindings: unknown, time: number, parentScope: KnobScope): KnobDescription {
|
|
87
|
-
if (!isKnobSet(set)) throw new Error("Group.knobs must be a defineKnobs declaration");
|
|
88
|
-
if (!Number.isFinite(time)) throw new Error("Knob time must be finite");
|
|
89
|
-
const input = bindings === undefined ? {} : bindings;
|
|
90
|
-
if (!input || typeof input !== "object" || Array.isArray(input)) throw new Error("Group.values must be named knob bindings");
|
|
91
|
-
const { knobs, groups } = set[SET];
|
|
92
|
-
for (const name of Object.keys(input))
|
|
93
|
-
if (!Object.hasOwn(knobs, name)) throw new Error(`Group.values: unknown knob "${name}"`);
|
|
94
|
-
const values: Record<string, MotionValue> = Object.create(null);
|
|
95
|
-
const tracks: Record<string, TrackDefinition> = Object.create(null);
|
|
96
|
-
for (const [name, knob] of Object.entries(knobs)) {
|
|
97
|
-
const supplied = (input as Record<string, unknown>)[name];
|
|
98
|
-
// Explicit null is invalid; only an omitted/undefined binding uses the default.
|
|
99
|
-
let binding = supplied === undefined ? knob.default : supplied;
|
|
100
|
-
if (isKnobRef(binding)) binding = resolveKnob(binding, parentScope);
|
|
101
|
-
validateBinding(knob, binding as MotionValue | Motion, name);
|
|
102
|
-
const value = isMotion(binding)
|
|
103
|
-
? sampleMotion(binding, time, knob.type === "color" ? "color" : knob.type === "number" ? undefined : "discrete")
|
|
104
|
-
: binding as MotionValue;
|
|
105
|
-
validateKnobValue(knob, value, name);
|
|
106
|
-
values[name] = Array.isArray(value) ? [...value] : value;
|
|
107
|
-
if (isMotion(binding)) tracks[name] = binding.definition;
|
|
108
|
-
}
|
|
109
|
-
const visible = (when?: Readonly<Record<string, unknown>>) => !when || Object.entries(when).every(([k,v]) => values[k] === v);
|
|
110
|
-
const visibleGroups: Record<string, boolean> = Object.create(null);
|
|
111
|
-
const groupVisible = (name: string): boolean => visibleGroups[name] ??= visible(groups[name].visibleWhen)
|
|
112
|
-
&& (!groups[name].parent || groupVisible(groups[name].parent!));
|
|
113
|
-
for (const name of Object.keys(groups)) groupVisible(name);
|
|
114
|
-
const visibleKnobs = Object.fromEntries(Object.entries(knobs).map(([name, knob]) => [name,
|
|
115
|
-
visible(knob.visibleWhen) && (!knob.group || visibleGroups[knob.group])
|
|
116
|
-
]));
|
|
117
|
-
return freeze({ knobs, groups, values, tracks, visibleGroups, visibleKnobs });
|
|
118
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// A mask names one direct child. Its pixels are evaluated in the group's clock.
|
|
2
|
-
export function readMask(value) {
|
|
3
|
-
if (value === undefined || value === false) return null;
|
|
4
|
-
const mask = typeof value === 'string' ? {source:value} : value;
|
|
5
|
-
if (!mask || typeof mask !== 'object' || Array.isArray(mask) ||
|
|
6
|
-
Object.keys(mask).some(k=>!['source','mode','invert'].includes(k)) ||
|
|
7
|
-
typeof mask.source !== 'string' || !mask.source.trim() ||
|
|
8
|
-
!['alpha','vector','luminance'].includes(mask.mode ?? 'alpha') ||
|
|
9
|
-
(mask.invert !== undefined && typeof mask.invert !== 'boolean'))
|
|
10
|
-
throw new Error('Group.mask: expected a child id or { source, mode: "alpha" | "vector" | "luminance", invert?: boolean }');
|
|
11
|
-
return {source:mask.source,mode:mask.mode ?? 'alpha',invert:mask.invert ?? false};
|
|
12
|
-
}
|
|
13
|
-
export function maskSourceIndex(children, mask) {
|
|
14
|
-
const matches=children.map((c,i)=>c?.props?.id===mask.source?i:-1).filter(i=>i>=0);
|
|
15
|
-
if(matches.length!==1)throw new Error(`Group.mask: "${mask.source}" must identify exactly one direct child`);
|
|
16
|
-
return matches[0];
|
|
17
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** @param {{hidden?: unknown, solo?: unknown}} props */
|
|
2
|
-
export function readGroupPlayback(props: {
|
|
3
|
-
hidden?: unknown;
|
|
4
|
-
solo?: unknown;
|
|
5
|
-
}): {
|
|
6
|
-
hidden: boolean;
|
|
7
|
-
solo: boolean;
|
|
8
|
-
};
|
|
9
|
-
/** Optional lane metadata indexed by the same 0–99 numbers as clip.track.
|
|
10
|
-
* @param {unknown} value @returns {Record<number, {label?: string, hidden?: boolean, solo?: boolean, muted?: boolean}>} */
|
|
11
|
-
export function readSceneTracks(value: unknown): Record<number, {
|
|
12
|
-
label?: string;
|
|
13
|
-
hidden?: boolean;
|
|
14
|
-
solo?: boolean;
|
|
15
|
-
muted?: boolean;
|
|
16
|
-
}>;
|
|
17
|
-
/** Effective playback state without removing nodes or changing their identity.
|
|
18
|
-
* @param {ReturnType<typeof readSceneTracks>} tracks @param {number | undefined} track */
|
|
19
|
-
export function trackPlayback(tracks: ReturnType<typeof readSceneTracks>, track: number | undefined): {
|
|
20
|
-
visible: boolean;
|
|
21
|
-
audible: boolean;
|
|
22
|
-
};
|
|
23
|
-
export function readGroupLabel(value: unknown): string | undefined;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// Static editor metadata, shared by Strict validation, evaluation and the editor.
|
|
2
|
-
/** @param {unknown} value @param {number} maxWords @param {string} field */
|
|
3
|
-
function readLabel(value, maxWords, field) {
|
|
4
|
-
if (value === undefined) return undefined;
|
|
5
|
-
if (typeof value !== 'string' || !value.trim() || value.trim().split(/\s+/u).length > maxWords)
|
|
6
|
-
throw new Error(`${field}: expected a nonempty static string of at most ${maxWords} ${maxWords === 1 ? 'word' : 'words'}`);
|
|
7
|
-
return value.trim().replace(/\s+/gu, ' ');
|
|
8
|
-
}
|
|
9
|
-
/** Optional Group display name. IDs remain independent of labels. @param {unknown} value */
|
|
10
|
-
export const readGroupLabel = value => readLabel(value, 2, 'Group.label');
|
|
11
|
-
|
|
12
|
-
/** @param {{hidden?: unknown, solo?: unknown}} props */
|
|
13
|
-
export function readGroupPlayback(props) {
|
|
14
|
-
for (const field of ['hidden', 'solo'])
|
|
15
|
-
if (props[field] !== undefined && typeof props[field] !== 'boolean')
|
|
16
|
-
throw new Error(`Group.${field}: expected a static boolean`);
|
|
17
|
-
return {hidden: props.hidden === true, solo: props.solo === true};
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** Optional lane metadata indexed by the same 0–99 numbers as clip.track.
|
|
21
|
-
* @param {unknown} value @returns {Record<number, {label?: string, hidden?: boolean, solo?: boolean, muted?: boolean}>} */
|
|
22
|
-
export function readSceneTracks(value) {
|
|
23
|
-
if (value === undefined) return {};
|
|
24
|
-
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
25
|
-
throw new Error('Scene.tracks: expected an object keyed by track numbers (0–99)');
|
|
26
|
-
return Object.fromEntries(Object.entries(value).map(([key, metadata]) => {
|
|
27
|
-
if (!/^(?:0|[1-9]\d?)$/.test(key)) throw new Error('Scene.tracks: track numbers must be integers from 0 to 99');
|
|
28
|
-
if (!metadata || typeof metadata !== 'object' || Array.isArray(metadata) || Object.keys(metadata).some(key => !['label','hidden','solo','muted'].includes(key)))
|
|
29
|
-
throw new Error(`Scene.tracks.${key}: expected label, hidden, solo or muted metadata`);
|
|
30
|
-
const label = readLabel(metadata.label, 1, `Scene.tracks.${key}.label`);
|
|
31
|
-
for (const field of ['hidden','solo','muted'])
|
|
32
|
-
if (metadata[field] !== undefined && typeof metadata[field] !== 'boolean')
|
|
33
|
-
throw new Error(`Scene.tracks.${key}.${field}: expected a static boolean`);
|
|
34
|
-
return [key, {...metadata, ...(label === undefined ? {} : {label})}];
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Effective playback state without removing nodes or changing their identity.
|
|
39
|
-
* @param {ReturnType<typeof readSceneTracks>} tracks @param {number | undefined} track */
|
|
40
|
-
export function trackPlayback(tracks, track) {
|
|
41
|
-
const own = track === undefined ? {} : tracks[track] ?? {};
|
|
42
|
-
const excluded = Object.values(tracks).some(t => t.solo) && !own.solo;
|
|
43
|
-
return {visible: !own.hidden && !excluded, audible: !own.muted && !excluded};
|
|
44
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import {parseColor, mixColor} from "./color-value.mjs";
|
|
2
|
-
function ease(t, easing) {
|
|
3
|
-
switch (easing) {
|
|
4
|
-
case "linear":
|
|
5
|
-
return t;
|
|
6
|
-
case "easeIn":
|
|
7
|
-
return t * t;
|
|
8
|
-
case "easeOut":
|
|
9
|
-
return 1 - (1 - t) ** 2;
|
|
10
|
-
case "easeInOut":
|
|
11
|
-
return t < 0.5 ? 2 * t * t : 1 - (-2 * t + 2) ** 2 / 2;
|
|
12
|
-
case "hold":
|
|
13
|
-
return 0;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/** @param {any} definition @param {number} time @param {"color" | "discrete"} [interpolation] @returns {any} */
|
|
19
|
-
export function sampleTrack(definition, time, interpolation) {
|
|
20
|
-
if (!Number.isFinite(time)) throw new Error("Motion time must be finite");
|
|
21
|
-
const { default: initial, keyframes = [] } = definition;
|
|
22
|
-
if (keyframes.length === 0) return initial;
|
|
23
|
-
const color = interpolation !== "discrete" && definition.type !== "discrete" && typeof initial === "string" && !!parseColor(initial);
|
|
24
|
-
const discrete = interpolation === "discrete" || definition.type === "discrete" || typeof initial === "boolean" ||
|
|
25
|
-
(typeof initial === "string" && !color) || (Array.isArray(initial) && (!initial.length || typeof initial[0] === "string"));
|
|
26
|
-
if (time < keyframes[0].at) return discrete ? initial : keyframes[0].value;
|
|
27
|
-
if (time === keyframes[0].at) return keyframes[0].value;
|
|
28
|
-
if (time >= keyframes[keyframes.length - 1].at)
|
|
29
|
-
return keyframes[keyframes.length - 1].value;
|
|
30
|
-
let lo = 0;
|
|
31
|
-
let hi = keyframes.length - 1;
|
|
32
|
-
while (hi - lo > 1) {
|
|
33
|
-
const mid = (lo + hi) >>> 1;
|
|
34
|
-
if (keyframes[mid].at <= time) lo = mid;
|
|
35
|
-
else hi = mid;
|
|
36
|
-
}
|
|
37
|
-
const a = keyframes[lo];
|
|
38
|
-
const b = keyframes[hi];
|
|
39
|
-
if (discrete) return a.value;
|
|
40
|
-
const amount = ease((time - a.at) / (b.at - a.at), b.easing ?? "linear");
|
|
41
|
-
if (typeof a.value === "number" && typeof b.value === "number") {
|
|
42
|
-
return (a.value + (b.value - a.value) * amount);
|
|
43
|
-
}
|
|
44
|
-
if (color) return mixColor(a.value, b.value, amount);
|
|
45
|
-
const start = a.value;
|
|
46
|
-
const end = b.value;
|
|
47
|
-
return Object.freeze(
|
|
48
|
-
start.map((v, i) => v + (end[i] - v) * amount),
|
|
49
|
-
);
|
|
50
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { parseColor } from "./color.js";
|
|
2
|
-
import { sampleTrack } from "./motion-sampling.mjs";
|
|
3
|
-
const TRACK = Symbol("osmo.motion.track");
|
|
4
|
-
/** Numbers/vectors interpolate; colors interpolate in linear light; text, booleans and choices switch discretely. */
|
|
5
|
-
export type MotionValue = number | boolean | string | readonly number[] | readonly string[];
|
|
6
|
-
export type Easing = "linear" | "easeIn" | "easeOut" | "easeInOut" | "hold";
|
|
7
|
-
export interface Keyframe<T extends MotionValue = MotionValue> {
|
|
8
|
-
/** Scene time in seconds; nonnegative and strictly increasing within a track. */
|
|
9
|
-
readonly at: number;
|
|
10
|
-
/** Must match the default’s type and tuple length. */
|
|
11
|
-
readonly value: T;
|
|
12
|
-
/** Easing into this keyframe from the previous one. Default: linear. */
|
|
13
|
-
readonly easing?: Easing;
|
|
14
|
-
}
|
|
15
|
-
export interface TrackDefinition<T extends MotionValue = MotionValue> {
|
|
16
|
-
/** Value without keys. For continuous tracks, add a key at 0 to define the starting value. */
|
|
17
|
-
readonly default: T;
|
|
18
|
-
/** Override inference for text/choices that resemble color literals. */
|
|
19
|
-
readonly type?: "color" | "discrete";
|
|
20
|
-
/** Holds the last value after the final key; no automatic looping. */
|
|
21
|
-
readonly keyframes?: readonly Keyframe<T>[];
|
|
22
|
-
}
|
|
23
|
-
export interface Motion<T extends MotionValue = MotionValue> {
|
|
24
|
-
readonly [TRACK]: true;
|
|
25
|
-
readonly definition: TrackDefinition<T>;
|
|
26
|
-
}
|
|
27
|
-
type Widen<T extends MotionValue> = T extends number ? number : T extends boolean ? boolean
|
|
28
|
-
: T extends string ? string : T extends readonly [] ? readonly string[]
|
|
29
|
-
: T extends readonly number[] ? { readonly [K in keyof T]: number } : readonly string[];
|
|
30
|
-
export type MotionDefinition = Readonly<Record<string, TrackDefinition>>;
|
|
31
|
-
export type Motions<D extends MotionDefinition> = {
|
|
32
|
-
readonly [K in keyof D]: Motion<Widen<D[K]["default"]>>;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
function copyValue(value: MotionValue, label: string): MotionValue {
|
|
36
|
-
if (typeof value === "boolean" || typeof value === "string") return value;
|
|
37
|
-
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
38
|
-
if (Array.isArray(value) && (value.every(v => typeof v === "string") ||
|
|
39
|
-
(value.length > 0 && value.every(v => typeof v === "number" && Number.isFinite(v)))))
|
|
40
|
-
return Object.freeze([...value]);
|
|
41
|
-
throw new Error(`${label}: expected a finite number, numeric tuple, string, boolean or string array`);
|
|
42
|
-
}
|
|
43
|
-
function shape(value: MotionValue): string {
|
|
44
|
-
return Array.isArray(value) ? (value.length && typeof value[0] === "number" ? `vector:${value.length}` : "choices") : typeof value;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Declare reusable keyframes; bind a track directly to a compatible JSX prop.
|
|
48
|
-
* The variable name is arbitrary. CLI Strict uses references, not sampleMotion calls.
|
|
49
|
-
* @example
|
|
50
|
-
* const motion = defineMotion({ lap: { default: 0, keyframes: [{ at: 0, value: 0 }, { at: 4, value: 1 }] } });
|
|
51
|
-
* // <Text path={{ shape: "ellipse", radius: [180, 120], progress: motion.lap }}>ONE WHOLE STRING</Text>
|
|
52
|
-
*/
|
|
53
|
-
export function defineMotion<const D extends MotionDefinition>(
|
|
54
|
-
definition: D,
|
|
55
|
-
): Motions<D> {
|
|
56
|
-
const result: Record<string, Motion> = Object.create(null);
|
|
57
|
-
for (const [name, track] of Object.entries(definition)) {
|
|
58
|
-
const initial = copyValue(track.default, `${name}.default`);
|
|
59
|
-
if (track.type !== undefined && track.type !== "color" && track.type !== "discrete") throw new Error(`${name}: invalid motion type`);
|
|
60
|
-
if (track.type === "color" && !parseColor(initial)) throw new Error(`${name}.default: expected a color`);
|
|
61
|
-
let previous = -Infinity;
|
|
62
|
-
const keyframes = (track.keyframes ?? []).map((key, i) => {
|
|
63
|
-
const label = `${name}.keyframes[${i}]`;
|
|
64
|
-
if (!Number.isFinite(key.at) || key.at < 0 || key.at <= previous) {
|
|
65
|
-
throw new Error(
|
|
66
|
-
`${label}: times must be finite, nonnegative and strictly increasing`,
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
previous = key.at;
|
|
70
|
-
const value = copyValue(key.value, label);
|
|
71
|
-
if (shape(value) !== shape(initial)) throw new Error(`${label}: value must match the default's type/tuple shape`);
|
|
72
|
-
if ((track.type === "color" || (track.type !== "discrete" && typeof initial === "string" && parseColor(initial))) && !parseColor(value))
|
|
73
|
-
throw new Error(`${label}: expected a color`);
|
|
74
|
-
if (
|
|
75
|
-
key.easing !== undefined &&
|
|
76
|
-
!["linear", "easeIn", "easeOut", "easeInOut", "hold"].includes(
|
|
77
|
-
key.easing,
|
|
78
|
-
)
|
|
79
|
-
) {
|
|
80
|
-
throw new Error(`${label}: unsupported easing ${key.easing}`);
|
|
81
|
-
}
|
|
82
|
-
return Object.freeze({
|
|
83
|
-
at: key.at,
|
|
84
|
-
value,
|
|
85
|
-
...(key.easing === undefined ? {} : { easing: key.easing }),
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
result[name] = Object.freeze({
|
|
89
|
-
[TRACK]: true as const,
|
|
90
|
-
definition: Object.freeze({
|
|
91
|
-
default: initial,
|
|
92
|
-
...(track.type ? { type: track.type } : {}),
|
|
93
|
-
keyframes: Object.freeze(keyframes),
|
|
94
|
-
}),
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return Object.freeze(result) as Motions<D>;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export function isMotion(value: unknown): value is Motion {
|
|
101
|
-
return typeof value === "object" && value !== null && TRACK in value;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/** Stateless sampling shared by rendering and editing. */
|
|
105
|
-
export function sampleMotion<T extends MotionValue>(motion: Motion<T>, time: number, interpolation?: "color" | "discrete"): T {
|
|
106
|
-
return sampleTrack(motion.definition, time, interpolation) as T;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/** Plain serializable data for inspectors; source rewriting is a separate future layer. */
|
|
110
|
-
export function describeMotion(
|
|
111
|
-
motions: Readonly<Record<string, Motion>>,
|
|
112
|
-
): MotionDefinition {
|
|
113
|
-
return Object.freeze(
|
|
114
|
-
Object.fromEntries(
|
|
115
|
-
Object.entries(motions).map(([name, motion]) => [
|
|
116
|
-
name,
|
|
117
|
-
motion.definition,
|
|
118
|
-
]),
|
|
119
|
-
),
|
|
120
|
-
);
|
|
121
|
-
}
|