diff --git a/.github/workflows/build-preview.yaml b/.github/workflows/build-preview.yaml deleted file mode 100644 index 9a4455d..0000000 --- a/.github/workflows/build-preview.yaml +++ /dev/null @@ -1,43 +0,0 @@ -name: Build Preview Deployment - -on: - pull_request: - types: [opened, synchronize] - workflow_dispatch: - -jobs: - build-preview: - if: ${{ github.repository == 'jackyzha0/quartz' }} - runs-on: ubuntu-latest - name: Build Preview - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: 20 - - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - run: npm ci - - - name: Check types and style - run: npm run check - - - name: Build Quartz - run: npx quartz build -d docs -v - - - name: Upload build artifact - uses: actions/upload-artifact@v4 - with: - name: preview-build - path: public diff --git a/.github/workflows/deploy-preview.yaml b/.github/workflows/deploy-preview.yaml deleted file mode 100644 index 3a1432a..0000000 --- a/.github/workflows/deploy-preview.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Upload Preview Deployment -on: - workflow_run: - workflows: ["Build Preview Deployment"] - types: - - completed - -permissions: - actions: read - deployments: write - contents: read - pull-requests: write - -jobs: - deploy-preview: - if: ${{ github.repository == 'jackyzha0/quartz' && github.event.workflow_run.conclusion == 'success' }} - runs-on: ubuntu-latest - name: Deploy Preview to Cloudflare Pages - steps: - - name: Download build artifact - uses: actions/download-artifact@v4 - id: preview-build-artifact - with: - name: preview-build - path: build - github-token: ${{ secrets.GITHUB_TOKEN }} - run-id: ${{ github.event.workflow_run.id }} - - - name: Deploy to Cloudflare Pages - uses: AdrianGonz97/refined-cf-pages-action@v1 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - githubToken: ${{ secrets.GITHUB_TOKEN }} - projectName: quartz - deploymentName: Branch Preview - directory: ${{ steps.preview-build-artifact.outputs.download-path }} diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index ee7efa7..af79ead 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -37,7 +37,7 @@ jobs: network=host - name: Install cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@v3.8.2 + uses: sigstore/cosign-installer@v3.8.1 - name: Login to GitHub Container Registry uses: docker/login-action@v3 if: github.event_name != 'pull_request' diff --git a/content/Deutsch/Literaturepochen/Klassik.md b/content/Deutsch/Literaturepochen/Klassik.md deleted file mode 100644 index f0bcc2f..0000000 --- a/content/Deutsch/Literaturepochen/Klassik.md +++ /dev/null @@ -1,41 +0,0 @@ -- auch Weimarer Klassik -- 1786 - 1832 (erste Italienreise Goethe - Tod Goethe) -- hohe Ansprüche und Rückbesinnung auf die Antike -- beeinflusst von Aufklärung -- Besonders Goethe und Schiller als wichtige Vertreter (zuvor ebenfalls [[Sturm und Drang]]) -- Auswirkungen der Französischen Revolution: - - Umbruch in Europa durch Abschaffung der absolutistischen Monarchie - - Instabilität - - Neuordnung Europas unter Napoleon: Selbstverwaltung der Städte, Bildungsreform - - -> Bedürfnis nach Harmonie -- Motive und Themen - - (Johann Joachim Winckelmann war derjenige, der die Antike Kunst wieder aktuell und zum Ideal machte) - - Harmonie - - "Edle Einfalt" und "stille Größe" - - Balance aus Verstand und Gefühl -> Balance zwischen Aufklärung und Sturm und Drang - - Kunst + Wissenschaft gemeinsam - - Was ist der ideale Mensch? - - Nicht nur Abbildung, sondern Erfassung des Wesens - - Schönheit, Vollkommenheit und Ideale gelten als Ziel - - Selbstbestimmung, Menschlichkeit, Toleranz -- Lyrik - - antiker Stil und strenge formale Regeln - - meist Oden und balladen mit feierlicher Sprache - - auch Sonette, Hmynen -- Literatur allgemein - - einheitliche, klare Sprache und Symmetrie - - inhaltliche und formale Harmonie und Ordnung -- Drama - - beliebteste Gattung, hier aufgrund der Möglichkeit zur Erziehung der Zuschauer / Lesenden - - Typisch: - - Stichomythie - häufiger Rednerwechsel - - allgemeingültige Weisheiten (Sentenzen) - - Blankverse - - Dramenkonzept Aristoteles: Kausalität, Einheit von Raum, Zeit und Handlung und Katharsis (innere Reinigung) -- Epik - - Hier ausnahmsweise sehr frei - - selten genutzt - - meist in Bildungsromanen - -## Quellen -https://wortwuchs.net/literaturepochen/klassik/ \ No newline at end of file diff --git a/content/Deutsch/Literaturepochen/Romantik.md b/content/Deutsch/Literaturepochen/Romantik.md deleted file mode 100644 index aab02cd..0000000 --- a/content/Deutsch/Literaturepochen/Romantik.md +++ /dev/null @@ -1,64 +0,0 @@ -- 1795 - 1848 (Literatur) -- auch in Musik, Kunst und Philosophie (dort auch bis ins späte 19. Jh.) -- zentrale Motive: - - Schauriges - - Unterbewusstes - - Fantastisches - - Leidenschaft - - Indivualität - - Gefühl - - Abenteuerliche - - Grenzüberschreitung (auch als Motive z. B. Dämmerung, Mondschein, Blick in die Ferne) - - Besinnung auf das Mittelalter (Romantisierung, Verklärung desselben) - - Sehnsucht -- wichtige Autoren - - Brüder Grimm - - Novalis - - Joseph von Eichendorff - - E.T.A Hoffmann -- Abwendung von der Antike (siehe [[Klassik]], hin zu eigener Sprache) -- populäre Textsorten: Märchen, Sagen, Mythen, Roman -- Geschichte - - Kapitalismus - - Industrialisierung - - Wissenschaft -- Der Fortschritt und die Reduzierung des Menschen auf das Gewinnbringende war den Autoren zuwider - - Sie konzentrierten sich auf das Mystische und Mythische, auf das Unerklärliche - - daher auch Besinnung auf das Mittelalter - - Das Mystische und Unergründbare als grenzenlos im Vergleich zur Wirklichkeit, die Grenzen hat -- Universalpoesie - - Verbindung von verschiedenen literarischen Gattungen und Philosophie, Kritik und Rhetorik - - Ansprechen aller Sinne - - Wechselbezug zwischen Traum und Wirklichkeit -- romantische Ironie - - "im Kunstwerk die Produktionsbedingungen desselben sichtbar machen" - - Bezug auf das Werk selbst - - Reflektion - - Beispiel: "Kein Held stirbt inmitten des zweiten Akts" - Aussage eines Helden in einer ausweglosen Situation -- Epik - - v. a. Roman, der offen ist und so die Möglichkeit zur Vermischung der literarischen Gattungen birgt - - nicht wirklich Roman, sondern Zusammenstückelung verschiedener literarischer Formen, z. B. Lieder und Gedichte (wie auch gefordert) - - Schauerroman, Unheimliches - - Erzählung, Kunstmärchen, Märchen -- Schwarze Romantik (Unterströmung) - - Beschäftigung mit der dunklen Seite des menschlichen Geistes - - vorher, v. a. in Aufklärung ignoriert - - unheimliche Geschehnisse - - Faszination am Bösen -- Drama - - eher unbedeutend - - keine Vermischung der Gattungen möglich, da recht strenge Regeln - - "Der gestiefelte Kater" von Ludwig Tieck inkorperiert romantische Ironie - - Figuren fallen aus der Rolle - - Aus dem Publikum kommentieren Schauspieler - - Regiegespräch während des Stücks - - Bewertung des Stücks im Stück selbst - - Dichter spielt selbst mit -- Lyrik - - ebenfalls nicht so frei wie Epik, aber trotzdem wichtig -> Poesiebegriff in der Romantik - - nicht erziehend - - Teil der idealen Welt - - einfache Dichtung - - spontane, naive Erlebnislyrik - - nicht wirklich, sondern gezielt so wirkend - - Heimatlosigkeit \ No newline at end of file diff --git a/content/Deutsch/Literaturepochen/Sturm und Drang.md b/content/Deutsch/Literaturepochen/Sturm und Drang.md deleted file mode 100644 index 0e1345e..0000000 --- a/content/Deutsch/Literaturepochen/Sturm und Drang.md +++ /dev/null @@ -1,34 +0,0 @@ -- Die Epoche des Sturm und Drang wird auf ca. 1767 - 1785 datiert. -- meist junge Autoren von 20 - 30 -- Die Autoren wendeten sich gegen die vorherrschende Aufklärung, die den Verstand an erste Stelle im Leben stellte -- Hauptmotiv: **Originalgenie**, das nach seinen eigenen Gesetzen lebt - diese kommen nach seinen Gefühlen und nicht nach der Vernunft -- Antifeudalistisch (wie Aufklärung auch) -- **Emotionalität**, Individualität, Verstoß gegen Normen -- Auch im Ausdruck nicht geregelt: Es gibt Kraftausdrücke und volksnahe Sprache sowie Jugendsprache -- Auch eine strenge Form (v. a. in der Poesie) wird abgelehnt -> Literatur soll ausdrucksstark sein -- Wichtigste literarische Gattung: **Drama**, denn es ist ausdrucksstark und erlaubt Verbindung mit dem Publikum -- Epik: - - Neue literarische Gattung: Briefroman - - Die Leiden des Jungen Werthers von Johann Wolfgang von Goethe (1774) - - Protest gegen strenge Formen - - Tiefer Einblick in die Gefühlswelt der Charaktere -- Lyrik - - freie Rhythmen - - Erlebnislyrik - - Erlebnisse werden dem Leser möglichst nahgebracht und möglichst natürlich sein, fast wie in einem Zug verfasst -> glaubhaft - - Natur als zentrales Element - - Volkslied als wichtige literarische Gattung -- Drama - - am weitesten verbreitete literarische Gattung des Sturm und Drang - - Behandlung gesellschaftlicher Probleme - - Held: Naturgenie, das mit der Welt um sich herum in Konflikt gerät -> wirkt wie Verbrecher - - Am Ende bringt sich der Held meist um, da dies für ihn der einzige Ausweg ist -- Geschichte - - Deutschland besteht zu dieser Zeit noch nicht und es gibt viele kleine Staaten - - Je nach Lebensort gehört man unterschiedlichen Konfessionen an - - Beginn der Industrialisierung - - Erstarkung des Bürgertums, das nun mitbestimmen kann - - -## Quellen -https://wortwuchs.net/literaturepochen/sturm-und-drang/ \ No newline at end of file diff --git a/docs/features/reader mode.md b/docs/features/reader mode.md deleted file mode 100644 index d1c1429..0000000 --- a/docs/features/reader mode.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Reader Mode -tags: - - component ---- - -Reader Mode is a feature that allows users to focus on the content by hiding the sidebars and other UI elements. When enabled, it provides a clean, distraction-free reading experience. - -## Configuration - -Reader Mode is enabled by default. To disable it, you can remove the component from your layout configuration in `quartz.layout.ts`: - -```ts -// Remove or comment out this line -Component.ReaderMode(), -``` - -## Usage - -The Reader Mode toggle appears as a button with a book icon. When clicked: - -- Sidebars are hidden -- Hovering over the content area reveals the sidebars temporarily - -Unlike Dark Mode, Reader Mode state is not persisted between page reloads but is maintained during SPA navigation within the site. - -## Customization - -You can customize the appearance of Reader Mode through CSS variables and styles. The component uses the following classes: - -- `.readermode`: The toggle button -- `.readerIcon`: The book icon -- `[reader-mode="on"]`: Applied to the root element when Reader Mode is active - -Example customization in your custom CSS: - -```scss -.readermode { - // Customize the button - svg { - stroke: var(--custom-color); - } -} -``` diff --git a/docs/plugins/Favicon.md b/docs/plugins/Favicon.md deleted file mode 100644 index a6d4d4e..0000000 --- a/docs/plugins/Favicon.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Favicon -tags: - - plugin/emitter ---- - -This plugin emits a `favicon.ico` into the `public` folder. It creates the favicon from `icon.png` located in the `quartz/static` folder. -The plugin resizes `icon.png` to 48x48px to make it as small as possible. - -> [!note] -> For information on how to add, remove or configure plugins, see the [[configuration#Plugins|Configuration]] page. - -This plugin has no configuration options. - -## API - -- Category: Emitter -- Function name: `Plugin.Favicon()`. -- Source: [`quartz/plugins/emitters/favicon.ts`](https://github.com/jackyzha0/quartz/blob/v4/quartz/plugins/emitters/favicon.ts). diff --git a/docs/setting up your GitHub repository.md b/docs/setting up your GitHub repository.md index 2a753e8..43a556d 100644 --- a/docs/setting up your GitHub repository.md +++ b/docs/setting up your GitHub repository.md @@ -34,13 +34,6 @@ npx quartz sync --no-pull > [!warning]- `fatal: --[no-]autostash option is only valid with --rebase` > You may have an outdated version of `git`. Updating `git` should fix this issue. -> [!warning]- `fatal: The remote end hung up unexpectedly` -> It might be due to Git's default buffer size. You can fix it by increasing the buffer with this command: -> -> ```bash -> git config http.postBuffer 524288000 -> ``` - In future updates, you can simply run `npx quartz sync` every time you want to push updates to your repository. > [!hint] Flags and options diff --git a/index.d.ts b/index.d.ts index 9011ee3..07f8082 100644 --- a/index.d.ts +++ b/index.d.ts @@ -8,7 +8,6 @@ interface CustomEventMap { prenav: CustomEvent<{}> nav: CustomEvent<{ url: FullSlug }> themechange: CustomEvent<{ theme: "light" | "dark" }> - readermodechange: CustomEvent<{ mode: "on" | "off" }> } type ContentIndex = Record diff --git a/package-lock.json b/package-lock.json index 53c3bb4..43f712f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,11 @@ "version": "4.5.0", "license": "MIT", "dependencies": { - "@clack/prompts": "^0.10.1", - "@floating-ui/dom": "^1.7.0", - "@myriaddreamin/rehype-typst": "^0.6.0", + "@clack/prompts": "^0.10.0", + "@floating-ui/dom": "^1.6.13", + "@myriaddreamin/rehype-typst": "^0.5.4", "@napi-rs/simple-git": "0.1.19", "@tweenjs/tween.js": "^25.0.0", - "@webgpu/types": "^0.1.60", "ansi-truncate": "^1.2.0", "async-mutex": "^0.5.0", "chalk": "^5.4.1", @@ -37,10 +36,10 @@ "mdast-util-to-string": "^4.0.0", "micromorph": "^0.4.5", "minimatch": "^10.0.1", - "pixi.js": "^8.9.2", - "preact": "^10.26.5", + "pixi.js": "^8.9.1", + "preact": "^10.26.4", "preact-render-to-string": "^6.5.13", - "pretty-bytes": "^7.0.0", + "pretty-bytes": "^6.1.1", "pretty-time": "^1.1.0", "reading-time": "^1.5.0", "rehype-autolink-headings": "^7.1.0", @@ -56,13 +55,13 @@ "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.2", + "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", "rfdc": "^1.4.1", "rimraf": "^6.0.1", "satori": "^0.12.2", "serve-handler": "^6.1.6", - "sharp": "^0.34.1", + "sharp": "^0.33.5", "shiki": "^1.26.2", "source-map-support": "^0.5.21", "to-vfile": "^8.0.0", @@ -71,7 +70,7 @@ "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "workerpool": "^9.2.0", - "ws": "^8.18.2", + "ws": "^8.18.1", "yargs": "^17.7.2" }, "bin": { @@ -81,15 +80,15 @@ "@types/d3": "^7.4.3", "@types/hast": "^3.0.4", "@types/js-yaml": "^4.0.9", - "@types/node": "^22.15.7", + "@types/node": "^22.13.14", "@types/pretty-time": "^1.1.5", "@types/source-map-support": "^0.5.10", - "@types/ws": "^8.18.1", + "@types/ws": "^8.18.0", "@types/yargs": "^17.0.33", - "esbuild": "^0.25.3", + "esbuild": "^0.25.2", "prettier": "^3.5.3", - "tsx": "^4.19.4", - "typescript": "^5.8.3" + "tsx": "^4.19.3", + "typescript": "^5.8.2" }, "engines": { "node": ">=20", @@ -179,30 +178,29 @@ } }, "node_modules/@clack/core": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.2.tgz", - "integrity": "sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==", - "license": "MIT", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.4.1.tgz", + "integrity": "sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==", "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "node_modules/@clack/prompts": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.1.tgz", - "integrity": "sha512-Q0T02vx8ZM9XSv9/Yde0jTmmBQufZhPJfYAg2XrrrxWWaZgq1rr8nU8Hv710BQ1dhoP8rtY7YUdpGej2Qza/cw==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.0.tgz", + "integrity": "sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ==", "license": "MIT", "dependencies": { - "@clack/core": "0.4.2", + "@clack/core": "0.4.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "node_modules/@emnapi/runtime": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.0.tgz", - "integrity": "sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "license": "MIT", "optional": true, "dependencies": { @@ -210,9 +208,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", - "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", + "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", "cpu": [ "ppc64" ], @@ -226,9 +224,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", - "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", + "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", "cpu": [ "arm" ], @@ -242,9 +240,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", - "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", + "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", "cpu": [ "arm64" ], @@ -258,9 +256,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", - "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", + "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", "cpu": [ "x64" ], @@ -274,9 +272,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", - "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", + "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", "cpu": [ "arm64" ], @@ -290,9 +288,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", - "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", + "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", "cpu": [ "x64" ], @@ -306,9 +304,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", - "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", + "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", "cpu": [ "arm64" ], @@ -322,9 +320,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", - "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", + "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", "cpu": [ "x64" ], @@ -338,9 +336,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", - "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", + "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", "cpu": [ "arm" ], @@ -354,9 +352,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", - "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", + "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", "cpu": [ "arm64" ], @@ -370,9 +368,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", - "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", + "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", "cpu": [ "ia32" ], @@ -386,9 +384,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", - "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", + "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", "cpu": [ "loong64" ], @@ -402,9 +400,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", - "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", + "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", "cpu": [ "mips64el" ], @@ -418,9 +416,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", - "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", + "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", "cpu": [ "ppc64" ], @@ -434,9 +432,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", - "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", + "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", "cpu": [ "riscv64" ], @@ -450,9 +448,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", - "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", + "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", "cpu": [ "s390x" ], @@ -466,9 +464,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", - "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", + "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", "cpu": [ "x64" ], @@ -482,9 +480,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", - "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", + "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", "cpu": [ "arm64" ], @@ -498,9 +496,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", - "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", + "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", "cpu": [ "x64" ], @@ -514,9 +512,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", - "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", + "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", "cpu": [ "arm64" ], @@ -530,9 +528,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", - "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", + "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", "cpu": [ "x64" ], @@ -546,9 +544,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", - "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", + "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", "cpu": [ "x64" ], @@ -562,9 +560,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", - "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", + "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", "cpu": [ "arm64" ], @@ -578,9 +576,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", - "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", + "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", "cpu": [ "ia32" ], @@ -594,9 +592,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", - "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", + "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", "cpu": [ "x64" ], @@ -610,34 +608,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", - "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", - "license": "MIT", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", "dependencies": { - "@floating-ui/utils": "^0.2.9" + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", - "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", - "license": "MIT", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "dependencies": { - "@floating-ui/core": "^1.7.0", + "@floating-ui/core": "^1.6.0", "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/utils": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", - "license": "MIT" + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", "cpu": [ "arm64" ], @@ -653,13 +648,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "@img/sharp-libvips-darwin-arm64": "1.0.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", "cpu": [ "x64" ], @@ -675,13 +670,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "@img/sharp-libvips-darwin-x64": "1.0.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", "cpu": [ "arm64" ], @@ -695,9 +690,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", "cpu": [ "x64" ], @@ -711,9 +706,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", "cpu": [ "arm" ], @@ -727,9 +722,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", "cpu": [ "arm64" ], @@ -742,26 +737,10 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", "cpu": [ "s390x" ], @@ -775,9 +754,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", "cpu": [ "x64" ], @@ -791,9 +770,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", "cpu": [ "arm64" ], @@ -807,9 +786,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", "cpu": [ "x64" ], @@ -823,9 +802,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", "cpu": [ "arm" ], @@ -841,13 +820,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "@img/sharp-libvips-linux-arm": "1.0.5" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", "cpu": [ "arm64" ], @@ -863,13 +842,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "@img/sharp-libvips-linux-arm64": "1.0.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", "cpu": [ "s390x" ], @@ -885,13 +864,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "@img/sharp-libvips-linux-s390x": "1.0.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", "cpu": [ "x64" ], @@ -907,13 +886,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "@img/sharp-libvips-linux-x64": "1.0.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", "cpu": [ "arm64" ], @@ -929,13 +908,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", "cpu": [ "x64" ], @@ -951,20 +930,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", "cpu": [ "wasm32" ], "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.4.0" + "@emnapi/runtime": "^1.2.0" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -974,9 +953,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", "cpu": [ "ia32" ], @@ -993,9 +972,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", "cpu": [ "x64" ], @@ -1028,12 +1007,11 @@ } }, "node_modules/@myriaddreamin/rehype-typst": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/rehype-typst/-/rehype-typst-0.6.0.tgz", - "integrity": "sha512-WQpr2j7OYtyc2Q1WOqi1wzYrBaeuAWT1Cn1Ki6VPsKoWH7O86/+zKOqltdgMpYdkav1uXYs3RfO5Ir8h0WkZyQ==", - "license": "MIT", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/rehype-typst/-/rehype-typst-0.5.4.tgz", + "integrity": "sha512-6NJ0Ddom+X1jTTO1qlwB7ArLuZBg18m+fTqd3HWpkxAUhHAoemd2oF3ATwBIM0uF9gzG9d523D4o7b+jXCaBUQ==", "dependencies": { - "@myriaddreamin/typst-ts-node-compiler": "^0.6.0", + "@myriaddreamin/typst-ts-node-compiler": "^0.5.4", "@types/hast": "^3.0.0", "@types/katex": "^0.16.0", "hast-util-from-html-isomorphic": "^2.0.0", @@ -1044,35 +1022,33 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler/-/typst-ts-node-compiler-0.6.0.tgz", - "integrity": "sha512-C40MzRKZ8pDWzrS7VOtTypGyFaHTuZFFx3o/uQ6ryS2GqZkK3vGox4lIpR7ct11UHiAjQNR3LFQ5WjQ7P3niBQ==", - "license": "Apache-2.0", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler/-/typst-ts-node-compiler-0.5.4.tgz", + "integrity": "sha512-WAOUjOD+S2S3X/2X33PxDYn0XJ4ydqboxluIdFWU8yOlzn3K8CwoRN/GAbMA13vJTbZQMzjX3VmhMavFWeRtVA==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@myriaddreamin/typst-ts-node-compiler-android-arm-eabi": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-android-arm64": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-darwin-arm64": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-darwin-x64": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-linux-x64-musl": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc": "0.6.0", - "@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc": "0.6.0" + "@myriaddreamin/typst-ts-node-compiler-android-arm-eabi": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-android-arm64": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-darwin-arm64": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-darwin-x64": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-linux-x64-musl": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc": "0.5.4", + "@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc": "0.5.4" } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-android-arm-eabi": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm-eabi/-/typst-ts-node-compiler-android-arm-eabi-0.6.0.tgz", - "integrity": "sha512-Gfrf9Fky5iYtutGWYwqRC4gvllK1p1q6YELCbycI47NCFptONI++3dfub4PixWRn9m8NrmaNFIBQSyLHWsvbLw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm-eabi/-/typst-ts-node-compiler-android-arm-eabi-0.5.4.tgz", + "integrity": "sha512-jptHQK/GN7RCDI4FkGKrec3x3YKFogIw1kpMFYYscoOEntEF4MGJs2FM3vR3bLXGSAR54WlPI6dXPKCYuzVSOg==", "cpu": [ "arm" ], - "license": "Apache-2.0", "optional": true, "os": [ "android" @@ -1082,13 +1058,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-android-arm64": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm64/-/typst-ts-node-compiler-android-arm64-0.6.0.tgz", - "integrity": "sha512-EzO6W4xELC6at30hSkkOp5BveszwCmTWceu0PMh6lPxeQF1vnjxUK60MLFfJ40zb1TOXsj4l2pbdBoGqLznC1g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm64/-/typst-ts-node-compiler-android-arm64-0.5.4.tgz", + "integrity": "sha512-xOt+07nYDu3KiOWPnl62es+rThKYRdbOWQPY4hcFqqC5VRTfZZXUBRKdsG+W8qu0gJ513VLmW9HVlkv2PHTW0Q==", "cpu": [ "arm64" ], - "license": "Apache-2.0", "optional": true, "os": [ "android" @@ -1098,13 +1073,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-darwin-arm64": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-arm64/-/typst-ts-node-compiler-darwin-arm64-0.6.0.tgz", - "integrity": "sha512-8tR1GqFr+q4rNZm8z0230eF7eRCVCSaUefDw1+Qw8EnDPIvwEP8bT0/u2YqHmxthfVfs1msV8hDpRKVeBa6E3g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-arm64/-/typst-ts-node-compiler-darwin-arm64-0.5.4.tgz", + "integrity": "sha512-mtuIjL4KptMhy+rJY0pUv8s8kzFFYKFDyhDQIndsi7P9jYtIUkjJqhg3rXmMUcbVJEEFlaUJ+I+wFQbDuddSlg==", "cpu": [ "arm64" ], - "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -1114,13 +1088,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-darwin-x64": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-x64/-/typst-ts-node-compiler-darwin-x64-0.6.0.tgz", - "integrity": "sha512-eytv5ifNvhux9naqEb+4pu1Z4ghQBWiybP4lT/aB44I9H5xjmtYQxiKwNBz54am6RLiMcyLpw/xFdeB13bsdWA==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-x64/-/typst-ts-node-compiler-darwin-x64-0.5.4.tgz", + "integrity": "sha512-rP8ghx3+vCE0vVat6POYNEkXsjXQn1iyy3pPfLTFtSgQRoJoPJJnDB+tkToCiTZQwvo9aFyrY0LOyH8mpm+BYQ==", "cpu": [ "x64" ], - "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -1130,13 +1103,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf/-/typst-ts-node-compiler-linux-arm-gnueabihf-0.6.0.tgz", - "integrity": "sha512-b20do+PmbsYq07QlTW8uLU3MaoAm6DSCx1IrCEAlUpNH+/29x51Rvyq5JeRrYVOtkR6BxPzyhCM79r5jOkewbQ==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf/-/typst-ts-node-compiler-linux-arm-gnueabihf-0.5.4.tgz", + "integrity": "sha512-boM8bVPRL/Ekff51urc3HiY2oKVdL2x36MnHgurAown3iK4OMa0JPDGkxpnuRKbDQEZDXQB1xljVGLaAqqecCg==", "cpu": [ "arm" ], - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1146,13 +1118,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu/-/typst-ts-node-compiler-linux-arm64-gnu-0.6.0.tgz", - "integrity": "sha512-AM92MVfEbISYvIA8NwPl2l78nOZIh5er5qQ/NZw2kx4YgTKgklJINEPHXm/aAk7PcpX7G10P45D/xGd5KpX9HQ==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu/-/typst-ts-node-compiler-linux-arm64-gnu-0.5.4.tgz", + "integrity": "sha512-DIYH2WXyzeh+0sicGXICm8E/0P5ZAmbCIcGt9sgqXNe2YI/JjXoRDLLm1xN0Y5HD3fiCb/pRTRoeXFpp0u/Fjg==", "cpu": [ "arm64" ], - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1162,13 +1133,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl/-/typst-ts-node-compiler-linux-arm64-musl-0.6.0.tgz", - "integrity": "sha512-nSokVjKQR0ZH7Jub53q7he89+m72RSbL97exSedkB4OdZAi9tAxGFIgceGJuN5AC+DiNtMmqsPwlJiERUjgPhQ==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl/-/typst-ts-node-compiler-linux-arm64-musl-0.5.4.tgz", + "integrity": "sha512-KNjhfEgPaVaN+0hJ97UKY72jtpMFTA4dnP4iEoB6VX2dunVrbTJbCpjG8Sfml4HJYt0H4gYKsa4LqQzgqFJ6eQ==", "cpu": [ "arm64" ], - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1178,13 +1148,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu/-/typst-ts-node-compiler-linux-x64-gnu-0.6.0.tgz", - "integrity": "sha512-3Y2ORiYuCTzQkiHSCHWiGuzTBbNvHTB2lCr3DDsZdvTZ2LZMifPwwICN26X3tlnt6GyC3o/ejZBcMnfNqYbdCw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu/-/typst-ts-node-compiler-linux-x64-gnu-0.5.4.tgz", + "integrity": "sha512-iqYx3UFrrN0E8bg+NuvTptP2FndJNtt7tlU6Dsh6vjaay5IaBLIAtn9Yf9dPzsqWzHE3nwTq0yjoLfLEtY4a3w==", "cpu": [ "x64" ], - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1194,13 +1163,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-x64-musl": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-musl/-/typst-ts-node-compiler-linux-x64-musl-0.6.0.tgz", - "integrity": "sha512-b+kTb4vI0sFTkPtIAUE+UqjhZ4kTiAkh4F/2QKnFitAsURlLcRwTcMc9NJm6SXwW1OM0nPj1IGTfUOFpqLOIPQ==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-musl/-/typst-ts-node-compiler-linux-x64-musl-0.5.4.tgz", + "integrity": "sha512-ROleNG0SD50+FoYJQA/9sai0FzNMh94ZAUVbSJFz474olJHSYQ8xqdIiGlpFA6XXPG6TKBedzbDUVYVXWFI+NQ==", "cpu": [ "x64" ], - "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1210,13 +1178,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc/-/typst-ts-node-compiler-win32-arm64-msvc-0.6.0.tgz", - "integrity": "sha512-04omIPrXSsRKu4XDhj1WZ9uMjdcFcejBGzyOEV351HVDqg5kxgDB32iG3oLySLrzEcbi9WwI5Si46WrW0wh4mA==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc/-/typst-ts-node-compiler-win32-arm64-msvc-0.5.4.tgz", + "integrity": "sha512-Ihh40WW2cB0TUUMfJEOoH5MzQXmPSZc0OcAWMHj8A5Rr4pNNAr1gcJTeB6UHazoRQ8uQG5hg3CqCFydAIbXKfQ==", "cpu": [ "arm64" ], - "license": "Apache-2.0", "optional": true, "os": [ "win32" @@ -1226,13 +1193,12 @@ } }, "node_modules/@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc/-/typst-ts-node-compiler-win32-x64-msvc-0.6.0.tgz", - "integrity": "sha512-w5UEmXSZ+Eg7Y04EzjgqeHUo7P8bNz9S1c4CUfLrbfZvbTmYNjA0WeqZJ3+tV03BSVxiPiVhrfo95sLqKISNrg==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc/-/typst-ts-node-compiler-win32-x64-msvc-0.5.4.tgz", + "integrity": "sha512-umEuUW6mn68JTueWr4LHsIUN8Bxs1aGyJdHVMy4br1g7MPqkoR0e8rVreTNulKaDx1+4lFdceWa1Uu7Yu0g9Ag==", "cpu": [ "x64" ], - "license": "Apache-2.0", "optional": true, "os": [ "win32" @@ -1958,13 +1924,13 @@ } }, "node_modules/@types/node": { - "version": "22.15.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.7.tgz", - "integrity": "sha512-3hieEH05p8cnASknk8cYV71K2Vqmn4Nv8gjvRc5N3XbMlBS4wPwsmsw5bcHw6ISL36vVFuAhElcQCf7Ir4bR0w==", + "version": "22.13.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.14.tgz", + "integrity": "sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~6.20.0" } }, "node_modules/@types/pretty-time": { @@ -1988,9 +1954,9 @@ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" }, "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==", "dev": true, "license": "MIT", "dependencies": { @@ -2018,9 +1984,9 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@webgpu/types": { - "version": "0.1.60", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", - "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", + "version": "0.1.44", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.44.tgz", + "integrity": "sha512-JDpYJN5E/asw84LTYhKyvPpxGnD+bAKPtpW9Ilurf7cZpxaTbxkQcGwOd7jgB9BPBrTYQ+32ufo4HiuomTjHNQ==", "license": "BSD-3-Clause" }, "node_modules/@xmldom/xmldom": { @@ -2958,9 +2924,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", - "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", + "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -2970,31 +2936,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.3", - "@esbuild/android-arm": "0.25.3", - "@esbuild/android-arm64": "0.25.3", - "@esbuild/android-x64": "0.25.3", - "@esbuild/darwin-arm64": "0.25.3", - "@esbuild/darwin-x64": "0.25.3", - "@esbuild/freebsd-arm64": "0.25.3", - "@esbuild/freebsd-x64": "0.25.3", - "@esbuild/linux-arm": "0.25.3", - "@esbuild/linux-arm64": "0.25.3", - "@esbuild/linux-ia32": "0.25.3", - "@esbuild/linux-loong64": "0.25.3", - "@esbuild/linux-mips64el": "0.25.3", - "@esbuild/linux-ppc64": "0.25.3", - "@esbuild/linux-riscv64": "0.25.3", - "@esbuild/linux-s390x": "0.25.3", - "@esbuild/linux-x64": "0.25.3", - "@esbuild/netbsd-arm64": "0.25.3", - "@esbuild/netbsd-x64": "0.25.3", - "@esbuild/openbsd-arm64": "0.25.3", - "@esbuild/openbsd-x64": "0.25.3", - "@esbuild/sunos-x64": "0.25.3", - "@esbuild/win32-arm64": "0.25.3", - "@esbuild/win32-ia32": "0.25.3", - "@esbuild/win32-x64": "0.25.3" + "@esbuild/aix-ppc64": "0.25.2", + "@esbuild/android-arm": "0.25.2", + "@esbuild/android-arm64": "0.25.2", + "@esbuild/android-x64": "0.25.2", + "@esbuild/darwin-arm64": "0.25.2", + "@esbuild/darwin-x64": "0.25.2", + "@esbuild/freebsd-arm64": "0.25.2", + "@esbuild/freebsd-x64": "0.25.2", + "@esbuild/linux-arm": "0.25.2", + "@esbuild/linux-arm64": "0.25.2", + "@esbuild/linux-ia32": "0.25.2", + "@esbuild/linux-loong64": "0.25.2", + "@esbuild/linux-mips64el": "0.25.2", + "@esbuild/linux-ppc64": "0.25.2", + "@esbuild/linux-riscv64": "0.25.2", + "@esbuild/linux-s390x": "0.25.2", + "@esbuild/linux-x64": "0.25.2", + "@esbuild/netbsd-arm64": "0.25.2", + "@esbuild/netbsd-x64": "0.25.2", + "@esbuild/openbsd-arm64": "0.25.2", + "@esbuild/openbsd-x64": "0.25.2", + "@esbuild/sunos-x64": "0.25.2", + "@esbuild/win32-arm64": "0.25.2", + "@esbuild/win32-ia32": "0.25.2", + "@esbuild/win32-x64": "0.25.2" } }, "node_modules/esbuild-sass-plugin": { @@ -5521,8 +5487,7 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5537,9 +5502,9 @@ } }, "node_modules/pixi.js": { - "version": "8.9.2", - "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.9.2.tgz", - "integrity": "sha512-oLFBkOOA/O6OpT5T8o05AxgZB9x9yWNzEQ+WTNZZFoCvfU2GdT4sFTjpVFuHQzgZPmAm/1IFhKdNiXVnlL8PRw==", + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.9.1.tgz", + "integrity": "sha512-2vF5Yu9WC/83ly2tCGkjb+ZGnrr+vlKtZezmD0AmJEQoYZO5nL94806l+PVcJBKW6qrF0YHtbh0ubb6CB7/8Rg==", "license": "MIT", "dependencies": { "@pixi/colord": "^2.9.6", @@ -5561,9 +5526,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.26.5", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.5.tgz", - "integrity": "sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==", + "version": "10.26.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.4.tgz", + "integrity": "sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==", "license": "MIT", "funding": { "type": "opencollective", @@ -5595,12 +5560,11 @@ } }, "node_modules/pretty-bytes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.0.0.tgz", - "integrity": "sha512-U5otLYPR3L0SVjHGrkEUx5mf7MxV2ceXeE7VwWPk+hyzC5drNohsOGNPDZqxCqyX1lkbEN4kl1LiI8QFd7r0ZA==", - "license": "MIT", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", "engines": { - "node": ">=20" + "node": "^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5941,10 +5905,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", - "license": "MIT", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -6580,9 +6543,9 @@ } }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -6626,15 +6589,15 @@ } }, "node_modules/sharp": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", - "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", - "semver": "^7.7.1" + "semver": "^7.6.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -6643,26 +6606,25 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.1", - "@img/sharp-darwin-x64": "0.34.1", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.1", - "@img/sharp-linux-arm64": "0.34.1", - "@img/sharp-linux-s390x": "0.34.1", - "@img/sharp-linux-x64": "0.34.1", - "@img/sharp-linuxmusl-arm64": "0.34.1", - "@img/sharp-linuxmusl-x64": "0.34.1", - "@img/sharp-wasm32": "0.34.1", - "@img/sharp-win32-ia32": "0.34.1", - "@img/sharp-win32-x64": "0.34.1" + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" } }, "node_modules/shebang-command": { @@ -6722,8 +6684,7 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/slash": { "version": "5.1.0", @@ -7026,9 +6987,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsx": { - "version": "4.19.4", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", - "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", + "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7046,9 +7007,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7060,11 +7021,10 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true }, "node_modules/unicode-trie": { "version": "2.0.0", @@ -7439,9 +7399,9 @@ } }, "node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 0ed675f..34cb44b 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,11 @@ "quartz": "./quartz/bootstrap-cli.mjs" }, "dependencies": { - "@clack/prompts": "^0.10.1", - "@floating-ui/dom": "^1.7.0", - "@myriaddreamin/rehype-typst": "^0.6.0", + "@clack/prompts": "^0.10.0", + "@floating-ui/dom": "^1.6.13", + "@myriaddreamin/rehype-typst": "^0.5.4", "@napi-rs/simple-git": "0.1.19", "@tweenjs/tween.js": "^25.0.0", - "@webgpu/types": "^0.1.60", "ansi-truncate": "^1.2.0", "async-mutex": "^0.5.0", "chalk": "^5.4.1", @@ -63,10 +62,10 @@ "mdast-util-to-string": "^4.0.0", "micromorph": "^0.4.5", "minimatch": "^10.0.1", - "pixi.js": "^8.9.2", - "preact": "^10.26.5", + "pixi.js": "^8.9.1", + "preact": "^10.26.4", "preact-render-to-string": "^6.5.13", - "pretty-bytes": "^7.0.0", + "pretty-bytes": "^6.1.1", "pretty-time": "^1.1.0", "reading-time": "^1.5.0", "rehype-autolink-headings": "^7.1.0", @@ -82,13 +81,13 @@ "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.2", + "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", "rfdc": "^1.4.1", "rimraf": "^6.0.1", "satori": "^0.12.2", "serve-handler": "^6.1.6", - "sharp": "^0.34.1", + "sharp": "^0.33.5", "shiki": "^1.26.2", "source-map-support": "^0.5.21", "to-vfile": "^8.0.0", @@ -97,21 +96,21 @@ "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", "workerpool": "^9.2.0", - "ws": "^8.18.2", + "ws": "^8.18.1", "yargs": "^17.7.2" }, "devDependencies": { "@types/d3": "^7.4.3", "@types/hast": "^3.0.4", "@types/js-yaml": "^4.0.9", - "@types/node": "^22.15.7", + "@types/node": "^22.13.14", "@types/pretty-time": "^1.1.5", "@types/source-map-support": "^0.5.10", - "@types/ws": "^8.18.1", + "@types/ws": "^8.18.0", "@types/yargs": "^17.0.33", - "esbuild": "^0.25.3", + "esbuild": "^0.25.2", "prettier": "^3.5.3", - "tsx": "^4.19.4", - "typescript": "^5.8.3" + "tsx": "^4.19.3", + "typescript": "^5.8.2" } } diff --git a/quartz.config.ts b/quartz.config.ts index 09325e7..8a9eb83 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -88,7 +88,6 @@ const config: QuartzConfig = { }), Plugin.Assets(), Plugin.Static(), - Plugin.Favicon(), Plugin.NotFoundPage(), // Comment out CustomOgImages to speed up build time Plugin.CustomOgImages(), diff --git a/quartz.layout.ts b/quartz.layout.ts index 2f5a125..7100b07 100644 --- a/quartz.layout.ts +++ b/quartz.layout.ts @@ -34,7 +34,6 @@ export const defaultContentPageLayout: PageLayout = { grow: true, }, { Component: Component.Darkmode() }, - { Component: Component.ReaderMode() }, ], }), Component.Explorer(), diff --git a/quartz/cli/handlers.js b/quartz/cli/handlers.js index 0cb371b..c41bafc 100644 --- a/quartz/cli/handlers.js +++ b/quartz/cli/handlers.js @@ -589,8 +589,7 @@ export async function handleSync(argv) { await popContentFolder(contentFolder) if (argv.push) { console.log("Pushing your changes") - const currentBranch = execSync("git rev-parse --abbrev-ref HEAD").toString().trim() - const res = spawnSync("git", ["push", "-uf", ORIGIN_NAME, currentBranch], { + const res = spawnSync("git", ["push", "-uf", ORIGIN_NAME, QUARTZ_SOURCE_BRANCH], { stdio: "inherit", }) if (res.status !== 0) { diff --git a/quartz/components/ReaderMode.tsx b/quartz/components/ReaderMode.tsx deleted file mode 100644 index 4b3165e..0000000 --- a/quartz/components/ReaderMode.tsx +++ /dev/null @@ -1,38 +0,0 @@ -// @ts-ignore -import readerModeScript from "./scripts/readermode.inline" -import styles from "./styles/readermode.scss" -import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" -import { i18n } from "../i18n" -import { classNames } from "../util/lang" - -const ReaderMode: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => { - return ( - - ) -} - -ReaderMode.beforeDOMLoaded = readerModeScript -ReaderMode.css = styles - -export default (() => ReaderMode) satisfies QuartzComponentConstructor diff --git a/quartz/components/index.ts b/quartz/components/index.ts index cece8e6..2b601cd 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -4,7 +4,6 @@ import FolderContent from "./pages/FolderContent" import NotFound from "./pages/404" import ArticleTitle from "./ArticleTitle" import Darkmode from "./Darkmode" -import ReaderMode from "./ReaderMode" import Head from "./Head" import PageTitle from "./PageTitle" import ContentMeta from "./ContentMeta" @@ -30,7 +29,6 @@ export { TagContent, FolderContent, Darkmode, - ReaderMode, Head, PageTitle, ContentMeta, diff --git a/quartz/components/pages/TagContent.tsx b/quartz/components/pages/TagContent.tsx index a1df6e1..5e81901 100644 --- a/quartz/components/pages/TagContent.tsx +++ b/quartz/components/pages/TagContent.tsx @@ -115,8 +115,8 @@ export default ((opts?: Partial) => { } return ( -
-
{content}
+
+
{content}

{i18n(cfg.locale).pages.tagContent.itemsUnderTag({ count: pages.length })}

diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx index e43189d..19324f5 100644 --- a/quartz/components/renderPage.tsx +++ b/quartz/components/renderPage.tsx @@ -75,7 +75,7 @@ function renderTranscludes( const classNames = (node.properties?.className ?? []) as string[] if (classNames.includes("transclude")) { const inner = node.children[0] as Element - const transcludeTarget = (inner.properties["data-slug"] ?? slug) as FullSlug + const transcludeTarget = inner.properties["data-slug"] as FullSlug const page = componentData.allFiles.find((f) => f.slug === transcludeTarget) if (!page) { return diff --git a/quartz/components/scripts/callout.inline.ts b/quartz/components/scripts/callout.inline.ts index 242ce51..3b7e16d 100644 --- a/quartz/components/scripts/callout.inline.ts +++ b/quartz/components/scripts/callout.inline.ts @@ -1,10 +1,25 @@ function toggleCallout(this: HTMLElement) { const outerBlock = this.parentElement! outerBlock.classList.toggle("is-collapsed") - const content = outerBlock.getElementsByClassName("callout-content")[0] as HTMLElement - if (!content) return const collapsed = outerBlock.classList.contains("is-collapsed") - content.style.gridTemplateRows = collapsed ? "0fr" : "1fr" + const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight + outerBlock.style.maxHeight = height + "px" + + // walk and adjust height of all parents + let current = outerBlock + let parent = outerBlock.parentElement + while (parent) { + if (!parent.classList.contains("callout")) { + return + } + + const collapsed = parent.classList.contains("is-collapsed") + const height = collapsed ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight + parent.style.maxHeight = height + "px" + + current = parent + parent = parent.parentElement + } } function setupCallout() { @@ -12,15 +27,15 @@ function setupCallout() { `callout is-collapsible`, ) as HTMLCollectionOf for (const div of collapsible) { - const title = div.getElementsByClassName("callout-title")[0] as HTMLElement - const content = div.getElementsByClassName("callout-content")[0] as HTMLElement - if (!title || !content) continue + const title = div.firstElementChild + if (!title) continue title.addEventListener("click", toggleCallout) window.addCleanup(() => title.removeEventListener("click", toggleCallout)) const collapsed = div.classList.contains("is-collapsed") - content.style.gridTemplateRows = collapsed ? "0fr" : "1fr" + const height = collapsed ? title.scrollHeight : div.scrollHeight + div.style.maxHeight = height + "px" } } diff --git a/quartz/components/scripts/explorer.inline.ts b/quartz/components/scripts/explorer.inline.ts index 9c83411..b431c53 100644 --- a/quartz/components/scripts/explorer.inline.ts +++ b/quartz/components/scripts/explorer.inline.ts @@ -23,18 +23,11 @@ let currentExplorerState: Array function toggleExplorer(this: HTMLElement) { const nearestExplorer = this.closest(".explorer") as HTMLElement if (!nearestExplorer) return - const explorerCollapsed = nearestExplorer.classList.toggle("collapsed") + nearestExplorer.classList.toggle("collapsed") nearestExplorer.setAttribute( "aria-expanded", nearestExplorer.getAttribute("aria-expanded") === "true" ? "false" : "true", ) - - if (!explorerCollapsed) { - // Stop from being scrollable when mobile explorer is open - document.documentElement.classList.add("mobile-no-scroll") - } else { - document.documentElement.classList.remove("mobile-no-scroll") - } } function toggleFolder(evt: MouseEvent) { @@ -277,25 +270,12 @@ document.addEventListener("nav", async (e: CustomEventMap["nav"]) => { if (mobileExplorer.checkVisibility()) { explorer.classList.add("collapsed") explorer.setAttribute("aria-expanded", "false") - - // Allow to be scrollable when mobile explorer is collapsed - document.documentElement.classList.remove("mobile-no-scroll") } mobileExplorer.classList.remove("hide-until-loaded") } }) -window.addEventListener("resize", function () { - // Desktop explorer opens by default, and it stays open when the window is resized - // to mobile screen size. Applies `no-scroll` to in this edge case. - const explorer = document.querySelector(".explorer") - if (explorer && !explorer.classList.contains("collapsed")) { - document.documentElement.classList.add("mobile-no-scroll") - return - } -}) - function setFolderState(folderElement: HTMLElement, collapsed: boolean) { return collapsed ? folderElement.classList.remove("open") : folderElement.classList.add("open") } diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 9c8ec60..a669b05 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -68,30 +68,6 @@ type TweenNode = { stop: () => void } -// workaround for pixijs webgpu issue: https://github.com/pixijs/pixijs/issues/11389 -async function determineGraphicsAPI(): Promise<"webgpu" | "webgl"> { - const adapter = await navigator.gpu?.requestAdapter().catch(() => null) - const device = adapter && (await adapter.requestDevice().catch(() => null)) - if (!device) { - return "webgl" - } - - const canvas = document.createElement("canvas") - const gl = - (canvas.getContext("webgl2") as WebGL2RenderingContext | null) ?? - (canvas.getContext("webgl") as WebGLRenderingContext | null) - - // we have to return webgl so pixijs automatically falls back to canvas - if (!gl) { - return "webgl" - } - - const webglMaxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS) - const webgpuMaxTextures = device.limits.maxSampledTexturesPerShaderStage - - return webglMaxTextures === webgpuMaxTextures ? "webgpu" : "webgl" -} - async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { const slug = simplifySlug(fullSlug) const visited = getVisited() @@ -373,7 +349,6 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { tweens.forEach((tween) => tween.stop()) tweens.clear() - const pixiPreference = await determineGraphicsAPI() const app = new Application() await app.init({ width, @@ -382,7 +357,7 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { autoStart: false, autoDensity: true, backgroundAlpha: 0, - preference: pixiPreference, + preference: "webgpu", resolution: window.devicePixelRatio, eventMode: "static", }) diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index 989af7e..86cc885 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -1,15 +1,18 @@ import { computePosition, flip, inline, shift } from "@floating-ui/dom" import { normalizeRelativeURLs } from "../../util/path" import { fetchCanonical } from "./util" +import { randomIdNonSecure } from "../../util/random" const p = new DOMParser() -let activeAnchor: HTMLAnchorElement | null = null async function mouseEnterHandler( this: HTMLAnchorElement, { clientX, clientY }: { clientX: number; clientY: number }, ) { - const link = (activeAnchor = this) + clearActivePopover() + + const link = this + const id = randomIdNonSecure() if (link.dataset.noPopover === "true") { return } @@ -24,50 +27,45 @@ async function mouseEnterHandler( }) } - function showPopover(popoverElement: HTMLElement) { - clearActivePopover() - popoverElement.classList.add("active-popover") - setPosition(popoverElement as HTMLElement) + const prevPopoverElement = document.getElementById(`popover-${id}`) + const hasAlreadyBeenFetched = () => !!document.getElementById(`popover-${id}`) - if (hash !== "") { - const targetAnchor = `#popover-internal-${hash.slice(1)}` - const heading = popoverInner.querySelector(targetAnchor) as HTMLElement | null - if (heading) { - // leave ~12px of buffer when scrolling to a heading - popoverInner.scroll({ top: heading.offsetTop - 12, behavior: "instant" }) - } - } + // dont refetch if there's already a popover + if (hasAlreadyBeenFetched()) { + setPosition(prevPopoverElement as HTMLElement) + prevPopoverElement?.classList.add("active-popover") + return } + const thisUrl = new URL(document.location.href) + thisUrl.hash = "" + thisUrl.search = "" const targetUrl = new URL(link.href) const hash = decodeURIComponent(targetUrl.hash) targetUrl.hash = "" targetUrl.search = "" - const popoverId = `popover-${link.pathname}` - const prevPopoverElement = document.getElementById(popoverId) - - // dont refetch if there's already a popover - if (!!document.getElementById(popoverId)) { - showPopover(prevPopoverElement as HTMLElement) - return - } const response = await fetchCanonical(targetUrl).catch((err) => { console.error(err) }) + // bailout if another popover exists + if (hasAlreadyBeenFetched()) { + return + } + if (!response) return const [contentType] = response.headers.get("Content-Type")!.split(";") const [contentTypeCategory, typeInfo] = contentType.split("/") const popoverElement = document.createElement("div") - popoverElement.id = popoverId popoverElement.classList.add("popover") const popoverInner = document.createElement("div") popoverInner.classList.add("popover-inner") - popoverInner.dataset.contentType = contentType ?? undefined popoverElement.appendChild(popoverInner) + popoverInner.dataset.contentType = contentType ?? undefined + switch (contentTypeCategory) { case "image": const img = document.createElement("img") @@ -102,29 +100,35 @@ async function mouseEnterHandler( elts.forEach((elt) => popoverInner.appendChild(elt)) } - if (!!document.getElementById(popoverId)) { - return - } - + setPosition(popoverElement) + popoverElement.id = `popover-${id}` + popoverElement.classList.add("active-popover") document.body.appendChild(popoverElement) - if (activeAnchor !== this) { - return - } - showPopover(popoverElement) + if (hash !== "") { + const targetAnchor = `#popover-internal-${hash.slice(1)}` + const heading = popoverInner.querySelector(targetAnchor) as HTMLElement | null + if (heading) { + // leave ~12px of buffer when scrolling to a heading + popoverInner.scroll({ top: heading.offsetTop - 12, behavior: "instant" }) + } + } } function clearActivePopover() { - activeAnchor = null const allPopoverElements = document.querySelectorAll(".popover") - allPopoverElements.forEach((popoverElement) => popoverElement.classList.remove("active-popover")) + if (allPopoverElements) { + allPopoverElements.forEach((popoverElement) => + popoverElement.classList.remove("active-popover"), + ) + } } document.addEventListener("nav", () => { - const links = [...document.querySelectorAll("a.internal")] as HTMLAnchorElement[] + const links = [...document.getElementsByClassName("internal")] as HTMLAnchorElement[] for (const link of links) { - link.addEventListener("mouseenter", mouseEnterHandler) link.addEventListener("mouseleave", clearActivePopover) + link.addEventListener("mouseenter", mouseEnterHandler) window.addCleanup(() => { link.removeEventListener("mouseenter", mouseEnterHandler) link.removeEventListener("mouseleave", clearActivePopover) diff --git a/quartz/components/scripts/readermode.inline.ts b/quartz/components/scripts/readermode.inline.ts deleted file mode 100644 index 09f6a5f..0000000 --- a/quartz/components/scripts/readermode.inline.ts +++ /dev/null @@ -1,25 +0,0 @@ -let isReaderMode = false - -const emitReaderModeChangeEvent = (mode: "on" | "off") => { - const event: CustomEventMap["readermodechange"] = new CustomEvent("readermodechange", { - detail: { mode }, - }) - document.dispatchEvent(event) -} - -document.addEventListener("nav", () => { - const switchReaderMode = () => { - isReaderMode = !isReaderMode - const newMode = isReaderMode ? "on" : "off" - document.documentElement.setAttribute("reader-mode", newMode) - emitReaderModeChangeEvent(newMode) - } - - for (const readerModeButton of document.getElementsByClassName("readermode")) { - readerModeButton.addEventListener("click", switchReaderMode) - window.addCleanup(() => readerModeButton.removeEventListener("click", switchReaderMode)) - } - - // Set initial state - document.documentElement.setAttribute("reader-mode", isReaderMode ? "on" : "off") -}) diff --git a/quartz/components/scripts/search.inline.ts b/quartz/components/scripts/search.inline.ts index 27f74ec..d95f468 100644 --- a/quartz/components/scripts/search.inline.ts +++ b/quartz/components/scripts/search.inline.ts @@ -300,11 +300,9 @@ async function setupSearch(searchElement: Element, currentSlug: FullSlug, data: itemTile.classList.add("result-card") itemTile.id = slug itemTile.href = resolveUrl(slug).toString() - itemTile.innerHTML = ` -

${title}

- ${htmlTags} -

${content}

- ` + itemTile.innerHTML = `

${title}

${htmlTags}${ + enablePreview && window.innerWidth > 600 ? "" : `

${content}

` + }` itemTile.addEventListener("click", (event) => { if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return hideSearch() diff --git a/quartz/components/styles/darkmode.scss b/quartz/components/styles/darkmode.scss index b328743..5d1e078 100644 --- a/quartz/components/styles/darkmode.scss +++ b/quartz/components/styles/darkmode.scss @@ -6,7 +6,7 @@ border: none; width: 20px; height: 20px; - margin: 0; + margin: 0 10px; text-align: inherit; flex-shrink: 0; diff --git a/quartz/components/styles/explorer.scss b/quartz/components/styles/explorer.scss index 002b086..55c4372 100644 --- a/quartz/components/styles/explorer.scss +++ b/quartz/components/styles/explorer.scss @@ -263,8 +263,22 @@ li:has(> .folder-outer:not(.open)) > .folder-container > svg { } } -.mobile-no-scroll { - @media all and ($mobile) { - overflow: hidden; +.no-scroll { + opacity: 0; + overflow: hidden; +} + +html:has(.no-scroll) { + overflow: hidden; +} + +@media all and not ($mobile) { + .no-scroll { + opacity: 1 !important; + overflow: auto !important; + } + + html:has(.no-scroll) { + overflow: auto !important; } } diff --git a/quartz/components/styles/readermode.scss b/quartz/components/styles/readermode.scss deleted file mode 100644 index 79332c3..0000000 --- a/quartz/components/styles/readermode.scss +++ /dev/null @@ -1,34 +0,0 @@ -.readermode { - cursor: pointer; - padding: 0; - position: relative; - background: none; - border: none; - width: 20px; - height: 20px; - margin: 0; - text-align: inherit; - flex-shrink: 0; - - & svg { - position: absolute; - width: 20px; - height: 20px; - top: calc(50% - 10px); - fill: var(--darkgray); - stroke: var(--darkgray); - transition: opacity 0.1s ease; - } -} - -:root[reader-mode="on"] { - & .sidebar.left, - & .sidebar.right { - opacity: 0; - transition: opacity 0.2s ease; - - &:hover { - opacity: 1; - } - } -} diff --git a/quartz/components/styles/search.scss b/quartz/components/styles/search.scss index 2cf98ce..182b56b 100644 --- a/quartz/components/styles/search.scss +++ b/quartz/components/styles/search.scss @@ -133,13 +133,11 @@ } @media all and ($mobile) { - flex-direction: column; - - & > .preview-container { + & > #preview-container { display: none !important; } - &[data-preview] > .results-container { + &[data-preview] > #results-container { width: 100%; height: auto; flex: 0 0 100%; @@ -206,12 +204,6 @@ margin: 0; } - @media all and not ($mobile) { - & > p.card-description { - display: none; - } - } - & > ul.tags { margin-top: 0.45rem; margin-bottom: 0; diff --git a/quartz/i18n/locales/ar-SA.ts b/quartz/i18n/locales/ar-SA.ts index a1979de..8463e2f 100644 --- a/quartz/i18n/locales/ar-SA.ts +++ b/quartz/i18n/locales/ar-SA.ts @@ -32,9 +32,6 @@ export default { explorer: { title: "المستعرض", }, - readerMode: { - title: "وضع القارئ", - }, footer: { createdWith: "أُنشئ باستخدام", }, diff --git a/quartz/i18n/locales/ca-ES.ts b/quartz/i18n/locales/ca-ES.ts index 1483d9c..aadbd41 100644 --- a/quartz/i18n/locales/ca-ES.ts +++ b/quartz/i18n/locales/ca-ES.ts @@ -29,9 +29,6 @@ export default { lightMode: "Mode clar", darkMode: "Mode fosc", }, - readerMode: { - title: "Mode lector", - }, explorer: { title: "Explorador", }, diff --git a/quartz/i18n/locales/cs-CZ.ts b/quartz/i18n/locales/cs-CZ.ts index 87f1996..bf089d1 100644 --- a/quartz/i18n/locales/cs-CZ.ts +++ b/quartz/i18n/locales/cs-CZ.ts @@ -29,9 +29,6 @@ export default { lightMode: "Světlý režim", darkMode: "Tmavý režim", }, - readerMode: { - title: "Režim čtečky", - }, explorer: { title: "Procházet", }, diff --git a/quartz/i18n/locales/de-DE.ts b/quartz/i18n/locales/de-DE.ts index 85a7353..023d4be 100644 --- a/quartz/i18n/locales/de-DE.ts +++ b/quartz/i18n/locales/de-DE.ts @@ -26,11 +26,8 @@ export default { noBacklinksFound: "Keine Backlinks gefunden", }, themeToggle: { - lightMode: "Heller Modus", - darkMode: "Dunkler Modus", - }, - readerMode: { - title: "Lesemodus", + lightMode: "Light Mode", + darkMode: "Dark Mode", }, explorer: { title: "Explorer", diff --git a/quartz/i18n/locales/definition.ts b/quartz/i18n/locales/definition.ts index ee1649a..25a8cd7 100644 --- a/quartz/i18n/locales/definition.ts +++ b/quartz/i18n/locales/definition.ts @@ -31,9 +31,6 @@ export interface Translation { lightMode: string darkMode: string } - readerMode: { - title: string - } explorer: { title: string } diff --git a/quartz/i18n/locales/en-GB.ts b/quartz/i18n/locales/en-GB.ts index 80e52bf..5388b03 100644 --- a/quartz/i18n/locales/en-GB.ts +++ b/quartz/i18n/locales/en-GB.ts @@ -29,9 +29,6 @@ export default { lightMode: "Light mode", darkMode: "Dark mode", }, - readerMode: { - title: "Reader mode", - }, explorer: { title: "Explorer", }, diff --git a/quartz/i18n/locales/en-US.ts b/quartz/i18n/locales/en-US.ts index e1111e9..22cf31e 100644 --- a/quartz/i18n/locales/en-US.ts +++ b/quartz/i18n/locales/en-US.ts @@ -29,9 +29,6 @@ export default { lightMode: "Light mode", darkMode: "Dark mode", }, - readerMode: { - title: "Reader mode", - }, explorer: { title: "Explorer", }, diff --git a/quartz/i18n/locales/es-ES.ts b/quartz/i18n/locales/es-ES.ts index b7e425e..c4a57aa 100644 --- a/quartz/i18n/locales/es-ES.ts +++ b/quartz/i18n/locales/es-ES.ts @@ -29,9 +29,6 @@ export default { lightMode: "Modo claro", darkMode: "Modo oscuro", }, - readerMode: { - title: "Modo lector", - }, explorer: { title: "Explorador", }, diff --git a/quartz/i18n/locales/fa-IR.ts b/quartz/i18n/locales/fa-IR.ts index 0300174..5bfef5a 100644 --- a/quartz/i18n/locales/fa-IR.ts +++ b/quartz/i18n/locales/fa-IR.ts @@ -29,9 +29,6 @@ export default { lightMode: "حالت روشن", darkMode: "حالت تاریک", }, - readerMode: { - title: "حالت خواندن", - }, explorer: { title: "مطالب", }, diff --git a/quartz/i18n/locales/fi-FI.ts b/quartz/i18n/locales/fi-FI.ts index 19e102a..f173afa 100644 --- a/quartz/i18n/locales/fi-FI.ts +++ b/quartz/i18n/locales/fi-FI.ts @@ -29,9 +29,6 @@ export default { lightMode: "Vaalea tila", darkMode: "Tumma tila", }, - readerMode: { - title: "Lukijatila", - }, explorer: { title: "Selain", }, diff --git a/quartz/i18n/locales/fr-FR.ts b/quartz/i18n/locales/fr-FR.ts index f6df309..ef43fa8 100644 --- a/quartz/i18n/locales/fr-FR.ts +++ b/quartz/i18n/locales/fr-FR.ts @@ -29,9 +29,6 @@ export default { lightMode: "Mode clair", darkMode: "Mode sombre", }, - readerMode: { - title: "Mode lecture", - }, explorer: { title: "Explorateur", }, diff --git a/quartz/i18n/locales/hu-HU.ts b/quartz/i18n/locales/hu-HU.ts index 2a4f077..066b777 100644 --- a/quartz/i18n/locales/hu-HU.ts +++ b/quartz/i18n/locales/hu-HU.ts @@ -29,9 +29,6 @@ export default { lightMode: "Világos mód", darkMode: "Sötét mód", }, - readerMode: { - title: "Olvasó mód", - }, explorer: { title: "Fájlböngésző", }, diff --git a/quartz/i18n/locales/it-IT.ts b/quartz/i18n/locales/it-IT.ts index be25bb6..c8c5973 100644 --- a/quartz/i18n/locales/it-IT.ts +++ b/quartz/i18n/locales/it-IT.ts @@ -29,9 +29,6 @@ export default { lightMode: "Tema chiaro", darkMode: "Tema scuro", }, - readerMode: { - title: "Modalità lettura", - }, explorer: { title: "Esplora", }, diff --git a/quartz/i18n/locales/ja-JP.ts b/quartz/i18n/locales/ja-JP.ts index 3c30124..9581b5e 100644 --- a/quartz/i18n/locales/ja-JP.ts +++ b/quartz/i18n/locales/ja-JP.ts @@ -29,9 +29,6 @@ export default { lightMode: "ライトモード", darkMode: "ダークモード", }, - readerMode: { - title: "リーダーモード", - }, explorer: { title: "エクスプローラー", }, diff --git a/quartz/i18n/locales/ko-KR.ts b/quartz/i18n/locales/ko-KR.ts index 1bca096..9be08d9 100644 --- a/quartz/i18n/locales/ko-KR.ts +++ b/quartz/i18n/locales/ko-KR.ts @@ -29,9 +29,6 @@ export default { lightMode: "라이트 모드", darkMode: "다크 모드", }, - readerMode: { - title: "리더 모드", - }, explorer: { title: "탐색기", }, diff --git a/quartz/i18n/locales/lt-LT.ts b/quartz/i18n/locales/lt-LT.ts index 690960c..d48e593 100644 --- a/quartz/i18n/locales/lt-LT.ts +++ b/quartz/i18n/locales/lt-LT.ts @@ -29,9 +29,6 @@ export default { lightMode: "Šviesus Režimas", darkMode: "Tamsus Režimas", }, - readerMode: { - title: "Modalità lettore", - }, explorer: { title: "Naršyklė", }, diff --git a/quartz/i18n/locales/nb-NO.ts b/quartz/i18n/locales/nb-NO.ts index 0e41522..5823b19 100644 --- a/quartz/i18n/locales/nb-NO.ts +++ b/quartz/i18n/locales/nb-NO.ts @@ -29,9 +29,6 @@ export default { lightMode: "Lys modus", darkMode: "Mørk modus", }, - readerMode: { - title: "Læsemodus", - }, explorer: { title: "Utforsker", }, diff --git a/quartz/i18n/locales/nl-NL.ts b/quartz/i18n/locales/nl-NL.ts index 8ab3b07..ccbafa7 100644 --- a/quartz/i18n/locales/nl-NL.ts +++ b/quartz/i18n/locales/nl-NL.ts @@ -29,9 +29,6 @@ export default { lightMode: "Lichte modus", darkMode: "Donkere modus", }, - readerMode: { - title: "Leesmodus", - }, explorer: { title: "Verkenner", }, diff --git a/quartz/i18n/locales/pl-PL.ts b/quartz/i18n/locales/pl-PL.ts index 11033e3..7fa0cd4 100644 --- a/quartz/i18n/locales/pl-PL.ts +++ b/quartz/i18n/locales/pl-PL.ts @@ -29,9 +29,6 @@ export default { lightMode: "Trzyb jasny", darkMode: "Tryb ciemny", }, - readerMode: { - title: "Tryb czytania", - }, explorer: { title: "Przeglądaj", }, diff --git a/quartz/i18n/locales/pt-BR.ts b/quartz/i18n/locales/pt-BR.ts index e431d8e..c7b6bfb 100644 --- a/quartz/i18n/locales/pt-BR.ts +++ b/quartz/i18n/locales/pt-BR.ts @@ -29,9 +29,6 @@ export default { lightMode: "Tema claro", darkMode: "Tema escuro", }, - readerMode: { - title: "Modo leitor", - }, explorer: { title: "Explorador", }, diff --git a/quartz/i18n/locales/ro-RO.ts b/quartz/i18n/locales/ro-RO.ts index 007d901..2de1c8c 100644 --- a/quartz/i18n/locales/ro-RO.ts +++ b/quartz/i18n/locales/ro-RO.ts @@ -29,9 +29,6 @@ export default { lightMode: "Modul luminos", darkMode: "Modul întunecat", }, - readerMode: { - title: "Modul de citire", - }, explorer: { title: "Explorator", }, diff --git a/quartz/i18n/locales/ru-RU.ts b/quartz/i18n/locales/ru-RU.ts index 5534d14..18e0817 100644 --- a/quartz/i18n/locales/ru-RU.ts +++ b/quartz/i18n/locales/ru-RU.ts @@ -29,9 +29,6 @@ export default { lightMode: "Светлый режим", darkMode: "Тёмный режим", }, - readerMode: { - title: "Режим чтения", - }, explorer: { title: "Проводник", }, diff --git a/quartz/i18n/locales/th-TH.ts b/quartz/i18n/locales/th-TH.ts index 0730131..4ea8486 100644 --- a/quartz/i18n/locales/th-TH.ts +++ b/quartz/i18n/locales/th-TH.ts @@ -29,9 +29,6 @@ export default { lightMode: "โหมดสว่าง", darkMode: "โหมดมืด", }, - readerMode: { - title: "โหมดอ่าน", - }, explorer: { title: "รายการหน้า", }, diff --git a/quartz/i18n/locales/tr-TR.ts b/quartz/i18n/locales/tr-TR.ts index 9c2d6d4..a3805d1 100644 --- a/quartz/i18n/locales/tr-TR.ts +++ b/quartz/i18n/locales/tr-TR.ts @@ -29,9 +29,6 @@ export default { lightMode: "Açık mod", darkMode: "Koyu mod", }, - readerMode: { - title: "Okuma modu", - }, explorer: { title: "Gezgin", }, diff --git a/quartz/i18n/locales/uk-UA.ts b/quartz/i18n/locales/uk-UA.ts index ac2a248..469de4f 100644 --- a/quartz/i18n/locales/uk-UA.ts +++ b/quartz/i18n/locales/uk-UA.ts @@ -29,9 +29,6 @@ export default { lightMode: "Світлий режим", darkMode: "Темний режим", }, - readerMode: { - title: "Режим читання", - }, explorer: { title: "Провідник", }, diff --git a/quartz/i18n/locales/vi-VN.ts b/quartz/i18n/locales/vi-VN.ts index 26a58a5..39a8fbc 100644 --- a/quartz/i18n/locales/vi-VN.ts +++ b/quartz/i18n/locales/vi-VN.ts @@ -29,9 +29,6 @@ export default { lightMode: "Sáng", darkMode: "Tối", }, - readerMode: { - title: "Chế độ đọc", - }, explorer: { title: "Trong bài này", }, diff --git a/quartz/i18n/locales/zh-CN.ts b/quartz/i18n/locales/zh-CN.ts index 09951bb..b710db5 100644 --- a/quartz/i18n/locales/zh-CN.ts +++ b/quartz/i18n/locales/zh-CN.ts @@ -29,9 +29,6 @@ export default { lightMode: "亮色模式", darkMode: "暗色模式", }, - readerMode: { - title: "阅读模式", - }, explorer: { title: "探索", }, diff --git a/quartz/i18n/locales/zh-TW.ts b/quartz/i18n/locales/zh-TW.ts index 4e784c0..f0db0bf 100644 --- a/quartz/i18n/locales/zh-TW.ts +++ b/quartz/i18n/locales/zh-TW.ts @@ -29,9 +29,6 @@ export default { lightMode: "亮色模式", darkMode: "暗色模式", }, - readerMode: { - title: "閱讀模式", - }, explorer: { title: "探索", }, diff --git a/quartz/plugins/emitters/componentResources.ts b/quartz/plugins/emitters/componentResources.ts index 1bb2938..92794ef 100644 --- a/quartz/plugins/emitters/componentResources.ts +++ b/quartz/plugins/emitters/componentResources.ts @@ -128,8 +128,14 @@ function addGlobalPageResources(ctx: BuildCtx, componentResources: ComponentReso const umamiScript = document.createElement("script"); umamiScript.src = "${cfg.analytics.host ?? "https://analytics.umami.is"}/script.js"; umamiScript.setAttribute("data-website-id", "${cfg.analytics.websiteId}"); - umamiScript.setAttribute("data-auto-track", "true"); + umamiScript.setAttribute("data-auto-track", "false"); umamiScript.defer = true; + umamiScript.onload = () => { + umami.track(); + document.addEventListener("nav", () => { + umami.track(); + }); + }; document.head.appendChild(umamiScript); `) diff --git a/quartz/plugins/emitters/favicon.ts b/quartz/plugins/emitters/favicon.ts deleted file mode 100644 index b05f930..0000000 --- a/quartz/plugins/emitters/favicon.ts +++ /dev/null @@ -1,22 +0,0 @@ -import sharp from "sharp" -import { joinSegments, QUARTZ, FullSlug } from "../../util/path" -import { QuartzEmitterPlugin } from "../types" -import { write } from "./helpers" -import { BuildCtx } from "../../util/ctx" - -export const Favicon: QuartzEmitterPlugin = () => ({ - name: "Favicon", - async *emit({ argv }) { - const iconPath = joinSegments(QUARTZ, "static", "icon.png") - - const faviconContent = sharp(iconPath).resize(48, 48).toFormat("png") - - yield write({ - ctx: { argv } as BuildCtx, - slug: "favicon" as FullSlug, - ext: ".ico", - content: faviconContent, - }) - }, - async *partialEmit() {}, -}) diff --git a/quartz/plugins/emitters/index.ts b/quartz/plugins/emitters/index.ts index d2de2ed..842ffb0 100644 --- a/quartz/plugins/emitters/index.ts +++ b/quartz/plugins/emitters/index.ts @@ -5,7 +5,6 @@ export { ContentIndex as ContentIndex } from "./contentIndex" export { AliasRedirects } from "./aliases" export { Assets } from "./assets" export { Static } from "./static" -export { Favicon } from "./favicon" export { ComponentResources } from "./componentResources" export { NotFoundPage } from "./404" export { CNAME } from "./cname" diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index e958027..5c2f4b2 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -191,8 +191,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> const [rawFp, rawHeader, rawAlias]: (string | undefined)[] = capture const [fp, anchor] = splitAnchor(`${rawFp ?? ""}${rawHeader ?? ""}`) - const blockRef = Boolean(rawHeader?.startsWith("#^")) ? "^" : "" - const displayAnchor = anchor ? `#${blockRef}${anchor.trim().replace(/^#+/, "")}` : "" + const displayAnchor = anchor ? `#${anchor.trim().replace(/^#+/, "")}` : "" const displayAlias = rawAlias ?? rawHeader?.replace("#", "|") ?? "" const embedDisplay = value.startsWith("!") ? "!" : "" @@ -222,7 +221,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> let [rawFp, rawHeader, rawAlias] = capture const fp = rawFp?.trim() ?? "" const anchor = rawHeader?.trim() ?? "" - const alias: string | undefined = rawAlias?.slice(1).trim() + const alias = rawAlias?.slice(1).trim() // embed cases if (value.startsWith("!")) { @@ -464,30 +463,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> }) } - // For the rest of the MD callout elements other than the title, wrap them with - // two nested HTML
s (use some hacked mdhast component to achieve this) of - // class `callout-content` and `callout-content-inner` respectively for - // grid-based collapsible animation. - if (calloutContent.length > 0) { - node.children = [ - node.children[0], - { - data: { hProperties: { className: ["callout-content"] }, hName: "div" }, - type: "blockquote", - children: [ - { - data: { - hProperties: { className: ["callout-content-inner"] }, - hName: "div", - }, - type: "blockquote", - children: [...calloutContent], - }, - ], - }, - ] - } - // replace first line of blockquote with title and rest of the paragraph text node.children.splice(0, 1, ...blockquoteContent) @@ -509,6 +484,21 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> "data-callout-metadata": calloutMetaData, }, } + + // Add callout-content class to callout body if it has one. + if (calloutContent.length > 0) { + const contentData: BlockContent | DefinitionContent = { + data: { + hProperties: { + className: "callout-content", + }, + hName: "div", + }, + type: "blockquote", + children: [...calloutContent], + } + node.children = [node.children[0], contentData] + } } }) } diff --git a/quartz/styles/callouts.scss b/quartz/styles/callouts.scss index 02921ae..d6f65aa 100644 --- a/quartz/styles/callouts.scss +++ b/quartz/styles/callouts.scss @@ -7,19 +7,11 @@ border-radius: 5px; padding: 0 1rem; overflow-y: hidden; + transition: max-height 0.3s ease; box-sizing: border-box; - & > .callout-content { - display: grid; - transition: grid-template-rows 0.3s ease; - - & > .callout-content-inner { - overflow: hidden; - - & > :first-child { - margin-top: 0; - } - } + & > .callout-content > :first-child { + margin-top: 0; } --callout-icon-note: url('data:image/svg+xml; utf8, '); diff --git a/quartz/util/theme.ts b/quartz/util/theme.ts index ff4453b..4a06425 100644 --- a/quartz/util/theme.ts +++ b/quartz/util/theme.ts @@ -107,13 +107,6 @@ export interface GoogleFontFile { extension: string } -const fontMimeMap: Record = { - truetype: "ttf", - woff: "woff", - woff2: "woff2", - opentype: "otf", -} - export async function processGoogleFonts( stylesheet: string, baseUrl: string, @@ -121,16 +114,14 @@ export async function processGoogleFonts( processedStylesheet: string fontFiles: GoogleFontFile[] }> { - const fontSourceRegex = - /url\((https:\/\/fonts.gstatic.com\/.+(?:\/|(?:kit=))(.+?)[.&].+?)\)\sformat\('(\w+?)'\);/g + const fontSourceRegex = /url\((https:\/\/fonts.gstatic.com\/s\/[^)]+\.(woff2|ttf))\)/g const fontFiles: GoogleFontFile[] = [] let processedStylesheet = stylesheet let match while ((match = fontSourceRegex.exec(stylesheet)) !== null) { const url = match[1] - const filename = match[2] - const extension = fontMimeMap[match[3].toLowerCase()] + const [filename, extension] = url.split("/").pop()!.split(".") const staticUrl = `https://${baseUrl}/static/fonts/${filename}.${extension}` processedStylesheet = processedStylesheet.replace(url, staticUrl)