16 Commits

Author SHA1 Message Date
Sebastian fd15d91363 Merge pull request 'chore(deps): update dependency jsdom to v30.0.1' (#30) from renovate/jsdom-30.x-lockfile into main
Reviewed-on: #30
2026-09-06 01:19:48 +00:00
Sebastian eb0e020993 Merge pull request 'chore(deps): update dependency pinia to v4.0.3' (#31) from renovate/pinia-4.x-lockfile into main
Reviewed-on: #31
2026-09-06 01:19:41 +00:00
Sebastian 67405777e7 Merge pull request 'chore(deps): update dependency vuetify to v4.2.0' (#32) from renovate/vuetify-4.x-lockfile into main
Reviewed-on: #32
2026-09-06 01:19:36 +00:00
Sebastian 1c2a8722a1 Merge pull request 'chore(deps): update dependency vue to v3.5.42' (#24) from renovate/vue-monorepo into main
Reviewed-on: #24
2026-09-06 01:19:26 +00:00
Sebastian bb85de1164 chore(deps): update dependency vue to v3.5.42
Build Test / test (pull_request) Successful in 41s
JS Unit Tests / test (pull_request) Successful in 35s
2026-09-05 03:02:40 +00:00
Sebastian 797ab1ea30 chore(deps): update dependency vuetify to v4.2.0
Build Test / test (pull_request) Successful in 49s
JS Unit Tests / test (pull_request) Successful in 52s
2026-09-02 03:03:20 +00:00
Sebastian 3890e0b93c chore(deps): update dependency pinia to v4.0.3
Build Test / test (pull_request) Successful in 40s
JS Unit Tests / test (pull_request) Successful in 53s
2026-09-02 03:03:00 +00:00
Sebastian 0c9745737b chore(deps): update dependency jsdom to v30.0.1
Build Test / test (pull_request) Successful in 53s
JS Unit Tests / test (pull_request) Successful in 45s
2026-09-02 03:02:56 +00:00
Sebastian 86624786dd Merge pull request 'chore(deps): update dependency jsdom to v30' (#27) from renovate/jsdom-30.x into main
Reviewed-on: #27
2026-09-01 11:48:50 +00:00
Sebastian 145051e179 Merge pull request 'chore(deps): update dependency vuetify to v4.1.12' (#28) from renovate/vuetify-4.x-lockfile into main
Reviewed-on: #28
2026-09-01 11:48:43 +00:00
Sebastian 975804845a Merge pull request 'chore(deps): update dependency vite to v8.2.2' (#29) from renovate/vite-8.x-lockfile into main
Reviewed-on: #29
2026-09-01 11:48:34 +00:00
Sebastian de9614fdb6 chore(deps): update dependency vite to v8.2.2
JS Unit Tests / test (pull_request) Successful in 1m14s
Build Test / test (pull_request) Successful in 1m29s
2026-09-01 03:02:46 +00:00
Sebastian 3c394135e5 chore(deps): update dependency vuetify to v4.1.12
Build Test / test (pull_request) Successful in 1m2s
JS Unit Tests / test (pull_request) Successful in 54s
2026-09-01 03:02:42 +00:00
Sebastian d619693460 refactor(module): register browser integration through context
Signed-off-by: Sebastian <krupinski01@gmail.com>
2026-08-31 22:55:59 -04:00
Sebastian 631c35a00a fix(preview): show fallback when image loading fails
Signed-off-by: Sebastian <krupinski01@gmail.com>
2026-08-31 22:55:59 -04:00
Sebastian 44cc7b7b0d chore(deps): update dependency jsdom to v30
Build Test / test (pull_request) Successful in 49s
JS Unit Tests / test (pull_request) Successful in 48s
2026-07-28 03:06:50 +00:00
5 changed files with 188 additions and 99 deletions
+7 -12
View File
@@ -2,10 +2,11 @@
namespace KTXM\MediaViewer; namespace KTXM\MediaViewer;
use KTXF\Module\ModuleBrowserInterface; use KTXF\Module\Configuration\BrowserModuleContextInterface;
use KTXF\Module\Configuration\ModuleContextInterface;
use KTXF\Module\ModuleInstanceAbstract; use KTXF\Module\ModuleInstanceAbstract;
class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface class Module extends ModuleInstanceAbstract
{ {
public function __construct() public function __construct()
@@ -41,16 +42,10 @@ class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface
return []; return [];
} }
public function registerBI(): array public function configure(ModuleContextInterface $context): void
{ {
return [ if ($context instanceof BrowserModuleContextInterface) {
'handle' => $this->handle(), $context->registerModule($this, 'MediaViewer', 'static/module.mjs');
'namespace' => 'MediaViewer', }
'version' => $this->version(),
'label' => $this->label(),
'author' => $this->author(),
'description' => $this->description(),
'boot' => 'static/module.mjs',
];
} }
} }
+177 -86
View File
@@ -19,7 +19,7 @@
"@vitest/coverage-v8": "^4.1.6", "@vitest/coverage-v8": "^4.1.6",
"@vue/test-utils": "^2.4.10", "@vue/test-utils": "^2.4.10",
"@vue/tsconfig": "^0.9.0", "@vue/tsconfig": "^0.9.0",
"jsdom": "^29.1.1", "jsdom": "^30.0.0",
"typescript": "~6.0.0", "typescript": "~6.0.0",
"vite": "^8.0.0", "vite": "^8.0.0",
"vitest": "^4.1.6", "vitest": "^4.1.6",
@@ -27,48 +27,38 @@
} }
}, },
"node_modules/@asamuzakjp/css-color": { "node_modules/@asamuzakjp/css-color": {
"version": "5.1.11", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.5.tgz",
"integrity": "sha512-mbhpPMmnw/kwW19aRNmSUl1QzLbdGo1SCuE49BT98MNwqF6zaHb3o2owssFc/PEO/4t2UjqtCNwocuDtJornzA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asamuzakjp/generational-cache": "^1.0.1", "@csstools/css-calc": "^3.2.1",
"@csstools/css-calc": "^3.2.0", "@csstools/css-color-parser": "^4.1.9",
"@csstools/css-color-parser": "^4.1.0",
"@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-parser-algorithms": "^4.0.0",
"@csstools/css-tokenizer": "^4.0.0" "@csstools/css-tokenizer": "^4.0.0",
"lru-cache": "^11.5.2"
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^22.13.0 || >=24.0.0"
} }
}, },
"node_modules/@asamuzakjp/dom-selector": { "node_modules/@asamuzakjp/dom-selector": {
"version": "7.1.1", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.0.tgz",
"integrity": "sha512-UJLfKXBhrc8i1vH2eJXuYQMwlsLKWFw3O+CPqXSuVEiikeAim3UgrfWX0k4tA/X8cRFM8iZ7OaqBokFGbYusdg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asamuzakjp/generational-cache": "^1.0.1",
"@asamuzakjp/nwsapi": "^2.3.9",
"bidi-js": "^1.0.3", "bidi-js": "^1.0.3",
"css-tree": "^3.2.1", "css-tree": "^3.2.1",
"is-potential-custom-element-name": "^1.0.1" "is-potential-custom-element-name": "^1.0.1",
"lru-cache": "^11.5.2"
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^22.13.0 || >=24.0.0"
} }
}, },
"node_modules/@asamuzakjp/generational-cache": {
"version": "1.0.1",
"dev": true,
"license": "MIT",
"engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}
},
"node_modules/@asamuzakjp/nwsapi": {
"version": "2.3.9",
"dev": true,
"license": "MIT"
},
"node_modules/@babel/generator": { "node_modules/@babel/generator": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz",
@@ -147,10 +137,12 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.29.7", "version": "7.29.8",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz",
"integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.29.7" "@babel/types": "^7.29.8"
}, },
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@@ -160,7 +152,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.29.7", "version": "7.29.8",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
"integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.29.7", "@babel/helper-string-parser": "^7.29.7",
@@ -889,45 +883,53 @@
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.42.tgz",
"integrity": "sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.29.7", "@babel/parser": "^7.29.8",
"@vue/shared": "3.5.39", "@vue/shared": "3.5.42",
"entities": "^7.0.1", "entities": "^7.0.1",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.2.1" "source-map-js": "^1.2.1"
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz",
"integrity": "sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.5.39", "@vue/compiler-core": "3.5.42",
"@vue/shared": "3.5.39" "@vue/shared": "3.5.42"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.42.tgz",
"integrity": "sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.29.7", "@babel/parser": "^7.29.8",
"@vue/compiler-core": "3.5.39", "@vue/compiler-core": "3.5.42",
"@vue/compiler-dom": "3.5.39", "@vue/compiler-dom": "3.5.42",
"@vue/compiler-ssr": "3.5.39", "@vue/compiler-ssr": "3.5.42",
"@vue/shared": "3.5.39", "@vue/shared": "3.5.42",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.21", "magic-string": "^0.30.21",
"postcss": "^8.5.15", "postcss": "^8.5.19",
"source-map-js": "^1.2.1" "source-map-js": "^1.2.1"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.42.tgz",
"integrity": "sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.39", "@vue/compiler-dom": "3.5.42",
"@vue/shared": "3.5.39" "@vue/shared": "3.5.42"
} }
}, },
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
@@ -974,43 +976,51 @@
} }
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.42.tgz",
"integrity": "sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/shared": "3.5.39" "@vue/shared": "3.5.42"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.42.tgz",
"integrity": "sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.39", "@vue/reactivity": "3.5.42",
"@vue/shared": "3.5.39" "@vue/shared": "3.5.42"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.42.tgz",
"integrity": "sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.39", "@vue/reactivity": "3.5.42",
"@vue/runtime-core": "3.5.39", "@vue/runtime-core": "3.5.42",
"@vue/shared": "3.5.39", "@vue/shared": "3.5.42",
"csstype": "^3.2.3" "csstype": "^3.2.3"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.42.tgz",
"integrity": "sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.5.39", "@vue/compiler-ssr": "3.5.42",
"@vue/shared": "3.5.39" "@vue/runtime-dom": "3.5.42",
}, "@vue/shared": "3.5.42"
"peerDependencies": {
"vue": "3.5.39"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.42.tgz",
"integrity": "sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vue/test-utils": { "node_modules/@vue/test-utils": {
@@ -1049,6 +1059,63 @@
} }
} }
}, },
"node_modules/@vuetify/v0": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@vuetify/v0/-/v0-1.2.1.tgz",
"integrity": "sha512-lFBUeMmQiKbFR7JXC1Z74Z2dvvGLCqt/Wd9JQqg4falICTvHtlkulYqaHbtmByGV9eR7cbG1ohN1+7OQLLSPfg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/johnleider"
},
{
"type": "opencollective",
"url": "https://opencollective.com/vuetify"
}
],
"license": "MIT",
"peerDependencies": {
"@adobe/leonardo-contrast-colors": ">=1.0.0",
"@ant-design/colors": ">=7.0.0",
"@flagsmith/flagsmith": ">=11.0.0",
"@floating-ui/dom": ">=1.8.0",
"@js-temporal/polyfill": ">=0.5.0",
"@material/material-color-utilities": ">=0.3.0",
"launchdarkly-js-client-sdk": "^3.0.0",
"posthog-js": "^1.0.0",
"vue": ">=3.5.0 || >=3.6.0-0",
"vue-i18n": ">=10.0.0"
},
"peerDependenciesMeta": {
"@adobe/leonardo-contrast-colors": {
"optional": true
},
"@ant-design/colors": {
"optional": true
},
"@flagsmith/flagsmith": {
"optional": true
},
"@floating-ui/dom": {
"optional": true
},
"@js-temporal/polyfill": {
"optional": true
},
"@material/material-color-utilities": {
"optional": true
},
"launchdarkly-js-client-sdk": {
"optional": true
},
"posthog-js": {
"optional": true
},
"vue-i18n": {
"optional": true
}
}
},
"node_modules/abbrev": { "node_modules/abbrev": {
"version": "2.0.0", "version": "2.0.0",
"dev": true, "dev": true,
@@ -1560,37 +1627,39 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/jsdom": { "node_modules/jsdom": {
"version": "29.1.1", "version": "30.0.1",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz",
"integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asamuzakjp/css-color": "^5.1.11", "@asamuzakjp/css-color": "^6.0.5",
"@asamuzakjp/dom-selector": "^7.1.1", "@asamuzakjp/dom-selector": "^8.3.0",
"@bramus/specificity": "^2.4.2", "@bramus/specificity": "^2.4.2",
"@csstools/css-syntax-patches-for-csstree": "^1.1.3", "@csstools/css-syntax-patches-for-csstree": "^1.1.7",
"@exodus/bytes": "^1.15.0", "@exodus/bytes": "^1.15.1",
"css-tree": "^3.2.1", "css-tree": "^3.2.1",
"data-urls": "^7.0.0", "data-urls": "^7.0.0",
"decimal.js": "^10.6.0", "decimal.js": "^10.6.0",
"html-encoding-sniffer": "^6.0.0", "html-encoding-sniffer": "^6.0.0",
"is-potential-custom-element-name": "^1.0.1", "is-potential-custom-element-name": "^1.0.1",
"lru-cache": "^11.3.5", "lru-cache": "^11.5.2",
"parse5": "^8.0.1", "parse5": "^8.0.1",
"saxes": "^6.0.0", "saxes": "^6.0.0",
"symbol-tree": "^3.2.4", "symbol-tree": "^3.2.4",
"tough-cookie": "^6.0.1", "tough-cookie": "^6.0.2",
"undici": "^7.25.0", "undici": "^8.9.0",
"w3c-xmlserializer": "^5.0.0", "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^8.0.1", "webidl-conversions": "^8.0.1",
"whatwg-mimetype": "^5.0.0", "whatwg-mimetype": "^5.0.0",
"whatwg-url": "^16.0.1", "whatwg-url": "^17.1.0",
"xml-name-validator": "^5.0.0" "xml-name-validator": "^5.0.0"
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.13.0 || >=24.0.0" "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"canvas": "^3.0.0" "canvas": "^3.2.3"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"canvas": { "canvas": {
@@ -1598,6 +1667,21 @@
} }
} }
}, },
"node_modules/jsdom/node_modules/whatwg-url": {
"version": "17.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz",
"integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@exodus/bytes": "^1.15.1",
"tr46": "^6.0.0",
"webidl-conversions": "^8.0.1"
},
"engines": {
"node": "^22.14.0 || >=24.0.0"
}
},
"node_modules/jsesc": { "node_modules/jsesc": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -2138,9 +2222,9 @@
} }
}, },
"node_modules/pinia": { "node_modules/pinia": {
"version": "4.0.2", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-4.0.2.tgz", "resolved": "https://registry.npmjs.org/pinia/-/pinia-4.0.3.tgz",
"integrity": "sha512-yKVVA7bSj5oRZFp/Ab9wLlmyb5gPUYEiIm4ryiWTe/xe7PtkRdMVOp1X1ggvq0c6Uj7Q0Du1HnV2mtAwM0Ks1g==", "integrity": "sha512-XMQqpvjgG7LMqVhhFUzKLT4KEbsYbfZZ0CZU9PgdFm1O2VKBmIkykL8+SfNhOaT7sR0wT6BEgKT0YNDYWgmVRA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"nostics": "^1.1.4" "nostics": "^1.1.4"
@@ -2561,11 +2645,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "7.28.0", "version": "8.9.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-8.9.0.tgz",
"integrity": "sha512-aWZpUj7XoGonMClx4gdDRfgBjqeA+F473aDmROQQbM9n6PRfK/u1q/a0X4wMTgcHfT8H6fpbt98PFuDUwFg2YA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=20.18.1" "node": ">=22.19.0"
} }
}, },
"node_modules/unplugin": { "node_modules/unplugin": {
@@ -2810,14 +2896,16 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.5.39", "version": "3.5.42",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.42.tgz",
"integrity": "sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.39", "@vue/compiler-dom": "3.5.42",
"@vue/compiler-sfc": "3.5.39", "@vue/compiler-sfc": "3.5.42",
"@vue/runtime-dom": "3.5.39", "@vue/runtime-dom": "3.5.42",
"@vue/server-renderer": "3.5.39", "@vue/server-renderer": "3.5.42",
"@vue/shared": "3.5.39" "@vue/shared": "3.5.42"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"
@@ -2901,10 +2989,13 @@
} }
}, },
"node_modules/vuetify": { "node_modules/vuetify": {
"version": "4.1.6", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-4.1.6.tgz", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-4.2.0.tgz",
"integrity": "sha512-VOsRTsNfs+FE4JXMONZkqX2yznSqC/FXG9/pgVVjsoqIjUvJg+CfFTuOlgyWVFrZYY+crk7LV9uaiN8bZREV/g==", "integrity": "sha512-KaMbAl57GG/zdLdL9dcMqEZligIK3jYvkPkpx+RS9DufD/TOfWKnlDTOUzoYlvmhT/3LfJ/usAt1bSoWfYX4JA==",
"license": "MIT", "license": "MIT",
"dependencies": {
"@vuetify/v0": "^1.2.1"
},
"funding": { "funding": {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/johnleider" "url": "https://github.com/sponsors/johnleider"
@@ -2912,7 +3003,7 @@
"peerDependencies": { "peerDependencies": {
"typescript": ">=4.7", "typescript": ">=4.7",
"vite-plugin-vuetify": ">=2.1.0", "vite-plugin-vuetify": ">=2.1.0",
"vue": "^3.5.0", "vue": "^3.5.0 || ^3.6.0-0",
"webpack-plugin-vuetify": ">=3.1.0" "webpack-plugin-vuetify": ">=3.1.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
+1 -1
View File
@@ -30,7 +30,7 @@
"vue-tsc": "^3.0.5", "vue-tsc": "^3.0.5",
"@vitest/coverage-v8": "^4.1.6", "@vitest/coverage-v8": "^4.1.6",
"@vue/test-utils": "^2.4.10", "@vue/test-utils": "^2.4.10",
"jsdom": "^29.1.1", "jsdom": "^30.0.0",
"vitest": "^4.1.6" "vitest": "^4.1.6"
} }
} }
+2
View File
@@ -3,6 +3,7 @@ import { ref, computed, onMounted, onUnmounted } from 'vue'
import type { MediaLeafProps } from '@/types' import type { MediaLeafProps } from '@/types'
const props = defineProps<MediaLeafProps>() const props = defineProps<MediaLeafProps>()
const emit = defineEmits<{ error: [] }>()
// ── Pan / zoom state ──────────────────────────────────────────────────────── // ── Pan / zoom state ────────────────────────────────────────────────────────
@@ -103,6 +104,7 @@ onUnmounted(() => {
transformOrigin: 'center center', transformOrigin: 'center center',
}" }"
draggable="false" draggable="false"
@error="emit('error')"
/> />
<!-- Zoom hint --> <!-- Zoom hint -->
+1
View File
@@ -82,6 +82,7 @@ defineExpose({
:item="item" :item="item"
:presentation="presentation" :presentation="presentation"
class="media-stage__viewer" class="media-stage__viewer"
@error="error = true; url = ''"
/> />
</template> </template>
<template #fallback> <template #fallback>