diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index fbb4a8d1..3f2fb277 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -8,227 +8,89 @@ env: HUSKY: 0 jobs: - prepare: - name: Prepare - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - run: PUPPETEER_PRODUCT=chrome npm ci - - uses: actions/cache/save@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer commit: name: Commit name - needs: prepare runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer + - run: npm ci - run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --verbose lint: name: Lint - needs: prepare runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer - - run: npm run eslint + - run: npm ci + - run: npx eslint "**/*.ts?(x)" prettier: name: Code style - needs: prepare runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer + - run: npm ci - run: npm run prettier build: name: Build - needs: prepare runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer + - run: node --version + - run: npm --version + - run: npm ci + # TODO: FFmpeg and ffprobe installer don't automatically install the binaries + - run: npm install @ffmpeg-installer/ffmpeg + - run: npm install @ffprobe-installer/ffprobe + - run: npm list - run: npx lerna run build - - uses: actions/cache/save@v3 - with: - key: ${{ github.run_id }}-build - path: | - packages/2d/lib - packages/2d/editor - packages/core/lib - packages/ui/dist - packages/player/dist - packages/vite-plugin/lib - packages/telemetry/dist - packages/ffmpeg/dist + - run: npm run examples:build tests: name: Unit tests - needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-build - path: | - packages/2d/lib - packages/2d/editor - packages/core/lib - packages/ui/dist - packages/player/dist - packages/vite-plugin/lib - packages/telemetry/dist - packages/ffmpeg/dist + - run: npm ci + - run: npx lerna run build - run: npx lerna run test - examples: - name: Examples - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-build - path: | - packages/2d/lib - packages/2d/editor - packages/core/lib - packages/ui/dist - packages/player/dist - packages/vite-plugin/lib - packages/telemetry/dist - packages/ffmpeg/dist - - run: npm run examples:build e2e: name: E2E - needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-build - path: | - packages/2d/lib - packages/2d/editor - packages/core/lib - packages/ui/dist - packages/player/dist - packages/vite-plugin/lib - packages/telemetry/dist - packages/ffmpeg/dist + - run: npm ci + - run: npx puppeteer browsers install chrome + # TODO: FFmpeg and ffprobe installer don't automatically install the binaries + - run: npm install @ffmpeg-installer/ffmpeg + - run: npm install @ffprobe-installer/ffprobe + - run: npx lerna run build - run: npm run e2e:test - uses: actions/upload-artifact@v3 if: failure() with: name: image-diffs - path: packages/e2e/src/__image_snapshots__/__diff_output__ - docs: - name: Documentation - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-node-modules - path: | - **/node_modules - ~/.cache/puppeteer - - uses: actions/cache/restore@v3 - with: - key: ${{ github.run_id }}-build - path: | - packages/2d/lib - packages/2d/editor - packages/core/lib - packages/ui/dist - packages/player/dist - packages/vite-plugin/lib - packages/telemetry/dist - packages/ffmpeg/dist - - run: npx lerna run bundle - - run: npm run docs:build - env: - NODE_OPTIONS: "--max-old-space-size=8192" + path: packages/e2e/src/__image_snapshots__/__diff_output__ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2696696c..8202d597 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ tsconfig.tsbuildinfo .idea id.txt + +.nx \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..2edeafb0 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index f2d6c58d..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,19361 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## 0.5.9 (2024-09-10) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add case for data urls ([#241](https://github.com/redotvideo/revideo/issues/241)) ([a5f9de2](https://github.com/redotvideo/revideo/commit/a5f9de22604e2ee85fac50c36d7a9b4724d757ff)) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio keeps playing when navigating to other route ([#207](https://github.com/redotvideo/revideo/issues/207)) ([f982098](https://github.com/redotvideo/revideo/commit/f98209862f8e8b3d572c42aa51377aeefbd1d7ba)) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await decoder flush correctly ([#249](https://github.com/redotvideo/revideo/issues/249)) ([c99c3fc](https://github.com/redotvideo/revideo/commit/c99c3fc322ba6870684ad38d55e15e8d74178731)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* await fonts before computing layout ([#259](https://github.com/redotvideo/revideo/issues/259)) ([ceae78a](https://github.com/redotvideo/revideo/commit/ceae78ae03b2004bb8f3f99f6b50fc62f82c04aa)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio duration correctly when playback rate is not zero ([#216](https://github.com/redotvideo/revideo/issues/216)) ([35025a7](https://github.com/redotvideo/revideo/commit/35025a79298b5b6173b5fa24c938a8b20cd3597c)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* **cli, player:** asset base also applies to images ([#194](https://github.com/redotvideo/revideo/issues/194)) ([a6d5c55](https://github.com/redotvideo/revideo/commit/a6d5c55a21eed31d6cffb0927ef4c5f27d2d6d6b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* correctly cache rive animations ([#218](https://github.com/redotvideo/revideo/issues/218)) ([3f73649](https://github.com/redotvideo/revideo/commit/3f73649b90bf636e2f6399ac9f8d9bb636d62aa0)) -* correctly use rive plugin ([#212](https://github.com/redotvideo/revideo/issues/212)) ([0685ee8](https://github.com/redotvideo/revideo/commit/0685ee84353c60856b9a3da1acf7e0e2ec628c7a)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* decoder is stuck ([#195](https://github.com/redotvideo/revideo/issues/195)) ([7965108](https://github.com/redotvideo/revideo/commit/796510861c7f3dde88e5524d1971c1c21d58e721)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **docs:** update renderVideo.mdx ([#252](https://github.com/redotvideo/revideo/issues/252)) ([39eec5c](https://github.com/redotvideo/revideo/commit/39eec5c6de8d01c2eb6d0c8c4e3c99de5112c108)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty frame at scene end ([#206](https://github.com/redotvideo/revideo/issues/206)) ([cbaa258](https://github.com/redotvideo/revideo/commit/cbaa2582a53998d64f903825cf6ae352a69c18de)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix dimensions for wasm exporter ([#196](https://github.com/redotvideo/revideo/issues/196)) ([8b6f9ec](https://github.com/redotvideo/revideo/commit/8b6f9ec051bd60c99cf6892a8bac9cd87188ebb9)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* fix video frame caching ([#217](https://github.com/redotvideo/revideo/issues/217)) ([6ebfb65](https://github.com/redotvideo/revideo/commit/6ebfb65e88c9817ebc0362bce609233818199089)) -* font not displayed correctly in player ([#198](https://github.com/redotvideo/revideo/issues/198)) ([319d478](https://github.com/redotvideo/revideo/commit/319d4783acf45ab09f90936da7a3e122539bd114)) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* initial empty frame when duration less than one frame ([#223](https://github.com/redotvideo/revideo/issues/223)) ([0782884](https://github.com/redotvideo/revideo/commit/07828847d7e9d83cf30f15de0cc042c3d810e238)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load fonts before all layout computations ([#240](https://github.com/redotvideo/revideo/issues/240)) ([3b9bf4f](https://github.com/redotvideo/revideo/commit/3b9bf4f0621f35527158fc406e4e8144a94b21b7)) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin chroma js ([#226](https://github.com/redotvideo/revideo/issues/226)) ([1768ec6](https://github.com/redotvideo/revideo/commit/1768ec6fdc0528283a53c6309e3e7abd2958694f)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* play button on same level as remaining player ([#232](https://github.com/redotvideo/revideo/issues/232)) ([3cbaa3b](https://github.com/redotvideo/revideo/commit/3cbaa3b5819e197d48d25673e92535a50240f467)) -* player button type to prevent submits ([#255](https://github.com/redotvideo/revideo/issues/255)) ([5a7a588](https://github.com/redotvideo/revideo/commit/5a7a5883ff63a20e31bfa435563842da02c157de)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* set volume in player correctly ([#248](https://github.com/redotvideo/revideo/issues/248)) ([e7db60f](https://github.com/redotvideo/revideo/commit/e7db60f7d321ac9b514b6149a78790330c3add71)) -* stop media in player when seeking or changing scene ([#191](https://github.com/redotvideo/revideo/issues/191)) ([331dbb0](https://github.com/redotvideo/revideo/commit/331dbb0b56eb89cb6497e1997997deb34bb0fd30)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* update current time from outside player ([#203](https://github.com/redotvideo/revideo/issues/203)) ([ab90558](https://github.com/redotvideo/revideo/commit/ab905584a819bde6e410bd181a8d1e303cd5a4f4)) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) -* wait for fonts to load for correct formatting ([#220](https://github.com/redotvideo/revideo/issues/220)) ([fd209f4](https://github.com/redotvideo/revideo/commit/fd209f4702c020059b5298d9c56e097981bf1427)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable higher volume for exports ([#239](https://github.com/redotvideo/revideo/issues/239)) ([66e70e6](https://github.com/redotvideo/revideo/commit/66e70e64859d32ab890ac8ae1d1ead25f11a3e28)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* enable volume amplification during preview ([#260](https://github.com/redotvideo/revideo/issues/260)) ([e2bef8e](https://github.com/redotvideo/revideo/commit/e2bef8eae3a7779debdaecb3565eac2081223d8f)), closes [#240](https://github.com/redotvideo/revideo/issues/240) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* let user skip waiting for full media load in preview ([#250](https://github.com/redotvideo/revideo/issues/250)) ([dd71e08](https://github.com/redotvideo/revideo/commit/dd71e08e925f3ee8352c3e7d256534c2d233e25e)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make it possible to choose time display format in player ([#270](https://github.com/redotvideo/revideo/issues/270)) ([7381c9d](https://github.com/redotvideo/revideo/commit/7381c9dcb773b766f6627db580c197ad5e010ee4)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* rewrite mp4 decoder to use edit entries ([#177](https://github.com/redotvideo/revideo/issues/177)) ([8873ab7](https://github.com/redotvideo/revideo/commit/8873ab704f24655f04861d4530e89c44ede4bb12)), closes [#183](https://github.com/redotvideo/revideo/issues/183) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support empty edits in decoder ([#192](https://github.com/redotvideo/revideo/issues/192)) ([261fd31](https://github.com/redotvideo/revideo/commit/261fd31d590378d81a9f82986a51ba9e2403ad29)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support for rive animations, experimental ([#210](https://github.com/redotvideo/revideo/issues/210)) ([d861491](https://github.com/redotvideo/revideo/commit/d8614915c057ef309b766503201cf0ca1e28e8f7)) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* support textwrap balance ([#225](https://github.com/redotvideo/revideo/issues/225)) ([d0e5d79](https://github.com/redotvideo/revideo/commit/d0e5d791f6d8ab853308f2a4942173fa6a609685)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* decrease decoder memory by limiting decode queue size ([#236](https://github.com/redotvideo/revideo/issues/236)) ([da9abad](https://github.com/redotvideo/revideo/commit/da9abad1c19ffe4b71ae13eb84373044b0b02432)) -* faster ffmpeg decoder ([#268](https://github.com/redotvideo/revideo/issues/268)) ([f1c1afb](https://github.com/redotvideo/revideo/commit/f1c1afb718bc58fe6925568f72dc4da827b98f3f)) -* move audio delay to last concatenation step for faster processing ([#253](https://github.com/redotvideo/revideo/issues/253)) ([6740938](https://github.com/redotvideo/revideo/commit/6740938542dc0c988f730879320624a762daa919)) -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* Revert "perf: move audio delay to last concatenation step for faster processi…" (#266) ([7146760](https://github.com/redotvideo/revideo/commit/7146760e592187ceb239ab63ff9ca7cb5b1ab5e8)), closes [#266](https://github.com/redotvideo/revideo/issues/266) -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.5.7 (2024-08-26) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add case for data urls ([#241](https://github.com/redotvideo/revideo/issues/241)) ([a5f9de2](https://github.com/redotvideo/revideo/commit/a5f9de22604e2ee85fac50c36d7a9b4724d757ff)) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio keeps playing when navigating to other route ([#207](https://github.com/redotvideo/revideo/issues/207)) ([f982098](https://github.com/redotvideo/revideo/commit/f98209862f8e8b3d572c42aa51377aeefbd1d7ba)) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await decoder flush correctly ([#249](https://github.com/redotvideo/revideo/issues/249)) ([c99c3fc](https://github.com/redotvideo/revideo/commit/c99c3fc322ba6870684ad38d55e15e8d74178731)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* await fonts before computing layout ([#259](https://github.com/redotvideo/revideo/issues/259)) ([ceae78a](https://github.com/redotvideo/revideo/commit/ceae78ae03b2004bb8f3f99f6b50fc62f82c04aa)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio duration correctly when playback rate is not zero ([#216](https://github.com/redotvideo/revideo/issues/216)) ([35025a7](https://github.com/redotvideo/revideo/commit/35025a79298b5b6173b5fa24c938a8b20cd3597c)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* **cli, player:** asset base also applies to images ([#194](https://github.com/redotvideo/revideo/issues/194)) ([a6d5c55](https://github.com/redotvideo/revideo/commit/a6d5c55a21eed31d6cffb0927ef4c5f27d2d6d6b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* correctly cache rive animations ([#218](https://github.com/redotvideo/revideo/issues/218)) ([3f73649](https://github.com/redotvideo/revideo/commit/3f73649b90bf636e2f6399ac9f8d9bb636d62aa0)) -* correctly use rive plugin ([#212](https://github.com/redotvideo/revideo/issues/212)) ([0685ee8](https://github.com/redotvideo/revideo/commit/0685ee84353c60856b9a3da1acf7e0e2ec628c7a)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* decoder is stuck ([#195](https://github.com/redotvideo/revideo/issues/195)) ([7965108](https://github.com/redotvideo/revideo/commit/796510861c7f3dde88e5524d1971c1c21d58e721)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **docs:** update renderVideo.mdx ([#252](https://github.com/redotvideo/revideo/issues/252)) ([39eec5c](https://github.com/redotvideo/revideo/commit/39eec5c6de8d01c2eb6d0c8c4e3c99de5112c108)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty frame at scene end ([#206](https://github.com/redotvideo/revideo/issues/206)) ([cbaa258](https://github.com/redotvideo/revideo/commit/cbaa2582a53998d64f903825cf6ae352a69c18de)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix dimensions for wasm exporter ([#196](https://github.com/redotvideo/revideo/issues/196)) ([8b6f9ec](https://github.com/redotvideo/revideo/commit/8b6f9ec051bd60c99cf6892a8bac9cd87188ebb9)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* fix video frame caching ([#217](https://github.com/redotvideo/revideo/issues/217)) ([6ebfb65](https://github.com/redotvideo/revideo/commit/6ebfb65e88c9817ebc0362bce609233818199089)) -* font not displayed correctly in player ([#198](https://github.com/redotvideo/revideo/issues/198)) ([319d478](https://github.com/redotvideo/revideo/commit/319d4783acf45ab09f90936da7a3e122539bd114)) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* initial empty frame when duration less than one frame ([#223](https://github.com/redotvideo/revideo/issues/223)) ([0782884](https://github.com/redotvideo/revideo/commit/07828847d7e9d83cf30f15de0cc042c3d810e238)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load fonts before all layout computations ([#240](https://github.com/redotvideo/revideo/issues/240)) ([3b9bf4f](https://github.com/redotvideo/revideo/commit/3b9bf4f0621f35527158fc406e4e8144a94b21b7)) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin chroma js ([#226](https://github.com/redotvideo/revideo/issues/226)) ([1768ec6](https://github.com/redotvideo/revideo/commit/1768ec6fdc0528283a53c6309e3e7abd2958694f)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* play button on same level as remaining player ([#232](https://github.com/redotvideo/revideo/issues/232)) ([3cbaa3b](https://github.com/redotvideo/revideo/commit/3cbaa3b5819e197d48d25673e92535a50240f467)) -* player button type to prevent submits ([#255](https://github.com/redotvideo/revideo/issues/255)) ([5a7a588](https://github.com/redotvideo/revideo/commit/5a7a5883ff63a20e31bfa435563842da02c157de)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* set volume in player correctly ([#248](https://github.com/redotvideo/revideo/issues/248)) ([e7db60f](https://github.com/redotvideo/revideo/commit/e7db60f7d321ac9b514b6149a78790330c3add71)) -* stop media in player when seeking or changing scene ([#191](https://github.com/redotvideo/revideo/issues/191)) ([331dbb0](https://github.com/redotvideo/revideo/commit/331dbb0b56eb89cb6497e1997997deb34bb0fd30)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* update current time from outside player ([#203](https://github.com/redotvideo/revideo/issues/203)) ([ab90558](https://github.com/redotvideo/revideo/commit/ab905584a819bde6e410bd181a8d1e303cd5a4f4)) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) -* wait for fonts to load for correct formatting ([#220](https://github.com/redotvideo/revideo/issues/220)) ([fd209f4](https://github.com/redotvideo/revideo/commit/fd209f4702c020059b5298d9c56e097981bf1427)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable higher volume for exports ([#239](https://github.com/redotvideo/revideo/issues/239)) ([66e70e6](https://github.com/redotvideo/revideo/commit/66e70e64859d32ab890ac8ae1d1ead25f11a3e28)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* let user skip waiting for full media load in preview ([#250](https://github.com/redotvideo/revideo/issues/250)) ([dd71e08](https://github.com/redotvideo/revideo/commit/dd71e08e925f3ee8352c3e7d256534c2d233e25e)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* rewrite mp4 decoder to use edit entries ([#177](https://github.com/redotvideo/revideo/issues/177)) ([8873ab7](https://github.com/redotvideo/revideo/commit/8873ab704f24655f04861d4530e89c44ede4bb12)), closes [#183](https://github.com/redotvideo/revideo/issues/183) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support empty edits in decoder ([#192](https://github.com/redotvideo/revideo/issues/192)) ([261fd31](https://github.com/redotvideo/revideo/commit/261fd31d590378d81a9f82986a51ba9e2403ad29)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support for rive animations, experimental ([#210](https://github.com/redotvideo/revideo/issues/210)) ([d861491](https://github.com/redotvideo/revideo/commit/d8614915c057ef309b766503201cf0ca1e28e8f7)) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* support textwrap balance ([#225](https://github.com/redotvideo/revideo/issues/225)) ([d0e5d79](https://github.com/redotvideo/revideo/commit/d0e5d791f6d8ab853308f2a4942173fa6a609685)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* decrease decoder memory by limiting decode queue size ([#236](https://github.com/redotvideo/revideo/issues/236)) ([da9abad](https://github.com/redotvideo/revideo/commit/da9abad1c19ffe4b71ae13eb84373044b0b02432)) -* move audio delay to last concatenation step for faster processing ([#253](https://github.com/redotvideo/revideo/issues/253)) ([6740938](https://github.com/redotvideo/revideo/commit/6740938542dc0c988f730879320624a762daa919)) -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.5.5 (2024-08-14) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio keeps playing when navigating to other route ([#207](https://github.com/redotvideo/revideo/issues/207)) ([f982098](https://github.com/redotvideo/revideo/commit/f98209862f8e8b3d572c42aa51377aeefbd1d7ba)) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio duration correctly when playback rate is not zero ([#216](https://github.com/redotvideo/revideo/issues/216)) ([35025a7](https://github.com/redotvideo/revideo/commit/35025a79298b5b6173b5fa24c938a8b20cd3597c)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* **cli, player:** asset base also applies to images ([#194](https://github.com/redotvideo/revideo/issues/194)) ([a6d5c55](https://github.com/redotvideo/revideo/commit/a6d5c55a21eed31d6cffb0927ef4c5f27d2d6d6b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* correctly cache rive animations ([#218](https://github.com/redotvideo/revideo/issues/218)) ([3f73649](https://github.com/redotvideo/revideo/commit/3f73649b90bf636e2f6399ac9f8d9bb636d62aa0)) -* correctly use rive plugin ([#212](https://github.com/redotvideo/revideo/issues/212)) ([0685ee8](https://github.com/redotvideo/revideo/commit/0685ee84353c60856b9a3da1acf7e0e2ec628c7a)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* decoder is stuck ([#195](https://github.com/redotvideo/revideo/issues/195)) ([7965108](https://github.com/redotvideo/revideo/commit/796510861c7f3dde88e5524d1971c1c21d58e721)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty frame at scene end ([#206](https://github.com/redotvideo/revideo/issues/206)) ([cbaa258](https://github.com/redotvideo/revideo/commit/cbaa2582a53998d64f903825cf6ae352a69c18de)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix dimensions for wasm exporter ([#196](https://github.com/redotvideo/revideo/issues/196)) ([8b6f9ec](https://github.com/redotvideo/revideo/commit/8b6f9ec051bd60c99cf6892a8bac9cd87188ebb9)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* fix video frame caching ([#217](https://github.com/redotvideo/revideo/issues/217)) ([6ebfb65](https://github.com/redotvideo/revideo/commit/6ebfb65e88c9817ebc0362bce609233818199089)) -* font not displayed correctly in player ([#198](https://github.com/redotvideo/revideo/issues/198)) ([319d478](https://github.com/redotvideo/revideo/commit/319d4783acf45ab09f90936da7a3e122539bd114)) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* initial empty frame when duration less than one frame ([#223](https://github.com/redotvideo/revideo/issues/223)) ([0782884](https://github.com/redotvideo/revideo/commit/07828847d7e9d83cf30f15de0cc042c3d810e238)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin chroma js ([#226](https://github.com/redotvideo/revideo/issues/226)) ([1768ec6](https://github.com/redotvideo/revideo/commit/1768ec6fdc0528283a53c6309e3e7abd2958694f)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* play button on same level as remaining player ([#232](https://github.com/redotvideo/revideo/issues/232)) ([3cbaa3b](https://github.com/redotvideo/revideo/commit/3cbaa3b5819e197d48d25673e92535a50240f467)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* stop media in player when seeking or changing scene ([#191](https://github.com/redotvideo/revideo/issues/191)) ([331dbb0](https://github.com/redotvideo/revideo/commit/331dbb0b56eb89cb6497e1997997deb34bb0fd30)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* update current time from outside player ([#203](https://github.com/redotvideo/revideo/issues/203)) ([ab90558](https://github.com/redotvideo/revideo/commit/ab905584a819bde6e410bd181a8d1e303cd5a4f4)) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) -* wait for fonts to load for correct formatting ([#220](https://github.com/redotvideo/revideo/issues/220)) ([fd209f4](https://github.com/redotvideo/revideo/commit/fd209f4702c020059b5298d9c56e097981bf1427)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* rewrite mp4 decoder to use edit entries ([#177](https://github.com/redotvideo/revideo/issues/177)) ([8873ab7](https://github.com/redotvideo/revideo/commit/8873ab704f24655f04861d4530e89c44ede4bb12)), closes [#183](https://github.com/redotvideo/revideo/issues/183) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support empty edits in decoder ([#192](https://github.com/redotvideo/revideo/issues/192)) ([261fd31](https://github.com/redotvideo/revideo/commit/261fd31d590378d81a9f82986a51ba9e2403ad29)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support for rive animations, experimental ([#210](https://github.com/redotvideo/revideo/issues/210)) ([d861491](https://github.com/redotvideo/revideo/commit/d8614915c057ef309b766503201cf0ca1e28e8f7)) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* support textwrap balance ([#225](https://github.com/redotvideo/revideo/issues/225)) ([d0e5d79](https://github.com/redotvideo/revideo/commit/d0e5d791f6d8ab853308f2a4942173fa6a609685)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.5.3 (2024-07-31) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio keeps playing when navigating to other route ([#207](https://github.com/redotvideo/revideo/issues/207)) ([f982098](https://github.com/redotvideo/revideo/commit/f98209862f8e8b3d572c42aa51377aeefbd1d7ba)) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio duration correctly when playback rate is not zero ([#216](https://github.com/redotvideo/revideo/issues/216)) ([35025a7](https://github.com/redotvideo/revideo/commit/35025a79298b5b6173b5fa24c938a8b20cd3597c)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* **cli, player:** asset base also applies to images ([#194](https://github.com/redotvideo/revideo/issues/194)) ([a6d5c55](https://github.com/redotvideo/revideo/commit/a6d5c55a21eed31d6cffb0927ef4c5f27d2d6d6b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* correctly cache rive animations ([#218](https://github.com/redotvideo/revideo/issues/218)) ([3f73649](https://github.com/redotvideo/revideo/commit/3f73649b90bf636e2f6399ac9f8d9bb636d62aa0)) -* correctly use rive plugin ([#212](https://github.com/redotvideo/revideo/issues/212)) ([0685ee8](https://github.com/redotvideo/revideo/commit/0685ee84353c60856b9a3da1acf7e0e2ec628c7a)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* decoder is stuck ([#195](https://github.com/redotvideo/revideo/issues/195)) ([7965108](https://github.com/redotvideo/revideo/commit/796510861c7f3dde88e5524d1971c1c21d58e721)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty frame at scene end ([#206](https://github.com/redotvideo/revideo/issues/206)) ([cbaa258](https://github.com/redotvideo/revideo/commit/cbaa2582a53998d64f903825cf6ae352a69c18de)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix dimensions for wasm exporter ([#196](https://github.com/redotvideo/revideo/issues/196)) ([8b6f9ec](https://github.com/redotvideo/revideo/commit/8b6f9ec051bd60c99cf6892a8bac9cd87188ebb9)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* fix video frame caching ([#217](https://github.com/redotvideo/revideo/issues/217)) ([6ebfb65](https://github.com/redotvideo/revideo/commit/6ebfb65e88c9817ebc0362bce609233818199089)) -* font not displayed correctly in player ([#198](https://github.com/redotvideo/revideo/issues/198)) ([319d478](https://github.com/redotvideo/revideo/commit/319d4783acf45ab09f90936da7a3e122539bd114)) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin chroma js ([#226](https://github.com/redotvideo/revideo/issues/226)) ([1768ec6](https://github.com/redotvideo/revideo/commit/1768ec6fdc0528283a53c6309e3e7abd2958694f)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* stop media in player when seeking or changing scene ([#191](https://github.com/redotvideo/revideo/issues/191)) ([331dbb0](https://github.com/redotvideo/revideo/commit/331dbb0b56eb89cb6497e1997997deb34bb0fd30)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* update current time from outside player ([#203](https://github.com/redotvideo/revideo/issues/203)) ([ab90558](https://github.com/redotvideo/revideo/commit/ab905584a819bde6e410bd181a8d1e303cd5a4f4)) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* rewrite mp4 decoder to use edit entries ([#177](https://github.com/redotvideo/revideo/issues/177)) ([8873ab7](https://github.com/redotvideo/revideo/commit/8873ab704f24655f04861d4530e89c44ede4bb12)), closes [#183](https://github.com/redotvideo/revideo/issues/183) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support empty edits in decoder ([#192](https://github.com/redotvideo/revideo/issues/192)) ([261fd31](https://github.com/redotvideo/revideo/commit/261fd31d590378d81a9f82986a51ba9e2403ad29)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support for rive animations, experimental ([#210](https://github.com/redotvideo/revideo/issues/210)) ([d861491](https://github.com/redotvideo/revideo/commit/d8614915c057ef309b766503201cf0ca1e28e8f7)) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -# 0.5.0 (2024-07-24) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio keeps playing when navigating to other route ([#207](https://github.com/redotvideo/revideo/issues/207)) ([f982098](https://github.com/redotvideo/revideo/commit/f98209862f8e8b3d572c42aa51377aeefbd1d7ba)) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* **cli, player:** asset base also applies to images ([#194](https://github.com/redotvideo/revideo/issues/194)) ([a6d5c55](https://github.com/redotvideo/revideo/commit/a6d5c55a21eed31d6cffb0927ef4c5f27d2d6d6b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* decoder is stuck ([#195](https://github.com/redotvideo/revideo/issues/195)) ([7965108](https://github.com/redotvideo/revideo/commit/796510861c7f3dde88e5524d1971c1c21d58e721)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty frame at scene end ([#206](https://github.com/redotvideo/revideo/issues/206)) ([cbaa258](https://github.com/redotvideo/revideo/commit/cbaa2582a53998d64f903825cf6ae352a69c18de)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix dimensions for wasm exporter ([#196](https://github.com/redotvideo/revideo/issues/196)) ([8b6f9ec](https://github.com/redotvideo/revideo/commit/8b6f9ec051bd60c99cf6892a8bac9cd87188ebb9)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* font not displayed correctly in player ([#198](https://github.com/redotvideo/revideo/issues/198)) ([319d478](https://github.com/redotvideo/revideo/commit/319d4783acf45ab09f90936da7a3e122539bd114)) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* stop media in player when seeking or changing scene ([#191](https://github.com/redotvideo/revideo/issues/191)) ([331dbb0](https://github.com/redotvideo/revideo/commit/331dbb0b56eb89cb6497e1997997deb34bb0fd30)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* rewrite mp4 decoder to use edit entries ([#177](https://github.com/redotvideo/revideo/issues/177)) ([8873ab7](https://github.com/redotvideo/revideo/commit/8873ab704f24655f04861d4530e89c44ede4bb12)), closes [#183](https://github.com/redotvideo/revideo/issues/183) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support empty edits in decoder ([#192](https://github.com/redotvideo/revideo/issues/192)) ([261fd31](https://github.com/redotvideo/revideo/commit/261fd31d590378d81a9f82986a51ba9e2403ad29)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.4.7 (2024-07-10) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change async node issue to warning ([#178](https://github.com/redotvideo/revideo/issues/178)) ([453b287](https://github.com/redotvideo/revideo/commit/453b2879b1617f8ce3cf316a932a7bb730537f56)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* clean up when rendering through ui to avoid using old audio files for mute video ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ab485f2](https://github.com/redotvideo/revideo/commit/ab485f260cc31bf4973e084ed73e00165bdd5d9b)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* css leak from react player component ([#184](https://github.com/redotvideo/revideo/issues/184)) ([3e24139](https://github.com/redotvideo/revideo/commit/3e24139c75cf746db1233de5c7cf75a91af6018d)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* detect mov files correctly ([#176](https://github.com/redotvideo/revideo/issues/176)) ([be5b248](https://github.com/redotvideo/revideo/commit/be5b24899c91beea105dea89939bc1107163b8bd)) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* multiple players on same page ([#186](https://github.com/redotvideo/revideo/issues/186)) ([35b39ee](https://github.com/redotvideo/revideo/commit/35b39eea36f477f3044a65302c46018fe4f14dbc)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pause audio when scene ends ([#188](https://github.com/redotvideo/revideo/issues/188)) ([57b3724](https://github.com/redotvideo/revideo/commit/57b3724d377929c806fa85311a2a7bc495eb5171)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* set ffmpeg path in generate-audio ([#173](https://github.com/redotvideo/revideo/issues/173)) ([2dc429b](https://github.com/redotvideo/revideo/commit/2dc429b5a721fe9401fa36575fe39a8081d6f902)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.4.5 (2024-06-26) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** strip query string from video URL for warning ([#164](https://github.com/redotvideo/revideo/issues/164)) ([ea61226](https://github.com/redotvideo/revideo/commit/ea61226fc9838649636c007bbc98bffb3fc0e364)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* frame-sampling ([#165](https://github.com/redotvideo/revideo/issues/165)) ([d82d3e6](https://github.com/redotvideo/revideo/commit/d82d3e615cf6fa67696f4968220059a43bf846bf)) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* select decoder based on file type ([#168](https://github.com/redotvideo/revideo/issues/168)) ([a275273](https://github.com/redotvideo/revideo/commit/a2752730c245bb2beea820c75d68e4256cd046ea)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* encode video with wasm ([#162](https://github.com/redotvideo/revideo/issues/162)) ([c756fd8](https://github.com/redotvideo/revideo/commit/c756fd8293d49b8abc8887c94bfb8f0d04e65842)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract frames using webcodecs ([#156](https://github.com/redotvideo/revideo/issues/156)) ([7bb63d9](https://github.com/redotvideo/revideo/commit/7bb63d94086f91d734e0a895489fad1d5c4b2478)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let player use css served from cli ([#155](https://github.com/redotvideo/revideo/issues/155)) ([0f5c600](https://github.com/redotvideo/revideo/commit/0f5c600b43a0ef57f632c8e306bc7be361792351)) -* let user pass full puppeteer launch options ([#159](https://github.com/redotvideo/revideo/issues/159)) ([4022a09](https://github.com/redotvideo/revideo/commit/4022a098337266920d5a0511542766b449ba717f)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support hls video ([#160](https://github.com/redotvideo/revideo/issues/160)) ([deff17d](https://github.com/redotvideo/revideo/commit/deff17dd0899059727f88213207bfa942041243b)) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.4.3 (2024-06-24) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* let revideo serve also use assets from subfolders ([#149](https://github.com/redotvideo/revideo/issues/149)) ([3477969](https://github.com/redotvideo/revideo/commit/3477969dd24e5dc03392bcf6144494080c9b018e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* npm init shows correct setup commands for nextjs template ([#148](https://github.com/redotvideo/revideo/issues/148)) ([882925e](https://github.com/redotvideo/revideo/commit/882925ee897e4fd9c84d77ed9f73546ad39f3de1)) -* offset bug ([#157](https://github.com/redotvideo/revideo/issues/157)) ([1ddaa4f](https://github.com/redotvideo/revideo/commit/1ddaa4fbd500d3d3031a201261de651e6dbd5752)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* let user pass viteConfig in renderVideo, fix audio sync ([#153](https://github.com/redotvideo/revideo/issues/153)) ([b9d9cc7](https://github.com/redotvideo/revideo/commit/b9d9cc7b1590923f00864f5fa0d2263c0a4201e7)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.4.1 (2024-06-12) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* audio timing when rendering with multiple workers ([#144](https://github.com/redotvideo/revideo/issues/144)) ([7e59476](https://github.com/redotvideo/revideo/commit/7e59476851b1b8fb464dc626bad97b0b021d5fb3)) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* build player without config file, fix download file paths in cli ([#136](https://github.com/redotvideo/revideo/issues/136)) ([d529858](https://github.com/redotvideo/revideo/commit/d529858ecb76916512eaf0b1cbda0d78e450fe73)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* **ffmpeg:** set last image ([#133](https://github.com/redotvideo/revideo/issues/133)) ([416f960](https://github.com/redotvideo/revideo/commit/416f960b9ab1d755449add67295e52bc15f43568)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* let cli serve correct project detemined by --projectFile ([#143](https://github.com/redotvideo/revideo/issues/143)) ([91e2969](https://github.com/redotvideo/revideo/commit/91e2969d9d62685d5d7ebe1a5b52a86aeebad1d2)) -* let puppeteer use correct port when vite server uses another port ([#130](https://github.com/redotvideo/revideo/issues/130)) ([ab87cc5](https://github.com/redotvideo/revideo/commit/ab87cc527ab66d888ca956adc0496f60e2c4e065)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* rendering is slow in some cases ([#131](https://github.com/redotvideo/revideo/issues/131)) ([bbbbe4b](https://github.com/redotvideo/revideo/commit/bbbbe4bf183e15f40112fed4fe2287cd0348c4d4)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* select vite base port as render argument ([#125](https://github.com/redotvideo/revideo/issues/125)) ([ec5bc8d](https://github.com/redotvideo/revideo/commit/ec5bc8dbfc4d40b1381799bead8cf3774a728f66)) -* serve assets through cli ([#124](https://github.com/redotvideo/revideo/issues/124)) ([fdccde1](https://github.com/redotvideo/revideo/commit/fdccde12f058811382e7e2084ebe4b9e05af1b80)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.3.6 (2024-06-08) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* **ffmpeg:** looping of video tag ([#122](https://github.com/redotvideo/revideo/issues/122)) ([109c675](https://github.com/redotvideo/revideo/commit/109c675799987b11e4ad59c9c67059183a6c4005)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* url in readme ([#114](https://github.com/redotvideo/revideo/issues/114)) ([0257dfb](https://github.com/redotvideo/revideo/commit/0257dfb36043d3ebe01d791f71cc9162c6c228c1)) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add partial rendering function ([#107](https://github.com/redotvideo/revideo/issues/107)) ([d2e3f27](https://github.com/redotvideo/revideo/commit/d2e3f274506fc4cadd6d309e34889edb7a22ac4d)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.3.4 (2024-05-20) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** audios get quieter when there are many ([#106](https://github.com/redotvideo/revideo/issues/106)) ([9c32e7d](https://github.com/redotvideo/revideo/commit/9c32e7d3d5a726789984739870bedf4bcc31f5d8)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom ffmpeg path ([#93](https://github.com/redotvideo/revideo/issues/93)) ([a7554e4](https://github.com/redotvideo/revideo/commit/a7554e4a39adb7686188f415ad871ac3e391ced5)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* enable rendering with keeping connection open ([#90](https://github.com/redotvideo/revideo/issues/90)) ([f513f06](https://github.com/redotvideo/revideo/commit/f513f06f62f1ba3076cba8d75c0c76b2646487d2)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose render progress as argument ([#98](https://github.com/redotvideo/revideo/issues/98)) ([4470e9e](https://github.com/redotvideo/revideo/commit/4470e9e3715cdfbd36a54caa4978da2704d3f5f1)) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* react player component ([#101](https://github.com/redotvideo/revideo/issues/101)) ([e59b197](https://github.com/redotvideo/revideo/commit/e59b197be1d1d1b1940d2bdedbb3e3fb743125fc)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* serve project files for player when doing npx revideo serve ([#103](https://github.com/redotvideo/revideo/issues/103)) ([0112686](https://github.com/redotvideo/revideo/commit/0112686bb98a905ee084a842ba9e01d1d0a15d3b)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.3.2 (2024-05-09) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove comma in vite.config.ts ([#86](https://github.com/redotvideo/revideo/issues/86)) ([c1a35cf](https://github.com/redotvideo/revideo/commit/c1a35cf82f22271b7aec233df4a664136427c295)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add dimensions parameter to renderVideo ([#89](https://github.com/redotvideo/revideo/issues/89)) ([8aa7778](https://github.com/redotvideo/revideo/commit/8aa7778dc8242619eda4765a5702c271be80b0b3)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make progress logging optional through a callback ([#83](https://github.com/redotvideo/revideo/issues/83)) ([a9767dd](https://github.com/redotvideo/revideo/commit/a9767dda0cdc696547a1b2397a707a90a4f63a1a)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make transparent video optional ([#91](https://github.com/redotvideo/revideo/issues/91)) ([6a052d5](https://github.com/redotvideo/revideo/commit/6a052d52dcaff9a9eabe69d4a133f6092cc0ad3b)) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* parallel rendering, make ffmpeg exporter default ([#74](https://github.com/redotvideo/revideo/issues/74)) ([dc9ddd1](https://github.com/redotvideo/revideo/commit/dc9ddd11fddda82cde18a7be6988218cbd1daab2)) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* refactor cli and add reloading ([#82](https://github.com/redotvideo/revideo/issues/82)) ([91446eb](https://github.com/redotvideo/revideo/commit/91446eb76ad2f4b08c111aae61f6f87dd02d746c)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* transparent video ([#75](https://github.com/redotvideo/revideo/issues/75)) ([5f7b909](https://github.com/redotvideo/revideo/commit/5f7b9093327cd42de7a1c2933bc54a98cb36daa8)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -# 0.3.0 (2024-05-03) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* await font load without throwing async node error ([#69](https://github.com/redotvideo/revideo/issues/69)) ([fddebe6](https://github.com/redotvideo/revideo/commit/fddebe60a610af718c880b9e198eebe8555ea9a5)) -* better ffmpeg error when not installed ([#65](https://github.com/redotvideo/revideo/issues/65)) ([e5a7782](https://github.com/redotvideo/revideo/commit/e5a77826676d6155fa8f772ec56d4aa09954e350)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* ffmpeg bug when rendering multiple times ([#62](https://github.com/redotvideo/revideo/issues/62)) ([04cdc5b](https://github.com/redotvideo/revideo/commit/04cdc5b22a65e14669a127d98c175177e2ec6f14)) -* ffmpeg logs and remove non-public-folder path case ([#81](https://github.com/redotvideo/revideo/issues/81)) ([e492cc4](https://github.com/redotvideo/revideo/commit/e492cc47bac7c1542a287d7fab6fecb89b75fc0a)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* pin ffmpeg v6 ([#77](https://github.com/redotvideo/revideo/issues/77)) ([3e2a7cd](https://github.com/redotvideo/revideo/commit/3e2a7cda6cd7c2762d4db02e74f7ec68db020981)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent progress error when rendering from ui ([#71](https://github.com/redotvideo/revideo/issues/71)) ([534e089](https://github.com/redotvideo/revideo/commit/534e089380857dbdcf29ab4a8cef231dbe269708)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* release ([#79](https://github.com/redotvideo/revideo/issues/79)) ([3b3bd81](https://github.com/redotvideo/revideo/commit/3b3bd811f9807bb1932dadedc2263eb571196ded)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy effect in Safari ([#292](https://github.com/redotvideo/revideo/issues/292)) ([9c062b2](https://github.com/redotvideo/revideo/commit/9c062b26e48fbdb1905daae25a3fb34df82307d3)) -* **ui:** support small ranges ([#739](https://github.com/redotvideo/revideo/issues/739)) ([cf32d8b](https://github.com/redotvideo/revideo/commit/cf32d8b08b94f5044987eb554cd250fc79fbc99d)), closes [#738](https://github.com/redotvideo/revideo/issues/738) -* **ui:** use signals correctly ([#906](https://github.com/redotvideo/revideo/issues/906)) ([f67d691](https://github.com/redotvideo/revideo/commit/f67d691b5f2f6358120e9582a1839ef3d49c77b8)) -* **ui:** version comparison issue ([#520](https://github.com/redotvideo/revideo/issues/520)) ([93b5e08](https://github.com/redotvideo/revideo/commit/93b5e088b4a4fda0d2177cb2cc6680c34fa72d30)), closes [#519](https://github.com/redotvideo/revideo/issues/519) -* use correct scene sizes ([#146](https://github.com/redotvideo/revideo/issues/146)) ([f279638](https://github.com/redotvideo/revideo/commit/f279638f9ad7ed1f4c44900d48c10c2d6560946e)) -* use default ffmpeg path ([#68](https://github.com/redotvideo/revideo/issues/68)) ([ea86320](https://github.com/redotvideo/revideo/commit/ea863207760523ff2a24c765ade21e10c532929f)) -* **vite-plugin:** add missing headers to html ([#219](https://github.com/redotvideo/revideo/issues/219)) ([2552bcf](https://github.com/redotvideo/revideo/commit/2552bcfbe2e90f3d4b86810d39f8cee24349e405)), closes [#201](https://github.com/redotvideo/revideo/issues/201) -* **vite-plugin:** can't assign port ([#538](https://github.com/redotvideo/revideo/issues/538)) ([61b692b](https://github.com/redotvideo/revideo/commit/61b692bf97bb7e15d31469ada2e3dda84c2b99f8)) -* **vite-plugin:** create empty output directory if not exist ([#787](https://github.com/redotvideo/revideo/issues/787)) ([20cceef](https://github.com/redotvideo/revideo/commit/20cceef8525e809bff9706fcd7082d7e103a085b)) -* **vite-plugin:** fix js template ([#337](https://github.com/redotvideo/revideo/issues/337)) ([3b33d73](https://github.com/redotvideo/revideo/commit/3b33d73416541d491b633bada29f085f5489f6c2)) -* **vite-plugin:** handle unusual characters in file names ([#821](https://github.com/redotvideo/revideo/issues/821)) ([1e57497](https://github.com/redotvideo/revideo/commit/1e5749785d55a41605a5438eee08672ef01f3914)), closes [#764](https://github.com/redotvideo/revideo/issues/764) -* **vite-plugin:** ignore query param in devserver ([#351](https://github.com/redotvideo/revideo/issues/351)) ([5644d72](https://github.com/redotvideo/revideo/commit/5644d72d36adcdc817f0856aaff0be5507338cb8)) - - -### Code Refactoring - -* introduce improved names ([#425](https://github.com/redotvideo/revideo/issues/425)) ([4a2188d](https://github.com/redotvideo/revideo/commit/4a2188d339587fa658b2134befc3fe63c835c5d7)) -* remove legacy package ([6a84120](https://github.com/redotvideo/revideo/commit/6a84120d949a32dff0ad413a9f359510ff109af1)) - - -### Features - -* **2d:** add antialiased signal to Shape ([#282](https://github.com/redotvideo/revideo/issues/282)) ([7c6905d](https://github.com/redotvideo/revideo/commit/7c6905d72c6c2f49e10f0a80704c0afe3504d01b)) -* **2d:** add arcLength helper methods to Curve ([#627](https://github.com/redotvideo/revideo/issues/627)) ([3c7546e](https://github.com/redotvideo/revideo/commit/3c7546e7a509deb6fff8f669c3df0a69b492bd2e)) -* **2d:** add Bézier nodes ([#603](https://github.com/redotvideo/revideo/issues/603)) ([9841cfd](https://github.com/redotvideo/revideo/commit/9841cfdc3947ca4e6d6e42ed21eae88e855f855d)) -* **2d:** add cardinal points ([#636](https://github.com/redotvideo/revideo/issues/636)) ([2136a25](https://github.com/redotvideo/revideo/commit/2136a2558a9ed968ee505e4e5cce33d989dfdc13)), closes [#391](https://github.com/redotvideo/revideo/issues/391) -* **2d:** add closed property for circle ([#378](https://github.com/redotvideo/revideo/issues/378)) ([62a9605](https://github.com/redotvideo/revideo/commit/62a9605d4c54e7bf2d2d44d47bf769f5b27378a5)) -* **2d:** add completion property for curves ([#635](https://github.com/redotvideo/revideo/issues/635)) ([6577d6d](https://github.com/redotvideo/revideo/commit/6577d6ddfaf779ba02f3862d2a357166138b99ca)) -* **2d:** add default computed values for signals ([#259](https://github.com/redotvideo/revideo/issues/259)) ([18f61a6](https://github.com/redotvideo/revideo/commit/18f61a668420dec8afba52d52a6557e7a7919ba2)) -* **2d:** add fromDegrees method to Vector2 ([#622](https://github.com/redotvideo/revideo/issues/622)) ([e78b9d5](https://github.com/redotvideo/revideo/commit/e78b9d51674269ab82e0c2fe4c475b5799b94975)) -* **2d:** add Icon Component ([#306](https://github.com/redotvideo/revideo/issues/306)) ([3479631](https://github.com/redotvideo/revideo/commit/3479631ef34e39f90a8d8de441317672be1840d9)), closes [#305](https://github.com/redotvideo/revideo/issues/305) -* **2d:** add LaTeX component ([#228](https://github.com/redotvideo/revideo/issues/228)) ([4c26d2a](https://github.com/redotvideo/revideo/commit/4c26d2aaf0c697486639aa917cd5c585d3d0ea74)) -* **2d:** add line counter for CodeBlock ([#802](https://github.com/redotvideo/revideo/issues/802)) ([c3f9676](https://github.com/redotvideo/revideo/commit/c3f9676b6984731a09a44ab0b1fcfc226975fa08)) -* **2d:** add methods for rearranging children ([#81](https://github.com/redotvideo/revideo/issues/81)) ([63f6c1a](https://github.com/redotvideo/revideo/commit/63f6c1aa51ac4ecd093151c8cd30910f2e72bcac)) -* **2d:** add moveBelow, moveAbove and moveTo methods to Node ([#365](https://github.com/redotvideo/revideo/issues/365)) ([16752a3](https://github.com/redotvideo/revideo/commit/16752a3b8ae7461b33d6208a9675729f374e8324)) -* **2d:** add option for preformatted text ([#147](https://github.com/redotvideo/revideo/issues/147)) ([989be53](https://github.com/redotvideo/revideo/commit/989be532d86642e1125bb7fa62a801b09c1b8f26)) -* **2d:** add Path component ([#700](https://github.com/redotvideo/revideo/issues/700)) ([2128b6b](https://github.com/redotvideo/revideo/commit/2128b6bf871cabe19e1abc749f18945c78c01f84)) -* **2d:** add playbackRate signal to Video component ([#831](https://github.com/redotvideo/revideo/issues/831)) ([5902b82](https://github.com/redotvideo/revideo/commit/5902b824b36400876be0ee970e2c6211299faf21)), closes [#711](https://github.com/redotvideo/revideo/issues/711) -* **2d:** add Polygon component ([#463](https://github.com/redotvideo/revideo/issues/463)) ([15adb3e](https://github.com/redotvideo/revideo/commit/15adb3e312a4998b44c0b9c5fe5b5236f51c71c9)), closes [#455](https://github.com/redotvideo/revideo/issues/455) -* **2d:** add querying helpers ([#852](https://github.com/redotvideo/revideo/issues/852)) ([614de6b](https://github.com/redotvideo/revideo/commit/614de6bd8542322d1db4b123b875f6fad85cc4eb)) -* **2d:** add Ray node ([#628](https://github.com/redotvideo/revideo/issues/628)) ([649447c](https://github.com/redotvideo/revideo/commit/649447cd5f2089afc64cc7bd4b0276e69d1e9a30)) -* **2d:** add save and restore methods to nodes ([#406](https://github.com/redotvideo/revideo/issues/406)) ([870e194](https://github.com/redotvideo/revideo/commit/870e1947d97382bc6d82857c077140bbef7cf7e8)) -* **2d:** add skew property ([#803](https://github.com/redotvideo/revideo/issues/803)) ([eff7c7b](https://github.com/redotvideo/revideo/commit/eff7c7be0c013139140b398350242457736d48c7)) -* **2d:** add smooth corners and sharpness to rect ([#310](https://github.com/redotvideo/revideo/issues/310)) ([f7fbefd](https://github.com/redotvideo/revideo/commit/f7fbefd27f7f6972cfb5a45a68e5d0aed9593ae4)) -* **2d:** add spline node ([#514](https://github.com/redotvideo/revideo/issues/514)) ([3ce2111](https://github.com/redotvideo/revideo/commit/3ce2111309e698450dc4c6e2ad47024995863e73)) -* **2d:** add start and end signals to Grid node ([#761](https://github.com/redotvideo/revideo/issues/761)) ([e37ea80](https://github.com/redotvideo/revideo/commit/e37ea806b94e93c6324d8e1b502468925b731e8e)) -* **2d:** add SVG component ([#763](https://github.com/redotvideo/revideo/issues/763)) ([8eadc11](https://github.com/redotvideo/revideo/commit/8eadc11937d4201545894f2f5b204d477a3f9094)) -* **2d:** add textAlign property ([#451](https://github.com/redotvideo/revideo/issues/451)) ([3d15825](https://github.com/redotvideo/revideo/commit/3d15825f3cc5a35ba081a31510741b824f3bc6ab)), closes [#303](https://github.com/redotvideo/revideo/issues/303) -* **2d:** add video component property getter ([#240](https://github.com/redotvideo/revideo/issues/240)) ([59de5ab](https://github.com/redotvideo/revideo/commit/59de5ab2c089589773a2f9ad7588eda7d72693a7)) -* **2d:** add z-index property to nodes ([#398](https://github.com/redotvideo/revideo/issues/398)) ([4280af3](https://github.com/redotvideo/revideo/commit/4280af3b4b7bd5970fe5e743949a0fcca2c314f3)) -* **2d:** always clip images and videos ([#773](https://github.com/redotvideo/revideo/issues/773)) ([3938c59](https://github.com/redotvideo/revideo/commit/3938c59394bfc42e5562504687d783ff306d7d32)) -* **2d:** clamp opacity value between 0 and 1 ([#835](https://github.com/redotvideo/revideo/issues/835)) ([c54b2f8](https://github.com/redotvideo/revideo/commit/c54b2f837a8e8b872df3610f4cc6caa94a728500)), closes [#830](https://github.com/redotvideo/revideo/issues/830) -* **2d:** code bounding box helpers ([#948](https://github.com/redotvideo/revideo/issues/948)) ([0ffd56f](https://github.com/redotvideo/revideo/commit/0ffd56f5f8076913e687e5b908311aa7832d8b7b)) -* **2d:** code range helpers ([#947](https://github.com/redotvideo/revideo/issues/947)) ([044c9ac](https://github.com/redotvideo/revideo/commit/044c9acd6ee7e4e337fb4d51286126f583a8da6f)) -* **2d:** code selection and modification ([#163](https://github.com/redotvideo/revideo/issues/163)) ([e8e884a](https://github.com/redotvideo/revideo/commit/e8e884a1a5574425dbf15272718911c12cfa2327)) -* **2d:** construct lines using signals ([#133](https://github.com/redotvideo/revideo/issues/133)) ([2968a24](https://github.com/redotvideo/revideo/commit/2968a2426564469fb4f4343fe71a6d30e95361f2)) -* **2d:** expand animations and reduced motion ([#671](https://github.com/redotvideo/revideo/issues/671)) ([b8e9d03](https://github.com/redotvideo/revideo/commit/b8e9d03488f8ca7085b3e7e1b095a52f39f2bc89)) -* **2d:** immediate restore ([#736](https://github.com/redotvideo/revideo/issues/736)) ([634d51d](https://github.com/redotvideo/revideo/commit/634d51d2afe8a536673c364874f8f3d1a450b846)) -* **2d:** improve property declarations ([27e7d26](https://github.com/redotvideo/revideo/commit/27e7d267ee91bf1e8ca79686b6ec31347f9f4d41)) -* **2d:** improve Rect corner radius ([#120](https://github.com/redotvideo/revideo/issues/120)) ([b471fe0](https://github.com/redotvideo/revideo/commit/b471fe0e37c0a426d3af8299c9c3c22539e7df05)) -* **2d:** improve Video node ([#601](https://github.com/redotvideo/revideo/issues/601)) ([3801d83](https://github.com/redotvideo/revideo/commit/3801d83415bbdeeee5d6d53d0c18e5d9e78fba56)) -* **2d:** make `View2D` extend `Rect` ([#379](https://github.com/redotvideo/revideo/issues/379)) ([93db5fc](https://github.com/redotvideo/revideo/commit/93db5fc41617c0902e85fda90fbfc930c2b4634b)) -* **2d:** make Circle extend Curve ([#771](https://github.com/redotvideo/revideo/issues/771)) ([4c8cf19](https://github.com/redotvideo/revideo/commit/4c8cf1954093958eac507921dc18f67dd64b2052)) -* **2d:** make Polygon extend Curve ([#961](https://github.com/redotvideo/revideo/issues/961)) ([739c9fc](https://github.com/redotvideo/revideo/commit/739c9fccbc101f8b2eed680a11c00f317fdc4dd3)) -* **2d:** make Rect extend Curve ([#759](https://github.com/redotvideo/revideo/issues/759)) ([9810212](https://github.com/redotvideo/revideo/commit/9810212648824b9a2fa2ecd6b597e3319d20b325)) -* **2d:** nested Txt nodes ([#861](https://github.com/redotvideo/revideo/issues/861)) ([f2786d0](https://github.com/redotvideo/revideo/commit/f2786d0cd0d06065ca1e9eb9f6b4c11a74b6c283)), closes [#540](https://github.com/redotvideo/revideo/issues/540) -* **2d:** simplify layout prop ([c24cb12](https://github.com/redotvideo/revideo/commit/c24cb12a22b7c85fdfb051917fa9ee1e0911717c)) -* **2d:** support HMR for images ([#641](https://github.com/redotvideo/revideo/issues/641)) ([cf17520](https://github.com/redotvideo/revideo/commit/cf17520aa8ddf19dcfc419c63cf7255892d45b71)) -* **2d:** support letter spacing in Code ([#955](https://github.com/redotvideo/revideo/issues/955)) ([2a87c37](https://github.com/redotvideo/revideo/commit/2a87c37c832de86c4b524b33fd68806627daec8b)) -* **2d:** support tweening in applyState ([#859](https://github.com/redotvideo/revideo/issues/859)) ([b7ed2e2](https://github.com/redotvideo/revideo/commit/b7ed2e24773227e5b576ff056eb23de9b9ff1676)) -* **2d:** support tweening Line points ([#853](https://github.com/redotvideo/revideo/issues/853)) ([4bf37d7](https://github.com/redotvideo/revideo/commit/4bf37d74d2e4bb9d9cc034aff121a32da9a6d146)) -* **2d:** unify desired sizes ([#118](https://github.com/redotvideo/revideo/issues/118)) ([401a799](https://github.com/redotvideo/revideo/commit/401a79946b034a96b9abff2f3fb5efd6cc9080f3)) -* **2d:** unify layout properties ([#355](https://github.com/redotvideo/revideo/issues/355)) ([3cae97e](https://github.com/redotvideo/revideo/commit/3cae97ea704d0533020fa87326dacadcc037d517)), closes [#352](https://github.com/redotvideo/revideo/issues/352) -* **2d:** visual feedback about rendering process ([#681](https://github.com/redotvideo/revideo/issues/681)) ([d0495f5](https://github.com/redotvideo/revideo/commit/d0495f5c6396c05454a5323e4486ab4829adbc9e)) -* **2d:** warn about missing image source ([#817](https://github.com/redotvideo/revideo/issues/817)) ([6dcdb5f](https://github.com/redotvideo/revideo/commit/6dcdb5f3b83d4860b1557e4745972e0af68f92f3)) -* add `useDuration` helper ([#226](https://github.com/redotvideo/revideo/issues/226)) ([fa97d6c](https://github.com/redotvideo/revideo/commit/fa97d6c7f076f287c9b86d2f8852341bd368ef1c)), closes [#171](https://github.com/redotvideo/revideo/issues/171) -* add advanced caching ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2a644c9](https://github.com/redotvideo/revideo/commit/2a644c9315acfcc5280a5eacc9904df140a61e4f)) -* add audio volume control through arrow keys ([#856](https://github.com/redotvideo/revideo/issues/856)) ([8b86fd4](https://github.com/redotvideo/revideo/commit/8b86fd4e70f91a0d5b1150d760427ca355666341)) -* add base class for shapes ([#67](https://github.com/redotvideo/revideo/issues/67)) ([d38c172](https://github.com/redotvideo/revideo/commit/d38c1724e129c553739cbfc27c4e5cd8f737f067)) -* add basic documentation structure ([#10](https://github.com/redotvideo/revideo/issues/10)) ([1e46433](https://github.com/redotvideo/revideo/commit/1e46433af37e8fec18dec6efc7dc1e3b70d9a869)), closes [#2](https://github.com/redotvideo/revideo/issues/2) -* add basic logger ([#88](https://github.com/redotvideo/revideo/issues/88)) ([3d82e86](https://github.com/redotvideo/revideo/commit/3d82e863af3dc88b3709adbcd0b84e790d05c3b8)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* add basic transform to Node class ([#83](https://github.com/redotvideo/revideo/issues/83)) ([9e114c8](https://github.com/redotvideo/revideo/commit/9e114c8830a99c78e6a4fd9265b0e7552758af14)) -* add cloning ([#80](https://github.com/redotvideo/revideo/issues/80)) ([47d7a0f](https://github.com/redotvideo/revideo/commit/47d7a0fa5da9a03d8ed91557db651f6f960e28b1)) -* add CodeBlock component based on code-fns to 2D ([#78](https://github.com/redotvideo/revideo/issues/78)) ([ad346f1](https://github.com/redotvideo/revideo/commit/ad346f118d63b1e321ec315e1c70b925670124a1)) -* add coordinates to preview ([#737](https://github.com/redotvideo/revideo/issues/737)) ([330c1f9](https://github.com/redotvideo/revideo/commit/330c1f962fb920269301e7ee8a2c49cbfc723d85)) -* add default renderer ([#63](https://github.com/redotvideo/revideo/issues/63)) ([9255490](https://github.com/redotvideo/revideo/commit/92554900965fe088538f5e703dbab2fd84f904d7)), closes [#56](https://github.com/redotvideo/revideo/issues/56) [#58](https://github.com/redotvideo/revideo/issues/58) -* add DEG2RAD and RAD2DEG constants ([#630](https://github.com/redotvideo/revideo/issues/630)) ([01801e8](https://github.com/redotvideo/revideo/commit/01801e8766058e75a6a020400650fb00f8f430cc)) -* add deprecation support ([#130](https://github.com/redotvideo/revideo/issues/130)) ([da0e104](https://github.com/redotvideo/revideo/commit/da0e104451af72eedb3eedd998f60b305fffdb0e)) -* add docs to monorepo ([#22](https://github.com/redotvideo/revideo/issues/22)) ([129d557](https://github.com/redotvideo/revideo/commit/129d557004c63df7a4ed514d0503709f03cf6e6b)) -* add E2E testing ([#101](https://github.com/redotvideo/revideo/issues/101)) ([6398c54](https://github.com/redotvideo/revideo/commit/6398c54e4c4d6667ce9f45b9bbef6ea110ea2215)), closes [#42](https://github.com/redotvideo/revideo/issues/42) -* add ease back interp functions ([#30](https://github.com/redotvideo/revideo/issues/30)) ([c11046d](https://github.com/redotvideo/revideo/commit/c11046d939bf5a29e28bda0ef97feabe2f985a0f)) -* add eslint ([658f468](https://github.com/redotvideo/revideo/commit/658f468318c8ad88088bd5230172fb4d0bc2af00)) -* add experimental features ([#876](https://github.com/redotvideo/revideo/issues/876)) ([498d387](https://github.com/redotvideo/revideo/commit/498d3871d05d4dcc83453654bec7762d2ab32e7e)) -* add Grid node ([e1f83da](https://github.com/redotvideo/revideo/commit/e1f83da1f43d20d392df4acb11e3df9cc457585d)) -* add inspection ([#82](https://github.com/redotvideo/revideo/issues/82)) ([4d7f2ae](https://github.com/redotvideo/revideo/commit/4d7f2aee6daeda1a2146b632dfdc28b455295776)) -* add layered layout ([381b2c0](https://github.com/redotvideo/revideo/commit/381b2c083d90aa4fe815370afd0138dde114bf4a)) -* add LayoutText ([328b7b7](https://github.com/redotvideo/revideo/commit/328b7b7f193b60223269002812f29922bc78132e)) -* add markdown logs ([#138](https://github.com/redotvideo/revideo/issues/138)) ([e42447a](https://github.com/redotvideo/revideo/commit/e42447a0c07a8192c06d21c5f1801f0266279075)) -* add meta files ([#28](https://github.com/redotvideo/revideo/issues/28)) ([e29f7d0](https://github.com/redotvideo/revideo/commit/e29f7d0ed01c7fb84f0931be5485fdde1aa0a5c2)), closes [#7](https://github.com/redotvideo/revideo/issues/7) -* add middle cardinal point ([#758](https://github.com/redotvideo/revideo/issues/758)) ([b036eaf](https://github.com/redotvideo/revideo/commit/b036eafc00381831c08267a78cf9d74973f4025a)) -* add missing flexbox properties ([#405](https://github.com/redotvideo/revideo/issues/405)) ([4e78b4b](https://github.com/redotvideo/revideo/commit/4e78b4b2fe4df42ce0a8da6fd41ad38b0104e7f5)) -* add missing layout props ([#72](https://github.com/redotvideo/revideo/issues/72)) ([f808a56](https://github.com/redotvideo/revideo/commit/f808a562b192fd03dba4b0d353284db344d6a80b)) -* add new hooks for plugins ([#679](https://github.com/redotvideo/revideo/issues/679)) ([74e18bc](https://github.com/redotvideo/revideo/commit/74e18bce71abd7e26a6415240603241b48cb36c2)) -* add node spawners ([#149](https://github.com/redotvideo/revideo/issues/149)) ([da18a4e](https://github.com/redotvideo/revideo/commit/da18a4e24104022a84ecd6cec1666b520186058f)) -* add option to group output by scenes ([#477](https://github.com/redotvideo/revideo/issues/477)) ([9934593](https://github.com/redotvideo/revideo/commit/99345937e7ac92fb674fdee10288e467ffd941e2)) -* add params to render function ([#10](https://github.com/redotvideo/revideo/issues/10)) ([b23fb9d](https://github.com/redotvideo/revideo/commit/b23fb9de3473eca9de23b8327c2c650f54c5c66b)) -* add polyline ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4ceaf84](https://github.com/redotvideo/revideo/commit/4ceaf842915ac43d81f292c58a4dc73a8d1bb8e9)) -* add pull request verification ([d91bab5](https://github.com/redotvideo/revideo/commit/d91bab55832fed3e494842e9e17eed5281efecbb)) -* add random number generator ([#116](https://github.com/redotvideo/revideo/issues/116)) ([d505312](https://github.com/redotvideo/revideo/commit/d5053123eef308c7a2a61d92b6e76c637f4ed0b8)), closes [#14](https://github.com/redotvideo/revideo/issues/14) -* add rendering again ([#43](https://github.com/redotvideo/revideo/issues/43)) ([c10d3db](https://github.com/redotvideo/revideo/commit/c10d3dbb63f6248eda04128ef0aa9d72c1edfcf7)) -* add reparent helper ([80b95a9](https://github.com/redotvideo/revideo/commit/80b95a9ce89d4a2eeea7e467257486e961602d69)) -* add scaffolding package ([#36](https://github.com/redotvideo/revideo/issues/36)) ([266a561](https://github.com/redotvideo/revideo/commit/266a561c619b57b403ec9c64185985b48bff29da)), closes [#30](https://github.com/redotvideo/revideo/issues/30) -* add support for meta files ([#11](https://github.com/redotvideo/revideo/issues/11)) ([456790a](https://github.com/redotvideo/revideo/commit/456790ab8c88bf28baa4843078013ff881c1a439)) -* add support for npm workspaces ([741567f](https://github.com/redotvideo/revideo/commit/741567f8af4185a2b1bc5284064514d96e75f5f2)) -* add Text and Image components ([#70](https://github.com/redotvideo/revideo/issues/70)) ([85c7dcd](https://github.com/redotvideo/revideo/commit/85c7dcdb4f8ca2f0bfb03950c85a8d6f6652fcdf)) -* add timeline and dynamic variable change to video player ([#22](https://github.com/redotvideo/revideo/issues/22)) ([af26c93](https://github.com/redotvideo/revideo/commit/af26c93b34e98bd4bf563290d2050154b5d0561c)) -* add video node ([#86](https://github.com/redotvideo/revideo/issues/86)) ([f4aa654](https://github.com/redotvideo/revideo/commit/f4aa65437a18cc85b00199f80cd5e04654c00c4b)) -* add volume parameter for media and make playbackrate work with audio export ([#9](https://github.com/redotvideo/revideo/issues/9)) ([9e0d67b](https://github.com/redotvideo/revideo/commit/9e0d67bade97ab6aefb9198c3b7910e26a857ffa)) -* added a theme property to the CodeBlock component ([#279](https://github.com/redotvideo/revideo/issues/279)) ([fe34fa8](https://github.com/redotvideo/revideo/commit/fe34fa8ebfe66cd356fb1c3d85adedef11e03b45)) -* added color space option to Project and Player ([#89](https://github.com/redotvideo/revideo/issues/89)) ([e1e2ac4](https://github.com/redotvideo/revideo/commit/e1e2ac44ea35a9280b31e57fb365a227c7d2bba0)), closes [#80](https://github.com/redotvideo/revideo/issues/80) -* added Color Space option to Rendering panel ([#24](https://github.com/redotvideo/revideo/issues/24)) ([33f691d](https://github.com/redotvideo/revideo/commit/33f691de086dbdb40841ba04a0ba5446a06056bb)) -* added custom resolution inputs to the rendering pane ([#20](https://github.com/redotvideo/revideo/issues/20)) ([1f799b6](https://github.com/redotvideo/revideo/commit/1f799b695e54f6cf3a16ede61a82a53be2e0c803)) -* added deepTween function and rewrote colorTween to use colorjs.io ([#88](https://github.com/redotvideo/revideo/issues/88)) ([eb7ca3c](https://github.com/redotvideo/revideo/commit/eb7ca3c8974ab2b2c905338a01e900c8938805b5)), closes [#73](https://github.com/redotvideo/revideo/issues/73) [#78](https://github.com/redotvideo/revideo/issues/78) -* added file type and quality options to rendering panel ([#50](https://github.com/redotvideo/revideo/issues/50)) ([bee71ef](https://github.com/redotvideo/revideo/commit/bee71ef2673c269db47a4433831720b7ad0fb4e8)), closes [#24](https://github.com/redotvideo/revideo/issues/24) -* added useContext and useContextAfter hooks ([#63](https://github.com/redotvideo/revideo/issues/63)) ([352e131](https://github.com/redotvideo/revideo/commit/352e13104361389e81d96eadeb41a680eaafafdb)), closes [#58](https://github.com/redotvideo/revideo/issues/58) -* animation player ([#92](https://github.com/redotvideo/revideo/issues/92)) ([8155118](https://github.com/redotvideo/revideo/commit/8155118eb13dc2a8b422b81aabacc923ce2f919b)) -* AnimationClip ([681146a](https://github.com/redotvideo/revideo/commit/681146a8e92a4360975472939eb2494b89f02eff)) -* application settings ([#697](https://github.com/redotvideo/revideo/issues/697)) ([54016f5](https://github.com/redotvideo/revideo/commit/54016f5cf3500abe13a217537307a3735d60f536)), closes [#167](https://github.com/redotvideo/revideo/issues/167) -* arc tween ratio ([27dbb0b](https://github.com/redotvideo/revideo/commit/27dbb0bd2749600cdee6944a469ee10870989a28)) -* audio offset ([88f40aa](https://github.com/redotvideo/revideo/commit/88f40aa93bb23090058965bd7d76b81106804c05)) -* audio playback ([e9a6fdb](https://github.com/redotvideo/revideo/commit/e9a6fdb51e62dd8e7a0ca43e7ae6908ff7d92c53)) -* audio toggle control ([300f18e](https://github.com/redotvideo/revideo/commit/300f18e9c9c0ad559edb14bbfce889a717ab15c2)) -* audio waveform track ([9aff955](https://github.com/redotvideo/revideo/commit/9aff955ef472644834d1232b90a93b935127fffd)) -* auto meta fields ([#565](https://github.com/redotvideo/revideo/issues/565)) ([645af6d](https://github.com/redotvideo/revideo/commit/645af6d2b7e8d9332b6f08419c318ee9434d7f3f)) -* better children and spawners ([#858](https://github.com/redotvideo/revideo/issues/858)) ([9b5c23d](https://github.com/redotvideo/revideo/commit/9b5c23d2076180cf710656c817369a07b253e3ec)) -* better dependencies between packages ([#152](https://github.com/redotvideo/revideo/issues/152)) ([a0a37b3](https://github.com/redotvideo/revideo/commit/a0a37b3645fcb91206e65fd0a95b2f486b308c75)) -* better dependencies between packages ([#153](https://github.com/redotvideo/revideo/issues/153)) ([59a73d4](https://github.com/redotvideo/revideo/commit/59a73d49a7b92c416e1f836a0f53bb676e9f924b)) -* better naming conventions ([#62](https://github.com/redotvideo/revideo/issues/62)) ([a9d764f](https://github.com/redotvideo/revideo/commit/a9d764fbceb639497ef45f44c90f9b6e408213d3)) -* better playback controls ([796ae33](https://github.com/redotvideo/revideo/commit/796ae3356c4853a38e1e6471cb62e73b47f02fd2)) -* better time events ([8c2bf27](https://github.com/redotvideo/revideo/commit/8c2bf27ac7bac9d6f77a15ec99d433baa4329c0e)) -* better time events ([1acd71b](https://github.com/redotvideo/revideo/commit/1acd71bb4d13d927040b42a8f77faf87ee185a3b)) -* blob rendering ([4dff949](https://github.com/redotvideo/revideo/commit/4dff949de9a7cfa781e9738c625c5c46d63e1da5)) -* browser based renderer ([13dc24c](https://github.com/redotvideo/revideo/commit/13dc24ca69e31dab911cc1211b56684c28425e85)) -* button for opening the output directory ([#663](https://github.com/redotvideo/revideo/issues/663)) ([79f320c](https://github.com/redotvideo/revideo/commit/79f320c07c422ca927b34bf339094fe0e70ffd0d)) -* change range api in render function ([#66](https://github.com/redotvideo/revideo/issues/66)) ([db86fb5](https://github.com/redotvideo/revideo/commit/db86fb528b343db66757796137276ebd7c4c3157)) -* circular mask for surfaces ([4db62d8](https://github.com/redotvideo/revideo/commit/4db62d8a6572dda0931e0826f2fab359ee9accad)) -* clamp function ([94543d1](https://github.com/redotvideo/revideo/commit/94543d1079a46d9a8c8d26b87bd91dc2c5e17aea)) -* color picker ([ac48055](https://github.com/redotvideo/revideo/commit/ac48055b4ffd833fb1fca6fcd0b2fd7d38a57aab)) -* configurable framerate and resolution ([a715f5c](https://github.com/redotvideo/revideo/commit/a715f5c1acd28e2e1dd5496ea8cb4b23b4cea7be)) -* configurable framerate and resolution ([a591683](https://github.com/redotvideo/revideo/commit/a591683f93e92f1f41ad89fd7d23eea67d32e3ac)) -* connections ([49254fc](https://github.com/redotvideo/revideo/commit/49254fc36cc03c8f8557c14ff86ab38f56229b04)) -* convert built-in types to webgl ([#929](https://github.com/redotvideo/revideo/issues/929)) ([a0f0b7d](https://github.com/redotvideo/revideo/commit/a0f0b7d8996547e1a316097422ec02bddeeccec6)) -* **core:** accept PossibleMatrix2D when transforming bbox ([#770](https://github.com/redotvideo/revideo/issues/770)) ([ae05282](https://github.com/redotvideo/revideo/commit/ae0528266f5794aa0517f32b897c5fe6ff092a58)) -* **core:** add `debug` helper function ([#293](https://github.com/redotvideo/revideo/issues/293)) ([b870873](https://github.com/redotvideo/revideo/commit/b8708732af0fc08d9ff9eeecbbb77d65f1b36eb8)) -* **core:** add `gauss` function to `Random` ([#709](https://github.com/redotvideo/revideo/issues/709)) ([d7de3d5](https://github.com/redotvideo/revideo/commit/d7de3d56d05dc88c7cbd557a73a25d083abb54e4)) -* **core:** add `loopFor` function ([#650](https://github.com/redotvideo/revideo/issues/650)) ([a42eb52](https://github.com/redotvideo/revideo/commit/a42eb520fef7de06038f0df9eaad1fa35122c97a)) -* **core:** add `loopUntil` function ([#624](https://github.com/redotvideo/revideo/issues/624)) ([b7aa4b5](https://github.com/redotvideo/revideo/commit/b7aa4b57c76374e67bd19ce40c44cd650cf67327)) -* **core:** add configurable line numbers ([#44](https://github.com/redotvideo/revideo/issues/44)) ([831334c](https://github.com/redotvideo/revideo/commit/831334ca32a504991e875af37446fef4f055c285)), closes [#12](https://github.com/redotvideo/revideo/issues/12) -* **core:** add fadeTransition ([#384](https://github.com/redotvideo/revideo/issues/384)) ([a248785](https://github.com/redotvideo/revideo/commit/a248785e87d1c6ebc08581f4fda6be428a89824c)) -* **core:** add helper method for arc lerps ([#640](https://github.com/redotvideo/revideo/issues/640)) ([bc304d2](https://github.com/redotvideo/revideo/commit/bc304d242e4819650fa86636180ac5594ba743d3)) -* **core:** add intersects method to BBox ([#485](https://github.com/redotvideo/revideo/issues/485)) ([604b0e7](https://github.com/redotvideo/revideo/commit/604b0e7c22b4e5d196310e650f7c764526a80712)) -* **core:** add Matrix2D type ([#340](https://github.com/redotvideo/revideo/issues/340)) ([66b41e6](https://github.com/redotvideo/revideo/commit/66b41e6beaca5c2ba4b6bd1a7e68ca16d183b0e9)) -* **core:** add rotate and polarLerp methods to vector ([#756](https://github.com/redotvideo/revideo/issues/756)) ([a18bac3](https://github.com/redotvideo/revideo/commit/a18bac3c1755fa3e3240b5469ac7bc1f08b4fd24)) -* **core:** add spring interpolation ([#356](https://github.com/redotvideo/revideo/issues/356)) ([1463b15](https://github.com/redotvideo/revideo/commit/1463b1592e22fad9d8298c11270e2099119e2229)) -* **core:** add static properties to Vector2 corresponding to Origins ([#855](https://github.com/redotvideo/revideo/issues/855)) ([9bbd249](https://github.com/redotvideo/revideo/commit/9bbd249e1f7864a49ff2da49bc18d9309888f902)), closes [#844](https://github.com/redotvideo/revideo/issues/844) -* **core:** add step parameter to range function ([#373](https://github.com/redotvideo/revideo/issues/373)) ([923209a](https://github.com/redotvideo/revideo/commit/923209a4106c8e7f570853dcc47a10e65e0d04d8)) -* **core:** additional easing functions ([#274](https://github.com/redotvideo/revideo/issues/274)) ([f81ce43](https://github.com/redotvideo/revideo/commit/f81ce43019fe253e99f4ab6311c2251b40e2eae3)) -* **core:** allow getting real size of scenes ([#889](https://github.com/redotvideo/revideo/issues/889)) ([3a6a672](https://github.com/redotvideo/revideo/commit/3a6a672bed9098bec81d9c5347459317cbbf4c2a)) -* **core:** allow ordering of scenes during transition ([#832](https://github.com/redotvideo/revideo/issues/832)) ([7a62b59](https://github.com/redotvideo/revideo/commit/7a62b59c377dca8bf1f56bb551b47b9a75a6afba)), closes [#369](https://github.com/redotvideo/revideo/issues/369) -* **core:** disallow tweening to/from undefined values ([#257](https://github.com/redotvideo/revideo/issues/257)) ([d4bb791](https://github.com/redotvideo/revideo/commit/d4bb79145300b52c4b4d101df2afaff5ea11a9e9)) -* **core:** error double event name ([#341](https://github.com/redotvideo/revideo/issues/341)) ([053b2a6](https://github.com/redotvideo/revideo/commit/053b2a6c22c4e726e3962fdaf0a2e8d149889a9b)) -* **core:** expand Vector2 type ([#579](https://github.com/redotvideo/revideo/issues/579)) ([010bba5](https://github.com/redotvideo/revideo/commit/010bba593e1c3ce368ab409dce09dbde8f999958)) -* **core:** helper methods for references ([#775](https://github.com/redotvideo/revideo/issues/775)) ([3255add](https://github.com/redotvideo/revideo/commit/3255add1b05a37017d60c2eaccf4368ab4f7f568)) -* **core:** hot module replacement for audio ([#793](https://github.com/redotvideo/revideo/issues/793)) ([d40c1a8](https://github.com/redotvideo/revideo/commit/d40c1a83c645c8984cca1ebc6fe687b445a0550c)) -* **core:** improve `SignalGenerator` chaining ([#651](https://github.com/redotvideo/revideo/issues/651)) ([de72f1f](https://github.com/redotvideo/revideo/commit/de72f1f70edf7cc48fd670d9b38e0cc27f8bdb57)), closes [#480](https://github.com/redotvideo/revideo/issues/480) -* **core:** improve loop function ([#952](https://github.com/redotvideo/revideo/issues/952)) ([66c18bb](https://github.com/redotvideo/revideo/commit/66c18bb41617a4fbe9e3be5253b3ced02caf0cae)) -* **core:** presentation mode ([#486](https://github.com/redotvideo/revideo/issues/486)) ([c4f2e48](https://github.com/redotvideo/revideo/commit/c4f2e48ae6c65804ae46edd88c29125b7f983d5c)) -* **core:** preserve custom fields in meta files ([#534](https://github.com/redotvideo/revideo/issues/534)) ([2e3e22e](https://github.com/redotvideo/revideo/commit/2e3e22efd62ba671624526fc10ea7dd2a04a5240)) -* **core:** seek to beginning of timeline in disable loop mode ([#823](https://github.com/redotvideo/revideo/issues/823)) ([3595646](https://github.com/redotvideo/revideo/commit/359564645575c6f20870f4bf9642e72404717f14)), closes [#822](https://github.com/redotvideo/revideo/issues/822) -* **core:** spawn function ([#951](https://github.com/redotvideo/revideo/issues/951)) ([51d8cf0](https://github.com/redotvideo/revideo/commit/51d8cf0b64592fe56a0e31b5c3acc155226a9b2e)) -* **core:** support Origin in slideTransition ([#801](https://github.com/redotvideo/revideo/issues/801)) ([0a3df28](https://github.com/redotvideo/revideo/commit/0a3df2829fd7b308604eda3d005e90daf032e284)) -* **core:** switch to vitest ([#99](https://github.com/redotvideo/revideo/issues/99)) ([762eeb0](https://github.com/redotvideo/revideo/commit/762eeb0a99c2f378d20dbd147f815ba6736099d9)), closes [#48](https://github.com/redotvideo/revideo/issues/48) -* **core:** thread pausing ([#639](https://github.com/redotvideo/revideo/issues/639)) ([c0aab58](https://github.com/redotvideo/revideo/commit/c0aab588b18c267d3bc04e25b2f80c792496dda2)) -* **core:** tree shaking ([#523](https://github.com/redotvideo/revideo/issues/523)) ([65fec78](https://github.com/redotvideo/revideo/commit/65fec7825fda33812b13f57bfeb1d82193a5d190)) -* create new release ([20282e9](https://github.com/redotvideo/revideo/commit/20282e9745a42c5bf62d104afe65fa71fbd973a2)) -* **create:** add exporter selection ([#673](https://github.com/redotvideo/revideo/issues/673)) ([82fd47d](https://github.com/redotvideo/revideo/commit/82fd47d93ffad6125a685880a132ce0d3a388693)) -* **create:** include simple animation ([#931](https://github.com/redotvideo/revideo/issues/931)) ([925f63f](https://github.com/redotvideo/revideo/commit/925f63f3588922224511b1687ac44ba7b9920d83)) -* **create:** support command-line arguments ([#668](https://github.com/redotvideo/revideo/issues/668)) ([fa62a98](https://github.com/redotvideo/revideo/commit/fa62a9868d5cd33f1cb6ac5f147cca81917457dc)) -* custom loaders ([5a3ab9a](https://github.com/redotvideo/revideo/commit/5a3ab9ad4d2d332d99d594c8812adc32a8d4b04c)) -* decouple Konva from core ([#54](https://github.com/redotvideo/revideo/issues/54)) ([02b5c75](https://github.com/redotvideo/revideo/commit/02b5c75dba482dcf90a626142c8952f29009e299)), closes [#49](https://github.com/redotvideo/revideo/issues/49) [#31](https://github.com/redotvideo/revideo/issues/31) -* detect circular signal dependencies ([#129](https://github.com/redotvideo/revideo/issues/129)) ([6fcdb41](https://github.com/redotvideo/revideo/commit/6fcdb41df90dca1c39537a4f6d4960ab551f4d6e)) -* directional padding and margin ([441d121](https://github.com/redotvideo/revideo/commit/441d1210adbd85406d7dbe2edc21da044724a1ee)) -* display array values in inspector ([#670](https://github.com/redotvideo/revideo/issues/670)) ([e71d74c](https://github.com/redotvideo/revideo/commit/e71d74c9c04995393ad8ee942b8e6e5baa6f982f)) -* display current package versions ([#501](https://github.com/redotvideo/revideo/issues/501)) ([2972f67](https://github.com/redotvideo/revideo/commit/2972f673e201310e69688ab6f2c1adf1cddf2bf3)) -* display time in seconds ([0290a9c](https://github.com/redotvideo/revideo/commit/0290a9cb0775693a4cde7d1fa3bee90c9329dcfb)) -* **docs:** add logo ([#23](https://github.com/redotvideo/revideo/issues/23)) ([78698e4](https://github.com/redotvideo/revideo/commit/78698e40a428d5a1aa469fbdad9c7c88e82230bc)) -* **docs:** add migration guide for v10 ([#37](https://github.com/redotvideo/revideo/issues/37)) ([0905daa](https://github.com/redotvideo/revideo/commit/0905daa60f42943554555834339d3ab70fe9b9c3)) -* **docs:** add search ([#335](https://github.com/redotvideo/revideo/issues/335)) ([48f74a6](https://github.com/redotvideo/revideo/commit/48f74a60d54cc52c7f069a9ec39071c99163bd19)) -* **docs:** add snippet toggle for fiddles ([#598](https://github.com/redotvideo/revideo/issues/598)) ([d8b4e7c](https://github.com/redotvideo/revideo/commit/d8b4e7cb8726dc8622e6fecfe1321c7c4c396cae)) -* **docs:** added CodeBlock documentation ([#302](https://github.com/redotvideo/revideo/issues/302)) ([73f7221](https://github.com/redotvideo/revideo/commit/73f7221536e09d5cf77f75ca173d1a7637d5b98f)) -* **docs:** always re-build api references in `build` mode ([#298](https://github.com/redotvideo/revideo/issues/298)) ([27a4d96](https://github.com/redotvideo/revideo/commit/27a4d96593d8e925385252b0d6f62646cd9fa6d5)), closes [#294](https://github.com/redotvideo/revideo/issues/294) -* **docs:** fiddle editor ([#542](https://github.com/redotvideo/revideo/issues/542)) ([3c68fef](https://github.com/redotvideo/revideo/commit/3c68fefdf7bf375ee9345aba7dbf9e5ff35e3c3d)) -* **docs:** fiddle error highlighting ([#713](https://github.com/redotvideo/revideo/issues/713)) ([f281aff](https://github.com/redotvideo/revideo/commit/f281aff27e31c7e06a415cdbfc44157b1d13a2f1)) -* **docs:** import folding ([#706](https://github.com/redotvideo/revideo/issues/706)) ([bdb035f](https://github.com/redotvideo/revideo/commit/bdb035f045f96e58cadbe7f9e6e3d25e2ffb04b2)) -* **docs:** improve Fiddle functionality ([#642](https://github.com/redotvideo/revideo/issues/642)) ([fd3d6b3](https://github.com/redotvideo/revideo/commit/fd3d6b38c04b7350c8337556801b8c54b4439033)), closes [#637](https://github.com/redotvideo/revideo/issues/637) -* **docs:** improve the release blog ([#410](https://github.com/redotvideo/revideo/issues/410)) ([f56bbdb](https://github.com/redotvideo/revideo/commit/f56bbdb4a95e62035f277737ea5fba675e591270)) -* **docs:** visual changes ([be83edf](https://github.com/redotvideo/revideo/commit/be83edf847fb35cc77590ff5720f9eca79e9b787)) -* editor improvements ([#121](https://github.com/redotvideo/revideo/issues/121)) ([e8b32ce](https://github.com/redotvideo/revideo/commit/e8b32ceff1b8216282c4b5713508ce1172645e20)) -* export everything from entry points ([#710](https://github.com/redotvideo/revideo/issues/710)) ([3c885d9](https://github.com/redotvideo/revideo/commit/3c885d9083b52fbbaccf1e2560ae50817949bc52)) -* expose parts of player to outside of shadow root ([#956](https://github.com/redotvideo/revideo/issues/956)) ([c996d39](https://github.com/redotvideo/revideo/commit/c996d394dda9ba8c6a32f0360bf09e722ec15b0e)), closes [#950](https://github.com/redotvideo/revideo/issues/950) -* expose revideo project as web service ([#29](https://github.com/redotvideo/revideo/issues/29)) ([c2a2a96](https://github.com/redotvideo/revideo/commit/c2a2a96db199f772471833cf51bddd2574f08289)) -* extract konva to separate package ([#60](https://github.com/redotvideo/revideo/issues/60)) ([4ecad3c](https://github.com/redotvideo/revideo/commit/4ecad3ca2732bd5147af670c230f8f959129a707)) -* filter reordering ([#119](https://github.com/redotvideo/revideo/issues/119)) ([2398d0f](https://github.com/redotvideo/revideo/commit/2398d0f9d57f36b47c9c66a988ca5607e9a3a30e)) -* finalize custom exporters ([#660](https://github.com/redotvideo/revideo/issues/660)) ([6a50430](https://github.com/redotvideo/revideo/commit/6a50430cdf9928992ca078eba39c484a5253da2b)) -* follow utility ([fddfc67](https://github.com/redotvideo/revideo/commit/fddfc67a42fc0f8e2a6f76d00a30c813592caf9e)) -* force rendering to restart seek time ([#14](https://github.com/redotvideo/revideo/issues/14)) ([e94027a](https://github.com/redotvideo/revideo/commit/e94027a36fe2a0b11f3aa42bb3fa869c10fbe1ea)), closes [#6](https://github.com/redotvideo/revideo/issues/6) -* framerate-independent timing ([#64](https://github.com/redotvideo/revideo/issues/64)) ([6891f59](https://github.com/redotvideo/revideo/commit/6891f5974145878bc18f200e70cff5117ac32bd3)), closes [#57](https://github.com/redotvideo/revideo/issues/57) -* function components ([178db3d](https://github.com/redotvideo/revideo/commit/178db3d95c091e9abdf79e67548836332f40dc89)) -* general improvements ([320cced](https://github.com/redotvideo/revideo/commit/320ccede3d764b8aabbcea2d92ee808efa36708a)) -* general improvements ([dbff3cc](https://github.com/redotvideo/revideo/commit/dbff3cce379fb18eec5900ef9d90ba752ab826b4)) -* get name from meta file ([#552](https://github.com/redotvideo/revideo/issues/552)) ([ae2ed8a](https://github.com/redotvideo/revideo/commit/ae2ed8a5998768f160ec340d8b63d600d27bc15c)) -* grid ([d201a4d](https://github.com/redotvideo/revideo/commit/d201a4d09393001f7106c2f33b17b49434f047e7)) -* grid and debug overlays ([895a53a](https://github.com/redotvideo/revideo/commit/895a53ab4222c8d57a3e0d924181ee370b1356d7)) -* grid overlay ([f7aca18](https://github.com/redotvideo/revideo/commit/f7aca1854c390c90bea3614180eb73b1f91375b8)) -* implement absolute scale setter ([842079a](https://github.com/redotvideo/revideo/commit/842079a6547af4032719c85837df3db7c1c6d30a)) -* implement properties tab ([#10](https://github.com/redotvideo/revideo/issues/10)) ([e882a7f](https://github.com/redotvideo/revideo/commit/e882a7f52315a63508035899037cbab3278c1553)) -* improve async signals ([#156](https://github.com/redotvideo/revideo/issues/156)) ([db27b9d](https://github.com/redotvideo/revideo/commit/db27b9d5fb69a88f42afd98c86c4a1cdceb88ea1)) -* improve error logs ([#953](https://github.com/redotvideo/revideo/issues/953)) ([3b528cc](https://github.com/redotvideo/revideo/commit/3b528cce13a3440c97641d1095ce09e737e89960)) -* improve image error handling ([#847](https://github.com/redotvideo/revideo/issues/847)) ([db09d53](https://github.com/redotvideo/revideo/commit/db09d5305a3c0507b035e3cd347eaa65b23d7d2e)) -* improve layouts ([9a1fb5c](https://github.com/redotvideo/revideo/commit/9a1fb5c7cd740a6f696c907a8f1d8ed900995985)) -* improve surface clipping ([#41](https://github.com/redotvideo/revideo/issues/41)) ([003b7d5](https://github.com/redotvideo/revideo/commit/003b7d58d6490170cea81b2d1b37cf59b4d698cf)) -* introduce basic caching ([#68](https://github.com/redotvideo/revideo/issues/68)) ([6420d36](https://github.com/redotvideo/revideo/commit/6420d362d0e4ae058f55b6ff6bb2a3a32dec559b)) -* introduce editor plugins ([#879](https://github.com/redotvideo/revideo/issues/879)) ([2b72007](https://github.com/redotvideo/revideo/commit/2b720074d45fc254dc40b534785b591ae44a3f37)) -* jsx ([3a633e8](https://github.com/redotvideo/revideo/commit/3a633e882714c85043c014f98cad2d5d30b40607)) -* keyboard shortcuts ([4a3a7b5](https://github.com/redotvideo/revideo/commit/4a3a7b53bccd89bd1dd93207e3e1b9640bdf6102)) -* layouts ([749f929](https://github.com/redotvideo/revideo/commit/749f9297beae67bfa61cfcdf45806329574b75d1)) -* loading indication ([93638d5](https://github.com/redotvideo/revideo/commit/93638d5e056711fa0f0473d20d16074d9c6f3fd5)) -* make exporting concurrent ([4f9ef8d](https://github.com/redotvideo/revideo/commit/4f9ef8d40d9d9c1147e2edfc0766c5ea5cc4297c)) -* make scenes independent of names ([#53](https://github.com/redotvideo/revideo/issues/53)) ([417617e](https://github.com/redotvideo/revideo/commit/417617eb5f0af771e7413c9ce4c7e9b998e3e490)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* make surfaces transparent by default ([#42](https://github.com/redotvideo/revideo/issues/42)) ([cd71285](https://github.com/redotvideo/revideo/commit/cd712857579ec45b3e6f40d0e48fce80fefed5b9)), closes [#25](https://github.com/redotvideo/revideo/issues/25) -* mask animation ([5771963](https://github.com/redotvideo/revideo/commit/57719638cbca8f93c0e36f9380bfbe557a8633cd)) -* merge properties and signals ([#124](https://github.com/redotvideo/revideo/issues/124)) ([da3ba83](https://github.com/redotvideo/revideo/commit/da3ba83d82ee74f5a5c3631b07597f08cdf9e8e4)) -* meta field descriptions ([#664](https://github.com/redotvideo/revideo/issues/664)) ([80c9d07](https://github.com/redotvideo/revideo/commit/80c9d07f88f4a3df0f99e5741b31313f891a5d51)) -* minor console improvements ([#145](https://github.com/redotvideo/revideo/issues/145)) ([3e32e73](https://github.com/redotvideo/revideo/commit/3e32e73434ad872049af9e3f1f711bc0185410f4)) -* minor improvements ([403c7c2](https://github.com/redotvideo/revideo/commit/403c7c27ad969880a14c498ec6cefb9e7e7b7544)) -* minor improvements ([#77](https://github.com/redotvideo/revideo/issues/77)) ([7c6e584](https://github.com/redotvideo/revideo/commit/7c6e584aca353c9af55f0acb61b32b5f99727dba)) -* move back playhead by a frame ([#18](https://github.com/redotvideo/revideo/issues/18)) ([b944cd7](https://github.com/redotvideo/revideo/commit/b944cd71c075e10622bd7bc81de90024c73438b7)) -* navigate to scene and node source ([#144](https://github.com/redotvideo/revideo/issues/144)) ([86d495d](https://github.com/redotvideo/revideo/commit/86d495d01a9f8f0a58e676fedb6df9c12a14d14a)) -* navigate to slide source ([#490](https://github.com/redotvideo/revideo/issues/490)) ([b5ae4bf](https://github.com/redotvideo/revideo/commit/b5ae4bf37076b262a20949cca030db3902186c8d)) -* new animator ([#91](https://github.com/redotvideo/revideo/issues/91)) ([d85f2f8](https://github.com/redotvideo/revideo/commit/d85f2f8a54c0f8bbfbc451884385f30e5b3ec206)) -* new Code node ([#946](https://github.com/redotvideo/revideo/issues/946)) ([26e55a3](https://github.com/redotvideo/revideo/commit/26e55a37c416fb1313c8aadf40eed2824b45d330)) -* new playback architecture ([#402](https://github.com/redotvideo/revideo/issues/402)) ([bbe3e2a](https://github.com/redotvideo/revideo/commit/bbe3e2a24de068a88f49ed7a2f13e9717039733b)), closes [#166](https://github.com/redotvideo/revideo/issues/166) -* new plugin hooks ([#723](https://github.com/redotvideo/revideo/issues/723)) ([9a2b5ab](https://github.com/redotvideo/revideo/commit/9a2b5ab8be0d001414fd00da3053d408e00fd1cd)) -* open time events in editor ([#87](https://github.com/redotvideo/revideo/issues/87)) ([74b781d](https://github.com/redotvideo/revideo/commit/74b781d57fca7ef1d10904673276f2a7354c01b8)) -* package separation ([e69a566](https://github.com/redotvideo/revideo/commit/e69a56635fbc073766018c8e53139a2135dbca10)) -* pan with shift and left click ([#7](https://github.com/redotvideo/revideo/issues/7)) ([4ff8241](https://github.com/redotvideo/revideo/commit/4ff82419bd0066c8efa2675b196c273b7105a7ca)), closes [#5](https://github.com/redotvideo/revideo/issues/5) -* playback controls ([94dab5d](https://github.com/redotvideo/revideo/commit/94dab5dc1b8deaa4eaab561454699b3c22393618)) -* **player:** add auto mode ([c107259](https://github.com/redotvideo/revideo/commit/c107259f7c2a3886ccfe4ca0140d13064aed238f)) -* **player:** improve accessibility ([0fc9235](https://github.com/redotvideo/revideo/commit/0fc923576e7b12f9bc799f3a4e861861d49a2406)) -* plugin architecture ([#564](https://github.com/redotvideo/revideo/issues/564)) ([1c375b8](https://github.com/redotvideo/revideo/commit/1c375b81e0af8a76467d42dd46a7031adb9d71d3)) -* project variables ([#255](https://github.com/redotvideo/revideo/issues/255)) ([4883295](https://github.com/redotvideo/revideo/commit/488329525939928af52b4a4d8488f1e1cd4cf6f7)) -* Promise support ([711f793](https://github.com/redotvideo/revideo/commit/711f7937d86a9a0b2b7011b25799499d786e056d)) -* publish package to npm ([#6](https://github.com/redotvideo/revideo/issues/6)) ([1e508b9](https://github.com/redotvideo/revideo/commit/1e508b983d75cc7a647f5d6de5ce62ff4ec90953)) -* range parameters for rendering ([#56](https://github.com/redotvideo/revideo/issues/56)) ([794a37e](https://github.com/redotvideo/revideo/commit/794a37e9553bec4f15176cda991bbc513b8e2aea)) -* remove strongly-typed-events ([#48](https://github.com/redotvideo/revideo/issues/48)) ([41947b5](https://github.com/redotvideo/revideo/commit/41947b5ab6a2ec69d963f3445d1ea65d835c73ff)) -* remove ui elements ([8e5c288](https://github.com/redotvideo/revideo/commit/8e5c288750dfe9f697939abac03678b7885df428)) -* renderer ui ([8a4e5d3](https://github.com/redotvideo/revideo/commit/8a4e5d32b1e55f054bf3e98ef54c49f66655c034)) -* **renderer:** expose puppeteer settings[#39](https://github.com/redotvideo/revideo/issues/39)) ([39046cf](https://github.com/redotvideo/revideo/commit/39046cf71093e52965a5e69296269272838564b2)) -* **renderer:** use ffmpeg to step through frames of video elements ([#33](https://github.com/redotvideo/revideo/issues/33)) ([a6e1bcd](https://github.com/redotvideo/revideo/commit/a6e1bcdf0ca8200d646a3bca65122b50120f1013)) -* rendering ([60ccda7](https://github.com/redotvideo/revideo/commit/60ccda723361751f28bc1144de314388551c95a2)) -* replaced `scene.transition` with `useTransition` ([#68](https://github.com/redotvideo/revideo/issues/68)) ([f521115](https://github.com/redotvideo/revideo/commit/f521115889a7f341e03b4e7ee7530a70f37760d8)), closes [#56](https://github.com/redotvideo/revideo/issues/56) -* scene transitions ([d45f1d3](https://github.com/redotvideo/revideo/commit/d45f1d36bd23fbb5d07c6865ae31e624cba11bd2)) -* show progress during renderVideo ([#70](https://github.com/redotvideo/revideo/issues/70)) ([79f472e](https://github.com/redotvideo/revideo/commit/79f472ecf00968c24bb2238b881a0d8fd8a1f94e)) -* sidebar ([d5345ba](https://github.com/redotvideo/revideo/commit/d5345ba444296b1648fab17274e241d879054833)) -* signal error handling ([#89](https://github.com/redotvideo/revideo/issues/89)) ([472ac65](https://github.com/redotvideo/revideo/commit/472ac65938b804a6b698c8522ec0c3b6bdbcf1b1)) -* simplify size access ([#65](https://github.com/redotvideo/revideo/issues/65)) ([3315e64](https://github.com/redotvideo/revideo/commit/3315e64641e9778bc48ea3fb707e3c0eeb581dfe)) -* simplify size access further ([#66](https://github.com/redotvideo/revideo/issues/66)) ([9091a5e](https://github.com/redotvideo/revideo/commit/9091a5e05d8fadf72c50832c7c4467ac4424b72c)) -* simplify the process of importing images ([#39](https://github.com/redotvideo/revideo/issues/39)) ([0c2341f](https://github.com/redotvideo/revideo/commit/0c2341fe255ee1702181e04f4cd2024a9eeabce5)), closes [#19](https://github.com/redotvideo/revideo/issues/19) -* sprites and threading ([a541682](https://github.com/redotvideo/revideo/commit/a5416828bfb5d40f92c695b8a9a6df7b2d6686ca)) -* support for multiple projects ([#57](https://github.com/redotvideo/revideo/issues/57)) ([573752d](https://github.com/redotvideo/revideo/commit/573752dd4d79d62a1a30958f1ed550d2cf22c344)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) -* support lower framerate ([3c81086](https://github.com/redotvideo/revideo/commit/3c81086829ad12dda805c355649cce7c0f156d2e)) -* support multiple players ([#128](https://github.com/redotvideo/revideo/issues/128)) ([24f75cf](https://github.com/redotvideo/revideo/commit/24f75cf7cdaf38f890e3936edf175afbfd340210)) -* surfaceFrom animation ([77bb69e](https://github.com/redotvideo/revideo/commit/77bb69e6a6481d412f800f65b6303c4c5f33cc94)) -* surfaces ([99f9e96](https://github.com/redotvideo/revideo/commit/99f9e96a108bbd2a08a1931fd042a5969354da60)) -* switch to monorepo ([6c8d190](https://github.com/redotvideo/revideo/commit/6c8d190c7d3d24bb4eac29eeb4b6d1abf370e160)), closes [#23](https://github.com/redotvideo/revideo/issues/23) [#86](https://github.com/redotvideo/revideo/issues/86) [#49](https://github.com/redotvideo/revideo/issues/49) -* switch to signals ([#64](https://github.com/redotvideo/revideo/issues/64)) ([d22d237](https://github.com/redotvideo/revideo/commit/d22d23728597e6fa82ea5c5a99a6c0a56819bded)) -* switch to Vite ([#28](https://github.com/redotvideo/revideo/issues/28)) ([65b9133](https://github.com/redotvideo/revideo/commit/65b91337dbc47fe51cecc83657f79fab15343a0d)), closes [#141414](https://github.com/redotvideo/revideo/issues/141414) [#13](https://github.com/redotvideo/revideo/issues/13) -* threading ([e9f6b2a](https://github.com/redotvideo/revideo/commit/e9f6b2ad0838f0240e8bbd196061ba6ce23eac27)) -* three.js integration ([79cc975](https://github.com/redotvideo/revideo/commit/79cc975ecaa35d54f0e530f9b732d6472d965c3a)) -* time events ([f47cc66](https://github.com/redotvideo/revideo/commit/f47cc666f64ee5733ebe200503bd94a1a48a9c02)) -* time events ([026a284](https://github.com/redotvideo/revideo/commit/026a2840a3625172431fb073a513fea4499164d4)) -* time parameter for tweens ([3fe90ed](https://github.com/redotvideo/revideo/commit/3fe90edc49abb910522c75d4df3c56b40c29731f)) -* timeline range ([ed2d78d](https://github.com/redotvideo/revideo/commit/ed2d78dbba4211aac5317035f7ce0931db90a59a)) -* timeline tracks ([93a89cd](https://github.com/redotvideo/revideo/commit/93a89cd6edf055ac7847b508ee4364eb42a6bcd4)) -* turn Layout into node ([#75](https://github.com/redotvideo/revideo/issues/75)) ([cdf8dc0](https://github.com/redotvideo/revideo/commit/cdf8dc0a35522482dee2dd78a69606b79f52246e)) -* **ui:** add color picker ([#691](https://github.com/redotvideo/revideo/issues/691)) ([a33059c](https://github.com/redotvideo/revideo/commit/a33059c0f455814919db31bc9e5e932907c797e4)) -* **ui:** add custom presentation overlays ([#884](https://github.com/redotvideo/revideo/issues/884)) ([4696d3c](https://github.com/redotvideo/revideo/commit/4696d3c8cb8b68e3475406359f9cf6b875b1c838)), closes [#825](https://github.com/redotvideo/revideo/issues/825) -* **ui:** add direct range selection & playhead shortcuts ([#907](https://github.com/redotvideo/revideo/issues/907)) ([39264fc](https://github.com/redotvideo/revideo/commit/39264fc074da739efddf24ef080f6c5f279f8014)) -* **ui:** add external link to docs ([#346](https://github.com/redotvideo/revideo/issues/346)) ([fc4ee5d](https://github.com/redotvideo/revideo/commit/fc4ee5d028312904ed9e11c5341ac00f36e7242b)) -* **ui:** add goto start and goto end buttons ([#814](https://github.com/redotvideo/revideo/issues/814)) ([449f194](https://github.com/redotvideo/revideo/commit/449f1946474af9886135571c14c83b8440bdf28c)) -* **ui:** add number input dragging ([#917](https://github.com/redotvideo/revideo/issues/917)) ([1b5c232](https://github.com/redotvideo/revideo/commit/1b5c23260c3015608f202a103b4c0aebd1860e36)), closes [#799](https://github.com/redotvideo/revideo/issues/799) -* **ui:** add quarter resolution ([#421](https://github.com/redotvideo/revideo/issues/421)) ([d0160d0](https://github.com/redotvideo/revideo/commit/d0160d0d5ef76ffb0d3591566891b5efa4061744)) -* **ui:** add shortcuts to button titles ([#532](https://github.com/redotvideo/revideo/issues/532)) ([3549dd3](https://github.com/redotvideo/revideo/commit/3549dd3fd7ef47376a5a2dd516609499d3985ac3)) -* **ui:** add volume slider ([#872](https://github.com/redotvideo/revideo/issues/872)) ([5ac3069](https://github.com/redotvideo/revideo/commit/5ac3069f027ee123c212217dcf8d26a78a3aa106)) -* **ui:** custom checkbox style ([#529](https://github.com/redotvideo/revideo/issues/529)) ([af98db1](https://github.com/redotvideo/revideo/commit/af98db103d66e8af059dc483d49984b9adb9b95c)) -* **ui:** custom inspectors ([#913](https://github.com/redotvideo/revideo/issues/913)) ([6c54424](https://github.com/redotvideo/revideo/commit/6c544248a2bd733f2d42676a0ed60c93b79ee574)) -* **ui:** estimate remaining rendering time ([#795](https://github.com/redotvideo/revideo/issues/795)) ([1a46148](https://github.com/redotvideo/revideo/commit/1a4614801869ab36827ca857d66eed8de9cffd09)), closes [#784](https://github.com/redotvideo/revideo/issues/784) -* **ui:** improve rendering button ([#662](https://github.com/redotvideo/revideo/issues/662)) ([2b4ae70](https://github.com/redotvideo/revideo/commit/2b4ae70ea0b0305fbb2596e95bbc70440718bbe2)) -* **ui:** include function names in stack traces ([#693](https://github.com/redotvideo/revideo/issues/693)) ([835c0fa](https://github.com/redotvideo/revideo/commit/835c0fa4b70429db6fe96be96d6d9e44949f7f6c)) -* **ui:** list available shortcuts ([#444](https://github.com/redotvideo/revideo/issues/444)) ([443fcc9](https://github.com/redotvideo/revideo/commit/443fcc9feb1a1ca69aecbc4db2e194ce4f50f72e)) -* **ui:** make inspector toggleable ([#921](https://github.com/redotvideo/revideo/issues/921)) ([a365951](https://github.com/redotvideo/revideo/commit/a365951e69c01cac1ea23d173034ad83f988c8eb)) -* **ui:** new sidebar ([#692](https://github.com/redotvideo/revideo/issues/692)) ([b555ee1](https://github.com/redotvideo/revideo/commit/b555ee1d10f8a6e1b380c043dff2717ffa01a068)), closes [#492](https://github.com/redotvideo/revideo/issues/492) -* **ui:** presentation interface ([#487](https://github.com/redotvideo/revideo/issues/487)) ([1899f02](https://github.com/redotvideo/revideo/commit/1899f020fb1c0b2136de4401e6fc068bcf5e0cc4)) -* **ui:** scene graph ([#909](https://github.com/redotvideo/revideo/issues/909)) ([bf85c5b](https://github.com/redotvideo/revideo/commit/bf85c5b4a339719e79da1b87b1aed4492166ce79)) -* **ui:** scene graph icons ([#914](https://github.com/redotvideo/revideo/issues/914)) ([e92ddef](https://github.com/redotvideo/revideo/commit/e92ddef34860f5e710ff0f1a310758ec0ca95bcb)) -* **ui:** shift + right arrow moves to last frame ([#354](https://github.com/redotvideo/revideo/issues/354)) ([4b81709](https://github.com/redotvideo/revideo/commit/4b8170971400c5bf4fe690a58d3f44c3e1d00b94)), closes [#353](https://github.com/redotvideo/revideo/issues/353) -* **ui:** small improvements ([#833](https://github.com/redotvideo/revideo/issues/833)) ([f44400c](https://github.com/redotvideo/revideo/commit/f44400c458a1d7f49520494f01efb9936f4df83e)) -* **ui:** timeline dragging ([#794](https://github.com/redotvideo/revideo/issues/794)) ([248e454](https://github.com/redotvideo/revideo/commit/248e4546367f9d99221f64b811a07d54a9988e48)), closes [#699](https://github.com/redotvideo/revideo/issues/699) -* **ui:** timeline overhaul ([#47](https://github.com/redotvideo/revideo/issues/47)) ([4232a60](https://github.com/redotvideo/revideo/commit/4232a6072540b54451e99e18c1001db0175bb93f)), closes [#20](https://github.com/redotvideo/revideo/issues/20) -* **ui:** timeline scrubbing ([#862](https://github.com/redotvideo/revideo/issues/862)) ([211b9a4](https://github.com/redotvideo/revideo/commit/211b9a4327720afd1ce0ff93868a501c2fd745aa)), closes [#286](https://github.com/redotvideo/revideo/issues/286) -* **ui:** vertical line on time event ([#808](https://github.com/redotvideo/revideo/issues/808)) ([18015d6](https://github.com/redotvideo/revideo/commit/18015d6714ffe2a6255f26895aa9a7c1908a4f7a)), closes [#804](https://github.com/redotvideo/revideo/issues/804) -* **ui:** visual changes ([#96](https://github.com/redotvideo/revideo/issues/96)) ([3d599f4](https://github.com/redotvideo/revideo/commit/3d599f4e1788fbd15e996be8bf95679f1c6787bd)) -* **ui:** zoom controls ([#531](https://github.com/redotvideo/revideo/issues/531)) ([752350d](https://github.com/redotvideo/revideo/commit/752350d0c547e21806f1b70a5c68025012e5ec11)) -* unify core types ([#71](https://github.com/redotvideo/revideo/issues/71)) ([9c5853d](https://github.com/redotvideo/revideo/commit/9c5853d8bc65204693c38109a25d1fefd44241b7)) -* unify references and signals ([#137](https://github.com/redotvideo/revideo/issues/137)) ([063aede](https://github.com/redotvideo/revideo/commit/063aede0842f948d2c6704c6edd426e954bb4668)) -* update core to 6.0.0 ([#17](https://github.com/redotvideo/revideo/issues/17)) ([f8d453b](https://github.com/redotvideo/revideo/commit/f8d453b22beb5250ea822d274ed2ab6bfea5c39c)) -* update quickstart project in "create" package ([#11](https://github.com/redotvideo/revideo/issues/11)) ([7d30483](https://github.com/redotvideo/revideo/commit/7d304834e2305d1fac0079ac057eaea3bcb33c66)) -* update vite from v3 to v4 ([#495](https://github.com/redotvideo/revideo/issues/495)) ([c409eee](https://github.com/redotvideo/revideo/commit/c409eee0e61b67e43afed240c5ae279714681246)), closes [#197](https://github.com/redotvideo/revideo/issues/197) -* upgrade code-fns for new theme options and lazy loading ([#401](https://github.com/redotvideo/revideo/issues/401)) ([8965ab1](https://github.com/redotvideo/revideo/commit/8965ab1bef8b6ae919c8001d0527f5793293b285)), closes [#396](https://github.com/redotvideo/revideo/issues/396) [#322](https://github.com/redotvideo/revideo/issues/322) -* use ES modules in fiddles ([#712](https://github.com/redotvideo/revideo/issues/712)) ([dbe2ad5](https://github.com/redotvideo/revideo/commit/dbe2ad5644219c5a98d38c6557abfb66d793c821)) -* use PossibleVector2 in Vector2 methods ([#478](https://github.com/redotvideo/revideo/issues/478)) ([8ccb44a](https://github.com/redotvideo/revideo/commit/8ccb44a265016e25b2b177a65d44f801c9d861f9)) -* use Web Audio API for waveform generation ([817e244](https://github.com/redotvideo/revideo/commit/817e244bb2187532df7142199917412ccfe8d218)) -* use Web Audio API for waveform generation ([ba3e16f](https://github.com/redotvideo/revideo/commit/ba3e16f04a12de87408ca68df5acacf5610ed617)) -* useAnimator utility ([ad32e8a](https://github.com/redotvideo/revideo/commit/ad32e8a0add494021d4c5c9fe5b3915189f00a08)) -* viewport, playback, and timeline ([c5f9636](https://github.com/redotvideo/revideo/commit/c5f96360258a8dca5faa66c79451969da7eebabc)) -* **vite-plugin:** add CORS Proxy ([#357](https://github.com/redotvideo/revideo/issues/357)) ([a3c5822](https://github.com/redotvideo/revideo/commit/a3c58228b7d3dab08fc27414d19870d35773b280)), closes [#338](https://github.com/redotvideo/revideo/issues/338) -* **vite-plugin:** add entry point ([#721](https://github.com/redotvideo/revideo/issues/721)) ([e634b6c](https://github.com/redotvideo/revideo/commit/e634b6cb67b3c569d21d424661708ca946ea4cc3)) -* **vite-plugin:** improve audio handling ([#154](https://github.com/redotvideo/revideo/issues/154)) ([482f144](https://github.com/redotvideo/revideo/commit/482f14447ae54543346fab0f9e5b94631c5cfd4d)) -* **vite-plugin:** support glob for project files ([#834](https://github.com/redotvideo/revideo/issues/834)) ([67029c4](https://github.com/redotvideo/revideo/commit/67029c4c2cf756cbe2b7ed59dc55cb895de81d52)), closes [#324](https://github.com/redotvideo/revideo/issues/324) -* waveform data ([400a756](https://github.com/redotvideo/revideo/commit/400a756ebf7ee174d8cbaf03f1f74eddd1b75925)) -* webgl shaders ([#920](https://github.com/redotvideo/revideo/issues/920)) ([849216e](https://github.com/redotvideo/revideo/commit/849216ed34c4d29742c621b43a95ec4d99f8c755)) -* world space cache ([#498](https://github.com/redotvideo/revideo/issues/498)) ([633e9e1](https://github.com/redotvideo/revideo/commit/633e9e140dfbbe397df6ddc1f96ed30782ddce94)), closes [#342](https://github.com/redotvideo/revideo/issues/342) - - -### Performance Improvements - -* parallelize image and audio processing during render ([#61](https://github.com/redotvideo/revideo/issues/61)) ([2119a01](https://github.com/redotvideo/revideo/commit/2119a0179636a91e1f2fd86f7857814a6a907407)) -* use canvas.toBlob instead of toDataUrl to render faster ([#67](https://github.com/redotvideo/revideo/issues/67)) ([de402a3](https://github.com/redotvideo/revideo/commit/de402a38630eba4cb4d83e74595498b9ee28d3e5)) - - -### Reverts - -* "ci(release): 9.1.3 [skip ci]" ([62953a6](https://github.com/redotvideo/revideo/commit/62953a6a8a1b1da3eb2e5f51c9fe60c716d6b94b)) -* chore(release): 1.4.0 [skip ci] ([d6121ae](https://github.com/redotvideo/revideo/commit/d6121ae946e9e79e1e6ddee4b8b0dd839d122c55)) -* ci(release): 1.0.1 [skip ci] ([#175](https://github.com/redotvideo/revideo/issues/175)) ([161a046](https://github.com/redotvideo/revideo/commit/161a04647ecdc8203daf2d887a6a44c79a92ee20)) -* ci(release): 2.0.0 [skip ci] ([#176](https://github.com/redotvideo/revideo/issues/176)) ([551096b](https://github.com/redotvideo/revideo/commit/551096bf636a791ea7c7c1d38d8e03c360433008)) -* ci(release): 3.12.4 [skip ci] ([#908](https://github.com/redotvideo/revideo/issues/908)) ([86c5170](https://github.com/redotvideo/revideo/commit/86c517067c7225f827aa05b47e2397e0d90fe622)) -* feat: upgrade code-fns for new theme options and lazy loading ([#435](https://github.com/redotvideo/revideo/issues/435)) ([3f5e439](https://github.com/redotvideo/revideo/commit/3f5e43968f7add7c6322c9c8358d3b6fc178c2fe)) - - -### BREAKING CHANGES - -* multiple name changes - -To avoid collisions, names of certain classes have changed: -- `Text => Txt` -- `Image => Img` -- `Rect (type) => BBox` - -Cache related methods of `Node` have changed: -- `getCacheRect => getCacheBBox` -- `cacheRect => cacheBBox` -- `fullCacheRect => fullCacheBBox` - -The `CodeBlock` property has changed: -- `CodeBlock.selectionOpacity => CodeBlock.unselectedOpacity` -* `makeProject` no longer accepts some settings. - -Settings such as `background` and `audioOffset` are now stored in the project -meta file. -* remove legacy package -* change names of timing and interpolation functions - -`TweenFunction` is now called `InterpolationFunction`. -Individual functions are now called `[type]Lerp` instead of `[type]Tween`. -For instance: `colorTween` is now `colorLerp`. - -`InterpolationFunction` is now called `TimingFunction`. -This name is better aligned with the CSS spec. -* change to import paths - -See [the migration guide](https://motion-canvas.github.io/guides/migration/12.0.0) for more info. -* change the way scenes are imported - -Scene files no longer need to follow the pattern: `[name].scene.tsx`. -When importing scenes in the project file, a dedicated `?scene` query param should be used: -```ts -import example from './scenes/example?scene'; - -export default new Project({ - name: 'project', - scenes: [example], -}); -``` -* change the overall structure of a project - -`vite` and `@motion-canvas/vite-plugin` packages are now required to build a project: -``` -npm i -D vite @motion-canvas/vite-plugin -``` -The following `vite.config.ts` file needs to be created in the root of the project: -```ts -import {defineConfig} from 'vite'; -import motionCanvas from '@motion-canvas/vite-plugin'; - -export default defineConfig({ - plugins: [motionCanvas()], -}); -``` - -Types exposed by Motion Canvas are no longer global. -An additional `motion-canvas.d.ts` file needs to be created in the `src` directory: -```ts -/// -``` - - Finally, the `bootstrap` function no longer exists. - Project files should export an instance of the `Project` class instead: - ```ts - import {Project} from '@motion-canvas/core/lib'; - - import example from './scenes/example.scene'; - - export default new Project({ - name: 'project', - scenes: [example], - // same options as in bootstrap() are available: -* Animator.inferTweenFunction now returns deepTween, -which does not work exactly as before, though should be a viable -replacement in most cases. -* `scene.transition()` has been replaced by `useTransition` - -Any use of slide transition must be updated from -```ts -yield* scene.transition(slideTransition()); -``` -to -```ts -yield* slideTranstion(); -``` - -Any transitions must be rewritten to utilize `useTransition`. -* Konva patches are not imported by default - -Projects using `KonvaScene`s should import the patches manually at the very top of the file project: -```ts -import '@motion-canvas/core/lib/patches' -// ... -bootstrap(...); -``` - -`getset` import path has changed: -```ts -import {getset} from '@motion-canvas/core/lib/decorators/getset'; -``` -* change the type exported by scene files - -Scene files need to export a special `SceneDescription` object instead of a simple generator function. -* change event naming convention - -The names of all public events now use the following pattern: "on[WhatHappened]". -Example: "onValueChanged". -* change how images are imported - -By default, importing images will now return their urls instead of a SpriteData object. -This behavior can be adjusted using the `?img` and `?anim` queries. -* change time events API -* `waitFor` and `waitUntil` were moved - -They should be imported from `@motion-canvas/core/lib/flow`. - - - - - -## 0.2.11 (2024-04-22) - - -### Bug Fixes - -* **2d:** account for offset in cardinal points ([#883](https://github.com/redotvideo/revideo/issues/883)) ([24da258](https://github.com/redotvideo/revideo/commit/24da258f5937087b363eeb9146a9d22747b02e70)), closes [#882](https://github.com/redotvideo/revideo/issues/882) -* **2d:** account for spawners in scene graph ([#935](https://github.com/redotvideo/revideo/issues/935)) ([ca325f5](https://github.com/redotvideo/revideo/commit/ca325f5ad0ae987e76106f5e65fef3ed7b3ca08d)) -* **2d:** add missing Curve properties to Circle ([#805](https://github.com/redotvideo/revideo/issues/805)) ([38c7900](https://github.com/redotvideo/revideo/commit/38c79000403d7c3c99dde9e4c825a448d5f55054)) -* **2d:** add missing Fragment export ([#553](https://github.com/redotvideo/revideo/issues/553)) ([229afb4](https://github.com/redotvideo/revideo/commit/229afb4fe7d95f09b480ab4a813f8dff549f381f)) -* **2d:** add missing jsx dev runtime ([#547](https://github.com/redotvideo/revideo/issues/547)) ([d61cb7d](https://github.com/redotvideo/revideo/commit/d61cb7dd24ab66ae17d5bd6f5ccb34c4fd1e7569)), closes [#545](https://github.com/redotvideo/revideo/issues/545) -* **2d:** add missing middle property ([#891](https://github.com/redotvideo/revideo/issues/891)) ([61e2e96](https://github.com/redotvideo/revideo/commit/61e2e96e3b8f37a68ebdddb432baba04858fd4f3)) -* **2d:** add missing shape export ([#111](https://github.com/redotvideo/revideo/issues/111)) ([02a1fa7](https://github.com/redotvideo/revideo/commit/02a1fa7ea62155e498809f2e57ff29a18c82ac12)) -* **2d:** better error handling ([#524](https://github.com/redotvideo/revideo/issues/524)) ([b7475ba](https://github.com/redotvideo/revideo/commit/b7475ba5ff35d37ee198577d1205d6ecd6fd2092)) -* **2d:** calculate arrow orientations for curves correctly ([#597](https://github.com/redotvideo/revideo/issues/597)) ([1626811](https://github.com/redotvideo/revideo/commit/1626811ec4cd1bd2a3d43e393ced40a7da462c3a)) -* **2d:** calculate Txt cache bbox from contents ([#836](https://github.com/redotvideo/revideo/issues/836)) ([33e1a12](https://github.com/redotvideo/revideo/commit/33e1a1296f21d26e9ed45ae92132825dca17054d)), closes [#465](https://github.com/redotvideo/revideo/issues/465) -* **2d:** clone size correctly ([#562](https://github.com/redotvideo/revideo/issues/562)) ([cdd3df1](https://github.com/redotvideo/revideo/commit/cdd3df1bff25b04b905e289264831d8d328caaab)), closes [#559](https://github.com/redotvideo/revideo/issues/559) -* **2d:** correct layout defaults ([#442](https://github.com/redotvideo/revideo/issues/442)) ([c116c35](https://github.com/redotvideo/revideo/commit/c116c355179ba3b2487634fb82b9a5bc2ea266bf)) -* **2d:** correctly append Txt nodes to view ([#644](https://github.com/redotvideo/revideo/issues/644)) ([24bb51a](https://github.com/redotvideo/revideo/commit/24bb51aa04778c33ce327926b27332efaa554e5f)) -* **2d:** correctly support external image urls ([#678](https://github.com/redotvideo/revideo/issues/678)) ([a08556b](https://github.com/redotvideo/revideo/commit/a08556b6e2822a55db593f610ea4dd6cb8494adb)), closes [#677](https://github.com/redotvideo/revideo/issues/677) -* **2d:** fix audio offset editing ([#674](https://github.com/redotvideo/revideo/issues/674)) ([58d6ef7](https://github.com/redotvideo/revideo/commit/58d6ef79fa06e377e0c1821efe73585586d124a6)) -* **2d:** fix cache bbox for lines ([#467](https://github.com/redotvideo/revideo/issues/467)) ([9fd1444](https://github.com/redotvideo/revideo/commit/9fd144417bb0b6301da6c522a988775f5ff142ac)), closes [#466](https://github.com/redotvideo/revideo/issues/466) -* **2d:** fix circle segment ([#557](https://github.com/redotvideo/revideo/issues/557)) ([adebff4](https://github.com/redotvideo/revideo/commit/adebff492b76a512d79151b00adf1b383d25c5b5)) -* **2d:** fix CodeBlock types ([#563](https://github.com/redotvideo/revideo/issues/563)) ([25160fa](https://github.com/redotvideo/revideo/commit/25160fa4d92af88429110356e42f6e3b4f88a90f)), closes [#560](https://github.com/redotvideo/revideo/issues/560) -* **2d:** fix curve arrow alignment when animating start signal ([#615](https://github.com/redotvideo/revideo/issues/615)) ([2fefc40](https://github.com/redotvideo/revideo/commit/2fefc4026050159ba204c7629832ad83e8bfa51b)) -* **2d:** fix cyclic dependency in cardinal points ([#645](https://github.com/redotvideo/revideo/issues/645)) ([def23f9](https://github.com/redotvideo/revideo/commit/def23f925ee7200c8740ecd51c7f6117d67b6ef8)) -* **2d:** fix font ligatures in CodeBlock ([#231](https://github.com/redotvideo/revideo/issues/231)) ([11ee3fe](https://github.com/redotvideo/revideo/commit/11ee3fef5ad878313cf19833df6881333ced4dac)) -* **2d:** fix Gradient and Pattern signals ([#376](https://github.com/redotvideo/revideo/issues/376)) ([6e0dc8a](https://github.com/redotvideo/revideo/commit/6e0dc8af8d19f93fd6a42addca2b3a2958b4dd33)) -* **2d:** fix height when tweening text ([#905](https://github.com/redotvideo/revideo/issues/905)) ([1c6a796](https://github.com/redotvideo/revideo/commit/1c6a7965be137c1ab69741cdd1e9aaa6df4208c4)) -* **2d:** fix import order ([#94](https://github.com/redotvideo/revideo/issues/94)) ([bcc0bcf](https://github.com/redotvideo/revideo/commit/bcc0bcffae47855bd8f7ab06454aaebe93c4aa24)), closes [#76](https://github.com/redotvideo/revideo/issues/76) -* **2d:** fix initial value of endOffset ([#433](https://github.com/redotvideo/revideo/issues/433)) ([9fe82b3](https://github.com/redotvideo/revideo/commit/9fe82b3d21ba0150a2378e541a4652ca707c2d15)) -* **2d:** fix layout calculation for nodes not explicitly added to view ([#331](https://github.com/redotvideo/revideo/issues/331)) ([528e2d5](https://github.com/redotvideo/revideo/commit/528e2d5a0abec99819e022d2848b256ece9f869a)) -* **2d:** fix letterSpacing ([#448](https://github.com/redotvideo/revideo/issues/448)) ([bb5ffc4](https://github.com/redotvideo/revideo/commit/bb5ffc48efa82b9db818e8e52aa35e9c2ad8ce89)), closes [#447](https://github.com/redotvideo/revideo/issues/447) -* **2d:** fix line arc length ([#503](https://github.com/redotvideo/revideo/issues/503)) ([4f1cd59](https://github.com/redotvideo/revideo/commit/4f1cd59e6bcba0b16b36be88b28a60ae46d4d9ab)), closes [#497](https://github.com/redotvideo/revideo/issues/497) -* **2d:** fix Line cache ([#232](https://github.com/redotvideo/revideo/issues/232)) ([a953b64](https://github.com/redotvideo/revideo/commit/a953b64540c020657845efc84d4179142a7a0974)), closes [#205](https://github.com/redotvideo/revideo/issues/205) -* **2d:** fix line jitter under certain conditions ([#863](https://github.com/redotvideo/revideo/issues/863)) ([fb110a2](https://github.com/redotvideo/revideo/commit/fb110a2f3583fc040bf2c39560934162bd146d9b)) -* **2d:** fix Line overview crashing ([#142](https://github.com/redotvideo/revideo/issues/142)) ([6bd5fd9](https://github.com/redotvideo/revideo/commit/6bd5fd941e583e44f5d920ecd20215efb1eed58a)) -* **2d:** fix nested cache canvases ([#554](https://github.com/redotvideo/revideo/issues/554)) ([e601441](https://github.com/redotvideo/revideo/commit/e6014413b215af6fb1a7953f8db83893d4025f0b)), closes [#551](https://github.com/redotvideo/revideo/issues/551) -* **2d:** fix package.json entry ([#720](https://github.com/redotvideo/revideo/issues/720)) ([12e9bf6](https://github.com/redotvideo/revideo/commit/12e9bf6f40ab7afc02e2f55260544f3864920ded)) -* **2d:** fix performance issue with audio track ([#427](https://github.com/redotvideo/revideo/issues/427)) ([c993770](https://github.com/redotvideo/revideo/commit/c993770937ddfdf0ac39b144a1f79f1a300f7899)) -* **2d:** fix signal initialization ([#382](https://github.com/redotvideo/revideo/issues/382)) ([ea36e79](https://github.com/redotvideo/revideo/commit/ea36e791a20bfd1b491ffa9917be686c51bc3899)) -* **2d:** fix tweening cardinal points ([#829](https://github.com/redotvideo/revideo/issues/829)) ([cc16737](https://github.com/redotvideo/revideo/commit/cc16737cd59081582fbb488a880e8d3c11c14918)) -* **2d:** fix Txt decorators ([#526](https://github.com/redotvideo/revideo/issues/526)) ([25b30ed](https://github.com/redotvideo/revideo/commit/25b30ed3861f46d72147335480912ce5f564be79)) -* **2d:** fix types ([#659](https://github.com/redotvideo/revideo/issues/659)) ([a32af29](https://github.com/redotvideo/revideo/commit/a32af29ef3bd2e5dbf08697ebfee53230fceadc1)) -* **2d:** fix version link ([#608](https://github.com/redotvideo/revideo/issues/608)) ([4fe5b7a](https://github.com/redotvideo/revideo/commit/4fe5b7a5150fbdf43ea50ecf3dc8b4690c0e2e34)) -* **2d:** format whitespaces according to HTML ([#372](https://github.com/redotvideo/revideo/issues/372)) ([83fb565](https://github.com/redotvideo/revideo/commit/83fb565742d98f060c0400c8cbaf9961b69f34d0)), closes [#370](https://github.com/redotvideo/revideo/issues/370) -* **2d:** handle division by zero in lines ([#407](https://github.com/redotvideo/revideo/issues/407)) ([a17871a](https://github.com/redotvideo/revideo/commit/a17871a2ce63dd5bb32bc719037327c4e9dde217)) -* **2d:** handle floating point errors in acos ([#381](https://github.com/redotvideo/revideo/issues/381)) ([5bca8fd](https://github.com/redotvideo/revideo/commit/5bca8fd0bbdcf28f2793c124b7d6b0afd560c4b8)) -* **2d:** handle lines with no points ([#233](https://github.com/redotvideo/revideo/issues/233)) ([8108474](https://github.com/redotvideo/revideo/commit/81084743dfad7b6419760796fda825047909d4d4)), closes [#212](https://github.com/redotvideo/revideo/issues/212) -* **2d:** ignore children with disabled layout ([#669](https://github.com/redotvideo/revideo/issues/669)) ([b98c462](https://github.com/redotvideo/revideo/commit/b98c4625c3634495e86ca23d19355035e457db06)), closes [#580](https://github.com/redotvideo/revideo/issues/580) -* **2d:** improve Curve hitbox ([#778](https://github.com/redotvideo/revideo/issues/778)) ([8af723c](https://github.com/redotvideo/revideo/commit/8af723c0322de39d2defe0363bba03f4f9542f08)) -* **2d:** improve Rect radius ([#221](https://github.com/redotvideo/revideo/issues/221)) ([3437e42](https://github.com/redotvideo/revideo/commit/3437e42713a3f4a8d44d246ee01e2eb23b61e06a)), closes [#207](https://github.com/redotvideo/revideo/issues/207) -* **2d:** make Text respect textWrap=pre ([#287](https://github.com/redotvideo/revideo/issues/287)) ([cb07f4b](https://github.com/redotvideo/revideo/commit/cb07f4bdf07edc8a086b934ca5ab769682b9a010)) -* **2d:** minor fixes ([#915](https://github.com/redotvideo/revideo/issues/915)) ([63cfc9e](https://github.com/redotvideo/revideo/commit/63cfc9e033f2c2ac6d6ed2a0d8f615fcf642ab59)) -* **2d:** point arrow heads in correct direction ([#792](https://github.com/redotvideo/revideo/issues/792)) ([52ed52e](https://github.com/redotvideo/revideo/commit/52ed52e963cc69a066a0353680acaca35b9c937a)), closes [#783](https://github.com/redotvideo/revideo/issues/783) -* **2d:** prevent src warnings in Icon and Latex ([#899](https://github.com/redotvideo/revideo/issues/899)) ([5eebab7](https://github.com/redotvideo/revideo/commit/5eebab71d8061e233872e049e77b847f9fd077a1)) -* **2d:** remove circular dependencies ([#780](https://github.com/redotvideo/revideo/issues/780)) ([cdf3af5](https://github.com/redotvideo/revideo/commit/cdf3af500a58151ee3549c6e728751aab3e6f75c)) -* **2d:** smoothly play videos when presenting ([#600](https://github.com/redotvideo/revideo/issues/600)) ([294fe6a](https://github.com/redotvideo/revideo/commit/294fe6ac056ab074c77214fcf9035f53fac9258c)), closes [#578](https://github.com/redotvideo/revideo/issues/578) -* **2d:** some signal setters not returning owners ([#143](https://github.com/redotvideo/revideo/issues/143)) ([09ab7f9](https://github.com/redotvideo/revideo/commit/09ab7f96afcaae608399a653c0b4878ba9b467d4)) -* **2d:** stop code highlighting from jumping ([#230](https://github.com/redotvideo/revideo/issues/230)) ([67ef1c4](https://github.com/redotvideo/revideo/commit/67ef1c497056dd1f8f9e20d1d7fc1af03ec3849e)) -* **2d:** stop mutating children ([#903](https://github.com/redotvideo/revideo/issues/903)) ([f9552a8](https://github.com/redotvideo/revideo/commit/f9552a8658ccde6c7b2466ad40b12cf28c6ec805)) -* **2d:** switch iframes to ShadowDOM ([#90](https://github.com/redotvideo/revideo/issues/90)) ([86176be](https://github.com/redotvideo/revideo/commit/86176be055c08aba59272afcda00ed586f6c7ad6)) -* **2d:** textDirection property for RTL/LTR text ([#404](https://github.com/redotvideo/revideo/issues/404)) ([f240b1b](https://github.com/redotvideo/revideo/commit/f240b1bd140a884f6901b7cfcb97ce3e9ce4b48d)) -* **2d:** textWrap not working in Firefox ([#541](https://github.com/redotvideo/revideo/issues/541)) ([f10e057](https://github.com/redotvideo/revideo/commit/f10e057fd13ed9dcc70ebc0ca63963708ec159c8)), closes [#517](https://github.com/redotvideo/revideo/issues/517) -* **2d:** wait for reused async resources ([#599](https://github.com/redotvideo/revideo/issues/599)) ([280e065](https://github.com/redotvideo/revideo/commit/280e065fe69e9a744b7b12eb4609e7d87f76bb63)), closes [#593](https://github.com/redotvideo/revideo/issues/593) -* account for italic fonts in cache ([#968](https://github.com/redotvideo/revideo/issues/968)) ([abb0906](https://github.com/redotvideo/revideo/commit/abb090695c4257d9877d0cb11954093c49149ddc)), closes [#934](https://github.com/redotvideo/revideo/issues/934) -* add missing Arrow setters ([#82](https://github.com/redotvideo/revideo/issues/82)) ([49843c9](https://github.com/redotvideo/revideo/commit/49843c9d38ee75de50ffc241d2a615be78f9e1f5)) -* add missing canvas package ([26c8f4f](https://github.com/redotvideo/revideo/commit/26c8f4ff9947841b38f123466b7efd7f43706ffb)) -* add missing public path ([#40](https://github.com/redotvideo/revideo/issues/40)) ([48213de](https://github.com/redotvideo/revideo/commit/48213de087d6bb35f29919f5588e3a4517e080b6)) -* add monospace font fallback in case JetBrains Mono is missing ([#24](https://github.com/redotvideo/revideo/issues/24)) ([276a310](https://github.com/redotvideo/revideo/commit/276a310d63a4ea128a3640d6e0871045514c1c01)), closes [#16](https://github.com/redotvideo/revideo/issues/16) -* await font load before drawing ([#31](https://github.com/redotvideo/revideo/issues/31)) ([cbfb5cb](https://github.com/redotvideo/revideo/commit/cbfb5cb136d85a657c99187da166b64aae8be3a1)) -* bug with createEaseInOutBack in interpolationFunctions.ts ([#69](https://github.com/redotvideo/revideo/issues/69)) ([2b95876](https://github.com/redotvideo/revideo/commit/2b958768a6d01f81e4fde51a018209e0fe800f8f)) -* calculate audio padding according to input sample rate, not target sample rate ([#41](https://github.com/redotvideo/revideo/issues/41)) ([cae94e5](https://github.com/redotvideo/revideo/commit/cae94e5b1017d31688028d8a3de9b86916580155)) -* change executable file permissions ([#38](https://github.com/redotvideo/revideo/issues/38)) ([23025a2](https://github.com/redotvideo/revideo/commit/23025a2caefd993f7e4751b1efced3a25ed497a6)) -* change to correct type ([#47](https://github.com/redotvideo/revideo/issues/47)) ([e3e01eb](https://github.com/redotvideo/revideo/commit/e3e01eb1571b35145826c296763f0339802ae438)) -* code will trigger PrismJS such that JSX is correctly highlighted ([#20](https://github.com/redotvideo/revideo/issues/20)) ([b323231](https://github.com/redotvideo/revideo/commit/b32323184b5f479bc09950fdf9c570b5276ea600)), closes [#17](https://github.com/redotvideo/revideo/issues/17) -* **core:** add missing type references ([#41](https://github.com/redotvideo/revideo/issues/41)) ([325c244](https://github.com/redotvideo/revideo/commit/325c2442814ca19407fe0060a819aded4456f90e)) -* **core:** clear DependencyContext promises once resolved ([#617](https://github.com/redotvideo/revideo/issues/617)) ([97b68da](https://github.com/redotvideo/revideo/commit/97b68dabfdf86c0e0a188212308b8aba0fb35cab)) -* **core:** clear semi-transparent backgrounds ([#424](https://github.com/redotvideo/revideo/issues/424)) ([1ebff1c](https://github.com/redotvideo/revideo/commit/1ebff1c92bebce56d11c61eb9dadca47f5a80ac1)), closes [#423](https://github.com/redotvideo/revideo/issues/423) -* **core:** fix looping ([#217](https://github.com/redotvideo/revideo/issues/217)) ([a38e1a7](https://github.com/redotvideo/revideo/commit/a38e1a7c8fc21384cc17f3f982802071b8cd0cbf)), closes [#178](https://github.com/redotvideo/revideo/issues/178) -* **core:** fix playback state ([#471](https://github.com/redotvideo/revideo/issues/471)) ([1c259d0](https://github.com/redotvideo/revideo/commit/1c259d0d574bb56dbc8bc448300d9b94ee4d0bc4)) -* **core:** fix relative time ([#461](https://github.com/redotvideo/revideo/issues/461)) ([8d4946e](https://github.com/redotvideo/revideo/commit/8d4946ebf56590bc3934087f95955180b4901566)) -* **core:** fix snapshots ([#638](https://github.com/redotvideo/revideo/issues/638)) ([437cc5e](https://github.com/redotvideo/revideo/commit/437cc5efddbb242b10f7902e18fe15162a45d7bd)) -* **core:** fix tree shaking ([#555](https://github.com/redotvideo/revideo/issues/555)) ([8de199e](https://github.com/redotvideo/revideo/commit/8de199eaf833622a96ad746c984fb7f3a77df4b8)) -* **core:** fix Vector2.exactlyEquals ([#437](https://github.com/redotvideo/revideo/issues/437)) ([028d264](https://github.com/redotvideo/revideo/commit/028d26499d8f3fb34500b22e8dcde2d080c2e2b0)) -* **core:** handle malicious event names ([#819](https://github.com/redotvideo/revideo/issues/819)) ([aba8eba](https://github.com/redotvideo/revideo/commit/aba8ebaf347ac3cbf6a9446c1aa60f629c7c18bd)) -* **core:** keep falsy values with deepTween ([#45](https://github.com/redotvideo/revideo/issues/45)) ([93c934f](https://github.com/redotvideo/revideo/commit/93c934f9b59462581267cca5033bf132b831ce54)) -* **core:** playback speed is reset after saving with faulty code ([#204](https://github.com/redotvideo/revideo/issues/204)). ([#339](https://github.com/redotvideo/revideo/issues/339)) ([6771e5e](https://github.com/redotvideo/revideo/commit/6771e5e17edcdc4cce074d7da0962cf71ba6c228)) -* **core:** project `variables` ([#690](https://github.com/redotvideo/revideo/issues/690)) ([149f39c](https://github.com/redotvideo/revideo/commit/149f39c3219aa74115be80490bd6c5f236779b0e)), closes [#689](https://github.com/redotvideo/revideo/issues/689) -* **core:** render only within the range ([#436](https://github.com/redotvideo/revideo/issues/436)) ([36ccebe](https://github.com/redotvideo/revideo/commit/36ccebe5321d84eeaa16f8b74a79c1001ee7ac0b)) -* correct dependencies for create package ([#15](https://github.com/redotvideo/revideo/issues/15)) ([27a2737](https://github.com/redotvideo/revideo/commit/27a273782f0f22fbe261712f26709c9708020b18)) -* correctly await re-renders ([#918](https://github.com/redotvideo/revideo/issues/918)) ([873a9a3](https://github.com/redotvideo/revideo/commit/873a9a3eed2676de4cc7f31fbd5ea58817a80aff)) -* create missing output directories ([#13](https://github.com/redotvideo/revideo/issues/13)) ([17f1e3f](https://github.com/redotvideo/revideo/commit/17f1e3fd37ec89998d67b22bd6762fc85b4778a2)), closes [#4](https://github.com/redotvideo/revideo/issues/4) -* **create:** fix package type ([#40](https://github.com/redotvideo/revideo/issues/40)) ([f07aa5d](https://github.com/redotvideo/revideo/commit/f07aa5d8f6c3485464ed3158187340c7db7d5af7)) -* **create:** update templates ([#439](https://github.com/redotvideo/revideo/issues/439)) ([8483557](https://github.com/redotvideo/revideo/commit/8483557f0a3ca7914aafacceab5d466abba59df0)) -* detect missing meta files ([#83](https://github.com/redotvideo/revideo/issues/83)) ([d1e2193](https://github.com/redotvideo/revideo/commit/d1e219361c7f61673073b377917c88d82f0e5d9e)), closes [#79](https://github.com/redotvideo/revideo/issues/79) -* display newlines in Code correctly ([#38](https://github.com/redotvideo/revideo/issues/38)) ([df8f390](https://github.com/redotvideo/revideo/commit/df8f390848d7a8e03193d64e460142e00ed95031)) -* **docs:** fix a typo ([#55](https://github.com/redotvideo/revideo/issues/55)) ([2691148](https://github.com/redotvideo/revideo/commit/26911481fa5f3d1f76ecd550ba6f61f44bac6124)) -* **docs:** fix broken links ([#105](https://github.com/redotvideo/revideo/issues/105)) ([f79427d](https://github.com/redotvideo/revideo/commit/f79427d588190908ba4015b7820d529f25e64e6a)) -* **docs:** fix fiddle accessibility ([#647](https://github.com/redotvideo/revideo/issues/647)) ([3037f65](https://github.com/redotvideo/revideo/commit/3037f657bec44a54f9e5c3d4802e77a7b06ee261)) -* **docs:** fix last updated footer ([#776](https://github.com/redotvideo/revideo/issues/776)) ([09c0085](https://github.com/redotvideo/revideo/commit/09c008587fcd4b52edbc5e7599ee378482f4230b)), closes [#767](https://github.com/redotvideo/revideo/issues/767) -* **docs:** fix links to examples ([#106](https://github.com/redotvideo/revideo/issues/106)) ([d445b56](https://github.com/redotvideo/revideo/commit/d445b564746bb5e8cbabcddaa9857ffec80a8755)) -* **docs:** fix search ([#336](https://github.com/redotvideo/revideo/issues/336)) ([e44ec02](https://github.com/redotvideo/revideo/commit/e44ec02539a67f099471a6aa84f673a236494687)) -* **docs:** fix small typo ([#107](https://github.com/redotvideo/revideo/issues/107)) ([fe6cbb0](https://github.com/redotvideo/revideo/commit/fe6cbb0083407f3de4594c76692a417bf4f616ee)) -* **docs:** fix the showcase editor ([#589](https://github.com/redotvideo/revideo/issues/589)) ([4964e77](https://github.com/redotvideo/revideo/commit/4964e7742dea46975dba911fe382737c8508535c)) -* **docs:** fix title in docs ([#19](https://github.com/redotvideo/revideo/issues/19)) ([f015acf](https://github.com/redotvideo/revideo/commit/f015acf62a2e8bcd620f92549e2b921890d56119)) -* **docs:** fix typo in configuration.mdx ([#185](https://github.com/redotvideo/revideo/issues/185)) ([ca67529](https://github.com/redotvideo/revideo/commit/ca67529925d3483cb84a36e852e5bad79c3861eb)) -* **docs:** fix typo in logging.mdx ([#652](https://github.com/redotvideo/revideo/issues/652)) ([5d04494](https://github.com/redotvideo/revideo/commit/5d044945ae126ea3fa4e5c14a1062ddcec39e0c3)) -* **docs:** improve predicate type ([#148](https://github.com/redotvideo/revideo/issues/148)) ([3abee4f](https://github.com/redotvideo/revideo/commit/3abee4f89ef467a48eb68382ac6d46d443ad28d9)) -* **docs:** invalid source code link ([#502](https://github.com/redotvideo/revideo/issues/502)) ([3588d53](https://github.com/redotvideo/revideo/commit/3588d53d45f9bc9b57aad10353d207cccdfb0dba)), closes [#499](https://github.com/redotvideo/revideo/issues/499) -* **docs:** name collisions between members ([#117](https://github.com/redotvideo/revideo/issues/117)) ([1e52b94](https://github.com/redotvideo/revideo/commit/1e52b945cac15dc7da2d9db8fbcf5d88ba293c6f)) -* **docs:** small corrections ([#108](https://github.com/redotvideo/revideo/issues/108)) ([9212343](https://github.com/redotvideo/revideo/commit/921234377bad7bb0f334c5dda04498cce26f7891)) -* **docs:** support multiple fiddles ([#572](https://github.com/redotvideo/revideo/issues/572)) ([899f133](https://github.com/redotvideo/revideo/commit/899f133dd6632e0ffa559bf3f258f94cf75891a7)) -* **docs:** support multiple fiddles again ([#574](https://github.com/redotvideo/revideo/issues/574)) ([d1867e9](https://github.com/redotvideo/revideo/commit/d1867e90998f5e36f819779bb5473a43ca4b3d7e)) -* **e2e:** update snapshot names ([#536](https://github.com/redotvideo/revideo/issues/536)) ([b150f08](https://github.com/redotvideo/revideo/commit/b150f080807e33cfe8ded302951411e4c14741db)) -* empty time events crashing ([a1c53de](https://github.com/redotvideo/revideo/commit/a1c53deba7c405ddf1a3b4874f22b63e0b085af9)) -* exclude preact from optimizations ([#894](https://github.com/redotvideo/revideo/issues/894)) ([15687cc](https://github.com/redotvideo/revideo/commit/15687cc975abcf4538a5ce51402d2308057d42e5)) -* **ffmpeg:** check if audio stream is present in video before extracting ([#12](https://github.com/redotvideo/revideo/issues/12)) ([1234fd1](https://github.com/redotvideo/revideo/commit/1234fd17769ca332061b4252aa770ea623a5348a)) -* fix compound property setter ([#218](https://github.com/redotvideo/revideo/issues/218)) ([6cd1b95](https://github.com/redotvideo/revideo/commit/6cd1b952df950554eb637c9f8e82947c415d00c5)), closes [#208](https://github.com/redotvideo/revideo/issues/208) [#210](https://github.com/redotvideo/revideo/issues/210) -* fix dependency bundling ([#897](https://github.com/redotvideo/revideo/issues/897)) ([5376012](https://github.com/redotvideo/revideo/commit/5376012cd02b8bca5abc2d3cf5a724662244c449)) -* fix dependency bundling again ([#898](https://github.com/redotvideo/revideo/issues/898)) ([d6e0f48](https://github.com/redotvideo/revideo/commit/d6e0f48e67cf6baee710b8d5b185e620e67ceda5)) -* fix docs workflow ([#102](https://github.com/redotvideo/revideo/issues/102)) ([f591169](https://github.com/redotvideo/revideo/commit/f5911699a7ae6b970ee4c0de891383a9c0cd5d0d)) -* fix docs workflow ([#103](https://github.com/redotvideo/revideo/issues/103)) ([b9e2006](https://github.com/redotvideo/revideo/commit/b9e20063be6aab75471d2a91cf862ac5bdc70e12)) -* fix docs workflow ([#104](https://github.com/redotvideo/revideo/issues/104)) ([7e59a1a](https://github.com/redotvideo/revideo/commit/7e59a1a5f77f4be65e599f539e16f6cf58785d9c)) -* fix hot reload ([#26](https://github.com/redotvideo/revideo/issues/26)) ([2ad746e](https://github.com/redotvideo/revideo/commit/2ad746e1eff705c2eb29ea9c83ad9810eeb54b05)) -* fix meta file version and timing ([#32](https://github.com/redotvideo/revideo/issues/32)) ([a369610](https://github.com/redotvideo/revideo/commit/a36961007eb7ac238b87ade3a03da101a1940800)) -* fix player state not being saved ([#85](https://github.com/redotvideo/revideo/issues/85)) ([74b54b9](https://github.com/redotvideo/revideo/commit/74b54b970d1287e80fe2334a034844ad6a80c23b)) -* fix project selection screen ([#938](https://github.com/redotvideo/revideo/issues/938)) ([3b3f287](https://github.com/redotvideo/revideo/commit/3b3f2871d9884c67f7d46215dd12fc02e27f8054)) -* fix scaffolding ([#93](https://github.com/redotvideo/revideo/issues/93)) ([95c55ed](https://github.com/redotvideo/revideo/commit/95c55ed338127dad22f42b24c8f6b101b8863be7)) -* fix tsdoc comments ([#21](https://github.com/redotvideo/revideo/issues/21)) ([4b6cb66](https://github.com/redotvideo/revideo/commit/4b6cb660ad82befcfd41188c7a8f9c8c0cba93ed)), closes [#18](https://github.com/redotvideo/revideo/issues/18) -* improper cloning of custom fields ([#925](https://github.com/redotvideo/revideo/issues/925)) ([4981da7](https://github.com/redotvideo/revideo/commit/4981da74e7b2b0e106fa14f1af2eac62d2bf82f4)) -* **legacy:** add missing files ([#61](https://github.com/redotvideo/revideo/issues/61)) ([fad87d5](https://github.com/redotvideo/revideo/commit/fad87d5aa5500e7c63cb914fc51044db6225502e)) -* limit fps to positive numbers ([#937](https://github.com/redotvideo/revideo/issues/937)) ([c7c0c67](https://github.com/redotvideo/revideo/commit/c7c0c6730e1a00e6b23077188bfc2d389e98cff2)), closes [#936](https://github.com/redotvideo/revideo/issues/936) -* load project state correctly ([#27](https://github.com/redotvideo/revideo/issues/27)) ([8ae0233](https://github.com/redotvideo/revideo/commit/8ae02335d71858413bffb265573bd83a1e38d89e)) -* make panes scrollable ([#14](https://github.com/redotvideo/revideo/issues/14)) ([dc9fd38](https://github.com/redotvideo/revideo/commit/dc9fd380285c9dfcc6d8503cca87c32e01f11381)) -* marked index.mjs as executable such that the cli will run on linux ([#47](https://github.com/redotvideo/revideo/issues/47)) ([722d5eb](https://github.com/redotvideo/revideo/commit/722d5eb72b8f4659ff93f57737d70f2650b91f81)), closes [#46](https://github.com/redotvideo/revideo/issues/46) -* MeshBoneMaterial opacity ([24db561](https://github.com/redotvideo/revideo/commit/24db5613aca19e5de2672aaf31f422e51aee19c8)) -* move hardcoded imports and plugins outside of loop ([af6a4a9](https://github.com/redotvideo/revideo/commit/af6a4a9e27a29b1e6d21139fb9dfff86dcc835da)) -* **player:** visibility on white background ([#36](https://github.com/redotvideo/revideo/issues/36)) ([4376d11](https://github.com/redotvideo/revideo/commit/4376d1170ee33f3a364a5f51a186a1e92fbf61b5)) -* plug memory leaks ([#385](https://github.com/redotvideo/revideo/issues/385)) ([de0af00](https://github.com/redotvideo/revideo/commit/de0af00a7d2e019e2a933791c62b7901755be7b0)) -* pre-commit hook will now work on linux and mac ([#51](https://github.com/redotvideo/revideo/issues/51)) ([ef80035](https://github.com/redotvideo/revideo/commit/ef80035ff7f67f48339049e9f0ded60c79180cb6)) -* prevent Color tree shaking ([#666](https://github.com/redotvideo/revideo/issues/666)) ([e5028e3](https://github.com/redotvideo/revideo/commit/e5028e3c176d5ba74dd3f28c2f25672390c76936)), closes [#577](https://github.com/redotvideo/revideo/issues/577) -* prevent consumePromises from halting ([#657](https://github.com/redotvideo/revideo/issues/657)) ([363a189](https://github.com/redotvideo/revideo/commit/363a189b0c7f5926c9d5ae00b58b48e8ed4d9b48)) -* prevent scrolling timeline with arrow keys ([#4](https://github.com/redotvideo/revideo/issues/4)) ([dfc8108](https://github.com/redotvideo/revideo/commit/dfc8108976f5c20a4b4a44bee788ee71011769c6)) -* previous scene being rendered twice ([#97](https://github.com/redotvideo/revideo/issues/97)) ([90205bd](https://github.com/redotvideo/revideo/commit/90205bdc1a086abe5f73b04cb4616c6af5ec4377)) -* previous scene invisible when seeking ([65e32f0](https://github.com/redotvideo/revideo/commit/65e32f03b79af730064c935eaf1645019c303399)) -* previous scenes not getting disposed ([bf3a1fc](https://github.com/redotvideo/revideo/commit/bf3a1fcf5fc22758893b5b742ca00a5741a5d560)) -* range middle-click expansion ([1c0b724](https://github.com/redotvideo/revideo/commit/1c0b7243cffa3e33779b736ecce2dad19880f796)) -* re-render the scene when canvas changes ([#55](https://github.com/redotvideo/revideo/issues/55)) ([191f96d](https://github.com/redotvideo/revideo/commit/191f96da1441bc37d6e61e1acdcfde6994a7f9f3)) -* remove console.log ([#25](https://github.com/redotvideo/revideo/issues/25)) ([dd376bc](https://github.com/redotvideo/revideo/commit/dd376bcd2ad6ba21dc5b5ff564fe70d7bc52a2f7)) -* remove dependency pre-bundling warning ([#676](https://github.com/redotvideo/revideo/issues/676)) ([38c81ff](https://github.com/redotvideo/revideo/commit/38c81ffa5ea0ef2d2beec9d015896f5873629d74)) -* remove inconsistency in playhead controls ([#1](https://github.com/redotvideo/revideo/issues/1)) ([58cdb4a](https://github.com/redotvideo/revideo/commit/58cdb4a26144f9933dba64d687fa63d442f115bd)) -* remove unnecessary rendererplugins to fix parameterized rendering ([#27](https://github.com/redotvideo/revideo/issues/27)) ([c5f9bd6](https://github.com/redotvideo/revideo/commit/c5f9bd678b40fae532a1bc6b3c466a5d6920e4ac)) -* resolve asset file paths differently when they are inside project ([#5](https://github.com/redotvideo/revideo/issues/5)) ([e0a3917](https://github.com/redotvideo/revideo/commit/e0a39175a34f501ffce0fa4508c83e84244fd43c)) -* resolve path correctly when file is in public folder ([#8](https://github.com/redotvideo/revideo/issues/8)) ([d1a74a4](https://github.com/redotvideo/revideo/commit/d1a74a4b0aaf89a535d7e7f95ce51de8ba3aaa78)) -* resolve remote file urls in exporter correctly ([#7](https://github.com/redotvideo/revideo/issues/7)) ([1807191](https://github.com/redotvideo/revideo/commit/18071918fa295f83a9d12f885d2079965a694d7f)) -* respect child origins in LinearLayout ([5ee114d](https://github.com/redotvideo/revideo/commit/5ee114ddd9e48d6cea5360ea090c17f1dbc8c641)) -* restrict size of cache canvas ([#544](https://github.com/redotvideo/revideo/issues/544)) ([49ec554](https://github.com/redotvideo/revideo/commit/49ec55490718e503d9a39437ae13c189dc4fe9ea)) -* restrict the corner radius of a rectangle ([#9](https://github.com/redotvideo/revideo/issues/9)) ([cc86a4a](https://github.com/redotvideo/revideo/commit/cc86a4a6d5b44e75ed02a1bdf90b588450a663b2)), closes [#8](https://github.com/redotvideo/revideo/issues/8) -* save time events only if they're actively used ([#35](https://github.com/redotvideo/revideo/issues/35)) ([bd78c89](https://github.com/redotvideo/revideo/commit/bd78c8967ba395beeb352006b5f33768b4a4c498)), closes [#33](https://github.com/redotvideo/revideo/issues/33) [#34](https://github.com/redotvideo/revideo/issues/34) -* save timeline state ([9d57b8a](https://github.com/redotvideo/revideo/commit/9d57b8ae1f7cfd6ec468d3348aa0fda4afd88a84)) -* support color to null tweening ([#387](https://github.com/redotvideo/revideo/issues/387)) ([02e9f22](https://github.com/redotvideo/revideo/commit/02e9f22027a1c3a85ffcc259aeca913318fb6f54)) -* support hmr when navigating ([370ea16](https://github.com/redotvideo/revideo/commit/370ea1676a1c34313c0fb917c0f0691538f72016)) -* support legacy imports again ([#868](https://github.com/redotvideo/revideo/issues/868)) ([77c4e2e](https://github.com/redotvideo/revideo/commit/77c4e2eeb8b0f73bdef1f72e3d81f34c79748929)) -* support multiple async players ([#450](https://github.com/redotvideo/revideo/issues/450)) ([d7ec469](https://github.com/redotvideo/revideo/commit/d7ec469e747eefd909f4dd59dd713f5d86308222)), closes [#434](https://github.com/redotvideo/revideo/issues/434) -* support nested threads ([#84](https://github.com/redotvideo/revideo/issues/84)) ([4a4a95f](https://github.com/redotvideo/revideo/commit/4a4a95f5891b5ec674f67f6b889abe4e855509ac)) -* surface error ([#38](https://github.com/redotvideo/revideo/issues/38)) ([15cddfb](https://github.com/redotvideo/revideo/commit/15cddfba081c79d0315cbfa02cd448bab5817195)) -* the resolution fields in Rendering no longer reset each other ([#73](https://github.com/redotvideo/revideo/issues/73)) ([ddabec5](https://github.com/redotvideo/revideo/commit/ddabec549be3cecec27cf9f5643b036e12a83472)) -* timeline will no longer seek when scrolling using the scrollbar ([#19](https://github.com/redotvideo/revideo/issues/19)) ([c1b1680](https://github.com/redotvideo/revideo/commit/c1b168065814edfe7dc4283366a98826c7d93d88)) -* typo on codeblock remove comments ([#368](https://github.com/redotvideo/revideo/issues/368)) ([2025adc](https://github.com/redotvideo/revideo/commit/2025adc6e7aa11d81b6f5f6989e8eae18cf86cb7)) -* **ui:** correctly drag time events ([#912](https://github.com/redotvideo/revideo/issues/912)) ([81f6dd6](https://github.com/redotvideo/revideo/commit/81f6dd6e485be451a50a695a146ed6b69e30bbc2)) -* **ui:** correctly reset zoom ([#432](https://github.com/redotvideo/revideo/issues/432)) ([a33ee14](https://github.com/redotvideo/revideo/commit/a33ee14dfac3e1fe24c89d76631e23fe4cb625a6)) -* **ui:** don't seek when editing time events ([#26](https://github.com/redotvideo/revideo/issues/26)) ([524c200](https://github.com/redotvideo/revideo/commit/524c200ef1bd6a6f52096d04c2aeed24a24cda6f)) -* **ui:** downgrade preact ([#1](https://github.com/redotvideo/revideo/issues/1)) ([5f7456f](https://github.com/redotvideo/revideo/commit/5f7456fe4c5a1cc76ccd8fed5a6f9a8a4e846d27)) -* **ui:** fix "go to source" ([#895](https://github.com/redotvideo/revideo/issues/895)) ([ec729de](https://github.com/redotvideo/revideo/commit/ec729dea0d65bc69aefc0abd601f365af1c4ed68)) -* **ui:** fix collapse ([#698](https://github.com/redotvideo/revideo/issues/698)) ([6bd8703](https://github.com/redotvideo/revideo/commit/6bd8703ec9b16f55b3817f6a1f9130f17b66c69a)) -* **ui:** fix inspector tab ([#374](https://github.com/redotvideo/revideo/issues/374)) ([c4cb378](https://github.com/redotvideo/revideo/commit/c4cb378c2f9d972bb41542bbe3b3aa314fa1f3ad)) -* **ui:** fix new version link ([#505](https://github.com/redotvideo/revideo/issues/505)) ([7459e7f](https://github.com/redotvideo/revideo/commit/7459e7f8355163f3cb6a3ed791fc41a2962a186e)) -* **ui:** fix onChange handlers ([#515](https://github.com/redotvideo/revideo/issues/515)) ([a23d06c](https://github.com/redotvideo/revideo/commit/a23d06cbf6e29f37a9259e50fe71c482640b83fb)) -* **ui:** fix out of range warning ([#939](https://github.com/redotvideo/revideo/issues/939)) ([c9f466f](https://github.com/redotvideo/revideo/commit/c9f466f20ff1a3e2cb77aa5575823947ef9beeee)) -* **ui:** fix play-pause button ([#299](https://github.com/redotvideo/revideo/issues/299)) ([191f54a](https://github.com/redotvideo/revideo/commit/191f54a0a5a9de2fd2dc27bffc6d21d692ce6f72)) -* **ui:** fix snapshot ([#643](https://github.com/redotvideo/revideo/issues/643)) ([590216a](https://github.com/redotvideo/revideo/commit/590216ac094d6b6ef3e9c773499bc52063f617b1)) -* **ui:** fix transparent background ([#886](https://github.com/redotvideo/revideo/issues/886)) ([83f652f](https://github.com/redotvideo/revideo/commit/83f652fdcfa075f5de24186ffdffd1b7db1d8fc9)) -* **ui:** fix typo in viewport ID ([#620](https://github.com/redotvideo/revideo/issues/620)) ([3a83f20](https://github.com/redotvideo/revideo/commit/3a83f20cb1b8ddc7b95a8e36bf6f3d0cd036693b)) -* **ui:** fix zoom to fit ([#561](https://github.com/redotvideo/revideo/issues/561)) ([1c947b4](https://github.com/redotvideo/revideo/commit/1c947b417e218809f33928d6cbb89d463bdc2e66)) -* **ui:** ignore shortcuts when typing ([#521](https://github.com/redotvideo/revideo/issues/521)) ([4d3e1a1](https://github.com/redotvideo/revideo/commit/4d3e1a13caee2ddd03857961a44dd10a7e1cb32a)), closes [#518](https://github.com/redotvideo/revideo/issues/518) -* **ui:** misaligned overlay ([#127](https://github.com/redotvideo/revideo/issues/127)) ([0379730](https://github.com/redotvideo/revideo/commit/03797302a302e28caf9f2428cfce4a122f827775)) -* **ui:** prevent context menu in viewport ([#123](https://github.com/redotvideo/revideo/issues/123)) ([0fdd85e](https://github.com/redotvideo/revideo/commit/0fdd85ecf5b61907ce1e16f5fb9253540528a8b0)) -* **ui:** prevent spawning multiple color pickers ([#747](https://github.com/redotvideo/revideo/issues/747)) ([48ffd1f](https://github.com/redotvideo/revideo/commit/48ffd1f2eec21f9880e172632a2310f5676e3c19)), closes [#744](https://github.com/redotvideo/revideo/issues/744) -* **ui:** prevent timeline scroll when zooming ([#162](https://github.com/redotvideo/revideo/issues/162)) ([b8278ae](https://github.com/redotvideo/revideo/commit/b8278aeb7b92f215bccbd1aa57de17c9233cff01)) -* **ui:** remember state of custom tabs ([#900](https://github.com/redotvideo/revideo/issues/900)) ([eac45b8](https://github.com/redotvideo/revideo/commit/eac45b88ed09fc7cddc3336e46d8697de5775b1f)) -* **ui:** remove glossy { - setFilter({ - ...filter, - private: e.target.checked, - }); - }} - /> - Protected members - - -
  • { - if (e.key === 'Tab') { - setShowDropdown(false); - } - }} - > - -
  • - - - - ); -} diff --git a/packages/docs/src/components/Api/Filters/index.module.css b/packages/docs/src/components/Api/Filters/index.module.css deleted file mode 100644 index 8bee2f55..00000000 --- a/packages/docs/src/components/Api/Filters/index.module.css +++ /dev/null @@ -1,18 +0,0 @@ -.header { - flex-direction: row-reverse; -} - -.filters { - width: auto; - flex-shrink: 0; - flex-grow: 0; - white-space: nowrap; - display: flex; - justify-content: flex-end; - align-items: flex-start; -} - -.icon { - margin-left: 0.3em; - margin-bottom: -0.3em; -} diff --git a/packages/docs/src/components/Api/Filters/index.tsx b/packages/docs/src/components/Api/Filters/index.tsx deleted file mode 100644 index 2b7ec7d6..00000000 --- a/packages/docs/src/components/Api/Filters/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import {ReflectionKind} from '@site/src/components/Api/ReflectionKind'; -import clsx from 'clsx'; -import React, {ReactNode} from 'react'; -import Controls from './Controls'; -import styles from './index.module.css'; - -export default function Filters({ - children, - kind, -}: { - children: ReactNode; - kind: ReflectionKind; -}) { - if (kind === ReflectionKind.Class || kind === ReflectionKind.Interface) { - return ( -
    -
    - -
    -
    {children}
    -
    - ); - } - - return <>{children}; -} diff --git a/packages/docs/src/components/Api/Group/Category.tsx b/packages/docs/src/components/Api/Group/Category.tsx deleted file mode 100644 index d7b7a9b8..00000000 --- a/packages/docs/src/components/Api/Group/Category.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import {FilteredGroup} from '@site/src/components/Api/Group/index'; -import Item from '@site/src/components/Api/Item'; -import ReferenceType from '@site/src/components/Api/Type/ReferenceType'; -import React from 'react'; - -export default function Category({group}: {group: FilteredGroup}) { - if ( - group.title === 'Constructors' && - group.external.length === 0 && - group.nested.length === 1 - ) { - return ; - } - - return ( - <> - {group.external.length > 0 && ( -
      - {group.external.map(child => ( -
    • - - - -
    • - ))} -
    - )} - {group.nested.length > 0 && - group.nested.map((child, index) => ( - - {index > 0 &&
    } - -
    - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Group/index.tsx b/packages/docs/src/components/Api/Group/index.tsx deleted file mode 100644 index ad3a18e5..00000000 --- a/packages/docs/src/components/Api/Group/index.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import {useLocation} from '@docusaurus/router'; -import Category from '@site/src/components/Api/Group/Category'; -import {ApiLookup, useApiLookup} from '@site/src/contexts/api'; -import {Filters, matchFilters, useFilters} from '@site/src/contexts/filters'; -import Heading from '@theme/Heading'; -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; -import React, {useEffect, useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; - -export interface FilteredGroup { - title: string; - external: JSONOutput.Reflection[]; - nested: JSONOutput.Reflection[]; - anchors: string[]; -} - -function filterGroup( - group: JSONOutput.ReflectionGroup, - lookup: ApiLookup, - filters: Filters, -): FilteredGroup { - const external = []; - const nested = []; - const anchors = []; - for (const child of group.children) { - const reference = lookup[child]; - if (!reference || !matchFilters(filters, reference)) continue; - - anchors.push(reference.anchor); - if (reference.hasOwnPage) { - external.push(reference); - } else { - nested.push(reference); - } - } - - if (external.length > 0 || nested.length > 0) { - return { - title: group.title, - external, - nested, - anchors, - }; - } -} - -export default function Group({ - group, - project, -}: { - group: JSONOutput.ReflectionGroup; - project: number; -}) { - const location = useLocation(); - const lookup = useApiLookup(project); - const hash = location.hash.split('-')[0].slice(1); - const [filters] = useFilters(); - - const categories = useMemo( - () => - (group.categories ?? [group]) - .map(group => filterGroup(group, lookup, filters)) - .filter(group => !!group), - [group, lookup, filters], - ); - - useEffect(() => { - if (categories.length === 1) return; - - const hash = location.hash.split('-')[0].slice(1); - for (const category of categories) { - if (category.anchors.includes(hash)) { - // TODO Find a way to select the current tab - // setTabGroupChoices(group.title, category.title); - return; - } - } - }, [location.hash, categories]); - - if (categories.length === 0) { - return <>; - } - - return ( - <> - - {group.title} - - {categories.length > 1 ? ( - - {categories.map(category => { - return ( - - - - ); - })} - - ) : ( - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Item/ClassItem.tsx b/packages/docs/src/components/Api/Item/ClassItem.tsx deleted file mode 100644 index 244429c9..00000000 --- a/packages/docs/src/components/Api/Item/ClassItem.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import CodeBlock from '@site/src/components/Api/Code/CodeBlock'; -import Container from '@site/src/components/Api/Code/Container'; -import Line from '@site/src/components/Api/Code/Line'; -import Comment from '@site/src/components/Api/Comment'; -import Filters from '@site/src/components/Api/Filters'; -import Group from '@site/src/components/Api/Group'; -import Preview from '@site/src/components/Api/Preview'; -import Signatures from '@site/src/components/Api/Signatures'; -import ReferenceType from '@site/src/components/Api/Type/ReferenceType'; -import TypeParameters from '@site/src/components/Api/TypeParameters'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function ClassItem({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - return ( - <> - - - - - - - - - - - - {reflection.implementedBy?.length && ( - <> -

    Implemented by

    -
      - {reflection.implementedBy.map(type => ( -
    • - - - -
    • - ))} -
    - - )} - {reflection.extendedBy?.length && ( - <> -

    Extended by

    -
      - {reflection.extendedBy.map(type => ( -
    • - - - -
    • - ))} -
    - - )} - {reflection.signatures && ( - <> -

    Callable

    - - - )} - {reflection.groups?.map(group => ( - - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Item/FunctionItem.tsx b/packages/docs/src/components/Api/Item/FunctionItem.tsx deleted file mode 100644 index 39b75e83..00000000 --- a/packages/docs/src/components/Api/Item/FunctionItem.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; - -import Signatures from '@site/src/components/Api/Signatures'; -import ReferenceType from '@site/src/components/Api/Type/ReferenceType'; -import Heading from '@theme/Heading'; -import type {JSONOutput} from 'typedoc'; - -export default function FunctionItem({ - reflection, - headless, -}: { - reflection: JSONOutput.DeclarationReflection; - headless?: boolean; -}) { - const signatures = [ - ...(reflection.signatures ?? []), - reflection.setSignature, - reflection.getSignature, - reflection.indexSignature, - ].filter(item => !!item); - - return ( - <> - {!headless && - (reflection.hasOwnPage ? ( -

    {reflection.name}

    - ) : ( - - {reflection.name} - - ))} - - {reflection.inheritedFrom && ( - - Inherited from{' '} - - - - - )} - {reflection.overwrites && ( - - Overwrites{' '} - - - - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Item/ModuleItem.tsx b/packages/docs/src/components/Api/Item/ModuleItem.tsx deleted file mode 100644 index 40e9f70f..00000000 --- a/packages/docs/src/components/Api/Item/ModuleItem.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import Comment from '@site/src/components/Api/Comment'; -import Filters from '@site/src/components/Api/Filters'; -import Group from '@site/src/components/Api/Group'; -import CodeBlock from '@theme/CodeBlock'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function ModuleItem({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - return ( - <> - - import {'{...}'} from "{reflection.importPath}"; - - - - - {reflection.groups?.map(group => ( - - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Item/ProjectItem.tsx b/packages/docs/src/components/Api/Item/ProjectItem.tsx deleted file mode 100644 index d4bbea98..00000000 --- a/packages/docs/src/components/Api/Item/ProjectItem.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import Link from '@docusaurus/Link'; -import {useApiLookup} from '@site/src/contexts/api'; -import clsx from 'clsx'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; -import styles from './styles.module.css'; - -export default function ProjectItem({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const lookup = useApiLookup(reflection.project); - const modules = reflection.groups[0].children - .map(id => lookup[id]) - .filter(module => !!module); - - return ( -
    -
    - {modules.map(module => ( -
    - -

    - {module.name} -

    -
    - {module.comment?.summaryText ?? '\u00A0'} -
    - -
    - ))} -
    -
    - ); -} diff --git a/packages/docs/src/components/Api/Item/PropertyItem.tsx b/packages/docs/src/components/Api/Item/PropertyItem.tsx deleted file mode 100644 index 12a6f25e..00000000 --- a/packages/docs/src/components/Api/Item/PropertyItem.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; - -import CodeBlock from '@site/src/components/Api/Code/CodeBlock'; -import Container from '@site/src/components/Api/Code/Container'; -import Line from '@site/src/components/Api/Code/Line'; -import Comment from '@site/src/components/Api/Comment'; -import PropertyPreview from '@site/src/components/Api/Preview/PropertyPreview'; -import ReferenceType from '@site/src/components/Api/Type/ReferenceType'; -import Heading from '@theme/Heading'; -import type {JSONOutput} from 'typedoc'; - -export default function PropertyItem({ - reflection, - headless, -}: { - reflection: JSONOutput.DeclarationReflection; - headless?: boolean; -}) { - return ( - <> - {!headless && - (reflection.hasOwnPage ? ( -

    {reflection.name}

    - ) : ( - - {reflection.name} - - ))} - - - - - - - - - {reflection.inheritedFrom && ( - - Inherited from{' '} - - - - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Item/TypeAliasItem.tsx b/packages/docs/src/components/Api/Item/TypeAliasItem.tsx deleted file mode 100644 index fefefb59..00000000 --- a/packages/docs/src/components/Api/Item/TypeAliasItem.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react'; - -import CodeBlock from '@site/src/components/Api/Code/CodeBlock'; -import Container from '@site/src/components/Api/Code/Container'; -import Line from '@site/src/components/Api/Code/Line'; -import Comment from '@site/src/components/Api/Comment'; -import Item from '@site/src/components/Api/Item'; -import Preview from '@site/src/components/Api/Preview'; -import Signatures from '@site/src/components/Api/Signatures'; -import TypeParameters from '@site/src/components/Api/TypeParameters'; -import {useApiLookup} from '@site/src/contexts/api'; -import Heading from '@theme/Heading'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeAliasItem({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const lookup = useApiLookup(reflection.project); - - return ( - <> - - {reflection.name} - - - - - - - - - - - {reflection.signatures && ( - <> -

    Callable

    - - - )} - {reflection.groups?.map(group => ( - -

    {group.title}

    - {group.children - .map(child => lookup[child]) - .filter( - child => - child && - (child.flags.isPublic || - (!child.flags.isProtected && !child.flags.isPrivate)), - ) - .map(child => ( - - ))} -
    - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Item/index.tsx b/packages/docs/src/components/Api/Item/index.tsx deleted file mode 100644 index 587981fa..00000000 --- a/packages/docs/src/components/Api/Item/index.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import ClassItem from '@site/src/components/Api/Item/ClassItem'; -import FunctionItem from '@site/src/components/Api/Item/FunctionItem'; -import ModuleItem from '@site/src/components/Api/Item/ModuleItem'; -import ProjectItem from '@site/src/components/Api/Item/ProjectItem'; -import PropertyItem from '@site/src/components/Api/Item/PropertyItem'; -import TypeAliasItem from '@site/src/components/Api/Item/TypeAliasItem'; -import React, {useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; -import {ReflectionKind} from '../ReflectionKind'; - -export default function Item({ - reflection, - headless = false, -}: { - reflection: JSONOutput.DeclarationReflection; - headless?: boolean; -}) { - const Component = useMemo(() => { - switch (reflection.kind as ReflectionKind) { - case ReflectionKind.Project: - return ProjectItem; - case ReflectionKind.Module: - return ModuleItem; - case ReflectionKind.Namespace: - case ReflectionKind.Enum: - case ReflectionKind.Class: - case ReflectionKind.Interface: - return ClassItem; - case ReflectionKind.Function: - case ReflectionKind.Accessor: - case ReflectionKind.Constructor: - case ReflectionKind.Method: - return FunctionItem; - case ReflectionKind.Variable: - case ReflectionKind.Property: - case ReflectionKind.EnumMember: - return PropertyItem; - case ReflectionKind.CallSignature: - break; - case ReflectionKind.IndexSignature: - break; - case ReflectionKind.ConstructorSignature: - break; - case ReflectionKind.Parameter: - break; - case ReflectionKind.TypeLiteral: - break; - case ReflectionKind.TypeParameter: - break; - case ReflectionKind.GetSignature: - break; - case ReflectionKind.SetSignature: - break; - case ReflectionKind.ObjectLiteral: - break; - case ReflectionKind.TypeAlias: - return TypeAliasItem; - case ReflectionKind.Reference: - break; - } - - throw new Error( - `Missing component for reflection: ${reflection.kindString}`, - ); - }, [reflection.kind]); - - return ; -} diff --git a/packages/docs/src/components/Api/Item/styles.module.css b/packages/docs/src/components/Api/Item/styles.module.css deleted file mode 100644 index 4f7ad27f..00000000 --- a/packages/docs/src/components/Api/Item/styles.module.css +++ /dev/null @@ -1,27 +0,0 @@ -.cardContainer { - --ifm-link-color: var(--ifm-color-emphasis-800); - --ifm-link-hover-color: var(--ifm-color-emphasis-700); - --ifm-link-hover-decoration: none; - - box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); - border: 1px solid var(--ifm-color-emphasis-200); - transition: all var(--ifm-transition-fast) ease; - transition-property: border, box-shadow; -} - -.cardContainer:hover { - border-color: var(--ifm-color-primary); - box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%); -} - -.cardContainer *:last-child { - margin-bottom: 0; -} - -.cardTitle { - font-size: 1.2rem; -} - -.cardDescription { - font-size: 0.8rem; -} diff --git a/packages/docs/src/components/Api/Parameters/index.tsx b/packages/docs/src/components/Api/Parameters/index.tsx deleted file mode 100644 index cd1bf380..00000000 --- a/packages/docs/src/components/Api/Parameters/index.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import Summary from '@site/src/components/Api/Comment/Summary'; -import ParameterPreview from '@site/src/components/Api/Preview/ParameterPreview'; -import {useApiFinder} from '@site/src/contexts/api'; -import React, {useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function Parameters({parameters}: {parameters: number[]}) { - const find = useApiFinder(); - const data = useMemo( - () => parameters?.map(find), - [parameters], - ); - - if (!data?.length) { - return <>; - } - - return ( - <> -

    Parameters

    -
      - {data.map(parameter => ( -
    • - - - - -
    • - ))} -
    - - ); -} diff --git a/packages/docs/src/components/Api/Preview/ClassPreview.tsx b/packages/docs/src/components/Api/Preview/ClassPreview.tsx deleted file mode 100644 index 12b08eb7..00000000 --- a/packages/docs/src/components/Api/Preview/ClassPreview.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import FlagsPreview from '@site/src/components/Api/Preview/FlagsPreview'; -import TypeParameterPreview from '@site/src/components/Api/Preview/TypeParameterPreview'; -import {ReflectionKind} from '@site/src/components/Api/ReflectionKind'; -import Type from '@site/src/components/Api/Type'; -import {useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -const MainKeyword = { - [ReflectionKind.Namespace]: 'namespace', - [ReflectionKind.Enum]: 'enum', - [ReflectionKind.Class]: 'class', - [ReflectionKind.Interface]: 'interface', -}; - -export default function ClassPreview({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const find = useApiFinder(); - return ( - <> - - {MainKeyword[reflection.kind]} - {reflection.name} - {!!reflection.typeParameters?.length && ( - - {reflection.typeParameters.map(type => ( - - ))} - - )}{' '} - {!!reflection.extendedTypes?.length && ( - <> - extends - - {reflection.extendedTypes.map((type, index) => ( - - ))} - - - )} - {!!reflection.implementedTypes?.length && ( - <> - implements - - {reflection.implementedTypes.map((type, index) => ( - - ))} - - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Preview/FlagsPreview.tsx b/packages/docs/src/components/Api/Preview/FlagsPreview.tsx deleted file mode 100644 index ff958fe2..00000000 --- a/packages/docs/src/components/Api/Preview/FlagsPreview.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import Token from '@site/src/components/Api/Code/Token'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function FlagsPreview({ - flags, - explicitAccessModifier, -}: { - flags: JSONOutput.ReflectionFlags; - explicitAccessModifier?: boolean; -}) { - const tokens = []; - - if (flags?.isAbstract) { - tokens.push('abstract'); - } - if (flags?.isStatic) { - tokens.push('static'); - } - if (flags?.isConst) { - tokens.push('const'); - } - if (flags?.isReadonly) { - tokens.push('readonly'); - } - if (flags?.isPrivate) { - tokens.push('private'); - } - if (flags?.isProtected) { - tokens.push('protected'); - } - if ( - flags?.isPublic || - (explicitAccessModifier && !flags?.isProtected && !flags?.isPrivate) - ) { - tokens.push('public'); - } - - return ( - <> - {tokens.map(token => ( - - {token}{' '} - - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Preview/FunctionPreview.tsx b/packages/docs/src/components/Api/Preview/FunctionPreview.tsx deleted file mode 100644 index ae764acb..00000000 --- a/packages/docs/src/components/Api/Preview/FunctionPreview.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; - -import SignaturePreview from '@site/src/components/Api/Preview/SignaturePreview'; -import type {JSONOutput} from 'typedoc'; - -export default function FunctionPreview({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const signature = - reflection.signatures?.[0] ?? - reflection.getSignature ?? - reflection.setSignature ?? - reflection.indexSignature; - - return ; -} diff --git a/packages/docs/src/components/Api/Preview/ParameterPreview.tsx b/packages/docs/src/components/Api/Preview/ParameterPreview.tsx deleted file mode 100644 index 9d4d060f..00000000 --- a/packages/docs/src/components/Api/Preview/ParameterPreview.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import Token from '@site/src/components/Api/Code/Token'; -import FlagsPreview from '@site/src/components/Api/Preview/FlagsPreview'; -import Type from '@site/src/components/Api/Type'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function ParameterPreview({ - reflection, -}: { - reflection: JSONOutput.ParameterReflection; -}) { - const name = - reflection.name === '__namedParameters' ? '{...}' : reflection.name; - - return ( - <> - - {reflection.flags.isRest && '...'} - - {name} - - {reflection.flags.isOptional && '?'} - {': '} - {reflection.type && } - {reflection.defaultValue && ( - <> - {' = '} - {reflection.defaultValue} - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Preview/PropertyPreview.tsx b/packages/docs/src/components/Api/Preview/PropertyPreview.tsx deleted file mode 100644 index 40b04561..00000000 --- a/packages/docs/src/components/Api/Preview/PropertyPreview.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import ParameterPreview from '@site/src/components/Api/Preview/ParameterPreview'; -import type {JSONOutput} from 'typedoc'; - -export default function PropertyPreview({ - reflection, -}: { - reflection: JSONOutput.SignatureReflection; -}) { - return ; -} diff --git a/packages/docs/src/components/Api/Preview/SignaturePreview.tsx b/packages/docs/src/components/Api/Preview/SignaturePreview.tsx deleted file mode 100644 index e678b05f..00000000 --- a/packages/docs/src/components/Api/Preview/SignaturePreview.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import FlagsPreview from '@site/src/components/Api/Preview/FlagsPreview'; -import ParameterPreview from '@site/src/components/Api/Preview/ParameterPreview'; -import TypeParameterPreview from '@site/src/components/Api/Preview/TypeParameterPreview'; -import {ReflectionKind} from '@site/src/components/Api/ReflectionKind'; -import Type from '@site/src/components/Api/Type'; -import {getUrl, useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function SignaturePreview({ - reflection, - flags, -}: { - reflection: JSONOutput.SignatureReflection; - flags?: JSONOutput.ReflectionFlags; -}) { - const find = useApiFinder(); - const isArrow = reflection.name === '__type'; - - return ( - <> - - {reflection.kind === ReflectionKind.GetSignature && ( - get - )} - {reflection.kind === ReflectionKind.SetSignature && ( - set - )} - {reflection.overwrites && ( - <> - - override - {' '} - - )} - {reflection.kind === ReflectionKind.ConstructorSignature ? ( - <> - - new - {' '} - - {(reflection.type as JSONOutput.ReferenceType).name} - - - ) : isArrow ? ( - '' - ) : ( - {reflection.name} - )} - {!!reflection.typeParameter?.length && ( - - {reflection.typeParameter.map(type => ( - - ))} - - )} - {reflection.parameters?.length ? ( - - {reflection.parameters.map(id => ( - - ))} - - ) : ( - '()' - )} - {reflection.type && ( - <> - {isArrow ? ' => ' : ': '} - - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Preview/TypeAliasPreview.tsx b/packages/docs/src/components/Api/Preview/TypeAliasPreview.tsx deleted file mode 100644 index b4d8ffb3..00000000 --- a/packages/docs/src/components/Api/Preview/TypeAliasPreview.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import FlagsPreview from '@site/src/components/Api/Preview/FlagsPreview'; -import TypeParameterPreview from '@site/src/components/Api/Preview/TypeParameterPreview'; -import Type from '@site/src/components/Api/Type'; -import {useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeAliasPreview({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const find = useApiFinder(); - return ( - <> - - type - {reflection.name} - {reflection.typeParameters && ( - - {reflection.typeParameters.map(type => ( - - ))} - - )} - {' = '} - - - ); -} diff --git a/packages/docs/src/components/Api/Preview/TypeLiteralPreview.tsx b/packages/docs/src/components/Api/Preview/TypeLiteralPreview.tsx deleted file mode 100644 index ab59232a..00000000 --- a/packages/docs/src/components/Api/Preview/TypeLiteralPreview.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import Preview from '@site/src/components/Api/Preview'; -import SignaturePreview from '@site/src/components/Api/Preview/SignaturePreview'; -import {useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeLiteralPreview({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const find = useApiFinder(); - if (reflection.signatures) { - let signature = reflection.signatures[0]; - if (!signature?.kind) { - signature = find(signature); - } - if (signature) { - return ; - } - } - if (reflection.children) { - return ( - - {reflection.children.map(child => ( - - ))} - - ); - } - - return ( - <> - unknown - - ); -} diff --git a/packages/docs/src/components/Api/Preview/TypeParameterPreview.tsx b/packages/docs/src/components/Api/Preview/TypeParameterPreview.tsx deleted file mode 100644 index 54520017..00000000 --- a/packages/docs/src/components/Api/Preview/TypeParameterPreview.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import Token from '@site/src/components/Api/Code/Token'; -import FlagsSummary from '@site/src/components/Api/Preview/FlagsPreview'; -import Type from '@site/src/components/Api/Type'; -import React from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeParameterPreview({ - reflection, -}: { - reflection: JSONOutput.TypeParameterReflection; -}) { - return ( - <> - - {reflection.varianceModifier && ( - {reflection.varianceModifier} - )} - - {reflection.name} - - {reflection.type && ( - <> - {' extends '} - - - )} - {reflection.default && ( - <> - {' = '} - - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Preview/index.tsx b/packages/docs/src/components/Api/Preview/index.tsx deleted file mode 100644 index fcbcc1ef..00000000 --- a/packages/docs/src/components/Api/Preview/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import ClassPreview from '@site/src/components/Api/Preview/ClassPreview'; -import FunctionPreview from '@site/src/components/Api/Preview/FunctionPreview'; -import PropertyPreview from '@site/src/components/Api/Preview/PropertyPreview'; -import SignaturePreview from '@site/src/components/Api/Preview/SignaturePreview'; -import TypeAliasPreview from '@site/src/components/Api/Preview/TypeAliasPreview'; -import TypeLiteralPreview from '@site/src/components/Api/Preview/TypeLiteralPreview'; -import TypeParameterPreview from '@site/src/components/Api/Preview/TypeParameterPreview'; -import {ReflectionKind} from '@site/src/components/Api/ReflectionKind'; -import React, {useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function CodePreview({ - reflection, -}: { - reflection: JSONOutput.DeclarationReflection; -}) { - const Component = useMemo(() => { - switch (reflection.kind as ReflectionKind) { - case ReflectionKind.Project: - break; - case ReflectionKind.Module: - break; - case ReflectionKind.EnumMember: - break; - case ReflectionKind.Variable: - break; - case ReflectionKind.Function: - break; - case ReflectionKind.Namespace: - case ReflectionKind.Enum: - case ReflectionKind.Class: - case ReflectionKind.Interface: - return ClassPreview; - case ReflectionKind.Constructor: - return SignaturePreview; - case ReflectionKind.Property: - return PropertyPreview; - case ReflectionKind.Method: - return FunctionPreview; - case ReflectionKind.CallSignature: - break; - case ReflectionKind.IndexSignature: - break; - case ReflectionKind.ConstructorSignature: - break; - case ReflectionKind.Parameter: - break; - case ReflectionKind.TypeLiteral: - return TypeLiteralPreview; - case ReflectionKind.TypeParameter: - return TypeParameterPreview; - case ReflectionKind.Accessor: - break; - case ReflectionKind.GetSignature: - break; - case ReflectionKind.SetSignature: - break; - case ReflectionKind.ObjectLiteral: - break; - case ReflectionKind.TypeAlias: - return TypeAliasPreview; - case ReflectionKind.Reference: - break; - } - - throw new Error( - `Missing component for reflection: ${reflection.kindString}`, - ); - }, [reflection.id]); - - return ; -} diff --git a/packages/docs/src/components/Api/ReflectionKind.ts b/packages/docs/src/components/Api/ReflectionKind.ts deleted file mode 100644 index 506bf165..00000000 --- a/packages/docs/src/components/Api/ReflectionKind.ts +++ /dev/null @@ -1,26 +0,0 @@ -export enum ReflectionKind { - Project = 1, - Module = 2, - Namespace = 4, - Enum = 8, - EnumMember = 16, - Variable = 32, - Function = 64, - Class = 128, - Interface = 256, - Constructor = 512, - Property = 1024, - Method = 2048, - CallSignature = 4096, - IndexSignature = 8192, - ConstructorSignature = 16384, - Parameter = 32768, - TypeLiteral = 65536, - TypeParameter = 131072, - Accessor = 262144, - GetSignature = 524288, - SetSignature = 1048576, - ObjectLiteral = 2097152, - TypeAlias = 4194304, - Reference = 8388608, -} diff --git a/packages/docs/src/components/Api/Signatures/index.tsx b/packages/docs/src/components/Api/Signatures/index.tsx deleted file mode 100644 index d2c53c14..00000000 --- a/packages/docs/src/components/Api/Signatures/index.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import React, {useMemo, useState} from 'react'; - -import CodeBlock from '@site/src/components/Api/Code/CodeBlock'; -import Container from '@site/src/components/Api/Code/Container'; -import Line from '@site/src/components/Api/Code/Line'; -import Comment from '@site/src/components/Api/Comment'; -import Parameters from '@site/src/components/Api/Parameters'; -import SignaturePreview from '@site/src/components/Api/Preview/SignaturePreview'; -import TypeParameters from '@site/src/components/Api/TypeParameters'; -import {useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function Signatures({ - signatures, - flags, - source, -}: { - signatures: number[]; - flags: JSONOutput.ReflectionFlags; - source?: JSONOutput.SourceReference; -}) { - const find = useApiFinder(); - const data = useMemo( - () => signatures.map(find), - [signatures], - ); - const [signature, setSignature] = useState(data[0]); - - return ( - <> - - {data.map(child => ( - 1 && child.id === signature.id} - onClick={ - signatures.length > 1 ? () => setSignature(child) : undefined - } - > - - - - - ))} - - - - - - ); -} diff --git a/packages/docs/src/components/Api/Type/ArrayType.tsx b/packages/docs/src/components/Api/Type/ArrayType.tsx deleted file mode 100644 index 8345ef2b..00000000 --- a/packages/docs/src/components/Api/Type/ArrayType.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; - -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function ArrayType({type}: {type: JSONOutput.ArrayType}) { - return ( - <> - - [] - - ); -} diff --git a/packages/docs/src/components/Api/Type/ConditionalType.tsx b/packages/docs/src/components/Api/Type/ConditionalType.tsx deleted file mode 100644 index c235ce86..00000000 --- a/packages/docs/src/components/Api/Type/ConditionalType.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function ConditionalType({ - type, -}: { - type: JSONOutput.ConditionalType; -}) { - return ( - <> - - extends - - {' ? '} - - {' : '} - - - ); -} diff --git a/packages/docs/src/components/Api/Type/IndexedAccessType.tsx b/packages/docs/src/components/Api/Type/IndexedAccessType.tsx deleted file mode 100644 index 2ef79d84..00000000 --- a/packages/docs/src/components/Api/Type/IndexedAccessType.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; - -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function IndexedAccessType({ - type, -}: { - type: JSONOutput.IndexedAccessType; -}) { - return ( - <> - - [] - - ); -} diff --git a/packages/docs/src/components/Api/Type/InferredType.tsx b/packages/docs/src/components/Api/Type/InferredType.tsx deleted file mode 100644 index 9288ecc1..00000000 --- a/packages/docs/src/components/Api/Type/InferredType.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import type {JSONOutput} from 'typedoc'; - -export default function InferredType({type}: {type: JSONOutput.InferredType}) { - return ( - <> - infer - {type.name} - - ); -} diff --git a/packages/docs/src/components/Api/Type/IntersectionType.tsx b/packages/docs/src/components/Api/Type/IntersectionType.tsx deleted file mode 100644 index 3996cffa..00000000 --- a/packages/docs/src/components/Api/Type/IntersectionType.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; - -import TokenList, { - ListType, - Separator, -} from '@site/src/components/Api/Code/TokenList'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function IntersectionType({ - type, -}: { - type: JSONOutput.IntersectionType; -}) { - return ( - - {type.types.map((item, index) => ( - - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Type/IntrinsicType.tsx b/packages/docs/src/components/Api/Type/IntrinsicType.tsx deleted file mode 100644 index 80e88776..00000000 --- a/packages/docs/src/components/Api/Type/IntrinsicType.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import type {JSONOutput} from 'typedoc'; - -export default function IntrinsicType({ - type, -}: { - type: JSONOutput.IntrinsicType; -}) { - return {type.name}; -} diff --git a/packages/docs/src/components/Api/Type/LiteralType.tsx b/packages/docs/src/components/Api/Type/LiteralType.tsx deleted file mode 100644 index 0e5faa86..00000000 --- a/packages/docs/src/components/Api/Type/LiteralType.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React, {useMemo} from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import type {JSONOutput} from 'typedoc'; - -export default function LiteralType({type}: {type: JSONOutput.LiteralType}) { - const [value, token] = useMemo(() => { - if (type.value === null) { - return ['null', 'keyword']; - } - switch (typeof type.value) { - case 'object': - return [(type.value.negative ? '-' : '') + type.value.value, 'number']; - case 'boolean': - return [type.value, 'keyword']; - case 'number': - return [type.value, 'number']; - case 'string': - return [`'${type.value}'`, 'string']; - default: - return [type.value, 'constant']; - } - }, [type.value]); - - return {value}; -} diff --git a/packages/docs/src/components/Api/Type/MappedType.tsx b/packages/docs/src/components/Api/Type/MappedType.tsx deleted file mode 100644 index 967b4136..00000000 --- a/packages/docs/src/components/Api/Type/MappedType.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function MappedType({type}: {type: JSONOutput.MappedType}) { - return ( - <> - - <> - [{type.parameter} - in - - ]: - - - - ); -} diff --git a/packages/docs/src/components/Api/Type/NamedTupleMemberType.tsx b/packages/docs/src/components/Api/Type/NamedTupleMemberType.tsx deleted file mode 100644 index 335a17a4..00000000 --- a/packages/docs/src/components/Api/Type/NamedTupleMemberType.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; - -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function NamedTupleMemberType({ - type, -}: { - type: JSONOutput.NamedTupleMemberType; -}) { - return ( - <> - {type.name}: - - ); -} diff --git a/packages/docs/src/components/Api/Type/PredicateType.tsx b/packages/docs/src/components/Api/Type/PredicateType.tsx deleted file mode 100644 index 86d785d2..00000000 --- a/packages/docs/src/components/Api/Type/PredicateType.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function PredicateType({ - type, -}: { - type: JSONOutput.PredicateType; -}) { - return type.asserts ? ( - <> - asserts - {type.name} - - ) : ( - <> - {type.name} - is - - - ); -} diff --git a/packages/docs/src/components/Api/Type/QueryType.tsx b/packages/docs/src/components/Api/Type/QueryType.tsx deleted file mode 100644 index 1df9068d..00000000 --- a/packages/docs/src/components/Api/Type/QueryType.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function QueryType({type}: {type: JSONOutput.QueryType}) { - return ( - <> - typeof - - - ); -} diff --git a/packages/docs/src/components/Api/Type/ReferenceType.tsx b/packages/docs/src/components/Api/Type/ReferenceType.tsx deleted file mode 100644 index df30d929..00000000 --- a/packages/docs/src/components/Api/Type/ReferenceType.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import Type from '@site/src/components/Api/Type'; -import {getUrl, useApiLookup} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function ReferenceType({ - type, -}: { - type: JSONOutput.ReferenceType; -}) { - const lookup = useApiLookup(type.project); - const reference = lookup?.[type.id]; - const to = type.externalUrl ?? getUrl(reference); - - return ( - <> - - {type.name} - - {!!type.typeArguments?.length && ( - - {type.typeArguments.map((type, index) => ( - - ))} - - )} - - ); -} diff --git a/packages/docs/src/components/Api/Type/ReflectionType.tsx b/packages/docs/src/components/Api/Type/ReflectionType.tsx deleted file mode 100644 index 011a8baf..00000000 --- a/packages/docs/src/components/Api/Type/ReflectionType.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; - -import Preview from '@site/src/components/Api/Preview'; -import {useApiFinder} from '@site/src/contexts/api'; -import type {JSONOutput} from 'typedoc'; - -export default function ReflectionType({ - type, -}: { - type: JSONOutput.ReflectionType; -}) { - const find = useApiFinder(); - return ; -} diff --git a/packages/docs/src/components/Api/Type/TemplateLiteralType.tsx b/packages/docs/src/components/Api/Type/TemplateLiteralType.tsx deleted file mode 100644 index b0f925dc..00000000 --- a/packages/docs/src/components/Api/Type/TemplateLiteralType.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function TemplateLiteralType({ - type, -}: { - type: JSONOutput.TemplateLiteralType; -}) { - return ( - <> - `{type.head} - {type.tail.map(([type, text], index) => ( - <> - {'${'} - - {'}'} - {text} - - ))} - ` - - ); -} diff --git a/packages/docs/src/components/Api/Type/TupleType.tsx b/packages/docs/src/components/Api/Type/TupleType.tsx deleted file mode 100644 index 97eccd21..00000000 --- a/packages/docs/src/components/Api/Type/TupleType.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; - -import TokenList, {ListType} from '@site/src/components/Api/Code/TokenList'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function TupleType({type}: {type: JSONOutput.TupleType}) { - return type.elements ? ( - - {type.elements.map((type, index) => ( - - ))} - - ) : ( - <>[] - ); -} diff --git a/packages/docs/src/components/Api/Type/TypeOperatorType.tsx b/packages/docs/src/components/Api/Type/TypeOperatorType.tsx deleted file mode 100644 index 37ba55c5..00000000 --- a/packages/docs/src/components/Api/Type/TypeOperatorType.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; - -import Token from '@site/src/components/Api/Code/Token'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeOperatorType({ - type, -}: { - type: JSONOutput.TypeOperatorType; -}) { - return ( - <> - {type.operator} - - - ); -} diff --git a/packages/docs/src/components/Api/Type/UnionType.tsx b/packages/docs/src/components/Api/Type/UnionType.tsx deleted file mode 100644 index 56eb2b8f..00000000 --- a/packages/docs/src/components/Api/Type/UnionType.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; - -import TokenList, { - ListType, - Separator, -} from '@site/src/components/Api/Code/TokenList'; -import Type from '@site/src/components/Api/Type'; -import type {JSONOutput} from 'typedoc'; - -export default function UnionType({type}: {type: JSONOutput.UnionType}) { - return ( - - {type.types.map((item, index) => ( - - ))} - - ); -} diff --git a/packages/docs/src/components/Api/Type/index.tsx b/packages/docs/src/components/Api/Type/index.tsx deleted file mode 100644 index dfd94887..00000000 --- a/packages/docs/src/components/Api/Type/index.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import ArrayType from '@site/src/components/Api/Type/ArrayType'; -import ConditionalType from '@site/src/components/Api/Type/ConditionalType'; -import IndexedAccessType from '@site/src/components/Api/Type/IndexedAccessType'; -import InferredType from '@site/src/components/Api/Type/InferredType'; -import IntersectionType from '@site/src/components/Api/Type/IntersectionType'; -import IntrinsicType from '@site/src/components/Api/Type/IntrinsicType'; -import LiteralType from '@site/src/components/Api/Type/LiteralType'; -import MappedType from '@site/src/components/Api/Type/MappedType'; -import NamedTupleMemberType from '@site/src/components/Api/Type/NamedTupleMemberType'; -import PredicateType from '@site/src/components/Api/Type/PredicateType'; -import QueryType from '@site/src/components/Api/Type/QueryType'; -import ReferenceType from '@site/src/components/Api/Type/ReferenceType'; -import ReflectionType from '@site/src/components/Api/Type/ReflectionType'; -import TemplateLiteralType from '@site/src/components/Api/Type/TemplateLiteralType'; -import TupleType from '@site/src/components/Api/Type/TupleType'; -import TypeOperatorType from '@site/src/components/Api/Type/TypeOperatorType'; -import UnionType from '@site/src/components/Api/Type/UnionType'; -import React, {useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; - -export interface CodeTypeProps { - type: JSONOutput.SomeType; -} - -export default function CodeType(props: CodeTypeProps) { - const TypeComponent = useMemo(() => { - switch (props.type.type) { - case 'rest': - break; - case 'typeOperator': - return TypeOperatorType; - case 'conditional': - return ConditionalType; - case 'reflection': - return ReflectionType; - case 'query': - return QueryType; - case 'named-tuple-member': - return NamedTupleMemberType; - case 'optional': - break; - case 'union': - return UnionType; - case 'intrinsic': - return IntrinsicType; - case 'literal': - return LiteralType; - case 'unknown': - break; - case 'reference': - return ReferenceType; - case 'predicate': - return PredicateType; - case 'tuple': - return TupleType; - case 'array': - return ArrayType; - case 'intersection': - return IntersectionType; - case 'inferred': - return InferredType; - case 'mapped': - return MappedType; - case 'template-literal': - return TemplateLiteralType; - case 'indexedAccess': - return IndexedAccessType; - } - - throw new Error(`Missing component for type: ${props.type.type}`); - }, [props.type]) as React.FC; - - return ; -} diff --git a/packages/docs/src/components/Api/TypeParameters/index.tsx b/packages/docs/src/components/Api/TypeParameters/index.tsx deleted file mode 100644 index e367e1e4..00000000 --- a/packages/docs/src/components/Api/TypeParameters/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import Summary from '@site/src/components/Api/Comment/Summary'; -import TypeParameterPreview from '@site/src/components/Api/Preview/TypeParameterPreview'; -import {useApiFinder} from '@site/src/contexts/api'; -import React, {useMemo} from 'react'; -import type {JSONOutput} from 'typedoc'; - -export default function TypeParameters({parameters}: {parameters: number[]}) { - const find = useApiFinder(); - const data = useMemo( - () => parameters?.map(find), - [parameters], - ); - - if (!data?.length) { - return <>; - } - - return ( - <> -

    Type Parameters

    -
      - {data.map(parameter => ( -
    • - - - - -
    • - ))} -
    - - ); -} diff --git a/packages/docs/src/components/DocPage/index.tsx b/packages/docs/src/components/DocPage/index.tsx deleted file mode 100644 index 1b3f3b67..00000000 --- a/packages/docs/src/components/DocPage/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import Tooltip from '@site/src/components/Tooltip'; -import {ApiProvider} from '@site/src/contexts/api'; -import {ThemeDictProvider} from '@site/src/contexts/codeTheme'; -import api from '@site/src/generated/api'; -import DocItem from '@theme/DocItem'; -import React from 'react'; - -export default function DocPage(props) { - return ( - - - - - - - - ); -} diff --git a/packages/docs/src/components/Dropdown/index.tsx b/packages/docs/src/components/Dropdown/index.tsx deleted file mode 100644 index 23bc8d09..00000000 --- a/packages/docs/src/components/Dropdown/index.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import clsx from 'clsx'; -import React, {useEffect, useRef, useState} from 'react'; - -export interface DropdownProps { - options: { - value: number; - name: string; - }[]; - value: number; - className?: string; - onChange: (value: number) => void; -} - -export default function Dropdown({ - options, - value, - className, - onChange, -}: DropdownProps) { - const ref = useRef(); - const linkRef = useRef(); - const [open, setOpen] = useState(false); - - useEffect(() => { - const handleClickOutside = (event: MouseEvent | TouchEvent) => { - if (!ref.current || ref.current.contains(event.target as Node)) { - return; - } - setOpen(false); - }; - - document.addEventListener('mousedown', handleClickOutside); - document.addEventListener('touchstart', handleClickOutside); - - return () => { - document.removeEventListener('mousedown', handleClickOutside); - document.removeEventListener('touchstart', handleClickOutside); - }; - }, [ref]); - - return ( - - ); -} diff --git a/packages/docs/src/components/ExperimentalWarning/index.tsx b/packages/docs/src/components/ExperimentalWarning/index.tsx deleted file mode 100644 index 9cbae554..00000000 --- a/packages/docs/src/components/ExperimentalWarning/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import Link from '@docusaurus/Link'; -import Admonition from '@theme/Admonition'; -import React from 'react'; - -export default function ExperimentalWarning() { - return ( - - This is an experimental feature. The - behavior and API may change drastically between minor releases. - - ); -} diff --git a/packages/docs/src/components/Fiddle/FiddleCodeBlock.tsx b/packages/docs/src/components/Fiddle/FiddleCodeBlock.tsx deleted file mode 100644 index 88a9d897..00000000 --- a/packages/docs/src/components/Fiddle/FiddleCodeBlock.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import Fiddle from '@site/src/components/Fiddle/index'; -import CodeBlock from '@theme/CodeBlock'; -import {Props} from '@theme/MDXComponents/Pre'; -import React, {isValidElement} from 'react'; - -export default function FiddleCodeBlock(props: Props) { - if ( - isValidElement(props.children) && - (props.children.props as {editor: boolean} | null)?.editor - ) { - return ; - } - - return ( - - ); -} diff --git a/packages/docs/src/components/Fiddle/SharedPlayer.ts b/packages/docs/src/components/Fiddle/SharedPlayer.ts deleted file mode 100644 index 21be118e..00000000 --- a/packages/docs/src/components/Fiddle/SharedPlayer.ts +++ /dev/null @@ -1,138 +0,0 @@ -import {parser as javascript} from '@lezer/javascript'; -import type {View2D} from '@revideo/2d'; -import type { - FullSceneDescription, - Player as PlayerType, - Project, - Stage as StageType, - ThreadGeneratorFactory, -} from '@revideo/core'; - -let ProjectInstance: Project = null; -let Description: FullSceneDescription> = null; -let PlayerInstance: PlayerType = null; -let StageInstance: StageType = null; -let CurrentSetter: (value: PlayerType) => void = null; -let CurrentParent: HTMLElement = null; -let CurrentRatio = 1; - -export function disposePlayer(setter: (value: PlayerType) => void) { - if (CurrentSetter !== setter || !ProjectInstance) return; - PlayerInstance.deactivate(); - CurrentSetter = null; - CurrentParent = null; - StageInstance.finalBuffer.remove(); -} - -export function updatePlayer(description: typeof Description) { - if (Description) { - Description.onReplaced.current = description; - } -} - -export async function borrowPlayer( - setter: (value: PlayerType) => void, - parent: HTMLDivElement, - ratio: number, -): Promise { - if (setter === CurrentSetter) return; - if ( - StageInstance && - CurrentParent && - StageInstance.finalBuffer.parentElement === CurrentParent - ) { - CurrentParent?.removeChild(StageInstance.finalBuffer); - } - CurrentSetter?.(null); - CurrentSetter = setter; - CurrentParent = parent; - - if (!ProjectInstance) { - const { - Logger, - Player, - ProjectMetadata, - Stage, - ValueDispatcher, - DefaultPlugin, - } = await import(/* webpackIgnore: true */ '@revideo/core'); - const {makeScene2D, Code, LezerHighlighter} = await import( - /* webpackIgnore: true */ '@revideo/2d' - ); - - Code.defaultHighlighter = new LezerHighlighter( - javascript.configure({ - dialect: 'jsx ts', - }), - ); - - Description = makeScene2D(function* () { - yield; - }) as FullSceneDescription>; - Description.onReplaced = new ValueDispatcher(Description); - - ProjectInstance = { - name: 'fiddle', - logger: new Logger(), - plugins: [DefaultPlugin()], - scenes: [Description], - experimentalFeatures: true, - } as Project; - ProjectInstance.meta = new ProjectMetadata(ProjectInstance); - ProjectInstance.meta.shared.size.set(960); - - PlayerInstance = new Player(ProjectInstance, { - size: ProjectInstance.meta.shared.size.get(), - }); - StageInstance = new Stage(); - StageInstance.configure({ - size: ProjectInstance.meta.shared.size.get(), - }); - PlayerInstance.onRender.subscribe(async () => { - await StageInstance.render( - PlayerInstance.playback.currentScene, - PlayerInstance.playback.previousScene, - ); - }); - PlayerInstance.onRecalculated.subscribe(() => { - if (StageInstance.finalBuffer.parentElement !== CurrentParent) { - CurrentParent?.append(StageInstance.finalBuffer); - CurrentSetter(PlayerInstance); - } - }); - - ProjectInstance.logger.onLogged.subscribe(payload => { - if (payload.level === 'error') { - return; - } - }); - } - - if (CurrentRatio !== ratio) { - ProjectInstance.meta.shared.size.set([960, Math.floor(960 / ratio)]); - Description.onReplaced.current = { - ...Description.onReplaced.current, - size: ProjectInstance.meta.shared.size.get(), - }; - StageInstance.configure({ - size: ProjectInstance.meta.shared.size.get(), - }); - CurrentRatio = ratio; - } - - PlayerInstance.activate(); - PlayerInstance.requestReset(); - return PlayerInstance; -} - -export async function tryBorrowPlayer( - setter: (value: PlayerType) => void, - parent: HTMLDivElement, - ratio: number, -): Promise { - if (!CurrentSetter) { - return borrowPlayer(setter, parent, ratio); - } - - return null; -} diff --git a/packages/docs/src/components/Fiddle/autocomplete.ts b/packages/docs/src/components/Fiddle/autocomplete.ts deleted file mode 100644 index c387fb81..00000000 --- a/packages/docs/src/components/Fiddle/autocomplete.ts +++ /dev/null @@ -1,47 +0,0 @@ -import {javascriptLanguage} from '@codemirror/lang-javascript'; -import {syntaxTree} from '@codemirror/language'; -import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; - -function isConstructor(obj) { - return !!obj.prototype && !!obj.prototype.constructor.name; -} - -const Options: {label: string; type: string}[] = []; - -function loadModule(module: Record) { - Object.entries(module).forEach(([name, value]) => { - Options.push({ - label: name, - type: - typeof value === 'function' - ? isConstructor(value) - ? 'class' - : 'function' - : 'variable', - }); - }); -} - -if (ExecutionEnvironment.canUseDOM) { - import(/* webpackIgnore: true */ '@revideo/core').then(loadModule).catch(); - import(/* webpackIgnore: true */ '@revideo/2d').then(loadModule).catch(); -} - -export function autocomplete() { - return javascriptLanguage.data.of({ - autocomplete: context => { - const nodeBefore = syntaxTree(context.state).resolveInner( - context.pos, - -1, - ); - if (nodeBefore.name === 'String') return; - - const word = context.matchBefore(/\w*/); - if (word.from === word.to && !context.explicit) return null; - return { - from: word.from, - options: Options, - }; - }, - }); -} diff --git a/packages/docs/src/components/Fiddle/errorHighlighting.ts b/packages/docs/src/components/Fiddle/errorHighlighting.ts deleted file mode 100644 index c1b2fe71..00000000 --- a/packages/docs/src/components/Fiddle/errorHighlighting.ts +++ /dev/null @@ -1,138 +0,0 @@ -import {syntaxTree} from '@codemirror/language'; -import { - EditorState, - RangeSet, - RangeValue, - StateEffect, - StateField, -} from '@codemirror/state'; -import { - Decoration, - DecorationSet, - EditorView, - Tooltip, - hoverTooltip, -} from '@codemirror/view'; - -const ClearErrors = StateEffect.define(); -const AddError = StateEffect.define<{ - from: number; - to: number; - tooltip: string; -}>({ - map: ({from, to, tooltip}, change) => ({ - from: change.mapPos(from), - to: change.mapPos(to), - tooltip, - }), -}); - -const UnderlineMark = Decoration.mark({class: 'cm-underline'}); -const UnderlineTheme = EditorView.baseTheme({ - // eslint-disable-next-line @typescript-eslint/naming-convention - '.cm-underline': { - textDecoration: 'var(--ifm-color-danger-dark) wavy underline', - }, -}); - -const UnderlineField = StateField.define({ - create: () => Decoration.none, - update: (underlines, transaction) => { - underlines = underlines.map(transaction.changes); - for (const effect of transaction.effects) { - if (effect.is(ClearErrors)) { - underlines = underlines.update({ - filter: () => false, - }); - break; - } - if (effect.is(AddError)) { - underlines = underlines.update({ - add: [UnderlineMark.range(effect.value.from, effect.value.to)], - }); - } - } - return underlines; - }, - provide: field => EditorView.decorations.from(field), -}); - -class TooltipRange extends RangeValue { - public constructor(public tooltip: string) { - super(); - } -} - -const TooltipField = StateField.define>({ - create: () => RangeSet.empty, - update: (tooltips, transaction) => { - tooltips = tooltips.map(transaction.changes); - for (const effect of transaction.effects) { - if (effect.is(ClearErrors)) { - tooltips = tooltips.update({ - filter: () => false, - }); - break; - } - if (effect.is(AddError)) { - tooltips = tooltips.update({ - add: [ - new TooltipRange(effect.value.tooltip).range( - effect.value.from, - effect.value.to, - ), - ], - }); - } - } - return tooltips; - }, - provide: field => - hoverTooltip((view, pos) => { - let tooltip: Tooltip; - view.state.field(field, false).between(pos, pos, (from, to, value) => { - tooltip = { - pos: from, - end: to, - create: () => { - const dom = document.createElement('div'); - dom.textContent = value.tooltip; - return {dom}; - }, - }; - return false; - }); - return tooltip; - }), -}); - -function getRange(state: EditorState, position: number) { - const tree = syntaxTree(state); - const node = tree.resolveInner(position, 1); - return {from: node.from, to: node.to}; -} - -export function errorExtension() { - return [UnderlineField, TooltipField, UnderlineTheme]; -} - -export function underlineErrors( - view: EditorView, - ranges: {from: number; to: number}[], - error: string, -) { - const effects: StateEffect[] = ranges.map(range => { - if (range.from === range.to) { - range = getRange(view.state, range.from); - } - - return AddError.of({tooltip: error, ...range}); - }); - - view.dispatch({effects}); - return true; -} - -export function clearErrors(view: EditorView) { - view.dispatch({effects: [ClearErrors.of(null)]}); -} diff --git a/packages/docs/src/components/Fiddle/folding.ts b/packages/docs/src/components/Fiddle/folding.ts deleted file mode 100644 index cc669b46..00000000 --- a/packages/docs/src/components/Fiddle/folding.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { - foldEffect, - foldService, - foldState, - syntaxTree, -} from '@codemirror/language'; -import {EditorState, Extension} from '@codemirror/state'; -import {EditorView} from '@codemirror/view'; - -const FoldOffset = 'import '.length; - -/** - * Find a range that encompasses all import statements in the source code. - * - * @param state - The editor state. - * @param range - An optional range to check if the imports are within. - */ -export function findImportRange( - state: EditorState, - range?: {from: number; to: number}, -) { - const tree = syntaxTree(state); - let currentNode = tree.topNode.firstChild; - let firstImport: typeof currentNode = null; - while (currentNode) { - if (currentNode.type.is('ImportDeclaration')) { - firstImport = currentNode; - break; - } - currentNode = currentNode.nextSibling; - } - - if (!firstImport) { - return null; - } - - if (range) { - const line = state.doc.lineAt(firstImport.from); - if (line.from > range.to || line.to < range.from) { - return null; - } - } - - let lastImport = firstImport; - while (lastImport) { - const nextNode = lastImport.nextSibling; - if (!nextNode.type.is('ImportDeclaration')) { - break; - } - lastImport = nextNode; - } - - return { - from: firstImport.from + FoldOffset, - to: lastImport.to, - }; -} - -/** - * Create a CodeMirror extension that folds all import statements in the source - * code. - */ -export function folding(): Extension { - return foldService.of((state, from, to) => { - return findImportRange(state, {from, to}); - }); -} - -/** - * Fold import statements in the editor. - * - * @param view - The editor view. - */ -export function foldImports(view: EditorView) { - const {state} = view; - - const range = findImportRange(state); - if (range) { - view.dispatch({ - effects: [foldEffect.of(range)], - }); - } -} - -/** - * Check if the imports are folded. - * - * @param state - The editor state. - */ -export function areImportsFolded(state: EditorState) { - const range = findImportRange(state); - let folded = false; - state.field(foldState, false).between(range.from, range.to, () => { - folded = true; - return false; - }); - - return folded; -} diff --git a/packages/docs/src/components/Fiddle/index.tsx b/packages/docs/src/components/Fiddle/index.tsx deleted file mode 100644 index 1da97581..00000000 --- a/packages/docs/src/components/Fiddle/index.tsx +++ /dev/null @@ -1,361 +0,0 @@ -import {indentWithTab} from '@codemirror/commands'; -import {javascript} from '@codemirror/lang-javascript'; -import {syntaxHighlighting} from '@codemirror/language'; -import {EditorState, Text} from '@codemirror/state'; -import {EditorView, keymap} from '@codemirror/view'; -import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; -import {useLocation} from '@docusaurus/router'; -import type {Player} from '@revideo/core'; -import IconImage from '@site/src/Icon/Image'; -import {Pause} from '@site/src/Icon/Pause'; -import {PlayArrow} from '@site/src/Icon/PlayArrow'; -import {SkipNext} from '@site/src/Icon/SkipNext'; -import {SkipPrevious} from '@site/src/Icon/SkipPrevious'; -import IconSplit from '@site/src/Icon/Split'; -import IconText from '@site/src/Icon/Text'; -import Dropdown from '@site/src/components/Dropdown'; -import { - borrowPlayer, - disposePlayer, - tryBorrowPlayer, - updatePlayer, -} from '@site/src/components/Fiddle/SharedPlayer'; -import {autocomplete} from '@site/src/components/Fiddle/autocomplete'; -import { - clearErrors, - errorExtension, - underlineErrors, -} from '@site/src/components/Fiddle/errorHighlighting'; -import { - areImportsFolded, - findImportRange, - foldImports, - folding, -} from '@site/src/components/Fiddle/folding'; -import {parseFiddle} from '@site/src/components/Fiddle/parseFiddle'; -import { - EditorTheme, - SyntaxHighlightStyle, -} from '@site/src/components/Fiddle/themes'; -import { - TransformError, - compileScene, - transform, -} from '@site/src/components/Fiddle/transformer'; -import {useSubscribableValue} from '@site/src/utils/useSubscribable'; -import CodeBlock from '@theme/CodeBlock'; -import clsx from 'clsx'; -import {basicSetup} from 'codemirror'; -import React, {useEffect, useMemo, useRef, useState} from 'react'; -import styles from './styles.module.css'; - -export interface FiddleProps { - className?: string; - children: string; - mode?: 'code' | 'editor' | 'preview'; - ratio?: string; -} - -function highlight(sizePixels = 4) { - return [ - { - boxShadow: '0 0 0px 0 #ccc inset', - easing: 'cubic-bezier(0.33, 1, 0.68, 1)', - }, - { - boxShadow: `0 0 0px ${sizePixels}px #ccc inset`, - easing: 'cubic-bezier(0.32, 0, 0.67, 0)', - }, - {boxShadow: '0 0 0px 0 #ccc inset'}, - ]; -} - -export default function Fiddle({ - children, - className, - mode: initialMode = 'editor', - ratio = '4', -}: FiddleProps) { - const [player, setPlayer] = useState(null); - const editorView = useRef(null); - const editorRef = useRef(); - const previewRef = useRef(); - const [mode, setMode] = useState(initialMode); - const {pathname} = useLocation(); - - const [error, setError] = useState(null); - const duration = useSubscribableValue(player?.onDurationChanged); - const frame = useSubscribableValue(player?.onFrameChanged); - const state = useSubscribableValue(player?.onStateChanged); - - const [doc, setDoc] = useState(null); - const [lastDoc, setLastDoc] = useState(null); - - const parsedRatio = useMemo(() => { - if (ratio.includes('/')) { - const parts = ratio.split('/'); - const calculated = parseFloat(parts[0]) / parseFloat(parts[1]); - if (!isNaN(calculated)) { - return calculated; - } - } - const value = parseFloat(ratio); - return isNaN(value) ? 4 : value; - }, [ratio]); - - const update = async (newDoc: Text, animate = true) => { - await borrowPlayer(setPlayer, previewRef.current, parsedRatio, setError); - try { - const scene = await compileScene(newDoc.sliceString(0), pathname); - updatePlayer(scene); - setLastDoc(newDoc); - if (animate && !lastDoc?.eq(newDoc)) { - previewRef.current.animate(highlight(), {duration: 300}); - } - return true; - } catch (e) { - if (e instanceof TransformError) { - underlineErrors(editorView.current, e.errors, e.message); - } - setError(e.message); - player?.togglePlayback(false); - return false; - } - }; - - const switchState = async (id: number) => { - setSnippetId(id); - const isFolded = areImportsFolded(editorView.current.state); - editorView.current.setState(snippets[id].state); - await update(snippets[id].state.doc); - if (isFolded) { - foldImports(editorView.current); - } - }; - - const [snippetId, setSnippetId] = useState(0); - const snippets = useMemo( - () => - parseFiddle(children).map(snippet => ({ - name: snippet.name, - state: EditorState.create({ - doc: Text.of(snippet.lines), - extensions: [ - basicSetup, - keymap.of([ - indentWithTab, - { - key: 'Mod-s', - preventDefault: true, - run: view => { - update(view.state.doc); - return true; - }, - }, - ]), - EditorView.updateListener.of(update => { - setDoc(update.state.doc); - if (update.docChanged) { - setError(null); - clearErrors(editorView.current); - } - }), - autocomplete(), - folding(), - errorExtension(), - javascript({ - jsx: true, - typescript: true, - }), - syntaxHighlighting(SyntaxHighlightStyle), - EditorTheme, - ], - }), - })), - [children], - ); - - if (!ExecutionEnvironment.canUseDOM) { - // Validate the snippets during Server-Side Rendering. - snippets.forEach(snippet => { - transform(snippet.state.doc.sliceString(0), pathname); - }); - } - - useEffect(() => { - editorView.current = new EditorView({ - parent: editorRef.current, - state: snippets[snippetId].state, - }); - foldImports(editorView.current); - - tryBorrowPlayer(setPlayer, previewRef.current, parsedRatio, setError).then( - async borrowed => { - if (borrowed) { - const success = await update(snippets[snippetId].state.doc, false); - if (success && mode !== 'code') { - borrowed.togglePlayback(true); - } - } - }, - ); - - return () => { - disposePlayer(setPlayer); - editorView.current.destroy(); - }; - }, []); - - // Ghost code is displayed before the editor is initialized. - const ghostCode = useMemo(() => { - const initialState = snippets[0].state; - const range = findImportRange(initialState); - let text = initialState.doc; - if (range) { - text = text.replace(range.from, range.to, Text.of(['...'])); - } - return text.toString() + '\n'; - }, [snippets]); - - const hasChangedSinceLastUpdate = lastDoc && doc && !doc.eq(lastDoc); - const hasChanged = - (doc && !doc.eq(snippets[snippetId].state.doc)) || - hasChangedSinceLastUpdate; - - return ( -
    -
    - - - -
    -
    - {!player &&
    Press play to preview the animation
    } -
    - {duration > 0 && ( -
    - )} -
    -
    - {hasChangedSinceLastUpdate && ( - - )} -
    -
    - - - -
    -
    - {snippets.length === 1 && hasChanged && ( - - )} - {snippets.length > 1 && ( - ({ - value: index, - name: snippet.name, - })) - .concat(hasChanged ? {value: -1, name: 'Custom'} : [])} - /> - )} -
    -
    - {error &&
    {error}
    } -
    - - {mode === 'code' - ? snippets[snippetId].state.doc.toString() - : ghostCode} - -
    -
    - ); -} diff --git a/packages/docs/src/components/Fiddle/parseFiddle.ts b/packages/docs/src/components/Fiddle/parseFiddle.ts deleted file mode 100644 index 8add3a86..00000000 --- a/packages/docs/src/components/Fiddle/parseFiddle.ts +++ /dev/null @@ -1,47 +0,0 @@ -export interface CodeSnippet { - name: string; - lines: string[]; -} - -const CommentRegex = / *\/\/ ?(\S+) ?(.*)/; - -const IgnoredComments = [ - 'highlight-next-line', - 'highlight-start', - 'highlight-end', - 'prettier-ignore', -]; - -export function parseFiddle(code: string): CodeSnippet[] { - let snippet: CodeSnippet = { - name: 'Default', - lines: [], - }; - const snippets = [snippet]; - for (const line of code.split('\n')) { - const match = CommentRegex.exec(line); - if (!match) { - snippet.lines.push(line); - continue; - } - - const [, comment, snippetName] = match; - if (IgnoredComments.includes(comment)) { - continue; - } - - if (comment !== 'snippet') { - snippet.lines.push(line); - continue; - } - - if (snippet.lines.length > 0) { - snippet = {name: snippetName, lines: []}; - snippets.push(snippet); - } else { - snippet.name = snippetName; - } - } - - return snippets; -} diff --git a/packages/docs/src/components/Fiddle/styles.module.css b/packages/docs/src/components/Fiddle/styles.module.css deleted file mode 100644 index 6c46d247..00000000 --- a/packages/docs/src/components/Fiddle/styles.module.css +++ /dev/null @@ -1,167 +0,0 @@ -.root { - position: relative; - border-radius: var(--ifm-code-border-radius); - overflow: hidden; - box-shadow: var(--ifm-global-shadow-lw); - margin-bottom: var(--ifm-leading); -} - -.root:focus-within .layoutControl, -.root:hover .layoutControl { - opacity: 1; -} - -.layoutControl { - z-index: 1; - transition: opacity 200ms ease-in-out; - opacity: 0; - display: flex; - column-gap: 0.2rem; - position: absolute; - right: calc(var(--ifm-pre-padding) / 2); - top: calc(var(--ifm-pre-padding) / 2); -} - -.layoutControl .icon { - transition: color var(--ifm-transition-fast); - color: var(--ifm-color-emphasis-300); -} - -.icon.active { - color: var(--ifm-font-color-base); - pointer-events: none; -} - -.progress { - height: 1px; - margin-bottom: -1px; - position: relative; - z-index: 1; - background-color: var(--ifm-color-primary-lightest); -} - -.controls { - background-color: var(--ifm-background-surface-color); - display: flex; - border-bottom: 1px solid var(--ifm-color-emphasis-300); - border-top: 1px solid var(--ifm-color-emphasis-300); -} - -.previewOnly .controls { - border-bottom: none; -} - -.section { - display: flex; - justify-content: center; - align-items: center; - gap: 8px; - padding: 8px; -} - -.section.disabled { - opacity: 0.5; - pointer-events: none; -} - -.section:first-child { - flex-basis: 100%; - justify-content: start; -} - -.section:last-child { - flex-basis: 100%; - justify-content: end; -} - -.icon { - cursor: pointer; - width: 2rem; - height: 2rem; - padding: 0; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - color: var(--ifm-font-color-base); - transition: background var(--ifm-transition-fast); -} - -.icon:hover { - background-color: var(--ifm-color-emphasis-200); - color: var(--ifm-font-color-base); -} - -.root button { - appearance: none; - background-color: unset; - border: none; -} - -.error { - border-radius: 0; - margin: 0; - border-top: 1px solid var(--ifm-color-danger-dark); - border-bottom: 1px solid var(--ifm-color-danger-dark); - white-space: pre-wrap; -} - -.editor { -} - -.root .editor .source { - display: none; - margin-bottom: 0; - padding-left: 38px; -} - -.source > div > div { - display: none !important; -} - -.root .editor .source:first-child:last-child { - display: block; -} - -.preview { - background-color: var(--ifm-background-surface-color); - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; -} - -.preview canvas { - max-width: 100%; - max-height: 100%; -} - -.button { - cursor: pointer; - height: 2rem; - padding: var(--ifm-button-padding-vertical); - color: var(--ifm-font-color-base); - gap: 0.5rem; - display: flex; - align-items: center; -} - -.picker { - margin-right: var(--ifm-button-padding-vertical); -} - -.codeOnly .preview, -.codeOnly .controls, -.codeOnly .error, -.codeOnly .progress, -.codeOnly :global(.cm-editor) { - display: none !important; -} -.codeOnly .editor .source { - display: block; - padding-left: 0; -} - -.previewOnly .editor { - display: none; -} diff --git a/packages/docs/src/components/Fiddle/themes.ts b/packages/docs/src/components/Fiddle/themes.ts deleted file mode 100644 index adbb1e5a..00000000 --- a/packages/docs/src/components/Fiddle/themes.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ -import {HighlightStyle} from '@codemirror/language'; -import {EditorView} from '@codemirror/view'; -import {tags} from '@lezer/highlight'; - -export const SyntaxHighlightStyle = HighlightStyle.define([ - {tag: tags.comment, color: 'var(--hl-comment)'}, - {tag: tags.docComment, color: 'var(--hl-comment)'}, - {tag: tags.blockComment, color: 'var(--hl-comment)'}, - {tag: tags.keyword, color: 'var(--hl-keyword)'}, - {tag: tags.number, color: 'var(--hl-number)'}, - {tag: tags.inserted, color: 'var(--hl-number)'}, - {tag: tags.constant(tags.propertyName), color: 'var(--hl-constant)'}, - {tag: tags.attributeName, color: 'var(--hl-variable)'}, - {tag: tags.variableName, color: 'var(--hl-variable)'}, - {tag: tags.propertyName, color: 'var(--hl-variable)'}, - {tag: tags.deleted, color: 'var(--hl-string)'}, - {tag: tags.string, color: 'var(--hl-string)'}, - {tag: tags.attributeValue, color: 'var(--hl-string)'}, - {tag: tags.tagName, color: 'var(--hl-tag)'}, - {tag: tags.typeName, color: 'var(--hl-tag)'}, - {tag: tags.punctuation, color: 'var(--hl-punctuation)'}, - {tag: tags.operator, color: 'var(--hl-punctuation)'}, - {tag: tags.function(tags.variableName), color: 'var(--hl-function)'}, - {tag: tags.function(tags.propertyName), color: 'var(--hl-function)'}, - {tag: tags.className, color: 'var(--hl-class)'}, - {tag: tags.character, color: 'var(--hl-char)'}, -]); - -export const EditorTheme = EditorView.theme({ - '&': { - fontSize: `var(--ifm-code-font-size)`, - lineHeight: `21.04px`, - fontFamily: 'var(--ifm-font-family-monospace)', - color: 'var(--hl-color)', - backgroundColor: 'var(--hl-background)', - }, - '&.cm-focused .cm-cursor': { - borderLeftColor: 'var(--hl-color)', - }, - '&.cm-focused': { - outline: 'none', - }, - '.cm-gutters': { - backgroundColor: 'var(--hl-background)', - color: 'var(--ifm-color-secondary-darkest)', - borderRight: '1px solid var(--ifm-background-color)', - }, - '& .cm-lineNumbers .cm-gutterElement': { - paddingLeft: 'var(--ifm-pre-padding)', - }, - '.cm-activeLineGutter': { - backgroundColor: 'var(--ifm-code-active-color)', - }, - '.cm-scroller': { - fontFamily: 'var(--ifm-font-family-monospace)', - lineHeight: 'var(--ifm-pre-line-height)', - paddingTop: 'var(--ifm-pre-padding)', - paddingBottom: 'var(--ifm-pre-padding)', - }, - '.cm-content': { - padding: '0', - }, - '& .cm-line': { - paddingRight: 'var(--ifm-pre-padding)', - }, - '& .cm-selectionBackground, &.cm-focused .cm-selectionBackground, ::selection': - { - backgroundColor: 'var(--ifm-code-selection-color)', - }, - '.cm-activeLine': { - backgroundColor: 'var(--ifm-code-active-color)', - }, - '.cm-selectionMatch': { - backgroundColor: 'var(--ifm-code-selection-color)', - }, - '.cm-foldPlaceholder': { - backgroundColor: 'var(--ifm-code-selection-color)', - borderColor: 'var(--ifm-color-emphasis-300)', - }, - '.cm-tooltip': { - backgroundColor: 'var(--ifm-background-surface-color)', - }, -}); diff --git a/packages/docs/src/components/Fiddle/transformer.ts b/packages/docs/src/components/Fiddle/transformer.ts deleted file mode 100644 index 2c80ae30..00000000 --- a/packages/docs/src/components/Fiddle/transformer.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ -import * as Babel from '@babel/standalone'; -import type {View2D} from '@revideo/2d'; -import type {FullSceneDescription, ThreadGeneratorFactory} from '@revideo/core'; - -export class TransformError extends Error { - public constructor( - message: string, - public errors: {from: number; to: number; tooltip?: string}[], - ) { - super(message); - } -} - -export function transform(code: string, name: string): string { - const filename = `${name}.tsx`; - const undeclaredVariables = new Set(); - const errors: {from: number; to: number; tooltip: string}[] = []; - let result: {code: string}; - let errorMessage: string = null; - try { - result = Babel.transform(code, { - filename, - presets: [ - 'typescript', - [ - 'react', - { - runtime: 'automatic', - importSource: '@revideo/2d', - }, - ], - ], - plugins: [ - ({types}) => ({ - visitor: { - ImportDeclaration(path) { - if (path.node.source.value.startsWith('@revideo/core')) { - path.node.source.value = '@revideo/core'; - } - if (path.node.source.value.startsWith('@revideo/2d')) { - path.node.source.value = '@revideo/2d'; - } - }, - ReferencedIdentifier(path) { - const {node, scope} = path; - - if (types.isIdentifier(node) && !scope.hasBinding(node.name)) { - undeclaredVariables.add(node.name); - errors.push({ - from: node.start, - to: node.end, - tooltip: `Cannot find name '${node.name}'.`, - }); - } - }, - }, - }), - ], - }); - } catch (error) { - const match = /(.*) \(\d+:\d+\)/.exec( - error.message.slice(filename.length + 1), - ); - errorMessage = match ? match[1] : error.message; - if (error.loc) { - errors.push({ - from: error.pos as number, - to: error.pos as number, - tooltip: errorMessage, - }); - } - } - - if (errors.length > 0) { - throw new TransformError( - errorMessage ?? - `Cannot find names: ${Array.from(undeclaredVariables).join( - ', ', - )}\nDid you forget to import them?`, - errors, - ); - } - - return result.code; -} - -export async function compileScene( - code: string, - name: string, -): Promise>> { - const transformedCode = transform(code, name); - const scene = await import( - /* webpackIgnore: true */ URL.createObjectURL( - new Blob([transformedCode], {type: 'text/javascript'}), - ) - ); - return scene.default; -} diff --git a/packages/docs/src/components/NavbarLink/Discord.tsx b/packages/docs/src/components/NavbarLink/Discord.tsx deleted file mode 100644 index 2cb7a0a8..00000000 --- a/packages/docs/src/components/NavbarLink/Discord.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import IconDiscord from '@site/src/Icon/Discord'; -import NavbarLink from '@site/src/components/NavbarLink/Link'; -import useStorage from '@site/src/utils/useStorage'; -import React, {useEffect} from 'react'; - -export default function DiscordNavbarLink() { - const {siteConfig} = useDocusaurusContext(); - const [activeUsers, setActiveUsers] = useStorage('discord-users', null); - useEffect(() => { - fetch(siteConfig.customFields.discordApi as string) - .then(response => response.json()) - .then(async data => setActiveUsers(data.presence_count)) - .catch(() => setActiveUsers(false)); - }, []); - - return ( - - - - ); -} diff --git a/packages/docs/src/components/NavbarLink/GitHub.tsx b/packages/docs/src/components/NavbarLink/GitHub.tsx deleted file mode 100644 index f8fae294..00000000 --- a/packages/docs/src/components/NavbarLink/GitHub.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import IconGitHub from '@site/src/Icon/GitHub'; -import NavbarLink from '@site/src/components/NavbarLink/Link'; -import useStorage from '@site/src/utils/useStorage'; -import React, {useEffect} from 'react'; - -export default function GitHubNavbarLink() { - const {siteConfig} = useDocusaurusContext(); - const [stars, setStars] = useStorage('github-stars', null); - useEffect(() => { - fetch(siteConfig.customFields.githubApi as string) - .then(response => response.json()) - .then(data => setStars(data.stargazers_count)) - .catch(() => setStars(false)); - }, []); - - return ( - - - - ); -} diff --git a/packages/docs/src/components/NavbarLink/Link.tsx b/packages/docs/src/components/NavbarLink/Link.tsx deleted file mode 100644 index 04061431..00000000 --- a/packages/docs/src/components/NavbarLink/Link.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import styles from '@site/src/components/NavbarLink/styles.module.css'; -import clsx from 'clsx'; -import React, {ReactNode, useMemo} from 'react'; - -export interface NavbarLinkProps { - href: string; - suffix: string; - amount: false | null | number; - children: ReactNode; -} - -export default function NavbarLink({ - href, - suffix, - amount, - children, -}: NavbarLinkProps) { - const formatted = useMemo(() => { - if (!amount) return null; - return amount >= 1000 ? `${Math.round(amount / 100) / 10}k` : amount; - }, [amount]); - - return ( -
    - {amount !== false && ( -
    - - {formatted} {suffix} - -
    - )} - - {children} - -
    - ); -} diff --git a/packages/docs/src/components/NavbarLink/styles.module.css b/packages/docs/src/components/NavbarLink/styles.module.css deleted file mode 100644 index bbd7e055..00000000 --- a/packages/docs/src/components/NavbarLink/styles.module.css +++ /dev/null @@ -1,46 +0,0 @@ -.root { - display: flex; - align-items: center; - transition: opacity var(--ifm-transition-fast); -} - -.loading ~ .root { - opacity: 0; - pointer-events: none; -} - -.icon { - width: 2rem; - height: 2rem; - padding: 0; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - color: var(--ifm-font-color-base); - transition: background var(--ifm-transition-fast); - margin-right: var(--ifm-button-padding-vertical); -} - -.icon:hover { - background-color: var(--ifm-color-emphasis-200); - color: var(--ifm-font-color-base); -} - -.badge { - padding: 0 var(--ifm-button-padding-vertical); - background-color: var(--ifm-background-surface-color); - border-radius: var(--ifm-global-radius); - border: 1px solid var(--ifm-color-emphasis-300); - transition: opacity var(--ifm-transition-fast); -} - -.loading .badge { - opacity: 0; -} - -@media screen and (max-width: 540px) { - .badge { - display: none; - } -} diff --git a/packages/docs/src/components/Release/Contributor.tsx b/packages/docs/src/components/Release/Contributor.tsx deleted file mode 100644 index 72ccead9..00000000 --- a/packages/docs/src/components/Release/Contributor.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; -import styles from './styles.module.css'; - -export interface ContributorProps { - name: string; -} - -export default function Contributor({name}: ContributorProps) { - return ( - - {`${name}'s - - ); -} diff --git a/packages/docs/src/components/Release/Issue.tsx b/packages/docs/src/components/Release/Issue.tsx deleted file mode 100644 index f4452899..00000000 --- a/packages/docs/src/components/Release/Issue.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import Link from '@docusaurus/Link'; -import IconScience from '@site/src/Icon/Science'; -import Contributor from '@site/src/components/Release/Contributor'; -import PullRequest from '@site/src/components/Release/PullRequest'; -import styles from '@site/src/components/Release/styles.module.css'; -import React, {ReactNode} from 'react'; - -export interface IssueProps { - user: string; - pr?: number; - experimental?: boolean; - children: ReactNode | ReactNode[]; -} - -export default function Issue({user, pr, experimental, children}: IssueProps) { - return ( -
  • - - {experimental && ( - - - - )} - {children} - {pr && } -
  • - ); -} diff --git a/packages/docs/src/components/Release/IssueGroup.tsx b/packages/docs/src/components/Release/IssueGroup.tsx deleted file mode 100644 index eac954a7..00000000 --- a/packages/docs/src/components/Release/IssueGroup.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import styles from '@site/src/components/Release/styles.module.css'; -import Heading from '@theme/Heading'; -import React, {ReactNode} from 'react'; - -export interface IssueGroupProps { - type: 'feat' | 'fix'; - children: ReactNode | ReactNode[]; -} - -const Titles = { - feat: 'New features 🎉', - fix: 'Fixed bugs 🐛', -}; - -const IDs = { - feat: 'new-features', - fix: 'fixed-bugs', -}; - -export default function IssueGroup({type, children}: IssueGroupProps) { - return ( - <> - - {Titles[type]} - -
      {children}
    - - ); -} diff --git a/packages/docs/src/components/Release/PullRequest.tsx b/packages/docs/src/components/Release/PullRequest.tsx deleted file mode 100644 index da830850..00000000 --- a/packages/docs/src/components/Release/PullRequest.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import styles from './styles.module.css'; - -export interface PullRequestProps { - id: number; -} - -export default function PullRequest({id}: PullRequestProps) { - return ( - - #{id} - - ); -} diff --git a/packages/docs/src/components/Release/styles.module.css b/packages/docs/src/components/Release/styles.module.css deleted file mode 100644 index 70ab0535..00000000 --- a/packages/docs/src/components/Release/styles.module.css +++ /dev/null @@ -1,28 +0,0 @@ -.contributor { - display: inline-flex; - background-color: var(--ifm-background-surface-color); - vertical-align: text-top; - margin-left: calc(-20px - 0.5rem); - margin-right: 0.5rem; - border-radius: 50%; - overflow: hidden; -} - -.pr { - display: inline-flex; - background-color: var(--ifm-background-surface-color); - border-radius: 10px; - vertical-align: text-top; - line-height: 20px; - padding: 0 0.5rem; - margin-left: 0.25rem; -} - -.group { - margin-bottom: 2rem; -} - -.element { - margin-bottom: 1rem; - list-style: none; -} diff --git a/packages/docs/src/components/Tooltip/index.tsx b/packages/docs/src/components/Tooltip/index.tsx deleted file mode 100644 index 059480fa..00000000 --- a/packages/docs/src/components/Tooltip/index.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import useIsBrowser from '@docusaurus/useIsBrowser'; -import Comment from '@site/src/components/Api/Comment'; -import {useUrlLookup} from '@site/src/contexts/api'; -import clsx from 'clsx'; -import React, { - ReactNode, - useCallback, - useEffect, - useRef, - useState, -} from 'react'; -import styles from './styles.module.css'; - -const WIDTH = 480 + 16; - -export default function Tooltip({children}: {children: ReactNode}) { - const isBrowser = useIsBrowser(); - const urlLookup = useUrlLookup(); - - const [show, setShow] = useState(false); - const [comment, setComment] = useState(null); - const containerRef = useRef(); - const linkRef = useRef(); - const tooltipRef = useRef(); - - const updatePosition = useCallback(() => { - if (!linkRef.current || !tooltipRef.current) return; - - const rect = linkRef.current.getBoundingClientRect(); - const width = window.innerWidth; - let right = width - rect.left - WIDTH; - if (right < 0) { - right = 0; - } - - tooltipRef.current.style.right = `${right}px`; - tooltipRef.current.style.top = `${rect.bottom}px`; - }, []); - - useEffect(() => { - if (!isBrowser) { - return; - } - - const onEnter = e => { - if ( - !e.target.href || - !containerRef.current?.contains(e.target) || - tooltipRef.current?.contains(e.target) - ) { - return; - } - - const url = new URL(e.target.href, document.baseURI); - if (url.pathname === window.location.pathname) { - return; - } - - const reflection = urlLookup(url.pathname + url.hash); - if (!reflection?.comment?.summary) { - return; - } - - linkRef.current = e.target; - setShow(true); - setComment(reflection.comment); - updatePosition(); - }; - - const onLeave = e => { - if (e.target === linkRef.current) { - setShow(false); - } - }; - - document.addEventListener('mouseenter', onEnter, true); - document.addEventListener('focus', onEnter, true); - document.addEventListener('mouseleave', onLeave, true); - document.addEventListener('blur', onLeave, true); - document.addEventListener('scroll', updatePosition); - return () => { - document.removeEventListener('mouseenter', onEnter, true); - document.removeEventListener('focus', onEnter, true); - document.removeEventListener('mouseleave', onLeave, true); - document.removeEventListener('blur', onLeave, true); - document.removeEventListener('scroll', updatePosition); - }; - }, [isBrowser]); - - useEffect(() => { - updatePosition(); - }); - - return ( -
    - {children} -
    - {comment && } -
    -
    - ); -} diff --git a/packages/docs/src/components/Tooltip/styles.module.css b/packages/docs/src/components/Tooltip/styles.module.css deleted file mode 100644 index 97c1f691..00000000 --- a/packages/docs/src/components/Tooltip/styles.module.css +++ /dev/null @@ -1,44 +0,0 @@ -.tooltipContainer { - display: inline; - overflow: visible; -} - -.tooltip.active, -.tooltip:hover { - visibility: visible; - transition: - visibility 0.5s step-end, - transform 0.1s 0.5s ease-out, - opacity 0.1s 0.5s; - transform: translateY(8px); - opacity: 1; -} - -.tooltip:hover { - transition: none; -} - -.tooltip { - width: min(480px, calc(100vw - 2rem)); - font-family: var(--ifm-font-family-base); - font-size: 16px; - white-space: normal; - position: fixed; - background-color: var(--ifm-background-color); - border-radius: var(--ifm-global-radius); - border: 1px solid var(--ifm-color-emphasis-300); - box-shadow: var(--ifm-global-shadow-tl); - visibility: hidden; - transform: translateY(16px); - opacity: 0; - - transition: - visibility 0.1s step-end, - transform 0.1s ease-in, - opacity 0.1s; - transition-delay: 0.1s; -} - -.tooltip p:last-child { - margin-bottom: 0; -} diff --git a/packages/docs/src/components/UI/index.tsx b/packages/docs/src/components/UI/index.tsx deleted file mode 100644 index 745a6084..00000000 --- a/packages/docs/src/components/UI/index.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import Svg from '@site/static/img/ui.svg'; -import React from 'react'; -import styles from './styles.module.css'; - -export default function UI() { - return ; -} diff --git a/packages/docs/src/components/UI/styles.module.css b/packages/docs/src/components/UI/styles.module.css deleted file mode 100644 index 92cba0a1..00000000 --- a/packages/docs/src/components/UI/styles.module.css +++ /dev/null @@ -1,24 +0,0 @@ -.root { - display: block; - max-width: 640px; - margin: 0 auto var(--ifm-leading); - background-color: var(--ifm-background-surface-color); - border-radius: var(--ifm-global-radius); - border: 1px solid var(--ifm-color-emphasis-100); -} - -.root g { - animation: slide 4s infinite; -} - -@keyframes slide { - 0% { - transform: translateX(0px); - } - 50% { - transform: translateX(-100px); - } - 100% { - transform: translateX(0px); - } -} diff --git a/packages/docs/src/components/YouTubeVideo/index.tsx b/packages/docs/src/components/YouTubeVideo/index.tsx deleted file mode 100644 index 8a125b07..00000000 --- a/packages/docs/src/components/YouTubeVideo/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; - -import styles from './styles.module.css'; - -export interface YouTubeVideoProps { - src: string; - width?: number; - height?: number; - title?: string; -} - -export default function YouTubeVideo({ - src, - width, - height, - title, -}: YouTubeVideoProps): JSX.Element { - return ( -