From c9e20896911a887c15563fb450854a4ece6418ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2026 02:34:49 +0000 Subject: [PATCH 1/9] Bump lint-staged from 17.4.1 to 17.5.1 in the npm group (#60) Bumps the npm group with 1 update: [lint-staged](https://github.com/lint-staged/lint-staged). Updates `lint-staged` from 17.4.1 to 17.5.1 - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v17.4.1...v17.5.1) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 17.5.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f0d9df..c3ec18e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "archiver": "^8.0.0", "fs-extra": "^11.4.0", "husky": "^9.1.7", - "lint-staged": "^17.4.1" + "lint-staged": "^17.5.1" } }, "node_modules/abort-controller": { @@ -370,15 +370,15 @@ } }, "node_modules/lint-staged": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.4.1.tgz", - "integrity": "sha512-FmJeudcalbSfg1du+JCfvi5vS6Qt08KgbfLWiHinbef+2JJwUZwAWVoaO1AcJVUTWPfk0t30PMQNwPAeCzYQ+Q==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-17.5.1.tgz", + "integrity": "sha512-7EDuco1xnBMeVpvAbeMq1U5KXwJGLmY8q6l+Ye78r36C4mPc+Vg1Z2SK8gHyRTyvPro90A0q5/FAZ+Au23d6QQ==", "dev": true, "license": "MIT", "dependencies": { "picomatch": "^4.0.7", "string-argv": "^0.3.2", - "tinyexec": "^1.3.0" + "tinyexec": "^1.3.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -560,9 +560,9 @@ } }, "node_modules/tinyexec": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", - "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz", + "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 765f56e..47ef591 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "archiver": "^8.0.0", "fs-extra": "^11.4.0", "husky": "^9.1.7", - "lint-staged": "^17.4.1" + "lint-staged": "^17.5.1" }, "lint-staged": { "themes/**develop**/**/*.{css,js,jsx,ts,tsx,twig}": [ From 5e427bf5a8371de929824d739ea20956fb212275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Thu, 24 Sep 2026 15:48:15 +0900 Subject: [PATCH 2/9] =?UTF-8?q?htmx=204=20=E3=81=A7=E3=82=82=E3=82=B9?= =?UTF-8?q?=E3=83=AF=E3=83=83=E3=83=97=E5=BE=8C=E3=81=AB=E7=B5=84=E3=81=BF?= =?UTF-8?q?=E8=BE=BC=E3=81=BFJS=E3=82=92=E5=86=8D=E5=88=9D=E6=9C=9F?= =?UTF-8?q?=E5=8C=96=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit htmx 4 でイベント名が htmx:afterSwap から htmx:after:swap に変わったうえ、 after:swap はリクエスト元要素(DOM から外れた場合は挿入された先頭ノード)に 1 回だけ発火する仕様になった。outerHTML スワップでは先頭ノードがテキストノードに なりうるため、挿入されたノード一覧を持つ htmx:after:settle で再初期化する。 このテーマは htmx 2 系の CMS(Ver. 3.2)でも使われるため htmx:afterSwap の購読も残し、 htmx 4 で htmx-2-compat 拡張が再発火させる afterSwap は無視して二重初期化を防ぐ。 Co-Authored-By: Claude Opus 5.5 (1M context) --- themes/develop/src/js/main.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/themes/develop/src/js/main.js b/themes/develop/src/js/main.js index 9b6b0d5..a1bb779 100755 --- a/themes/develop/src/js/main.js +++ b/themes/develop/src/js/main.js @@ -79,8 +79,24 @@ async function main() { window.dispatch(document); // htmx (htmx_load_strategy: static) でスワップされたコンテンツに対しても組み込みJSを // 再初期化する。ACMS読み込み時は window.dispatch === ACMS.Dispatch であり、コア側の - // afterSwap リスナー(main.php)がそちらを呼ぶため、ここでは未読込時のみ実行して二重初期化を避ける。 + // スワップ後リスナーがそちらを呼ぶため、ここでは未読込時のみ実行して二重初期化を避ける。 + // + // このテーマは htmx 2 系の CMS(Ver. 3.2)と htmx 4 系の CMS(Ver. 3.3 以降)の両方で使われる。 + // htmx 2 の htmx:afterSwap は挿入された要素ごとに発火するが、htmx 4 ではイベント名が変わったうえ、 + // htmx:after:swap はリクエスト元要素(DOM から外れた場合は挿入された先頭ノード。テキストノードの + // こともある)に 1 回だけ発火する。htmx 4 では挿入されたノード一覧を持つ htmx:after:settle を使う。 + window.addEventListener('htmx:after:settle', (event) => { + (event.detail?.newContent ?? []).forEach((node) => { + if (node instanceof HTMLElement) { + window.dispatch(node); + } + }); + }); window.addEventListener('htmx:afterSwap', (event) => { + // htmx 4 で htmx-2-compat 拡張を有効にすると htmx:afterSwap も発火するため、htmx 2 のときだけ扱う + if (Number.parseInt(window.htmx?.version ?? '', 10) >= 4) { + return; + } if (event.target instanceof HTMLElement) { window.dispatch(event.target); } From 1cb107dc0222ed1e322cdcd50b143e401eff0b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Thu, 24 Sep 2026 17:30:44 +0900 Subject: [PATCH 3/9] =?UTF-8?q?htmx=E3=82=B9=E3=83=AF=E3=83=83=E3=83=97?= =?UTF-8?q?=E5=BE=8C=E3=81=AE=E7=B5=84=E3=81=BF=E8=BE=BC=E3=81=BFJS?= =?UTF-8?q?=E5=86=8D=E5=88=9D=E6=9C=9F=E5=8C=96=E3=82=92js.twig=E3=81=AE?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=A9=E3=82=A4=E3=83=B3=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E3=81=B8=E7=A7=BB=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit どのイベントを使うかは CMS 同梱の htmx のバージョンで決まるため、コアのインライン スクリプトと同じくテンプレート側に置き、ビルドし直さずに調整できるようにする。 acms.js を読み込まない(投稿者未満の)ときだけ出力する条件も、読み込み部分と並べて書ける。 Co-Authored-By: Claude Opus 5.5 (1M context) --- themes/develop/include/head/js.twig | 24 ++++++++++++++++++++++++ themes/develop/src/js/main.js | 24 ------------------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/themes/develop/include/head/js.twig b/themes/develop/include/head/js.twig index 60c14c1..133c799 100755 --- a/themes/develop/include/head/js.twig +++ b/themes/develop/include/head/js.twig @@ -7,6 +7,30 @@ {% set js = module('V2_Js') %} +{% else %} + {# htmx でスワップされたコンテンツの組み込みJS(src/js/main.js の window.dispatch)を再初期化する。 + acms.js を読み込む場合はコア側が行う。htmx 4 の htmx:after:swap は target がテキストノードになる + ことがあるため、挿入されたノード一覧を持つ htmx:after:settle を使う。htmx 2(CMS 3.2)向けに + afterSwap も残し、htmx 4 で htmx-2-compat 拡張が発火させる afterSwap は無視する。 #} + {# prettier-ignore #} + {% endif %} diff --git a/themes/develop/src/js/main.js b/themes/develop/src/js/main.js index a1bb779..b6adc6e 100755 --- a/themes/develop/src/js/main.js +++ b/themes/develop/src/js/main.js @@ -77,30 +77,6 @@ async function main() { window.dispatch = createBuildInJsDispatcher(); if (window.ACMS === undefined) { window.dispatch(document); - // htmx (htmx_load_strategy: static) でスワップされたコンテンツに対しても組み込みJSを - // 再初期化する。ACMS読み込み時は window.dispatch === ACMS.Dispatch であり、コア側の - // スワップ後リスナーがそちらを呼ぶため、ここでは未読込時のみ実行して二重初期化を避ける。 - // - // このテーマは htmx 2 系の CMS(Ver. 3.2)と htmx 4 系の CMS(Ver. 3.3 以降)の両方で使われる。 - // htmx 2 の htmx:afterSwap は挿入された要素ごとに発火するが、htmx 4 ではイベント名が変わったうえ、 - // htmx:after:swap はリクエスト元要素(DOM から外れた場合は挿入された先頭ノード。テキストノードの - // こともある)に 1 回だけ発火する。htmx 4 では挿入されたノード一覧を持つ htmx:after:settle を使う。 - window.addEventListener('htmx:after:settle', (event) => { - (event.detail?.newContent ?? []).forEach((node) => { - if (node instanceof HTMLElement) { - window.dispatch(node); - } - }); - }); - window.addEventListener('htmx:afterSwap', (event) => { - // htmx 4 で htmx-2-compat 拡張を有効にすると htmx:afterSwap も発火するため、htmx 2 のときだけ扱う - if (Number.parseInt(window.htmx?.version ?? '', 10) >= 4) { - return; - } - if (event.target instanceof HTMLElement) { - window.dispatch(event.target); - } - }); } /** From 59bda180f5d1a4cb844efcb6176290c858fd8f48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 08:38:56 +0000 Subject: [PATCH 4/9] Bump the npm group across 1 directory with 12 updates (#62) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump the npm group across 1 directory with 12 updates Bumps the npm group with 12 updates in the /themes/develop directory: | Package | From | To | | --- | --- | --- | | [@ablogcms/pdf](https://bitbucket.org/appleple/ablogcms/src/default/packages/frontend/pdf) | `3.2.29` | `3.2.35` | | [@ablogcms/validator](https://bitbucket.org/appleple/ablogcms/src/default/packages/frontend/validator) | `3.2.32` | `3.2.35` | | [alpinejs](https://github.com/alpinejs/alpine/tree/HEAD/packages/alpinejs) | `3.16.3` | `3.17.3` | | [query-string](https://github.com/sindresorhus/query-string) | `9.5.0` | `9.5.1` | | [smartphoto](https://github.com/appleple/SmartPhoto) | `2.1.8` | `2.1.17` | | [browserslist](https://github.com/browserslist/browserslist) | `4.28.8` | `4.29.0` | | [eslint](https://github.com/eslint/eslint) | `10.9.1` | `10.11.0` | | [globals](https://github.com/sindresorhus/globals) | `17.11.0` | `17.12.0` | | [prettier](https://github.com/prettier/prettier) | `3.9.6` | `3.9.8` | | [stylelint](https://github.com/stylelint/stylelint) | `17.14.1` | `17.15.0` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.2.2` | `8.3.0` | | [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) | `4.63.1` | `4.63.3` | Updates `@ablogcms/pdf` from 3.2.29 to 3.2.35 - [Commits](https://bitbucket.org/appleple/ablogcms/commits) Updates `@ablogcms/validator` from 3.2.32 to 3.2.35 - [Commits](https://bitbucket.org/appleple/ablogcms/commits) Updates `alpinejs` from 3.16.3 to 3.17.3 - [Release notes](https://github.com/alpinejs/alpine/releases) - [Commits](https://github.com/alpinejs/alpine/commits/v3.17.3/packages/alpinejs) Updates `query-string` from 9.5.0 to 9.5.1 - [Release notes](https://github.com/sindresorhus/query-string/releases) - [Commits](https://github.com/sindresorhus/query-string/compare/v9.5.0...v9.5.1) Updates `smartphoto` from 2.1.8 to 2.1.17 - [Release notes](https://github.com/appleple/SmartPhoto/releases) - [Commits](https://github.com/appleple/SmartPhoto/compare/v2.1.8...v2.1.17) Updates `browserslist` from 4.28.8 to 4.29.0 - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.28.8...4.29.0) Updates `eslint` from 10.9.1 to 10.11.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.11.0) Updates `globals` from 17.11.0 to 17.12.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.11.0...v17.12.0) Updates `prettier` from 3.9.6 to 3.9.8 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.9.6...3.9.8) Updates `stylelint` from 17.14.1 to 17.15.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/17.14.1...17.15.0) Updates `vite` from 8.2.2 to 8.3.0 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/create-vite@8.3.0/packages/vite) Updates `@rollup/rollup-linux-x64-gnu` from 4.63.1 to 4.63.3 - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.63.1...v4.63.3) --- updated-dependencies: - dependency-name: "@ablogcms/pdf" dependency-version: 3.2.35 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm - dependency-name: "@ablogcms/validator" dependency-version: 3.2.35 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm - dependency-name: alpinejs dependency-version: 3.17.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm - dependency-name: query-string dependency-version: 9.5.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm - dependency-name: smartphoto dependency-version: 2.1.17 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm - dependency-name: browserslist dependency-version: 4.29.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: eslint dependency-version: 10.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: globals dependency-version: 17.12.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: prettier dependency-version: 3.9.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm - dependency-name: stylelint dependency-version: 17.15.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: vite dependency-version: 8.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: "@rollup/rollup-linux-x64-gnu" dependency-version: 4.63.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm ... Signed-off-by: dependabot[bot] * stylelint 17.15 の at-rule-prelude-no-invalid で Tailwind の @apply を除外する stylelint 17.15.0 で追加された at-rule-prelude-no-invalid が、@apply に並べた ユーティリティクラスを不正な構文として検出し CI が失敗していたため、既存ルールと同じ Tailwind v4 の at-rule を除外する。重複していた除外リストは定数にまとめた。 Co-Authored-By: Claude Opus 5.5 (1M context) --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: 宇井 陸登 Co-authored-by: Claude Opus 5.5 (1M context) --- themes/develop/package-lock.json | 491 +++++++++++++---------------- themes/develop/package.json | 24 +- themes/develop/stylelint.config.js | 39 +-- 3 files changed, 233 insertions(+), 321 deletions(-) diff --git a/themes/develop/package-lock.json b/themes/develop/package-lock.json index 731387a..a339453 100644 --- a/themes/develop/package-lock.json +++ b/themes/develop/package-lock.json @@ -9,10 +9,11 @@ "version": "1.1.6", "license": "MIT", "dependencies": { - "@ablogcms/pdf": "^3.2.29", - "@ablogcms/validator": "^3.2.29", + "@ablogcms/pdf": "^3.2.35", + "@ablogcms/validator": "^3.2.35", + "@rollup/rollup-linux-x64-gnu": "4.63.3", "a-dispatcher": "^1.0.1", - "alpinejs": "^3.16.3", + "alpinejs": "^3.17.3", "document-outliner": "^1.1.3", "dom-content-loaded": "^1.0.2", "flatpickr": "^4.6.13", @@ -21,49 +22,49 @@ "leaflet": "^1.9.4", "leaflet-gesture-handling": "^1.2.2", "modal-video": "^2.4.8", - "query-string": "^9.5.0", + "query-string": "^9.5.1", "scroll-hint": "^1.2.9", - "smartphoto": "^2.1.8" + "smartphoto": "^2.1.17" }, "devDependencies": { "@eslint/js": "^10.0.1", "@tailwindcss/typography": "^0.5.20", "@tailwindcss/vite": "^4.3.3", "@zackad/prettier-plugin-twig": "^0.17.0", - "browserslist": "^4.28.8", - "eslint": "^10.9.1", - "globals": "^17.11.0", - "prettier": "^3.9.6", + "browserslist": "^4.29.0", + "eslint": "^10.11.0", + "globals": "^17.12.0", + "prettier": "^3.9.8", "rollup-plugin-visualizer": "^7.1.1", - "stylelint": "^17.14.1", + "stylelint": "^17.15.0", "stylelint-config-recess-order": "^7.8.0", "stylelint-config-standard": "^40.0.0", "stylelint-order": "^8.1.1", "tailwindcss": "^4.2.4", - "vite": "^8.2.2", + "vite": "^8.3.0", "vite-plugin-eslint2": "^5.3.0", "vite-plugin-static-copy": "^4.1.1", "vite-plugin-stylelint": "^6.3.0" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "4.63.1", + "@rollup/rollup-linux-x64-gnu": "4.63.3", "@tailwindcss/oxide-linux-x64-gnu": "^4.2.4", "lightningcss-linux-x64-gnu": "^1.33.0" } }, "node_modules/@ablogcms/pdf": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@ablogcms/pdf/-/pdf-3.2.29.tgz", - "integrity": "sha512-aFqRFauF9g7h4eneLqVq+FlSkUYFX8TlMIMXOWEfHpUXvQHl0ONRibnsb7Lp20cYrW4yOaaBBILjIi8Wi9sq7A==", + "version": "3.2.35", + "resolved": "https://registry.npmjs.org/@ablogcms/pdf/-/pdf-3.2.35.tgz", + "integrity": "sha512-yGzHw91CCcq/HFQAnMPqG3bEPxbqY0ILM7+piiEjTNzk91M9xdQeyF/Seyh1ep1eVML2hjH2s/xMhYqReeLlAA==", "license": "MIT", "dependencies": { "pdfjs-dist": "^6.2.108" } }, "node_modules/@ablogcms/validator": { - "version": "3.2.32", - "resolved": "https://registry.npmjs.org/@ablogcms/validator/-/validator-3.2.32.tgz", - "integrity": "sha512-vqozZrIwJbT2+VtSs6C4iCKTMZ/ZHA2qCCIvQ+015hnGHNsLN/keEyWVTMoMygY0g+mn4qDLhQVON0QK5TPUtA==", + "version": "3.2.35", + "resolved": "https://registry.npmjs.org/@ablogcms/validator/-/validator-3.2.35.tgz", + "integrity": "sha512-MndAufEiK6ylimhmxUyLjo1XMH4Dlq0tCEdWb/zA/DtR6mqAwENSBXDbEJOGBkJB8wE6puILXQp2wZ0M5/zrUw==", "license": "MIT" }, "node_modules/@babel/code-frame": { @@ -159,33 +160,6 @@ "keyv": "^5.6.0" } }, - "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", - "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hashery": "^1.4.0", - "hookified": "^1.15.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "keyv": "^5.6.0" - } - }, - "node_modules/@cacheable/memory/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, "node_modules/@cacheable/utils": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", @@ -197,16 +171,6 @@ "keyv": "^5.6.0" } }, - "node_modules/@cacheable/utils/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, "node_modules/@csstools/css-calc": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", @@ -255,9 +219,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.8.tgz", - "integrity": "sha512-CpMLjAvwQg3BL5S0IeqsZNMH7EQrEWi0kLKOC13ZBF0ZwERiLWlibNPJr8G1kdU3Ms/r2KiNrF81pUh2HwAHdg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.14.tgz", + "integrity": "sha512-HpbVXyrofRXpHpgkNIjU/3EWR4WJvOkO3emNK/L6X/mTJU7bGUI3AkkpoTNXznQLp0KRjLHELTGeKI5dIkI9JQ==", "dev": true, "funding": [ { @@ -438,9 +402,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", - "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.3.tgz", + "integrity": "sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -567,6 +531,23 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, "node_modules/@keyv/serialize": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", @@ -878,19 +859,19 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.146.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.146.0.tgz", - "integrity": "sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==", + "version": "0.150.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.150.0.tgz", + "integrity": "sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==", "dev": true, "license": "MIT", "funding": { - "url": "https://github.com/sponsors/Boshen" + "url": "https://github.com/sponsors/oxc-project" } }, "node_modules/@rolldown/binding-android-arm-eabi": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.5.tgz", - "integrity": "sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.9.tgz", + "integrity": "sha512-tNISae1QEf/vkb3xkRcjV5SEdzPE97We5IVaa2Z8jSszQPZ8U60B/YCYpw4QI7VidYsBtKavczXf+DyDs9WGxw==", "cpu": [ "arm" ], @@ -905,9 +886,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.5.tgz", - "integrity": "sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.9.tgz", + "integrity": "sha512-YC8YsI30o606GTZi0VyzYlsDKFP8W61i/QzayHDkLbNEz/IShqAmTa+hsJRj13xTHA0H+6fk4b2UmGn+Q/cMlg==", "cpu": [ "arm64" ], @@ -922,9 +903,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.5.tgz", - "integrity": "sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.9.tgz", + "integrity": "sha512-IwhlH3qK5urrY8hZiEgGkHKEFN901p/p2bjxCxJlr4GyNnF7wYpUvK+Y43uaRYuC4hpfjzbR3SJC3arX1jGvmw==", "cpu": [ "arm64" ], @@ -939,9 +920,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.5.tgz", - "integrity": "sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.9.tgz", + "integrity": "sha512-XxpJfVzFh+jilRxIXUqcfYAYcunIc/XEzIizsOL1fcJee5Sf7H3mH8WlLmfHfluz5amqR88QQo9izKtmMlavAw==", "cpu": [ "x64" ], @@ -956,9 +937,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.5.tgz", - "integrity": "sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.9.tgz", + "integrity": "sha512-kSfvhmgeWyfkbT3p/1s5vSgboogoah2zkm9fX2zjg2hHxSV7T4KhMWRUUaRk4OXNqoD3QAUeRqLcs1aZOK4U1g==", "cpu": [ "x64" ], @@ -973,9 +954,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.5.tgz", - "integrity": "sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.9.tgz", + "integrity": "sha512-1RVzG17pxqbTfYLC352JlLt6kKLG+6Hr30n8DlIJqsnV5luUDd2Qdx9Ayw1Cabfyb1K9k0jXEZ7evxkRoT+uiw==", "cpu": [ "arm" ], @@ -990,9 +971,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.5.tgz", - "integrity": "sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.9.tgz", + "integrity": "sha512-BXqPvZ2drqVD+/Z8UpKwcs4Mp7grM+eGFku4CAEKrEtcbAsUpzREphK1sogCRZGreVPiMkiiBtw0n3TPteuqvw==", "cpu": [ "arm64" ], @@ -1010,9 +991,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.5.tgz", - "integrity": "sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.9.tgz", + "integrity": "sha512-11vWvo8YDwLzukt27J3aYDWU+gg2P7J+ZOmiJ0hkF5BXZDW7pVya7r40MXDy6ya0i9KamoENSVKIugvJNgFXIA==", "cpu": [ "arm64" ], @@ -1030,9 +1011,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.5.tgz", - "integrity": "sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.9.tgz", + "integrity": "sha512-a1tijMkdwsIARtc0F39ApURROkf3NwqinI6TOiSSWCTR7dT96dffNvMUtDHnq64wKNTIZOIlzKrFvvFUznJiyw==", "cpu": [ "ppc64" ], @@ -1050,9 +1031,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.5.tgz", - "integrity": "sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.9.tgz", + "integrity": "sha512-x6SQNdAvv4c3hWqTMaWuawzMX9myaCs/yEmlGsxJzkdClnHW7FbrjQuSiRDhuSYzEYoEMhsaJy9qHG/XNemJPQ==", "cpu": [ "s390x" ], @@ -1070,9 +1051,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.5.tgz", - "integrity": "sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.9.tgz", + "integrity": "sha512-9s0AZ8BFK5/n7B/TBoa2yJE3gI3KURrbXcPBlsAsvjU4VeJKgE90y1YtNxyEUIcHPQkg6/yfF3qihUrcM/Kf0Q==", "cpu": [ "x64" ], @@ -1090,9 +1071,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.5.tgz", - "integrity": "sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.9.tgz", + "integrity": "sha512-P7VWAmV+WdJluH7ovnRGoiv2i8To7GAZ+kGzfGup635cyL7SyYl3lSUaA3Gp5THf0n/Co5EyEqb2zbqq+nMOHQ==", "cpu": [ "x64" ], @@ -1110,9 +1091,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.5.tgz", - "integrity": "sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.9.tgz", + "integrity": "sha512-1qixtsE4BK8h+yS3BfmZ09UhA7O/N4IACva6YBr7EBvCJraByTuRcgOTaiA62Tm0vey3UcKXLOaoGHtYmNGEVg==", "cpu": [ "arm64" ], @@ -1127,9 +1108,9 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.5.tgz", - "integrity": "sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.9.tgz", + "integrity": "sha512-ok8IQjcEPs1AKZfuEUznVBrJw+gK4soq+bx8b1X2XoMqVClarc1q5JDmVtWXY1xfr6ZuHTAsPXHTgTrqKTZeww==", "cpu": [ "arm64" ], @@ -1144,9 +1125,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.5.tgz", - "integrity": "sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.9.tgz", + "integrity": "sha512-Ip2mXoU0hM0boq3Rf+ekuT653OROSo6aSYcPT1VHE4q52KvyxgFkQgrgb/IEsxOuvQ2fZZbs8khJAyCEPM24/g==", "cpu": [ "x64" ], @@ -1191,9 +1172,9 @@ } }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.63.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.1.tgz", - "integrity": "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==", + "version": "4.63.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.3.tgz", + "integrity": "sha512-SXagRwnI2Wlwlitllu59UK/nGVbD1CKPcNqDplHwIC4BqJcpXFjD32d1R/RbuISa95HdQrZM3/7v4bKiowFaLA==", "cpu": [ "x64" ], @@ -1706,9 +1687,9 @@ } }, "node_modules/alpinejs": { - "version": "3.16.3", - "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.16.3.tgz", - "integrity": "sha512-kLIO2JOPs5ZY3mHPH+CHHPzp89Y6Gb2luLRy+RDIb1oG9y6N5Vfc75kkEoaSOPhJqvakuPiAsnd9paNPNSZyVg==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.17.3.tgz", + "integrity": "sha512-hIfoRTBBeHMeMu6gXuKwwNoY6pJ7bwpZ91dXVrqRhUhHFOyGr4S21sUYqbxPY5Cnjo0RAmPZVRRZw1becRyV0Q==", "license": "MIT", "dependencies": { "@vue/reactivity": "~3.5.40" @@ -1910,9 +1891,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.11.18", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.18.tgz", - "integrity": "sha512-1iEmLEYSiE1SeBoAfPo/Mnx3PzfzHUkDK61ASkCpuk3YXugYLH5DYK1SzqV55F8FMI6s0F+/tCP7Polz1QRjxw==", + "version": "2.11.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.25.tgz", + "integrity": "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -1962,9 +1943,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", - "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz", + "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==", "dev": true, "funding": [ { @@ -1982,11 +1963,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.11.12", - "caniuse-lite": "^1.0.30001809", - "electron-to-chromium": "^1.5.402", - "node-releases": "^2.0.53", - "update-browserslist-db": "^1.3.0" + "baseline-browser-mapping": "^2.11.23", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.427", + "node-releases": "^2.0.55", + "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" @@ -2025,16 +2006,6 @@ "qified": "^0.10.1" } }, - "node_modules/cacheable/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -2093,9 +2064,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001809", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", - "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", "dev": true, "funding": [ { @@ -2241,9 +2212,9 @@ "license": "MIT" }, "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", "dev": true, "license": "MIT" }, @@ -2548,9 +2519,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.412", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.412.tgz", - "integrity": "sha512-z4rMe3esBzlzovKHj4gxJnsCGZRK5l4baUvm+gCGJBPE+gsyUMKsuU9tnEUtI1dOebXz1ytAPGjvXhmQ7rIPwA==", + "version": "1.5.433", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.433.tgz", + "integrity": "sha512-5lCAbyZBjtmUt/RAGHRqrL2q0oEFRThDAsZHHDn9XHa89Qw7gMYOeSicBTy+AHfvo0r6vwsZvqNJTQIQy1BLzA==", "dev": true, "license": "ISC" }, @@ -2773,9 +2744,9 @@ } }, "node_modules/eslint": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.1.tgz", - "integrity": "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.11.0.tgz", + "integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -2787,7 +2758,7 @@ "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.2", + "@eslint/plugin-kit": "^0.7.3", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -2802,7 +2773,7 @@ "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "11.1.5 || >11.1.6 <12", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", @@ -3041,16 +3012,13 @@ } }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" + "flat-cache": "^6.1.23" } }, "node_modules/fill-range": { @@ -3096,17 +3064,15 @@ } }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "node_modules/flatpickr": { @@ -3116,9 +3082,9 @@ "license": "MIT" }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true, "license": "ISC" }, @@ -3322,9 +3288,9 @@ } }, "node_modules/globals": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", - "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", + "version": "17.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz", + "integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==", "dev": true, "license": "MIT", "engines": { @@ -4143,13 +4109,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4172,13 +4131,13 @@ "license": "MIT" }, "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "@keyv/serialize": "^1.1.1" } }, "node_modules/kind-of": { @@ -4690,9 +4649,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.53", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", - "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", + "version": "2.0.56", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.56.tgz", + "integrity": "sha512-x0InOIyzgdk+eyaWaRJFH5snEtiImgBgblZ2CyPrLmqqcuMQkEvcDPHbzqbD8eDsSeJbVOjn+crzyzHaM4D+/A==", "dev": true, "license": "MIT", "engines": { @@ -4923,9 +4882,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "dev": true, "license": "MIT", "engines": { @@ -4945,9 +4904,9 @@ } }, "node_modules/postcss": { - "version": "8.5.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", - "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "dev": true, "funding": [ { @@ -4965,7 +4924,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.17", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -5055,9 +5014,9 @@ } }, "node_modules/prettier": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", - "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "version": "3.9.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.8.tgz", + "integrity": "sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==", "dev": true, "license": "MIT", "bin": { @@ -5101,9 +5060,9 @@ "license": "MIT" }, "node_modules/query-string": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.5.0.tgz", - "integrity": "sha512-YlJmwNyi0RGYjlxYcuDncMsxFU7YyutbuI7gTm8ySxIGBlwx5yiBCOD5ig9ZNoHkawk/1Dey0N5mEfcUybMVAA==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.5.1.tgz", + "integrity": "sha512-/zO3RwuRCMTIcEgq6YMv4OrtEE1XzBG7w5N6zc6ydYnkWYOWsnLI/5894hYEzfESfMOT4cHCsRTIdxsSl1KjGg==", "license": "MIT", "dependencies": { "decode-uri-component": "^0.5.0", @@ -5244,13 +5203,13 @@ } }, "node_modules/rolldown": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.5.tgz", - "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.9.tgz", + "integrity": "sha512-hx/Pv0N1haXRb11qkfnK5MXB/iqr7i0yjWQqmO9uHqZpBgQSqzc8UsSnEpalsh+j1I8qQ2CkXAkJC8Br3dKSlg==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.146.0", + "@oxc-project/types": "=0.150.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -5260,21 +5219,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm-eabi": "1.2.5", - "@rolldown/binding-android-arm64": "1.2.5", - "@rolldown/binding-darwin-arm64": "1.2.5", - "@rolldown/binding-darwin-x64": "1.2.5", - "@rolldown/binding-freebsd-x64": "1.2.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.5", - "@rolldown/binding-linux-arm64-gnu": "1.2.5", - "@rolldown/binding-linux-arm64-musl": "1.2.5", - "@rolldown/binding-linux-ppc64-gnu": "1.2.5", - "@rolldown/binding-linux-s390x-gnu": "1.2.5", - "@rolldown/binding-linux-x64-gnu": "1.2.5", - "@rolldown/binding-linux-x64-musl": "1.2.5", - "@rolldown/binding-openharmony-arm64": "1.2.5", - "@rolldown/binding-win32-arm64-msvc": "1.2.5", - "@rolldown/binding-win32-x64-msvc": "1.2.5" + "@rolldown/binding-android-arm-eabi": "1.2.9", + "@rolldown/binding-android-arm64": "1.2.9", + "@rolldown/binding-darwin-arm64": "1.2.9", + "@rolldown/binding-darwin-x64": "1.2.9", + "@rolldown/binding-freebsd-x64": "1.2.9", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.9", + "@rolldown/binding-linux-arm64-gnu": "1.2.9", + "@rolldown/binding-linux-arm64-musl": "1.2.9", + "@rolldown/binding-linux-ppc64-gnu": "1.2.9", + "@rolldown/binding-linux-s390x-gnu": "1.2.9", + "@rolldown/binding-linux-x64-gnu": "1.2.9", + "@rolldown/binding-linux-x64-musl": "1.2.9", + "@rolldown/binding-openharmony-arm64": "1.2.9", + "@rolldown/binding-win32-arm64-msvc": "1.2.9", + "@rolldown/binding-win32-x64-msvc": "1.2.9" } }, "node_modules/rollup-plugin-visualizer": { @@ -5594,9 +5553,9 @@ } }, "node_modules/smartphoto": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/smartphoto/-/smartphoto-2.1.8.tgz", - "integrity": "sha512-gs4nGn9WqJUGgk5D88Rm/QTXw6YaWFertMsuh9Ag6OsBn6mt+myugyFjIchzI/E4/9z1syo/72aZ2ib8rb8qLA==", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/smartphoto/-/smartphoto-2.1.17.tgz", + "integrity": "sha512-/o1jEptLBULUD4PY6qV0+UlpW2NTQPItnoKgbv5wYqwtbSoHCyBX20PYFxsq1kh8Lm9PfddjbzdImRJjLWHeMQ==", "license": "MIT" }, "node_modules/source-map": { @@ -5729,9 +5688,9 @@ } }, "node_modules/stylelint": { - "version": "17.14.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.1.tgz", - "integrity": "sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==", + "version": "17.15.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.15.0.tgz", + "integrity": "sha512-mWIkesYQvQjf4Kvdeu9ns0IL8/K/wtjaGxPqsPd6DlLZvaQxGysJsocxUDrBcyHQ5VleAk4uSMat4yMrVED7PA==", "dev": true, "funding": [ { @@ -5745,14 +5704,14 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.6", + "@csstools/css-syntax-patches-for-csstree": "^1.1.9", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", - "@csstools/selector-resolve-nested": "^4.0.0", + "@csstools/selector-resolve-nested": "^4.0.1", "@csstools/selector-specificity": "^6.0.0", - "colord": "^2.9.3", + "colord": "^2.10.0", "cosmiconfig": "^9.0.2", "css-functions-list": "^3.3.3", "css-tree": "^3.2.1", @@ -5761,21 +5720,21 @@ "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^16.2.1", + "globby": "^16.2.4", "globjoin": "^0.1.4", "html-tags": "^5.1.0", - "ignore": "^7.0.5", + "ignore": "^7.0.6", "import-meta-resolve": "^4.2.0", "mathml-tag-names": "^4.0.0", "meow": "^14.1.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.16", + "postcss": "^8.5.26", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.4", + "postcss-selector-parser": "^7.1.5", "postcss-value-parser": "^4.2.0", - "string-width": "^8.2.1", + "string-width": "^8.2.2", "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", @@ -5866,9 +5825,9 @@ } }, "node_modules/stylelint/node_modules/@csstools/selector-resolve-nested": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", - "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.1.tgz", + "integrity": "sha512-j3vdQu0XwLME5qOTWxm8cnmvsf423R2YL6DbKklCHZwkDm7UdKNu6RPlw4REIJhSlKBICY3B70/7QZdicLqZgg==", "dev": true, "funding": [ { @@ -5912,9 +5871,9 @@ } }, "node_modules/stylelint/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", "dev": true, "license": "MIT", "engines": { @@ -5924,32 +5883,10 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", - "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^6.1.23" - } - }, - "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.23", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", - "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cacheable": "^2.5.0", - "flatted": "^3.4.2", - "hookified": "^1.15.0" - } - }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.9.tgz", + "integrity": "sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==", "dev": true, "license": "MIT", "engines": { @@ -5971,9 +5908,9 @@ } }, "node_modules/stylelint/node_modules/string-width": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", - "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", "dev": true, "license": "MIT", "dependencies": { @@ -6250,9 +6187,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz", - "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "dev": true, "funding": [ { @@ -6298,16 +6235,16 @@ "license": "MIT" }, "node_modules/vite": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", - "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.0.tgz", + "integrity": "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.33.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.26", - "rolldown": "~1.2.4", + "picomatch": "^4.0.7", + "postcss": "^8.5.28", + "rolldown": "~1.2.6", "tinyglobby": "^0.2.17" }, "bin": { @@ -6324,7 +6261,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "@vitejs/devtools": "^0.7.1", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", diff --git a/themes/develop/package.json b/themes/develop/package.json index 6f6a89b..f03331d 100644 --- a/themes/develop/package.json +++ b/themes/develop/package.json @@ -25,26 +25,26 @@ "@tailwindcss/typography": "^0.5.20", "@tailwindcss/vite": "^4.3.3", "@zackad/prettier-plugin-twig": "^0.17.0", - "browserslist": "^4.28.8", - "eslint": "^10.9.1", - "globals": "^17.11.0", - "prettier": "^3.9.6", + "browserslist": "^4.29.0", + "eslint": "^10.11.0", + "globals": "^17.12.0", + "prettier": "^3.9.8", "rollup-plugin-visualizer": "^7.1.1", - "stylelint": "^17.14.1", + "stylelint": "^17.15.0", "stylelint-config-recess-order": "^7.8.0", "stylelint-config-standard": "^40.0.0", "stylelint-order": "^8.1.1", "tailwindcss": "^4.2.4", - "vite": "^8.2.2", + "vite": "^8.3.0", "vite-plugin-eslint2": "^5.3.0", "vite-plugin-static-copy": "^4.1.1", "vite-plugin-stylelint": "^6.3.0" }, "dependencies": { - "@ablogcms/pdf": "^3.2.29", - "@ablogcms/validator": "^3.2.29", + "@ablogcms/pdf": "^3.2.35", + "@ablogcms/validator": "^3.2.35", "a-dispatcher": "^1.0.1", - "alpinejs": "^3.16.3", + "alpinejs": "^3.17.3", "document-outliner": "^1.1.3", "dom-content-loaded": "^1.0.2", "flatpickr": "^4.6.13", @@ -53,12 +53,12 @@ "leaflet": "^1.9.4", "leaflet-gesture-handling": "^1.2.2", "modal-video": "^2.4.8", - "query-string": "^9.5.0", + "query-string": "^9.5.1", "scroll-hint": "^1.2.9", - "smartphoto": "^2.1.8" + "smartphoto": "^2.1.17" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "4.63.1", + "@rollup/rollup-linux-x64-gnu": "4.63.3", "@tailwindcss/oxide-linux-x64-gnu": "^4.2.4", "lightningcss-linux-x64-gnu": "^1.33.0" } diff --git a/themes/develop/stylelint.config.js b/themes/develop/stylelint.config.js index 68d89f4..3f8aa5f 100644 --- a/themes/develop/stylelint.config.js +++ b/themes/develop/stylelint.config.js @@ -1,41 +1,16 @@ +/** tailwindcss v4 の at-rule */ +const tailwindAtRules = ['theme', 'source', 'utility', 'variant', 'custom-variant', 'plugin', 'apply', 'config']; + /** @type {import('stylelint').Config} */ export default { extends: ['stylelint-config-standard', 'stylelint-config-recess-order'], rules: { 'no-descending-specificity': null, 'import-notation': null, - 'at-rule-no-unknown': [ - true, - { - ignoreAtRules: [ - /** tailwindcss v4 */ - 'theme', - 'source', - 'utility', - 'variant', - 'custom-variant', - 'plugin', - 'apply', - 'config', - ], - }, - ], - 'at-rule-no-deprecated': [ - true, - { - ignoreAtRules: [ - /** tailwindcss v4 */ - 'theme', - 'source', - 'utility', - 'variant', - 'custom-variant', - 'plugin', - 'apply', - 'config', - ], - }, - ], + 'at-rule-no-unknown': [true, { ignoreAtRules: tailwindAtRules }], + 'at-rule-no-deprecated': [true, { ignoreAtRules: tailwindAtRules }], + // @apply のユーティリティクラス列は CSS の構文として解釈できないため除外する + 'at-rule-prelude-no-invalid': [true, { ignoreAtRules: tailwindAtRules }], 'function-no-unknown': [ true, { From 602aa1f3831f4ff23fc7ce93662635ebed8614ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Fri, 25 Sep 2026 20:41:45 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=E3=83=96=E3=83=AD=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=A8=E3=83=87=E3=82=A3=E3=82=BF=E3=83=BC=E3=81=AE=20HTML?= =?UTF-8?q?=E3=83=BB=E5=9F=8B=E3=82=81=E8=BE=BC=E3=81=BF=E3=83=BB=E3=82=B0?= =?UTF-8?q?=E3=83=AB=E3=83=BC=E3=83=97=E3=83=96=E3=83=AD=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=92=20develop=20=E3=83=86=E3=83=BC=E3=83=9E=E3=81=A7?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=EF=BC=88CMS-7912=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 埋め込みブロックの OGP カードが旧埋め込みユニット向けのセレクタ([class*='column-embed'])に当たらず、 prose の figure の余白とリンク下線だけが当たっていたため、旧ユニットと同じ見た目にする - グループブロックと HTML ブロックの iframe に、他のブロックと同じ余白を付ける - editor-css が空で、管理画面のプレビュー(隔離 iframe)に本文のスタイルが入っていなかったため、 editor.css を CSS 単体のエントリーにして @vite の linkTagAttributes で data-block-editor-stylesheet を付ける (JS エントリーに付随する CSS の link には属性を付けられないため) Co-Authored-By: Claude Opus 5.5 --- themes/develop/admin.html | 8 ++++ themes/develop/src/js/admin.js | 3 +- themes/develop/tailwind.config.js | 80 +++++++++++++++++++++++++++---- themes/develop/vite.config.js | 2 + 4 files changed, 82 insertions(+), 11 deletions(-) diff --git a/themes/develop/admin.html b/themes/develop/admin.html index d510706..40fd5fd 100644 --- a/themes/develop/admin.html +++ b/themes/develop/admin.html @@ -1,6 +1,14 @@ @extends("/_layouts/admin.html") @section("editor-css") + +@vite("src/style/editor.css", { + "linkTagAttributes": { + "data-block-editor-stylesheet": true + } +}) @endsection @section("admin-js") diff --git a/themes/develop/src/js/admin.js b/themes/develop/src/js/admin.js index 92ffbca..6c15b99 100644 --- a/themes/develop/src/js/admin.js +++ b/themes/develop/src/js/admin.js @@ -1,4 +1,3 @@ /** - * スタイルの読み込み + * スタイル(editor.css)は admin.html の editor-css で読み込む */ -import '../style/editor.css'; diff --git a/themes/develop/tailwind.config.js b/themes/develop/tailwind.config.js index 6d1bfe3..b184a48 100644 --- a/themes/develop/tailwind.config.js +++ b/themes/develop/tailwind.config.js @@ -204,12 +204,14 @@ module.exports = { // ------------------------------ // 埋め込みカード // ------------------------------ - "[class*='column-embed']": { + "[class*='column-embed'], .embed-block": { // Align with media/figure rhythm: 32px -> 2em marginTop: em(32, 16), marginBottom: em(32, 16), }, - "[class*='column-embed'] .acms-embed-link": { + // 埋め込みブロックはカード全体ではなくタイトルだけが a なので、タイトルのリンク領域をカード全体へ広げる + "[class*='column-embed'] .acms-embed-link, .embed-block .acms-embed-link": { + position: 'relative', overflow: 'hidden', display: 'block', padding: '0', @@ -223,8 +225,16 @@ module.exports = { textDecoration: 'none', transitionProperty: 'opacity', }, + // 埋め込みブロックの画像。typography のセレクタは詳細度が揃うため、md の幅指定より前に置く。 + // figure 内の画像の角丸(figure img)がカードの画像にまで当たらないよう打ち消す + '.embed-block .acms-embed-link > img': { + display: 'block', + width: '100%', + margin: '0', + borderRadius: '0', + }, [`@media (min-width: ${theme('breakpoint.md')})`]: { - "[class*='column-embed'] .acms-embed-link": { + "[class*='column-embed'] .acms-embed-link, .embed-block .acms-embed-link": { display: 'flex', transitionProperty: 'opacity', }, @@ -236,11 +246,17 @@ module.exports = { height: '100%', objectFit: 'cover', }, - "[class*='column-embed'] .acms-embed-link-content": { + // 埋め込みブロックは画像を包む要素が無いので、画像自身が旧ユニットの入れ物と同じ幅を持つ + '.embed-block .acms-embed-link > img': { + width: '33.333333%', + flex: 'none', + objectFit: 'cover', + }, + "[class*='column-embed'] .acms-embed-link-content, .embed-block .acms-embed-link-content": { width: '66.666667%', }, }, - "[class*='column-embed'] .acms-embed-link:hover": { + "[class*='column-embed'] .acms-embed-link:hover, .embed-block .acms-embed-link:hover": { opacity: '0.7', }, "[class*='column-embed'] .acms-embed-link-image-container": { @@ -251,14 +267,27 @@ module.exports = { width: '100%', margin: '0', }, - "[class*='column-embed'] .acms-embed-link-content": { + '.embed-block .acms-embed-link-title, .embed-block .acms-embed-link-site-name': { + display: 'block', + }, + '.embed-block a.acms-embed-link-title::before': { + content: '""', + position: 'absolute', + inset: '0', + }, + // 配置用の外側 div が余白を持つため、figure の余白は打ち消す + '.embed-block > figure': { + marginTop: '0', + marginBottom: '0', + }, + "[class*='column-embed'] .acms-embed-link-content, .embed-block .acms-embed-link-content": { display: 'flex', flexDirection: 'column', maxWidth: 'none', padding: '2em', backgroundColor: 'var(--color-white)', }, - "[class*='column-embed'] .acms-embed-link-title": { + "[class*='column-embed'] .acms-embed-link-title, .embed-block .acms-embed-link-title": { marginBottom: '.375em', marginTop: '0', fontSize: 'var(--text-base)', @@ -267,7 +296,7 @@ module.exports = { color: 'var(--color-gray-700)', textDecoration: 'none', }, - "[class*='column-embed'] .acms-embed-link-site-name": { + "[class*='column-embed'] .acms-embed-link-site-name, .embed-block .acms-embed-link-site-name": { order: '-1', padding: '0', marginTop: '0', @@ -275,7 +304,7 @@ module.exports = { color: 'var(--color-gray-700)', fontSize: 'var(--text-sm)', }, - "[class*='column-embed'] .acms-embed-link-description": { + "[class*='column-embed'] .acms-embed-link-description, .embed-block .acms-embed-link-description": { padding: '0', margin: '0', fontSize: 'var(--text-xs)', @@ -299,6 +328,39 @@ module.exports = { gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', }, + // ------------------------------ + // グループ(複数ブロックをまとめるラッパー) + // ------------------------------ + // 中の最後の子の下余白を打ち消すため、グループ自身が他のブロックと同じ余白を持つ + "[data-type='group']": { + boxSizing: 'border-box', + marginTop: em(32, 16), + marginBottom: em(32, 16), + }, + // 先頭・末尾の子ブロックの余白を打ち消し、グループの枠と中身が二重に空かないようにする + "[data-type='group'] > :first-child": { + marginTop: '0', + }, + "[data-type='group'] > :last-child": { + marginBottom: '0', + }, + // カラーパレットで背景色だけ付けたグループでも、文字が背景の端に貼り付かないようにする + "[data-type='group'][style*='background-color']": { + padding: em(24, 16), + }, + + // ------------------------------ + // HTML ブロック + // ------------------------------ + // ラッパーを持たず、編集者が書いた iframe 等がブロックの並びに直接置かれるため、並びの直下にあるものだけに余白を付ける。 + // Why not iframe 全般に付けないか: 埋め込みブロックの iframe は外側の .embed-block が余白を持つため、二重に空いてしまう + ":is(.column-block-editor, [data-type='group'], [data-type='column']) > :is(iframe, video, object, embed)": + { + maxWidth: '100%', + marginTop: em(32, 16), + marginBottom: em(32, 16), + }, + // ------------------------------ // 配置 // ------------------------------ diff --git a/themes/develop/vite.config.js b/themes/develop/vite.config.js index d643d10..9f91813 100644 --- a/themes/develop/vite.config.js +++ b/themes/develop/vite.config.js @@ -65,6 +65,8 @@ export default defineConfig(({ command, mode }) => ({ input: { bundle: resolve(import.meta.dirname, 'src/js/main.js'), admin: resolve(import.meta.dirname, 'src/js/admin.js'), + // 管理画面の editor-css から CSS 単体のエントリーとして読み込む(admin.html 参照) + editor: resolve(import.meta.dirname, 'src/style/editor.css'), }, output: { manualChunks(id) { From dda3acb05823c5b7985441a7a9b14c3552e65738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Fri, 25 Sep 2026 22:09:27 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=E5=9F=8B=E3=82=81=E8=BE=BC=E3=81=BF?= =?UTF-8?q?=E3=83=96=E3=83=AD=E3=83=83=E3=82=AF=E3=81=AE=20OGP=20=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=A8=20HTML=20=E3=83=96=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=81=AE=20iframe=20=E3=81=AE=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=82=92=E5=AE=9F=E6=A9=9F=E7=A2=BA=E8=AA=8D=E3=81=AB?= =?UTF-8?q?=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6=E4=BF=AE=E6=AD=A3=E3=81=99?= =?UTF-8?q?=E3=82=8B=EF=BC=88CMS-7912=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - md 以上でカードを横並びにする指定が、typography 設定の @media のキーごとセレクタとして :where() に包まれて 無効になっていた(旧埋め込みユニットも横並びになっていなかった)。editor.css に通常の CSS として移す - 管理画面のカードは embed-block-card-* しか持たないため、公開側と共通のクラスで指定する - 埋め込みブロックはグループ・カラムと同じくデータタイプで指定する - HTML ブロックの iframe は width="600" 等の固定幅を持つことが多いため、本文幅いっぱいに広げる Co-Authored-By: Claude Opus 5.5 --- themes/develop/src/style/editor.css | 33 +++++++++++++++ themes/develop/tailwind.config.js | 65 +++++++++++------------------ 2 files changed, 57 insertions(+), 41 deletions(-) diff --git a/themes/develop/src/style/editor.css b/themes/develop/src/style/editor.css index e8f603d..2ff0520 100644 --- a/themes/develop/src/style/editor.css +++ b/themes/develop/src/style/editor.css @@ -10,3 +10,36 @@ @plugin "@tailwindcss/typography"; @config '../../tailwind.config.js'; + +/* ------------------------------ + 埋め込みカード(旧埋め込みユニット・埋め込みブロック共通):md 以上で横並びにする + Why not tailwind.config.js の typography に書かないか: typography は @media のキーもセレクタとして + :where() で包み、ルールごと無効になるため(それ以外の指定は typography 側にある) + ------------------------------ */ +/* stylelint-disable-next-line media-query-no-invalid */ +@media (width >= theme(--breakpoint-md)) { + .prose :where([class*='column-embed'] .acms-embed-link, [data-type='embedBlock'] .embed-block-card) { + display: flex; + } + + .prose :where([class*='column-embed'] .acms-embed-link-image-container) { + flex: none; + width: calc(100% / 3); + } + + .prose :where([class*='column-embed'] .acms-embed-link-image-container img) { + height: 100%; + object-fit: cover; + } + + /* 埋め込みブロックは画像を包む要素が無いので、画像自身が旧ユニットの入れ物と同じ幅を持つ */ + .prose :where([data-type='embedBlock'] .embed-block-card > img) { + flex: none; + width: calc(100% / 3); + object-fit: cover; + } + + .prose :where([class*='column-embed'] .acms-embed-link-content, [data-type='embedBlock'] .embed-block-card-content) { + width: calc(100% / 3 * 2); + } +} diff --git a/themes/develop/tailwind.config.js b/themes/develop/tailwind.config.js index b184a48..bb76861 100644 --- a/themes/develop/tailwind.config.js +++ b/themes/develop/tailwind.config.js @@ -204,13 +204,14 @@ module.exports = { // ------------------------------ // 埋め込みカード // ------------------------------ - "[class*='column-embed'], .embed-block": { + "[class*='column-embed'], [data-type='embedBlock']": { // Align with media/figure rhythm: 32px -> 2em marginTop: em(32, 16), marginBottom: em(32, 16), }, - // 埋め込みブロックはカード全体ではなくタイトルだけが a なので、タイトルのリンク領域をカード全体へ広げる - "[class*='column-embed'] .acms-embed-link, .embed-block .acms-embed-link": { + // 埋め込みブロックは旧ユニットと並べて宣言を共有する。管理画面のカードは embed-block-card-* しか持たないため + // 公開側と共通のこちらのクラスで指定する。カード全体ではなくタイトルだけが a なので、リンク領域をカード全体へ広げる + "[class*='column-embed'] .acms-embed-link, [data-type='embedBlock'] .embed-block-card": { position: 'relative', overflow: 'hidden', display: 'block', @@ -227,36 +228,15 @@ module.exports = { }, // 埋め込みブロックの画像。typography のセレクタは詳細度が揃うため、md の幅指定より前に置く。 // figure 内の画像の角丸(figure img)がカードの画像にまで当たらないよう打ち消す - '.embed-block .acms-embed-link > img': { + "[data-type='embedBlock'] .embed-block-card > img": { display: 'block', width: '100%', margin: '0', borderRadius: '0', }, - [`@media (min-width: ${theme('breakpoint.md')})`]: { - "[class*='column-embed'] .acms-embed-link, .embed-block .acms-embed-link": { - display: 'flex', - transitionProperty: 'opacity', - }, - "[class*='column-embed'] .acms-embed-link-image-container": { - width: '33.333333%', - flex: 'none', - }, - "[class*='column-embed'] .acms-embed-link-image-container img": { - height: '100%', - objectFit: 'cover', - }, - // 埋め込みブロックは画像を包む要素が無いので、画像自身が旧ユニットの入れ物と同じ幅を持つ - '.embed-block .acms-embed-link > img': { - width: '33.333333%', - flex: 'none', - objectFit: 'cover', - }, - "[class*='column-embed'] .acms-embed-link-content, .embed-block .acms-embed-link-content": { - width: '66.666667%', - }, - }, - "[class*='column-embed'] .acms-embed-link:hover, .embed-block .acms-embed-link:hover": { + // md 以上でカードを横並びにする指定は src/style/editor.css にある。 + // Why not ここに @media のキーで書かないか: typography は @media のキーもセレクタとして :where() で包み、ルールごと無効になるため + "[class*='column-embed'] .acms-embed-link:hover, [data-type='embedBlock'] .embed-block-card:hover": { opacity: '0.7', }, "[class*='column-embed'] .acms-embed-link-image-container": { @@ -267,27 +247,27 @@ module.exports = { width: '100%', margin: '0', }, - '.embed-block .acms-embed-link-title, .embed-block .acms-embed-link-site-name': { + "[data-type='embedBlock'] .embed-block-card-title, [data-type='embedBlock'] .embed-block-card-provider": { display: 'block', }, - '.embed-block a.acms-embed-link-title::before': { + "[data-type='embedBlock'] a.embed-block-card-title::before": { content: '""', position: 'absolute', inset: '0', }, // 配置用の外側 div が余白を持つため、figure の余白は打ち消す - '.embed-block > figure': { + "[data-type='embedBlock'] > figure": { marginTop: '0', marginBottom: '0', }, - "[class*='column-embed'] .acms-embed-link-content, .embed-block .acms-embed-link-content": { + "[class*='column-embed'] .acms-embed-link-content, [data-type='embedBlock'] .embed-block-card-content": { display: 'flex', flexDirection: 'column', maxWidth: 'none', padding: '2em', backgroundColor: 'var(--color-white)', }, - "[class*='column-embed'] .acms-embed-link-title, .embed-block .acms-embed-link-title": { + "[class*='column-embed'] .acms-embed-link-title, [data-type='embedBlock'] .embed-block-card-title": { marginBottom: '.375em', marginTop: '0', fontSize: 'var(--text-base)', @@ -296,7 +276,7 @@ module.exports = { color: 'var(--color-gray-700)', textDecoration: 'none', }, - "[class*='column-embed'] .acms-embed-link-site-name, .embed-block .acms-embed-link-site-name": { + "[class*='column-embed'] .acms-embed-link-site-name, [data-type='embedBlock'] .embed-block-card-provider": { order: '-1', padding: '0', marginTop: '0', @@ -304,13 +284,14 @@ module.exports = { color: 'var(--color-gray-700)', fontSize: 'var(--text-sm)', }, - "[class*='column-embed'] .acms-embed-link-description, .embed-block .acms-embed-link-description": { - padding: '0', - margin: '0', - fontSize: 'var(--text-xs)', - color: 'var(--color-gray-500)', - lineHeight: 'var(--leading-relaxed)', - }, + "[class*='column-embed'] .acms-embed-link-description, [data-type='embedBlock'] .embed-block-card-description": + { + padding: '0', + margin: '0', + fontSize: 'var(--text-xs)', + color: 'var(--color-gray-500)', + lineHeight: 'var(--leading-relaxed)', + }, // ------------------------------ // カラムレイアウト @@ -356,6 +337,8 @@ module.exports = { // Why not iframe 全般に付けないか: 埋め込みブロックの iframe は外側の .embed-block が余白を持つため、二重に空いてしまう ":is(.column-block-editor, [data-type='group'], [data-type='column']) > :is(iframe, video, object, embed)": { + // Google マップ等の埋め込みコードは width="600" のような固定幅を持つことが多いため、本文幅いっぱいに広げる(高さは属性の値のまま) + width: '100%', maxWidth: '100%', marginTop: em(32, 16), marginBottom: em(32, 16), From 2588607f36baaa01d66a9b2a63b6be77ea60268d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Fri, 25 Sep 2026 23:54:50 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=E3=83=96=E3=83=AD=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=A8=E3=83=87=E3=82=A3=E3=82=BF=E3=83=BC=E3=81=AE=E3=83=97?= =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC=E3=82=92=E5=85=AC=E9=96=8B?= =?UTF-8?q?=E5=81=B4=E3=81=AE=E6=9C=AC=E6=96=87=E3=81=A8=E5=90=8C=E3=81=98?= =?UTF-8?q?=E5=B9=85=E3=81=AB=E3=81=99=E3=82=8B=EF=BC=88CMS-7912=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - エディターに付けるクラスが prose だけで、prose の max-width: 65ch によりプレビュー(隔離 iframe)の本文幅が 狭まっていた。公開側の本文(include/entry/body.twig)と同じ prose max-w-none にする - プレビューでは HTML ブロックの中身が acms-isolated-preview-root の直下に置かれるため、iframe を本文幅に広げる - typography が @media を扱えない理由をコメントで具体的に説明する Co-Authored-By: Claude Opus 5.5 --- themes/develop/admin.html | 4 +++- themes/develop/src/style/editor.css | 15 +++++++++++++-- themes/develop/tailwind.config.js | 3 ++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/themes/develop/admin.html b/themes/develop/admin.html index 40fd5fd..0ed5105 100644 --- a/themes/develop/admin.html +++ b/themes/develop/admin.html @@ -16,7 +16,9 @@ diff --git a/themes/develop/src/style/editor.css b/themes/develop/src/style/editor.css index 2ff0520..424115c 100644 --- a/themes/develop/src/style/editor.css +++ b/themes/develop/src/style/editor.css @@ -13,8 +13,10 @@ /* ------------------------------ 埋め込みカード(旧埋め込みユニット・埋め込みブロック共通):md 以上で横並びにする - Why not tailwind.config.js の typography に書かないか: typography は @media のキーもセレクタとして - :where() で包み、ルールごと無効になるため(それ以外の指定は typography 側にある) + Why not tailwind.config.js の typography に書かないか: typography の css 設定はキーをすべてセレクタとして + :where() で包む(@media のキーも区別しない)ため、ルールごと無効なセレクタになる。typography 自体は + 画面幅での切り替えを md:prose-lg のようなクラスのバリアントで行う設計で、設定の中にメディアクエリを持たない + (それ以外の指定は typography 側にある) ------------------------------ */ /* stylelint-disable-next-line media-query-no-invalid */ @media (width >= theme(--breakpoint-md)) { @@ -43,3 +45,12 @@ width: calc(100% / 3 * 2); } } + +/* ------------------------------ + ブロックエディターのプレビュー(隔離 iframe)では、HTML ブロックの中身が独自要素 acms-isolated-preview-root の直下に置かれる。 + 公開側(tailwind.config.js の HTML ブロックの指定)と同じく本文幅いっぱいに広げる(余白はプレビュー枠の中に空きができるため付けない) + ------------------------------ */ +:where(acms-isolated-preview-root) > :where(iframe, video, object, embed) { + width: 100%; + max-width: 100%; +} diff --git a/themes/develop/tailwind.config.js b/themes/develop/tailwind.config.js index bb76861..fc69a20 100644 --- a/themes/develop/tailwind.config.js +++ b/themes/develop/tailwind.config.js @@ -235,7 +235,8 @@ module.exports = { borderRadius: '0', }, // md 以上でカードを横並びにする指定は src/style/editor.css にある。 - // Why not ここに @media のキーで書かないか: typography は @media のキーもセレクタとして :where() で包み、ルールごと無効になるため + // Why not ここに @media のキーで書かないか: typography はキーをすべてセレクタとして :where() で包み(@media も区別しない)、 + // ルールごと無効になるため。typography の画面幅での切り替えは md:prose-lg のようなクラスのバリアントで行う設計になっている "[class*='column-embed'] .acms-embed-link:hover, [data-type='embedBlock'] .embed-block-card:hover": { opacity: '0.7', }, From fc56ee3ab04e087ddc1eadb2f5a5f2ea160c7156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Mon, 28 Sep 2026 10:27:27 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=E6=9C=AC=E6=96=87=E3=81=AE=E5=9F=8B?= =?UTF-8?q?=E3=82=81=E8=BE=BC=E3=81=BF=E3=82=B3=E3=83=B3=E3=83=86=E3=83=B3?= =?UTF-8?q?=E3=83=84=E3=81=A8=E5=9F=8B=E3=82=81=E8=BE=BC=E3=81=BF=E3=83=96?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E3=81=AE=E9=85=8D=E7=BD=AE=E3=82=92?= =?UTF-8?q?=E5=85=AC=E9=96=8B=E5=81=B4=E3=83=BB=E3=83=97=E3=83=AC=E3=83=93?= =?UTF-8?q?=E3=83=A5=E3=83=BC=E3=81=A7=E6=8F=83=E3=81=88=E3=82=8B=EF=BC=88?= =?UTF-8?q?CMS-7912=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit プレビューで段落の中などに置いた iframe 等が本文幅からはみ出していたため本文幅に収め、 中央・右揃えの埋め込みブロックでは狭い埋め込み(X のウィジェット等)も配置の向きへ寄せる。 OGP カードのキーボード操作時のフォーカスの枠をカード全体に出す。 Co-Authored-By: Claude Opus 5.5 --- themes/develop/admin.html | 7 ++-- themes/develop/src/js/admin.js | 2 +- themes/develop/src/style/editor.css | 14 +++----- themes/develop/tailwind.config.js | 55 +++++++++++++++++++---------- 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/themes/develop/admin.html b/themes/develop/admin.html index 0ed5105..eb79765 100644 --- a/themes/develop/admin.html +++ b/themes/develop/admin.html @@ -1,9 +1,7 @@ @extends("/_layouts/admin.html") @section("editor-css") - + @vite("src/style/editor.css", { "linkTagAttributes": { "data-block-editor-stylesheet": true @@ -16,8 +14,7 @@ diff --git a/themes/develop/src/js/admin.js b/themes/develop/src/js/admin.js index 6c15b99..209ff84 100644 --- a/themes/develop/src/js/admin.js +++ b/themes/develop/src/js/admin.js @@ -1,3 +1,3 @@ /** - * スタイル(editor.css)は admin.html の editor-css で読み込む + * 管理画面用のJavaScript */ diff --git a/themes/develop/src/style/editor.css b/themes/develop/src/style/editor.css index 424115c..13ae9e1 100644 --- a/themes/develop/src/style/editor.css +++ b/themes/develop/src/style/editor.css @@ -12,11 +12,7 @@ @config '../../tailwind.config.js'; /* ------------------------------ - 埋め込みカード(旧埋め込みユニット・埋め込みブロック共通):md 以上で横並びにする - Why not tailwind.config.js の typography に書かないか: typography の css 設定はキーをすべてセレクタとして - :where() で包む(@media のキーも区別しない)ため、ルールごと無効なセレクタになる。typography 自体は - 画面幅での切り替えを md:prose-lg のようなクラスのバリアントで行う設計で、設定の中にメディアクエリを持たない - (それ以外の指定は typography 側にある) + 埋め込みカード(埋め込みユニット・埋め込みブロック共通):md 以上で横並びにする ------------------------------ */ /* stylelint-disable-next-line media-query-no-invalid */ @media (width >= theme(--breakpoint-md)) { @@ -34,7 +30,6 @@ object-fit: cover; } - /* 埋め込みブロックは画像を包む要素が無いので、画像自身が旧ユニットの入れ物と同じ幅を持つ */ .prose :where([data-type='embedBlock'] .embed-block-card > img) { flex: none; width: calc(100% / 3); @@ -47,10 +42,9 @@ } /* ------------------------------ - ブロックエディターのプレビュー(隔離 iframe)では、HTML ブロックの中身が独自要素 acms-isolated-preview-root の直下に置かれる。 - 公開側(tailwind.config.js の HTML ブロックの指定)と同じく本文幅いっぱいに広げる(余白はプレビュー枠の中に空きができるため付けない) + 本文の埋め込みコンテンツ(ブロックエディターのプレビュー用) ------------------------------ */ -:where(acms-isolated-preview-root) > :where(iframe, video, object, embed) { - width: 100%; +:where(acms-isolated-preview-root) :where(iframe, video, object, embed) { + box-sizing: border-box; /* 枠線を含めて本文幅に収める */ max-width: 100%; } diff --git a/themes/develop/tailwind.config.js b/themes/develop/tailwind.config.js index fc69a20..f556227 100644 --- a/themes/develop/tailwind.config.js +++ b/themes/develop/tailwind.config.js @@ -209,8 +209,6 @@ module.exports = { marginTop: em(32, 16), marginBottom: em(32, 16), }, - // 埋め込みブロックは旧ユニットと並べて宣言を共有する。管理画面のカードは embed-block-card-* しか持たないため - // 公開側と共通のこちらのクラスで指定する。カード全体ではなくタイトルだけが a なので、リンク領域をカード全体へ広げる "[class*='column-embed'] .acms-embed-link, [data-type='embedBlock'] .embed-block-card": { position: 'relative', overflow: 'hidden', @@ -226,17 +224,14 @@ module.exports = { textDecoration: 'none', transitionProperty: 'opacity', }, - // 埋め込みブロックの画像。typography のセレクタは詳細度が揃うため、md の幅指定より前に置く。 - // figure 内の画像の角丸(figure img)がカードの画像にまで当たらないよう打ち消す + // カードの画像の角丸を打ち消す "[data-type='embedBlock'] .embed-block-card > img": { display: 'block', width: '100%', margin: '0', borderRadius: '0', }, - // md 以上でカードを横並びにする指定は src/style/editor.css にある。 - // Why not ここに @media のキーで書かないか: typography はキーをすべてセレクタとして :where() で包み(@media も区別しない)、 - // ルールごと無効になるため。typography の画面幅での切り替えは md:prose-lg のようなクラスのバリアントで行う設計になっている + // md 以上でカードを横並びにする指定は src/style/editor.css にある "[class*='column-embed'] .acms-embed-link:hover, [data-type='embedBlock'] .embed-block-card:hover": { opacity: '0.7', }, @@ -256,11 +251,33 @@ module.exports = { position: 'absolute', inset: '0', }, - // 配置用の外側 div が余白を持つため、figure の余白は打ち消す + // キーボード操作時のフォーカスの枠をカード全体に出す + "[data-type='embedBlock'] a.embed-block-card-title:focus-visible": { + outline: 'none', + }, + "[data-type='embedBlock'] .embed-block-card:has(a.embed-block-card-title:focus-visible)": { + outline: 'auto 1px', + outlineColor: '-webkit-focus-ring-color', + outlineOffset: '1px', + }, + // 埋め込みブロックの figure の余白を打ち消す "[data-type='embedBlock'] > figure": { marginTop: '0', marginBottom: '0', }, + // 中央・右揃えでは、figure(表示サイズまで広がる)より狭い埋め込み(X のウィジェット等)も同じ向きに寄せる。 + // Why not 子要素に margin-inline: auto: Instagram 等は margin をインラインで指定しており上書きできない + ":where([data-type='embedBlock'][data-align='center'], [data-type='embedBlock'][data-align='right']) [data-embed-content]": + { + display: 'flex', + flexDirection: 'column', + }, + ":where([data-type='embedBlock'][data-align='center']) [data-embed-content]": { + alignItems: 'center', + }, + ":where([data-type='embedBlock'][data-align='right']) [data-embed-content]": { + alignItems: 'flex-end', + }, "[class*='column-embed'] .acms-embed-link-content, [data-type='embedBlock'] .embed-block-card-content": { display: 'flex', flexDirection: 'column', @@ -311,36 +328,36 @@ module.exports = { }, // ------------------------------ - // グループ(複数ブロックをまとめるラッパー) + // グループ // ------------------------------ - // 中の最後の子の下余白を打ち消すため、グループ自身が他のブロックと同じ余白を持つ "[data-type='group']": { boxSizing: 'border-box', marginTop: em(32, 16), marginBottom: em(32, 16), }, - // 先頭・末尾の子ブロックの余白を打ち消し、グループの枠と中身が二重に空かないようにする + // 先頭・末尾の子ブロックの余白を打ち消す "[data-type='group'] > :first-child": { marginTop: '0', }, "[data-type='group'] > :last-child": { marginBottom: '0', }, - // カラーパレットで背景色だけ付けたグループでも、文字が背景の端に貼り付かないようにする + // カラーパレットで背景色を付けたグループの内側の余白 "[data-type='group'][style*='background-color']": { padding: em(24, 16), }, // ------------------------------ - // HTML ブロック + // 本文の埋め込みコンテンツ(iframe・video・object・embed) // ------------------------------ - // ラッパーを持たず、編集者が書いた iframe 等がブロックの並びに直接置かれるため、並びの直下にあるものだけに余白を付ける。 - // Why not iframe 全般に付けないか: 埋め込みブロックの iframe は外側の .embed-block が余白を持つため、二重に空いてしまう - ":is(.column-block-editor, [data-type='group'], [data-type='column']) > :is(iframe, video, object, embed)": + // 本文より広いときは幅を縮める + 'iframe, video, object, embed': { + boxSizing: 'border-box', // 枠線を含めて本文幅に収める + maxWidth: '100%', + }, + // 前後の余白(外枠が余白を持つ埋め込みブロック・配置(align-*)の中は除く) + ":is(iframe, video, object, embed):not(:is([data-type='embedBlock'], [class^='align-'], [class*=' align-']) *)": { - // Google マップ等の埋め込みコードは width="600" のような固定幅を持つことが多いため、本文幅いっぱいに広げる(高さは属性の値のまま) - width: '100%', - maxWidth: '100%', marginTop: em(32, 16), marginBottom: em(32, 16), }, From 5d19b521d1ef7261922c8f643d51075378e12c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E4=BA=95=20=E9=99=B8=E7=99=BB?= Date: Mon, 28 Sep 2026 14:18:07 +0900 Subject: [PATCH 9/9] v1.1.7 --- themes/develop/README.md | 2 +- themes/develop/package-lock.json | 4 ++-- themes/develop/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/themes/develop/README.md b/themes/develop/README.md index 1941f67..e8c605a 100644 --- a/themes/develop/README.md +++ b/themes/develop/README.md @@ -1,4 +1,4 @@ -# テーマ「develop」Ver.1.1.6 +# テーマ「develop」Ver.1.1.7 ## バンドル環境の使い方 diff --git a/themes/develop/package-lock.json b/themes/develop/package-lock.json index a339453..d751aca 100644 --- a/themes/develop/package-lock.json +++ b/themes/develop/package-lock.json @@ -1,12 +1,12 @@ { "name": "develop", - "version": "1.1.6", + "version": "1.1.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "develop", - "version": "1.1.6", + "version": "1.1.7", "license": "MIT", "dependencies": { "@ablogcms/pdf": "^3.2.35", diff --git a/themes/develop/package.json b/themes/develop/package.json index f03331d..2ef81d2 100644 --- a/themes/develop/package.json +++ b/themes/develop/package.json @@ -1,6 +1,6 @@ { "name": "develop", - "version": "1.1.6", + "version": "1.1.7", "description": "Webサイト制作プロジェクト", "type": "module", "main": "index.js",