diff --git a/package-lock.json b/package-lock.json index 01230886..78a7c80b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,49 +1,49 @@ { "name": "mashlib", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mashlib", - "version": "2.0.0", + "version": "2.1.0", "license": "MIT", "dependencies": { - "rdflib": "^2.3.3", - "solid-logic": "^4.0.0", - "solid-panes": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-panes": "^4.1.0", + "solid-ui": "^3.0.4" }, "devDependencies": { - "@babel/cli": "^7.28.0", - "@babel/core": "^7.28.0", - "@babel/plugin-transform-runtime": "^7.28.0", - "@babel/preset-env": "^7.28.0", - "@babel/preset-typescript": "^7.27.1", - "@typescript-eslint/parser": "^8.39.0", + "@babel/cli": "^7.28.6", + "@babel/core": "^7.28.6", + "@babel/plugin-transform-runtime": "^7.28.5", + "@babel/preset-env": "^7.28.6", + "@babel/preset-typescript": "^7.28.5", + "@typescript-eslint/parser": "^8.54.0", "@webpack-cli/serve": "^3.0.1", "babel-loader": "^10.0.0", "bundlesize2": "^0.0.35", - "copy-webpack-plugin": "^13.0.0", - "css-loader": "^7.1.2", - "eslint": "^9.33.0", + "copy-webpack-plugin": "^13.0.1", + "css-loader": "^7.1.3", + "eslint": "^9.39.2", "file-loader": "^6.2.0", - "globals": "^17.0.0", - "html-webpack-plugin": "^5.6.3", - "mini-css-extract-plugin": "^2.9.4", + "globals": "^17.2.0", + "html-webpack-plugin": "^5.6.6", + "mini-css-extract-plugin": "^2.10.0", "node-polyfill-webpack-plugin": "^4.1.0", - "terser-webpack-plugin": "^5.3.14", - "typescript": "^5.9.2", + "terser-webpack-plugin": "^5.3.16", + "typescript": "^5.9.3", "url-loader": "^4.1.1", - "webpack": "^5.101.0", + "webpack": "^5.104.1", "webpack-cli": "^6.0.1", - "webpack-dev-server": "^5.2.2" + "webpack-dev-server": "^5.2.3" } }, "node_modules/@babel/cli": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.3.tgz", - "integrity": "sha512-n1RU5vuCX0CsaqaXm9I0KUCNKNQMy5epmzl/xdSSm70bSqhg9GWhgeosypyQLc0bK24+Xpk1WGzZlI9pJtkZdg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz", + "integrity": "sha512-6EUNcuBbNkj08Oj4gAZ+BUU8yLCgKzgVX4gaTh09Ya2C8ICM4P+G30g4m3akRxSYAp3A/gnWchrNst7px4/nUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -174,18 +174,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", - "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.5", + "@babel/traverse": "^7.28.6", "semver": "^6.3.1" }, "engines": { @@ -214,17 +214,17 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz", + "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -300,9 +300,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "license": "MIT", "engines": { @@ -328,15 +328,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -390,15 +390,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -502,14 +502,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", - "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -532,13 +532,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -548,13 +548,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -564,13 +564,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -580,13 +580,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -629,15 +629,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz", + "integrity": "sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -647,14 +647,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { @@ -681,13 +681,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", - "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -697,14 +697,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -714,14 +714,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", - "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -731,18 +731,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", - "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.4" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -752,14 +752,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -786,14 +786,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -819,14 +819,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", + "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -852,14 +852,14 @@ } }, "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", - "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -869,13 +869,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", - "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -936,13 +936,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -968,13 +968,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", - "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1017,14 +1017,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1103,13 +1103,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1119,13 +1119,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1135,17 +1135,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", - "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.4" + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1172,13 +1172,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1188,13 +1188,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", - "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { @@ -1221,14 +1221,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1238,15 +1238,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1272,13 +1272,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", - "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", + "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1288,14 +1288,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1358,13 +1358,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { @@ -1423,17 +1423,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", - "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" + "@babel/plugin-syntax-typescript": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1459,14 +1459,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1493,14 +1493,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1510,76 +1510,76 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.6.tgz", + "integrity": "sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/compat-data": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.6", + "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.28.6", "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@babel/plugin-transform-modules-systemjs": "^7.28.5", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.6", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", @@ -1630,9 +1630,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1687,13 +1687,13 @@ } }, "node_modules/@digitalbazaar/http-client": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.2.0.tgz", - "integrity": "sha512-OGju/GYp0V72qlZ/Pd4jGEwqBwT/Za/tw+Z3AC7lgMheGqsbhTZrtc5iLz9z59G/Q53QyE2fnjHV8N9wjBpiWA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.3.0.tgz", + "integrity": "sha512-6lMpxpt9BOmqHKGs9Xm6DP4LlZTBFer/ZjHvP3FcW3IaUWYIWC7dw5RFZnvw4fP57kAVcm1dp3IF+Y50qhBvAw==", "license": "BSD-3-Clause", "dependencies": { - "ky": "^1.7.5", - "undici": "^6.21.2" + "ky": "^1.14.2", + "undici": "^6.23.0" }, "engines": { "node": ">=18.0" @@ -1725,9 +1725,9 @@ "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1743,6 +1743,19 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", @@ -1819,9 +1832,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1831,7 +1844,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -1873,16 +1886,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/@eslint/eslintrc/node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -2186,9 +2189,9 @@ } }, "node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.65.0.tgz", + "integrity": "sha512-eBrIXd0/Ld3p9lpDDlMaMn6IEfWqtHMD+z61u0JrIiPzsV1r7m6xDZFRxJyvIFTEO+SWdYF9EiQbXZGd8BzPfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2219,22 +2222,315 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz", + "integrity": "sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.56.10", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz", + "integrity": "sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.56.10", + "@jsonjoy.com/fs-node-builtins": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.56.10", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz", + "integrity": "sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.56.10", + "@jsonjoy.com/fs-node-builtins": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-print": "4.56.10", + "@jsonjoy.com/fs-snapshot": "4.56.10", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz", + "integrity": "sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz", + "integrity": "sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.56.10", + "@jsonjoy.com/fs-node-builtins": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.56.10" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz", + "integrity": "sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.56.10" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz", + "integrity": "sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.56.10", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz", + "integrity": "sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.65.0.tgz", + "integrity": "sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.65.0.tgz", + "integrity": "sha512-7MXcRYe7n3BG+fo3jicvjB0+6ypl2Y/bQp79Sp7KeSiiCgLqw4Oled6chVv07/xLVTdo3qa1CD0VCCnPaw+RGA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.65.0.tgz", + "integrity": "sha512-e0SG/6qUCnVhHa0rjDJHgnXnbsacooHVqQHxspjvlYQSkHm+66wkHw6Gql+3u/WxI/b1VsOdUi0M+fOtkgKGdQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "17.65.0", + "@jsonjoy.com/buffers": "17.65.0", + "@jsonjoy.com/codegen": "17.65.0", + "@jsonjoy.com/json-pointer": "17.65.0", + "@jsonjoy.com/util": "17.65.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.65.0.tgz", + "integrity": "sha512-uhTe+XhlIZpWOxgPcnO+iSCDgKKBpwkDVTyYiXX9VayGV8HSFVJM67M6pUE71zdnXF1W0Da21AvnhlmdwYPpow==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/util": "17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.65.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.65.0.tgz", + "integrity": "sha512-cWiEHZccQORf96q2y6zU3wDeIVPeidmGqd9cNKJRYoVHTV0S1eHPy5JTbHpMnGfDvtvujQwQozOqgO9ABu6h0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "17.65.0", + "@jsonjoy.com/codegen": "17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@jsonjoy.com/json-pack": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.2", - "@jsonjoy.com/buffers": "^1.2.0", - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/json-pointer": "^1.0.2", - "@jsonjoy.com/util": "^1.9.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -2288,6 +2584,23 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -2588,9 +2901,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "dev": true, "license": "MIT", "dependencies": { @@ -2639,9 +2952,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", - "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", + "version": "25.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", + "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -2738,17 +3051,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", - "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", + "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2763,15 +3076,15 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", - "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", + "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.1", - "@typescript-eslint/types": "^8.48.1", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.54.0", + "@typescript-eslint/types": "^8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2785,14 +3098,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", - "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", + "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1" + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2803,9 +3116,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", - "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", + "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", "dev": true, "license": "MIT", "engines": { @@ -2820,9 +3133,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", - "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", + "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", "dev": true, "license": "MIT", "engines": { @@ -2834,21 +3147,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", - "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", + "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.1", - "@typescript-eslint/tsconfig-utils": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "debug": "^4.3.4", - "minimatch": "^9.0.4", - "semver": "^7.6.0", + "@typescript-eslint/project-service": "8.54.0", + "@typescript-eslint/tsconfig-utils": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2875,13 +3188,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", - "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", + "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/types": "8.54.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2892,19 +3205,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -3232,21 +3532,21 @@ } }, "node_modules/activitystreams-pane": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/activitystreams-pane/-/activitystreams-pane-1.0.0.tgz", - "integrity": "sha512-hdayUTYNeJalu7mY7RoXHag5SbuNz3uC55E1jC+obJ/tvIl5QqroEONxqGsDCr4qDQ1UEQPuPsOckUOJWl4eXQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/activitystreams-pane/-/activitystreams-pane-1.0.1.tgz", + "integrity": "sha512-XBusVxTkRHzt3rbzMla9dw932q23AM93MLCEByeGbDWU2p/cAzTD5D2fg+S3o69OwIuun4WDZTuWg+u7PdF1nQ==", "license": "MIT", "dependencies": { - "pane-registry": "^3.0.0", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "pane-registry": "^3.0.1", + "react": "^19.2.3", + "react-dom": "^19.2.3", "react-jss": "^10.10.0", "timeago.js": "^4.0.2" }, "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/ajv": { @@ -3468,14 +3768,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz", + "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.6", "semver": "^6.3.1" }, "peerDependencies": { @@ -3497,13 +3797,13 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz", + "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" + "@babel/helper-define-polyfill-provider": "^0.6.6" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -3537,9 +3837,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.15", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz", - "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==", + "version": "2.9.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz", + "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3618,27 +3918,6 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3646,16 +3925,6 @@ "dev": true, "license": "MIT" }, - "node_modules/body-parser/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/bonjour-service": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", @@ -4137,9 +4406,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001765", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz", - "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==", + "version": "1.0.30001766", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", + "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", "dev": true, "funding": [ { @@ -4184,14 +4453,14 @@ } }, "node_modules/chat-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chat-pane/-/chat-pane-3.0.0.tgz", - "integrity": "sha512-Zr2BXbSDInVOgz1CrdmBxiziJUhCkeDAxfpTtlEnpMn13gZsg9p2AmMTmxV+yKCZZpQJCkOURU5Z+XKb3uOIZw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/chat-pane/-/chat-pane-3.0.1.tgz", + "integrity": "sha512-J9OdnIueNcRfuHZ3vkL7cjhrXCeDHTwq6MtAdcDbAsehb7hugFlhO4zQ7IkajZz5fGUpisf76KpoVzcjizlRYQ==", "license": "MIT", "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/chokidar": { @@ -4405,17 +4674,17 @@ "license": "MIT" }, "node_modules/contacts-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/contacts-pane/-/contacts-pane-3.0.0.tgz", - "integrity": "sha512-tFG53tUZQv6FFQzAltrkpCtY4xTO+oHeSisIIP4O45Eo22Q7YgP5jvsjuhkQGan3CK1moVfA7MieUFsfjvWKWw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/contacts-pane/-/contacts-pane-3.0.1.tgz", + "integrity": "sha512-+kI4WpSv+Kms3Z7pnAazCozw2V4t132d5gmVTGVeLgIBMfMr/h9xACBTuhbPV9feaa8WHfV2RbGuBfzKp5juew==", "license": "MIT", "dependencies": { - "mime-types": "^3.0.1" + "mime-types": "^3.0.2" }, "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/content-disposition": { @@ -4449,9 +4718,9 @@ "license": "MIT" }, "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", "engines": { @@ -4459,9 +4728,9 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true, "license": "MIT" }, @@ -4503,9 +4772,9 @@ } }, "node_modules/core-js": { - "version": "3.46.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", - "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", + "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -4514,13 +4783,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.46.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", - "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", + "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.26.3" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", @@ -4673,20 +4942,20 @@ } }, "node_modules/css-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", - "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.3.tgz", + "integrity": "sha512-frbERmjT0UC5lMheWpJmMilnt9GEhbZJN/heUb7/zaJYeIzj5St9HvDcfshzzOqbsS+rYpMk++2SD3vGETDSyA==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.33", + "postcss": "^8.4.40", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" + "semver": "^7.6.3" }, "engines": { "node": ">= 18.12.0" @@ -4815,9 +5084,9 @@ "license": "MIT" }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "dev": true, "license": "MIT", "dependencies": { @@ -4832,9 +5101,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "engines": { @@ -5038,9 +5307,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz", - "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -5102,9 +5371,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "version": "1.5.278", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.278.tgz", + "integrity": "sha512-dQ0tM1svDRQOwxnXxm+twlGTjr9Upvt8UFWAgmLsxEzFQxhbti4VwxmMjsDxVC51Zo84swW7FVCXEV+VAkhuPw==", "dev": true, "license": "ISC" }, @@ -5158,9 +5427,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5182,9 +5451,9 @@ } }, "node_modules/envinfo": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.20.0.tgz", - "integrity": "sha512-+zUomDcLXsVkQ37vUqWBvQwLaLlj8eZPSi61llaEFAVBY5mhcXdaSw1pSJVl4yTYD5g/gEfpNl28YYk4IPvrrg==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", "dev": true, "license": "MIT", "bin": { @@ -5351,13 +5620,13 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5374,19 +5643,6 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -5400,16 +5656,6 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5441,19 +5687,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -5469,9 +5702,9 @@ } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5778,18 +6011,18 @@ } }, "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -5862,13 +6095,13 @@ "license": "ISC" }, "node_modules/folder-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/folder-pane/-/folder-pane-3.0.0.tgz", - "integrity": "sha512-7igSdUResLf1MlJnV8VjG/tWFJsdrYx07v5Wz9cVSr5G9zNqQx9VjgB7VqqA0wPEgHho12o0bRHPsaFPDPPGwQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/folder-pane/-/folder-pane-3.0.1.tgz", + "integrity": "sha512-4M3sKNMAsJRnAUZ8ii8UnfCPcQdChR9RkC65PM+eAz1gU5jQgHbplQOuyf+VtJgsqluHHohwjBbz3JafVnXNIw==", "license": "MIT", "peerDependencies": { - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/follow-redirects": { @@ -6118,9 +6351,9 @@ } }, "node_modules/globals": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.0.0.tgz", - "integrity": "sha512-gv5BeD2EssA793rlFWVPMMCqefTlpusw6/2TbAVMy0FzcG8wKJn4O+NqJ4+XWmmwrayJgw5TzrmWjFgmz1XPqw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.2.0.tgz", + "integrity": "sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg==", "dev": true, "license": "MIT", "engines": { @@ -6438,20 +6671,24 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-parser-js": { @@ -6570,6 +6807,16 @@ ], "license": "BSD-3-Clause" }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -6713,9 +6960,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", "dev": true, "license": "MIT", "engines": { @@ -7053,17 +7300,17 @@ } }, "node_modules/issue-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/issue-pane/-/issue-pane-3.0.0.tgz", - "integrity": "sha512-EtDf3jDNO+cSFJcjd9ZdpLNEbEDfFAAJ7RYpHHTaupjp0bYDaft33rnaBMqI2F4VY+9CIHZjWQL09KOlNO04Aw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/issue-pane/-/issue-pane-3.0.1.tgz", + "integrity": "sha512-vL92VCe8zFWFHfbfk+Ne0cL8cwAJ9eQEoS1m36dMqgzlAaepHF+XRCYQXRdtEpeLkPTlX1iM+GWBX84rrhlFJw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3" + "@babel/runtime": "^7.28.6" }, "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/jest-worker": { @@ -7444,9 +7691,9 @@ } }, "node_modules/lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", "license": "BSD-3-Clause", "dependencies": { "@types/trusted-types": "^2.0.2" @@ -7619,23 +7866,31 @@ } }, "node_modules/meeting-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/meeting-pane/-/meeting-pane-3.0.0.tgz", - "integrity": "sha512-/QuRUKTm7wNRnnaUeWBeVmir5ZSxWvOpr0T1G0WXzVtCwD0yRc0O9JVXt3qkOCxxleXF7BL7FkYgO2qwEwRrjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/meeting-pane/-/meeting-pane-3.0.1.tgz", + "integrity": "sha512-qFR8VTEkxzceFxfoLvTY6svXd+uSQd5DXfSsS23Iaw5n+KOXGyyz8izkqEKLVoNgpZtiQFY7NbRk9RXX7eg+wA==", "license": "MIT", "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/memfs": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.50.0.tgz", - "integrity": "sha512-N0LUYQMUA1yS5tJKmMtU9yprPm6ZIg24yr/OVv/7t6q0kKDIho4cBbXRi1XKttUmNYDYgF/q45qrKE/UhGO0CA==", + "version": "4.56.10", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.56.10.tgz", + "integrity": "sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@jsonjoy.com/fs-core": "4.56.10", + "@jsonjoy.com/fs-fsa": "4.56.10", + "@jsonjoy.com/fs-node": "4.56.10", + "@jsonjoy.com/fs-node-builtins": "4.56.10", + "@jsonjoy.com/fs-node-to-fsa": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-print": "4.56.10", + "@jsonjoy.com/fs-snapshot": "4.56.10", "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", "glob-to-regex.js": "^1.0.1", @@ -7646,6 +7901,9 @@ "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/merge-descriptors": { @@ -8663,9 +8921,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -8721,20 +8979,20 @@ "license": "MIT" }, "node_modules/profile-pane": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0.tgz", - "integrity": "sha512-YOaG9Ep9IM05HjognsPenfPzjvgqnftQyieUY46ASxpp84VvPx8sPC8w4+jvms6gqtyRkf5+LRn/u32Fkvb1VQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-3.0.0.tgz", + "integrity": "sha512-LyX2WI7r41vwdFjA8MIshJyGbpccv2tXnrUeMLvqNhllhg9l7MfGt2Vk9YvlRLTeQ17sV6MPiSE2uSZgW8dYaw==", "license": "MIT", "dependencies": { - "lit-html": "^3.2.1", - "pane-registry": "^3.0.0", + "lit-html": "^3.3.2", + "pane-registry": "^3.0.1", "qrcode": "^1.5.4", "validate-color": "^2.2.4" }, "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.4" } }, "node_modules/prop-types": { @@ -8909,37 +9167,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rdf-canonize": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-5.0.0.tgz", @@ -8969,9 +9196,9 @@ } }, "node_modules/react": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", - "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8984,15 +9211,15 @@ "license": "MIT" }, "node_modules/react-dom": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", - "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.0" + "react": "^19.2.3" } }, "node_modules/react-is": { @@ -9479,25 +9706,25 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -9520,16 +9747,6 @@ "dev": true, "license": "MIT" }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -9541,22 +9758,26 @@ } }, "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", "dev": true, "license": "MIT", "dependencies": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-index/node_modules/debug": { @@ -9580,28 +9801,22 @@ } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, "node_modules/serve-index/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -9632,13 +9847,6 @@ "dev": true, "license": "MIT" }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -9650,16 +9858,16 @@ } }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -9909,31 +10117,31 @@ "license": "MIT" }, "node_modules/solid-panes": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.0.0.tgz", - "integrity": "sha512-d05ajtDH1/2MeXK/A2eVdpGoyPNhjBGmYkWTXzgYKbTjFD188DMyt+vdasiiJ97mRC8s8pc4MhRPFOM9zFxJuw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.1.0.tgz", + "integrity": "sha512-8X6TClAapBZZcYmRA7vESau1a0rHQV5mHrbAIx1OTfHjIh3sYj8RP3jq+4NA+AzW1sFUQ0vwBKlnpK9uzXIF+Q==", "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", - "activitystreams-pane": "^1.0.0", - "chat-pane": "^3.0.0", - "contacts-pane": "^3.0.0", - "dompurify": "^3.2.6", - "folder-pane": "^3.0.0", - "issue-pane": "^3.0.0", - "marked": "^17.0.0", - "meeting-pane": "^3.0.0", - "mime-types": "^3.0.1", - "pane-registry": "^3.0.0", - "profile-pane": "^2.0.0", + "activitystreams-pane": "^1.0.1", + "chat-pane": "^3.0.1", + "contacts-pane": "^3.0.1", + "dompurify": "^3.3.1", + "folder-pane": "^3.0.1", + "issue-pane": "^3.0.1", + "marked": "^17.0.1", + "meeting-pane": "^3.0.1", + "mime-types": "^3.0.2", + "pane-registry": "^3.0.1", + "profile-pane": "^3.0.0", "solid-namespace": "^0.5.4", - "source-pane": "^3.0.0" + "source-pane": "^3.0.1" } }, "node_modules/solid-ui": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.0.3.tgz", - "integrity": "sha512-lH6JjF1WvpBMhsyEmF+gvHXLFumnzO6bZGpvMbkdnsmNoBD3GMi8/BElz7hPNiX6Fubgya/s/ZykQm1NmXRdnQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.0.4.tgz", + "integrity": "sha512-WJt4LT+GC61ai85RFlv+fduLSTksd2CwqLUVQy+7vU2+CzybxbT/nn2pwLOVOoIWPXTN8kW9ZL1mVnxnr2ETtQ==", "license": "MIT", "dependencies": { "@noble/curves": "^2.0.1", @@ -9997,14 +10205,14 @@ } }, "node_modules/source-pane": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/source-pane/-/source-pane-3.0.0.tgz", - "integrity": "sha512-VCVWwiSJaWKyO+0FsA8o3hw8BRNZuX8umvKXYvb/2mWEX7FASFz7/f0RKAgUWamgNcZqI3kgYCud7CXmXwCtyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-pane/-/source-pane-3.0.1.tgz", + "integrity": "sha512-AcRmKM5u66QQafXCml1vqdYgzfnmJTqb26RRxMqVfOaZEV/aml1LcPDKQqA+X2qiNKPf/cyxpTbdRyO0nQB5gQ==", "license": "MIT", "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-ui": "^3.0.3" } }, "node_modules/spdy": { @@ -10047,9 +10255,9 @@ "license": "BSD-3-Clause" }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -10178,9 +10386,9 @@ } }, "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -10415,9 +10623,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -10832,9 +11040,9 @@ "license": "MIT" }, "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "license": "MIT", "dependencies": { @@ -11181,9 +11389,9 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "dev": true, "license": "MIT", "dependencies": { @@ -11241,9 +11449,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index f07c154a..5bd14129 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mashlib", - "version": "2.0.0", + "version": "2.1.0", "description": "Data mashup library", "main": "dist/mashlib.js", "files": [ @@ -49,35 +49,41 @@ }, "homepage": "https://github.com/solidos/mashlib", "dependencies": { - "rdflib": "^2.3.3", - "solid-logic": "^4.0.0", - "solid-panes": "^4.0.0", - "solid-ui": "^3.0.0" + "rdflib": "^2.3.5", + "solid-logic": "^4.0.2", + "solid-panes": "^4.1.0", + "solid-ui": "^3.0.4" + }, + "overrides": { + "rdflib": "$rdflib", + "solid-logic": "$solid-logic", + "solid-panes": "$solid-panes", + "solid-ui": "$solid-ui" }, "devDependencies": { - "@babel/cli": "^7.28.0", - "@babel/core": "^7.28.0", - "@babel/plugin-transform-runtime": "^7.28.0", - "@babel/preset-env": "^7.28.0", - "@babel/preset-typescript": "^7.27.1", - "@typescript-eslint/parser": "^8.39.0", + "@babel/cli": "^7.28.6", + "@babel/core": "^7.28.6", + "@babel/plugin-transform-runtime": "^7.28.5", + "@babel/preset-env": "^7.28.6", + "@babel/preset-typescript": "^7.28.5", + "@typescript-eslint/parser": "^8.54.0", "@webpack-cli/serve": "^3.0.1", "babel-loader": "^10.0.0", "bundlesize2": "^0.0.35", - "copy-webpack-plugin": "^13.0.0", - "css-loader": "^7.1.2", - "eslint": "^9.33.0", + "copy-webpack-plugin": "^13.0.1", + "css-loader": "^7.1.3", + "eslint": "^9.39.2", "file-loader": "^6.2.0", - "globals": "^17.0.0", - "html-webpack-plugin": "^5.6.3", - "mini-css-extract-plugin": "^2.9.4", + "globals": "^17.2.0", + "html-webpack-plugin": "^5.6.6", + "mini-css-extract-plugin": "^2.10.0", "node-polyfill-webpack-plugin": "^4.1.0", - "terser-webpack-plugin": "^5.3.14", - "typescript": "^5.9.2", + "terser-webpack-plugin": "^5.3.16", + "typescript": "^5.9.3", "url-loader": "^4.1.1", - "webpack": "^5.101.0", + "webpack": "^5.104.1", "webpack-cli": "^6.0.1", - "webpack-dev-server": "^5.2.2" + "webpack-dev-server": "^5.2.3" }, "bundlesize": [ { diff --git a/src/databrowser.html b/src/databrowser.html index fcd8a6cf..7bf893c0 100644 --- a/src/databrowser.html +++ b/src/databrowser.html @@ -9,13 +9,26 @@ }) - - - -
-
-
-
- + + + + +
+
+ + + + + + + + + + +
+
+
+
+ diff --git a/src/index.ts b/src/index.ts index d0d11afe..320cdee7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,11 +2,39 @@ import * as $rdf from 'rdflib' import * as panes from 'solid-panes' import { authn, solidLogicSingleton, authSession, store } from 'solid-logic' import versionInfo from './versionInfo' -import { mashStyle } from './styles/mashlib-style' import './styles/mash.css' const global: any = window +// Theme Management +const initializeTheme = () => { + const savedTheme = localStorage.getItem('mashlib-theme') + const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches + const theme = savedTheme || (prefersDark ? 'dark' : 'light') + + if (theme === 'dark') { + document.documentElement.setAttribute('data-theme', 'dark') + } else { + document.documentElement.removeAttribute('data-theme') + } +} + +const setTheme = (theme: 'light' | 'dark') => { + if (theme === 'dark') { + document.documentElement.setAttribute('data-theme', 'dark') + } else { + document.documentElement.removeAttribute('data-theme') + } + localStorage.setItem('mashlib-theme', theme) +} + +const getTheme = (): 'light' | 'dark' => { + return document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' +} + +// Initialize theme on load +initializeTheme() + global.$rdf = $rdf global.panes = panes global.SolidLogic = { @@ -16,15 +44,15 @@ global.SolidLogic = { solidLogicSingleton } global.mashlib = { - versionInfo + versionInfo, + theme: { + set: setTheme, + get: getTheme, + init: initializeTheme + } } global.panes.runDataBrowser = function (uri?:string|$rdf.NamedNode|null) { - document.getElementById('PageBody')?.setAttribute('style', mashStyle.dbLayout) - document.getElementById('PageHeader')?.setAttribute('style', mashStyle.dbLayoutHeader) - document.getElementById('PageFooter')?.setAttribute('style', mashStyle.dbLayoutFooter) - document.getElementById('DummyUUID')?.setAttribute('style', mashStyle.dbLayoutContent) - // Set up cross-site proxy const fetcher: any = $rdf.Fetcher fetcher.crossSiteProxyTemplate = window.origin + '/xss/?uri={uri}' diff --git a/src/styles/mash-utilities.css b/src/styles/mash-utilities.css new file mode 100644 index 00000000..c29390bc --- /dev/null +++ b/src/styles/mash-utilities.css @@ -0,0 +1,691 @@ +/* +** ------SolidOS Utility Classes------ +** Reusable utility classes for layout, spacing, accessibility, and components +*/ + +/* =========================================== + ACCESSIBILITY UTILITIES (HIGH PRIORITY) + =========================================== */ + +/* Screen reader only content - hidden visually but available to assistive tech */ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* Visually hidden but can become visible on focus */ +.visually-hidden { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.visually-hidden.focusable:focus, +.visually-hidden.focusable:active { + position: static !important; + width: auto !important; + height: auto !important; + padding: inherit !important; + margin: inherit !important; + overflow: visible !important; + clip: auto !important; + white-space: inherit !important; +} + +/* Minimum touch target for mobile accessibility (WCAG 2.5.5) */ +.min-touch-target { + min-height: var(--min-touch-target); + min-width: var(--min-touch-target); +} + +/* Reduced motion support */ +.reduced-motion { + animation: none !important; + transition: none !important; +} + +/* Focus ring utility */ +.focus-ring { + outline: var(--focus-ring-width) solid var(--color-primary); + outline-offset: var(--outline-offset-sm); +} + +.no-focus-ring { + outline: none; +} + +/* ARIA live regions - for dynamic content announcements */ +.live-region { + position: absolute; + left: -10000px; + width: 1px; + height: 1px; + overflow: hidden; +} + +/* Skip links for keyboard navigation */ + .skip-link { + position: absolute; + left: -999px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} + +.skip-link:focus { + position: static; + width: auto; + height: auto; + padding: 0.5em 1em; + background: #005fcc; + color: #fff; + z-index: var(--z-index-skip-links); + outline: none; +} + +/* =========================================== + LAYOUT UTILITIES + =========================================== */ + +.flex { + display: flex; +} + +.grid { + display: grid; +} + +.center { + display: flex; + justify-content: center; + align-items: center; +} + +.flex-center { + display: flex; + justify-content: center; + align-items: center; +} + +.flex-column { + display: flex; + flex-direction: column; +} + +.flex-column-center { + display: flex; + flex-direction: column; + align-items: center; +} + +.flex-row { + display: flex; + flex-direction: row; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.flex-1 { + flex: 1; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +/* =========================================== + SPACING UTILITIES + =========================================== */ + +/* Gap utilities */ +.gap-xs { gap: var(--spacing-xs); } +.gap-sm { gap: var(--spacing-sm); } +.gap-md { gap: var(--spacing-md); } +.gap-lg { gap: var(--spacing-lg); } +.gap-xl { gap: var(--spacing-xl); } + +/* Margin top */ +.mt-0 { margin-top: 0; } +.mt-xs { margin-top: var(--spacing-xs); } +.mt-sm { margin-top: var(--spacing-sm); } +.mt-md { margin-top: var(--spacing-md); } +.mt-lg { margin-top: var(--spacing-lg); } +.mt-xl { margin-top: var(--spacing-xl); } + +/* Margin bottom */ +.mb-0 { margin-bottom: 0; } +.mb-xs { margin-bottom: var(--spacing-xs); } +.mb-sm { margin-bottom: var(--spacing-sm); } +.mb-md { margin-bottom: var(--spacing-md); } +.mb-lg { margin-bottom: var(--spacing-lg); } +.mb-xl { margin-bottom: var(--spacing-xl); } + +/* Margin left */ +.ml-0 { margin-left: 0; } +.ml-xs { margin-left: var(--spacing-xs); } +.ml-sm { margin-left: var(--spacing-sm); } +.ml-md { margin-left: var(--spacing-md); } +.ml-lg { margin-left: var(--spacing-lg); } + +/* Margin right */ +.mr-0 { margin-right: 0; } +.mr-xs { margin-right: var(--spacing-xs); } +.mr-sm { margin-right: var(--spacing-sm); } +.mr-md { margin-right: var(--spacing-md); } +.mr-lg { margin-right: var(--spacing-lg); } + +/* Margin horizontal (left + right) */ +.mx-auto { margin-left: auto; margin-right: auto; } +.mx-xs { margin-left: var(--spacing-xs); margin-right: var(--spacing-xs); } +.mx-sm { margin-left: var(--spacing-sm); margin-right: var(--spacing-sm); } +.mx-md { margin-left: var(--spacing-md); margin-right: var(--spacing-md); } + +/* Margin vertical (top + bottom) */ +.my-xs { margin-top: var(--spacing-xs); margin-bottom: var(--spacing-xs); } +.my-sm { margin-top: var(--spacing-sm); margin-bottom: var(--spacing-sm); } +.my-md { margin-top: var(--spacing-md); margin-bottom: var(--spacing-md); } + +/* Padding */ +.p-0 { padding: 0; } +.p-xs { padding: var(--spacing-xs); } +.p-sm { padding: var(--spacing-sm); } +.p-md { padding: var(--spacing-md); } +.p-lg { padding: var(--spacing-lg); } +.p-xl { padding: var(--spacing-xl); } + +/* Padding top */ +.pt-xs { padding-top: var(--spacing-xs); } +.pt-sm { padding-top: var(--spacing-sm); } +.pt-md { padding-top: var(--spacing-md); } +.pt-lg { padding-top: var(--spacing-lg); } + +/* Padding bottom */ +.pb-xs { padding-bottom: var(--spacing-xs); } +.pb-sm { padding-bottom: var(--spacing-sm); } +.pb-md { padding-bottom: var(--spacing-md); } +.pb-lg { padding-bottom: var(--spacing-lg); } + +/* Padding horizontal */ +.px-xs { padding-left: var(--spacing-xs); padding-right: var(--spacing-xs); } +.px-sm { padding-left: var(--spacing-sm); padding-right: var(--spacing-sm); } +.px-md { padding-left: var(--spacing-md); padding-right: var(--spacing-md); } +.px-lg { padding-left: var(--spacing-lg); padding-right: var(--spacing-lg); } + +/* Padding vertical */ +.py-xs { padding-top: var(--spacing-xs); padding-bottom: var(--spacing-xs); } +.py-sm { padding-top: var(--spacing-sm); padding-bottom: var(--spacing-sm); } +.py-md { padding-top: var(--spacing-md); padding-bottom: var(--spacing-md); } +.py-lg { padding-top: var(--spacing-lg); padding-bottom: var(--spacing-lg); } + +/* =========================================== + TEXT UTILITIES + =========================================== */ + +.text-center { text-align: center; } +.text-left { text-align: left; } +.text-right { text-align: right; } + +.text-secondary { color: var(--color-text-secondary); } +.text-muted { color: var(--color-text-muted); } +.text-primary { color: var(--color-primary); } +.text-error { color: var(--color-error); } +.text-success { color: var(--color-success); } + +.text-bold { font-weight: var(--font-weight-bold); } +.text-normal { font-weight: var(--font-weight-normal); } + +.text-sm { font-size: var(--font-size-sm); } +.text-lg { font-size: var(--font-size-lg); } +.text-xl { font-size: var(--font-size-xl); } + +/* Text that respects accessibility guidelines */ +.text-readable { + line-height: var(--line-height-base); + max-width: var(--max-width-readable); +} + +.text-scale-friendly { + line-height: var(--line-height-base); + max-width: var(--max-width-readable-wide); +} + +/* Text with minimum font size safety */ +.text-small { + font-size: max(var(--font-size-sm), var(--min-font-size)); + line-height: var(--min-line-height); +} + +.text-large { + font-size: var(--font-size-lg); + line-height: var(--line-height-base); +} + +/* Text overflow handling */ +.text-truncate { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.text-wrap-anywhere { + overflow-wrap: anywhere; + word-break: break-word; +} + +.text-nowrap { + white-space: nowrap; +} + +/* High contrast text for accessibility */ +.text-contrast-high { + color: var(--color-text); + font-weight: var(--font-weight-bold); +} + +/* Better focus for text elements */ +.focusable-text:focus { + background-color: var(--color-primary-alpha-light); + outline: var(--focus-ring-width) solid var(--color-primary); + outline-offset: var(--outline-offset-sm); + border-radius: var(--outline-offset-sm); +} + +/* High contrast box */ +.high-contrast { + color: var(--color-text); + background: var(--color-background); + border: var(--border-width-thin) solid var(--color-border-pale); +} + +/* =========================================== + BORDER & SHADOW UTILITIES + =========================================== */ + +.rounded { border-radius: var(--border-radius-full); } +.rounded-sm { border-radius: var(--border-radius-base); } +.rounded-lg { border-radius: var(--border-radius-lg); } +.rounded-none { border-radius: 0; } + +.shadow { box-shadow: var(--box-shadow); } +.shadow-sm { box-shadow: var(--box-shadow-sm); } +.shadow-none { box-shadow: none; } + +.border { border: var(--border-width-thin) solid var(--color-border); } +.border-dark { border: var(--border-width-thin) solid var(--color-border-dark); } +.border-light { border: var(--border-width-thin) solid var(--color-border-light); } +.border-none { border: none; } + +/* =========================================== + BACKGROUND UTILITIES + =========================================== */ + +.bg-primary { + background: var(--color-primary); + color: var(--color-background); +} + +.bg-card { + background: var(--color-card-bg); +} + +.bg-section { + background: var(--color-section-bg); +} + +.bg-transparent { + background: transparent; +} + +.bg-white { + background: var(--color-background); +} + +/* =========================================== + BUTTON COMPONENTS + =========================================== */ + +/* Primary button */ +.btn-primary { + min-height: var(--min-touch-target); + padding: var(--spacing-sm) var(--spacing-md); + border: var(--border-width-thin) solid var(--color-primary); + border-radius: var(--border-radius-base); + background: var(--color-primary); + color: var(--color-background); + font-weight: var(--font-weight-bold); + cursor: pointer; + transition: all var(--animation-duration) ease; + text-decoration: none; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.btn-primary:hover { + background: color-mix(in srgb, var(--color-primary) 85%, black); + box-shadow: 0 2px 4px var(--color-primary-alpha); +} + +.btn-primary:active { + box-shadow: 0 1px 2px var(--color-primary-alpha); +} + +.btn-primary:focus, +.btn-primary:focus-visible { + outline: var(--focus-indicator-width) solid var(--color-primary); + outline-offset: var(--outline-offset-sm); + box-shadow: 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha); +} + +.btn-primary:disabled { + opacity: var(--opacity-disabled); + cursor: not-allowed; + transform: none; +} + +/* Secondary button */ +.btn-secondary { + min-height: var(--min-touch-target); + padding: var(--spacing-sm) var(--spacing-md); + border: var(--border-width-thin) solid var(--color-secondary); + border-radius: var(--border-radius-base); + background: var(--color-secondary); + color: var(--color-background); + font-weight: var(--font-weight-bold); + cursor: pointer; + transition: all var(--animation-duration) ease; + text-decoration: none; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.btn-secondary:hover { + background: color-mix(in srgb, var(--color-secondary) 85%, black); +} + +.btn-secondary:disabled { + opacity: var(--opacity-disabled); + cursor: not-allowed; +} + +/* Outline button */ +.btn-outline { + min-height: var(--min-touch-target); + padding: var(--spacing-sm) var(--spacing-md); + border: var(--border-width-medium) solid var(--color-primary); + border-radius: var(--border-radius-base); + background: transparent; + color: var(--color-primary); + font-weight: var(--font-weight-bold); + cursor: pointer; + transition: all var(--animation-duration) ease; + text-decoration: none; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.btn-outline:hover { + background: var(--color-primary); + color: var(--color-background); +} + +.btn-outline:disabled { + opacity: var(--opacity-disabled); + cursor: not-allowed; +} + +/* Transparent button (for solid-ui integration) */ +.btn-transparent { + background-color: transparent; + border: none; + cursor: pointer; +} + +.btn-transparent:hover { + background-color: var(--color-hover-bg); +} + +/* Button focus state */ +.action-button-focus:focus, +.action-button-focus:focus-visible { + outline: var(--focus-indicator-width) solid var(--color-primary) !important; + outline-offset: var(--outline-offset-sm) !important; + box-shadow: 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha) !important; + z-index: 1; +} + +/* =========================================== + CARD & SECTION COMPONENTS + =========================================== */ + +.module-card { + background: var(--color-card-bg); + border-radius: var(--border-radius-full); + box-shadow: var(--box-shadow); + padding: var(--spacing-lg); + margin-bottom: var(--spacing-lg); + width: 100%; + max-width: 100%; + box-sizing: border-box; +} + +.module-header { + text-align: center; + margin-bottom: var(--spacing-md); +} + +.section-centered { + display: flex; + flex-direction: column; + align-items: center; +} + +.section-bg { + background: var(--color-section-bg); + border-radius: var(--border-radius-full); + box-shadow: var(--box-shadow); + padding: var(--spacing-md); +} + +.section-title { + font-size: var(--font-size-xl); + font-weight: var(--font-weight-bold); + color: var(--color-primary); + margin: 0; +} + +/* =========================================== + LIST & TABLE UTILITIES + =========================================== */ + +.list-reset { + list-style: none; + padding: 0; + margin: 0; +} + +.zebra-stripe tr:nth-child(even), +.zebra-stripe > *:nth-child(even) { + background-color: var(--color-zebra-stripe); +} + +/* =========================================== + DISPLAY & VISIBILITY UTILITIES + =========================================== */ + +.block { display: block; } +.inline { display: inline; } +.inline-block { display: inline-block; } +.hidden { display: none; } +.visible { visibility: visible; } +.invisible { visibility: hidden; } + +/* =========================================== + WIDTH & HEIGHT UTILITIES + =========================================== */ + +.w-full { width: 100%; } +.w-auto { width: auto; } +.h-full { height: 100%; } +.h-auto { height: auto; } +.max-w-full { max-width: 100%; } + +/* =========================================== + POSITION UTILITIES + =========================================== */ + +.relative { position: relative; } +.absolute { position: absolute; } +.fixed { position: fixed; } +.sticky { position: sticky; } + +/* =========================================== + LOADING & STATUS INDICATORS + =========================================== */ + +.loading-text { + color: var(--color-primary); + text-align: center; + margin: var(--spacing-md) 0; +} + +.loading-spinner { + width: var(--min-touch-target); + height: var(--min-touch-target); + border: var(--focus-indicator-width) solid var(--color-border-pale); + border-top: var(--focus-indicator-width) solid var(--color-primary); + border-radius: var(--border-radius-full); + animation: spin var(--animation-duration-slow) linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* =========================================== + ARIA ROLE STYLING + =========================================== */ + +[role="alert"] { + padding: var(--spacing-md); + border: var(--border-width-medium) solid var(--color-error); + border-radius: var(--border-radius-base); + background-color: var(--color-primary-alpha-light); + margin: var(--spacing-md) 0; +} + +[role="status"] { + padding: var(--spacing-md); + border: var(--border-width-medium) solid var(--color-success); + border-radius: var(--border-radius-base); + background-color: var(--color-success-alpha); + margin: var(--spacing-md) 0; +} + +/* =========================================== + FOCUS TRAP FOR MODALS + =========================================== */ + +.focus-trap { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: var(--z-index-modal); + background: var(--overlay-bg); + display: flex; + justify-content: center; + align-items: center; +} + +/* =========================================== + MEDIA QUERIES + =========================================== */ + +/* Respect reduced motion preferences */ +@media (prefers-reduced-motion: reduce) { + .loading-spinner { + animation: none; + border-top-color: var(--color-primary); + } + + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} + +/* High contrast mode support */ +@media (prefers-contrast: high) { + .btn-primary, + .btn-secondary, + .btn-outline { + border-width: var(--border-width-medium); + } + + .module-card, + .section-bg { + border: var(--border-width-medium) solid var(--color-border-dark); + } +} + +/* Mobile minimum font size */ +@media screen and (max-width: 768px) { + html { + font-size: max(16px, 1rem); + } +} + +/* Smooth scroll when no motion preference */ +@media (prefers-reduced-motion: no-preference) { + html { + scroll-behavior: smooth; + } +} diff --git a/src/styles/mash.css b/src/styles/mash.css index 5d1d971c..4a331aaf 100644 --- a/src/styles/mash.css +++ b/src/styles/mash.css @@ -1,25 +1,90 @@ -/* Some common style for the Solid Data Browser -** -** -** Do NOT use physical measures, but font-relative measures. -** 2006-10-21 timbl converted px to em at approx 1em = 12px +/* +** ------SolidOS Styles------ ** */ - -/* If you need style in a pane, insert it in the dom (2016)*/ +@import url("./themes.css"); +@import url("./mash-utilities.css"); /* I couldn't find the code for the collapse image. this is a quick work around to make the collapsing easier to use ( the triangles dont jump 20 pixels). ~cm2 */ -img[title="Hide details."]{ float:left } +img[title="Hide details."] { + float: left; +} + +html, body { + margin: 0; + padding: 0; + font-family: var(--font-family-base); + font-size: var(--font-size-base); + line-height: var(--line-height-base); + background: var(--color-background); + color: var(--color-text); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizeLegibility; +} + +/* Improved heading hierarchy */ +h1, h2, h3, h4, h5, h6 { + color: var(--color-primary); + font-weight: 600; + line-height: var(--line-height-tight); + margin-top: 0; + margin-bottom: var(--spacing-sm); +} + +h1 { font-size: 2em; } /* 32px */ +h2 { font-size: 1.5em; } /* 24px */ +h3 { font-size: 1.25em; } /* 20px */ +h4 { font-size: 1.125em; }/* 18px */ +h5, h6 { font-size: 1em; }/* 16px */ + +/* Better paragraph spacing */ +p { + margin-bottom: var(--spacing-md); + line-height: var(--line-height-base); + max-width: 65ch; /* Optimal reading width */ +} + +/* Improved link accessibility */ +a { + color: var(--color-primary); + text-decoration: underline; + text-underline-offset: 0.125em; + text-decoration-thickness: 0.0625em; +} + +a:hover, a:focus { + text-decoration-thickness: 0.125em; +} -html { height: 100%; line-height:1.15 } -body { height: 100%; background-color: white ; font-family: sans-serif } /* was: font-size: 80%; */ +/* Main page elements in databrowser.html */ +#PageBody { + display: flex; + flex-direction: column; +} +#DummyUUID { + flex: 1 0 auto; +} +#PageHeader { + flex-shrink: 0; +} +#PageFooter { + flex-shrink: 0; +} -.warning { color: red; } -.selected { background-color: #8F3 } +.warning { + color: var(--color-warning); +} +.selected { + background-color: var(--color-selected-bg); +} -.licOkay { background-color: #dfd } +/* used in profile-pane as success button */ +.licOkay { + background-color: var(--color-success-bg); +} /* ** other potential colors for CC: @@ -28,24 +93,50 @@ body { height: 100%; background-color: white ; font-family: sans-serif } /* was ** #ccff99, mit page color */ -strong { font-size: 120%; color: #333; font-weight: bold; } -div.Outliner { margin-top: 2em; padding: 0.8em; } -form#TabulateForm { padding: 0.8em } -div#addViewForm { padding: 0.8em } -iframe { background: white } +strong { + font-size: 120%; + color: var(--color-text); + font-weight: bold; +} +div.Outliner { + margin-top: 2em; + padding: 0.8em; +} +form#TabulateForm { + padding: 0.8em; +} +div#addViewForm { + padding: 0.8em; +} +iframe { + background: var(--color-iframe-bg); +} /* Map */ -img.pic { max-height: 20em } +img.pic { + max-height: 20em; +} /* Sources */ -.fetched { background-color: #eeffee } -.requested { background-color: yellow } -.failed { color: red; background-color: white } -.unparseable { background-color: #ffcc00; } +.fetched { + background-color: var(--color-fetch-bg); +} +.requested { + background-color: var(--color-request-bg); +} +.failed { + color: var(--color-warning); + background-color: var(--color-error-bg); +} +.unparseable { + background-color: var(--color-unparseable-bg); +} -pre#status { font-size: 100% } +pre#status { + font-size: 100%; +} /* Panes */ /* @@ -62,13 +153,13 @@ div.instancePane { /* ***************** For the Justification UI Panes **********/ div.container { -border-top: solid 5px black; -border-left: solid 5px black; -border-bottom: solid 5px black; -border-right: solid 5px black; -margin-top: 0.5em; -margin-bottom: 0.5em; -border-radius: 0.75em; + border-top: solid 5px var(--color-container-border); + border-left: solid 5px var(--color-container-border); + border-bottom: solid 5px var(--color-container-border); + border-right: solid 5px var(--color-container-border); + margin-top: 0.5em; + margin-bottom: 0.5em; + border-radius: 0.75em; } /* div.nonCompliantPane { @@ -94,136 +185,209 @@ div.compliantPane { } */ div.justification { -font-size: 100%; -padding: 0 5px; -width: 80%; /* @@ Don't use pixels -- use em */ -background-color: white; -margin-top: 0.5em; margin-bottom: 0.5em; + font-size: 100%; + padding: 0 5px; + width: 80%; /* @@ Don't use pixels -- use em */ + background-color: var(--color-background); + margin-top: 0.5em; + margin-bottom: 0.5em; } - div.description { -font-size: 120%; -border-top: solid 1px yellow; -border-left: solid 1px yellow; -border-bottom: solid 1px yellow; -border-right: solid 1px yellow; -padding: 15px; -width: 100%; -background-color: #ffffdd; -margin-top: 0.5em; -margin-bottom: 0.5em; -margin-left: 0.5em; -margin-right: 0.5em; -border-radius: 0.75em; -position:relative; -left:0% + font-size: 120%; + border-top: solid 1px var(--color-alert-border); + border-left: solid 1px var(--color-alert-border); + border-bottom: solid 1px var(--color-alert-border); + border-right: solid 1px var(--color-alert-border); + padding: 15px; + width: 100%; + background-color: var(--color-alert-bg); + margin-top: 0.5em; + margin-bottom: 0.5em; + margin-left: 0.5em; + margin-right: 0.5em; + border-radius: 0.75em; + position: relative; + left: 0%; } div.premises { -font-size: 100%; -border-top: solid 1px #3399ff; -border-left: solid 1px #3399ff; -border-bottom: solid 1px #3399ff; -border-right: solid 1px #3399ff; -padding: 0.5px; -width: 100%; -background-color: #ccccff; -margin-top: 0.5em; -margin-bottom: 0.5em; -margin-left: 0.5em; -margin-right: 0.5em; -border-radius: 0.75em; -position:relative; -left:0% /*May be we could shift the left margin a bit?*/ + font-size: 100%; + border-top: solid 1px var(--color-info-border); + border-left: solid 1px var(--color-info-border); + border-bottom: solid 1px var(--color-info-border); + border-right: solid 1px var(--color-info-border); + padding: 0.5px; + width: 100%; + background-color: var(--color-info-bg); + margin-top: 0.5em; + margin-bottom: 0.5em; + margin-left: 0.5em; + margin-right: 0.5em; + border-radius: 0.75em; + position: relative; + left: 0%; /*May be we could shift the left margin a bit?*/ } /* ***************** Social Pane **********/ div.socialPane { -border-top: solid 1px #777; border-bottom: solid 1px #777; -padding-top: 0.5em; padding-bottom: 0.5em; -margin: 0 } - -img.foafPic { width: 100% ; border: none; margin: 0; padding: 0; -/*float:right; */} + border-top: solid 1px var(--color-border-dark); + border-bottom: solid 1px var(--color-border-dark); + padding-top: 0.5em; + padding-bottom: 0.5em; + margin: 0; +} +img.foafPic { + width: 100%; + border: none; + margin: 0; + padding: 0; + /*float:right; */ +} div.mildNotice { -border: dashed 0.1em #777; margin: 1em; padding: 1em; -width: 80%; /* float: right; */ -background-color: #ffe; } - -.friendBox { /* height: 4em; */ border-top: solid 0.01em #ccc; margin: 0; padding: 0.3em; -/* float: left; */} -.friendBoxBig { height: 20em; border-top: solid 0.01em #202; /* float: left; */} - -.socialPane a { color: #3B5998; text-decoration: none; font-weight: bold} -.socialPane a:link { color: #3B5998; text-decoration: none; font-weight: bold} -.socialPane a:visited { color: #3B5998; text-decoration: none; font-weight: bold} -.socialPane a:hover { color: #3B5998; text-decoration: underline; font-weight: bold} -.socialPane a:active { color: #888; text-decoration: none; } - -img.foafThumb { height: 3em ; border: 0px; margin: 0.1em; padding: 0.1em; -vertical-align: middle; + border: dashed 0.1em var(--color-border-dark); + margin: 1em; + padding: 1em; + width: 80%; /* float: right; */ + background-color: var(--color-mild-notice-bg); +} + +.friendBox { + /* height: 4em; */ + border-top: solid 0.01em var(--color-border); + margin: 0; + padding: 0.3em; + /* float: left; */ +} +.friendBoxBig { + height: 20em; + border-top: solid 0.01em var(--color-text-dark-gray); /* float: left; */ +} + +.socialPane a { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.socialPane a:link { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.socialPane a:visited { + color: var(--color-text-link-visited); + text-decoration: none; + font-weight: bold; +} +.socialPane a:hover { + color: var(--color-text-link-hover); + text-decoration: underline; + font-weight: bold; +} +.socialPane a:active { + color: var(--color-text-link-active); + text-decoration: none; +} + +img.foafThumb { + height: 3em; + border: 0px; + margin: 0.1em; + padding: 0.1em; + vertical-align: middle; } /* Thumbnail of a fiend etc */ -.friendBox .confirmed { font-weight: bold; } +.friendBox .confirmed { + font-weight: bold; +} -table.inputForm { font-size: 100% } +table.inputForm { + font-size: 100%; +} .mainBlock { -background: #fff; -color: #000; -float: left; -width: 46%; -margin: 0; -border-left: 1px solid #ccc; -border-right: 1px solid #ccc; -border-bottom: 1px solid #ccc; -padding: 0; + background: var(--color-main-block-bg); + color: var(--color-text); + float: left; + width: 46%; + margin: 0; + border-left: 1px solid var(--color-border); + border-right: 1px solid var(--color-border); + border-bottom: 1px solid var(--color-border); + padding: 0; } .navBlock { -background-color: #eee; -float: left; -width: 25%; -border: 0; -padding: 0.5em; -margin: 0; + background-color: var(--color-nav-block-bg); + float: left; + width: 25%; + border: 0; + padding: 0.5em; + margin: 0; } .navBlock .navSection { -border: solid 0.05em gray; -padding: 0.5em; -border-radius: 0.5em; /* CSS3: border-radius: .4em; */ + border: solid 0.05em var(--color-nav-block-border); + padding: 0.5em; + border-radius: 0.5em; /* CSS3: border-radius: .4em; */ } -div.socialPane h2 { color: #202 } -div.socialPane h3 { color: #202 } +div.socialPane h2 { + color: var(--color-text-dark-gray); +} +div.socialPane h3 { + color: var(--color-text-dark-gray); +} div.social_linkButton { -width: 80%; -background-color: #fff; -border: solid 0.05em #ccc; -margin-top: 0.1em; margin-bottom: 0.1em; -padding: 0.1em; -text-align: center; + width: 80%; + background-color: var(--color-background); + border: solid 0.05em var(--color-border); + margin-top: 0.1em; + margin-bottom: 0.1em; + padding: 0.1em; + text-align: center; } /* For question-and-answer stuff for new web id but quite reusable. */ -.answer { font-style: italic; color: #00c; text-decoration: underline; } -.tip { font-style: normal; color: #333; margin: 1em;} -.task { font-style: normal; color: #333; margin: 1em; -background-color: #ffe; padding: 1em; -border-radius: 1em; /* CSS3: border-radius: 1em; */ -} -.success {background-color: #efe } -.failure {background-color: white ; border: 0.5em red} -div.unknown { display:none } -div.yes > div.negative { display: none } -div.no > div.affirmative { display: none } +.answer { + font-style: italic; + color: var(--color-text-answer); + text-decoration: underline; +} +.tip { + font-style: normal; + color: var(--color-text); + margin: 1em; +} +.task { + font-style: normal; + color: var(--color-text); + margin: 1em; + background-color: var(--color-mild-notice-bg); + padding: 1em; + border-radius: 1em; /* CSS3: border-radius: 1em; */ +} +.success { + background-color: var(--color-success-bg); +} +.failure { + background-color: var(--color-failure-bg); + border: 0.5em var(--color-failure-border); +} +div.unknown { + display: none; +} +div.yes > div.negative { + display: none; +} +div.no > div.affirmative { + display: none; +} /******************* Exception Pane ******** ** @@ -231,228 +395,301 @@ div.no > div.affirmative { display: none } ** throws an exception **/ -div.exceptionPane pre { background-color: #fee; } - - +div.exceptionPane pre { + background-color: var(--color-error-notice-bg); +} /******************* Category Pane *********/ -.categoryPane a { color: #3B5998; text-decoration: none; font-weight: bold} -.categoryPane a:link { color: #3B5998; text-decoration: none; font-weight: bold} -.categoryPane a:visited { color: #3B5998; text-decoration: none; font-weight: bold} -.categoryPane a:hover { color: #3B5998; text-decoration: underline; font-weight: bold} -.categoryPane a:active { color: #888; text-decoration: none; } +.categoryPane a { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.categoryPane a:link { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.categoryPane a:visited { + color: var(--color-text-link-visited); + text-decoration: none; + font-weight: bold; +} +.categoryPane a:hover { + color: var(--color-text-link-hover); + text-decoration: underline; + font-weight: bold; +} +.categoryPane a:active { + color: var(--color-text-link-active); + text-decoration: none; +} -.categoryBottomClass { background-color: #efe ; border: 0.1em solid green } +.categoryBottomClass { + background-color: var(--color-category-class-bg); + border: 0.1em solid var(--color-category-class-border); +} -.categoryTable { padding-left: 2em;} -.categoryPane { background-color: #f8fff8; padding: 0.5em; -border-width: 0.1em; border-color: #777777; -border-radius: 1em; /* CSS3: border-radius: .4em; */ } +.categoryTable { + padding-left: 2em; +} +.categoryPane { + background-color: var(--color-category-bg); + padding: 0.5em; + border-width: 0.1em; + border-color: var(--color-category-border); + border-radius: 1em; /* CSS3: border-radius: .4em; */ +} -.categoryPane a.categoryWhy { color: #ddd} -.categoryPane a.categoryWhy:link { color: #ddd; text-decoration: none; font-weight: bold} -.categoryPane a.categoryWhy:visited { color: #ddd; text-decoration: none; font-weight: bold} -.categoryPane a.categoryWhy:hover { color: #3B5998; text-decoration: underline; font-weight: bold} -.categoryPane a.categoryWhy:active { color: #ddd; text-decoration: none; } +.categoryPane a.categoryWhy { + color: var(--color-border-pale); +} +.categoryPane a.categoryWhy:link { + color: var(--color-border-pale); + text-decoration: none; + font-weight: bold; +} +.categoryPane a.categoryWhy:visited { + color: var(--color-border-pale); + text-decoration: none; + font-weight: bold; +} +.categoryPane a.categoryWhy:hover { + color: var(--color-text-link-hover); + text-decoration: underline; + font-weight: bold; +} +.categoryPane a.categoryWhy:active { + color: var(--color-border-pale); + text-decoration: none; +} -.categoryPane a.categoryWhy { color:grey } +.categoryPane a.categoryWhy { + color: grey; +} /* a.categoryWhy:hover { color: #3B5998 } */ - /******************* PubsPane *********/ .pubsPane { -background-color: #F2F6DA; -border-width: 0.1em; -border-color: #777777; -border-radius: 1em; /* CSS3: border-radius: .4em; */ -padding: 1em; + background-color: var(--color-pubs-pane-bg); + border-width: 0.1em; + border-color: var(--color-pubs-pane-border); + border-radius: 1em; /* CSS3: border-radius: .4em; */ + padding: 1em; -text-decoration: none; -font-weight: bold; + text-decoration: none; + font-weight: bold; } .pubsPane h2 { -margin: 0; -padding: 0; + margin: 0; + padding: 0; } .pubsPane form { -padding-left: 1em; + padding-left: 1em; } /*Clear both - start things on individula lines */ .pubsRow { -margin: 0.5em 3em 0.5em 0em; -clear: both; + margin: 0.5em 3em 0.5em 0em; + clear: both; } /*inputs float right to line up */ .pubsRow input { -float: right; -width: 20em; -height: 1em; + float: right; + width: 20em; + height: 1em; } #inpid_book_description { -float: right; -height: 8em; -width: 17em; + float: right; + height: 8em; + width: 17em; } .pubsRow button { -float: left; -height: 2em; -padding: 0.5em; -margin: 0.5em; + float: left; + height: 2em; + padding: 0.5em; + margin: 0.5em; } -.hideit -{ -display: none; +.hideit { + display: none; } .active { -/* display: visible; */ + /* display: visible; */ } .submitRow { -clear: both; -height: 5em; + clear: both; + height: 5em; } .submitRow button { -width: 7em; -height: 100%; + width: 7em; + height: 100%; } #buttonid { -display: none; + display: none; } -#buttonid.active{ -display: inline; +#buttonid.active { + display: inline; } - - - /******************* CV Pane *****************/ .CVclass { -background-color: LightSkyBlue; + background-color: var(--color-cv-pane-bg); } /******************* Data Content Pane *****************/ div.dataContentPane { -border-top: solid 1px black; -border-left: solid 1px black; -border-bottom: solid 1px #777; -border-right: solid 1px #777; -padding: 0.5em; /* color: #404; */ -margin-top: 0.5em; margin-bottom: 0.5em; + border-top: solid 1px var(--color-data-pane-border-top); + border-left: solid 1px var(--color-data-pane-border-top); + border-bottom: solid 1px var(--color-data-pane-border-side); + border-right: solid 1px var(--color-data-pane-border-side); + padding: 0.5em; /* color: #404; */ + margin-top: 0.5em; + margin-bottom: 0.5em; } .nestedFormula { -border-top: solid 1px black; -border-left: solid 1px black; -border-bottom: solid 1px #777; -border-right: solid 1px #777; -padding: 0.5em; -border-radius: 0.5em; + border-top: solid 1px var(--color-data-pane-border-top); + border-left: solid 1px var(--color-data-pane-border-top); + border-bottom: solid 1px var(--color-data-pane-border-side); + border-right: solid 1px var(--color-data-pane-border-side); + padding: 0.5em; + border-radius: 0.5em; } div.dataContentPane td { -padding-left: 0.2em; -padding-top: 0.1em; -padding-right: 0.2em; -padding-bottom: 0.05em; -/* vertical-align: middle; /*@@ Lalana's request*/ -vertical-align: top; /*@@ Tims's request*/ -/* With middel, you can't tell what is with what */ -/* background-color: white; */ + padding-left: 0.2em; + padding-top: 0.1em; + padding-right: 0.2em; + padding-bottom: 0.05em; + /* vertical-align: middle; /*@@ Lalana's request*/ + vertical-align: top; /*@@ Tims's request*/ + /* With middel, you can't tell what is with what */ + /* background-color: white; */ } div.dataContentPane tr { -margin-bottom: 0.6em; -padding-top: 1em; -padding-bottom: 1em; - + margin-bottom: 0.6em; + padding-top: 1em; + padding-bottom: 1em; } -.dataContentPane a { color: #3B5998; text-decoration: none; font-weight: bold} -.dataContentPane a:link { color: #3B5998; text-decoration: none; font-weight: bold} -.dataContentPane a:visited { color: #3B5998; text-decoration: none; font-weight: bold} -.dataContentPane a:hover { color: #3B5998; text-decoration: underline; font-weight: bold} -.dataContentPane a:active { color: #888; text-decoration: none; } +.dataContentPane a { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.dataContentPane a:link { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.dataContentPane a:visited { + color: var(--color-text-link-visited); + text-decoration: none; + font-weight: bold; +} +.dataContentPane a:hover { + color: var(--color-text-link-hover); + text-decoration: underline; + font-weight: bold; +} +.dataContentPane a:active { + color: var(--color-text-link-active); + text-decoration: none; +} -.dataContentPane.embeddedText { white-space: pre-wrap;} -.dataContentPane.embeddedXHTML {} +.dataContentPane.embeddedText { + white-space: pre-wrap; +} +.dataContentPane.embeddedXHTML { +} /* div.dataContentPane a { text-decoration: none; color: #006} /* Only very slightly blue */ -div.dataContentPane td.pred { min-width: 12em } /* Keep aligned with others better */ -div.dataContentPane td.pred a { color: #444 } /* Greyish as form field names have less info value */ +div.dataContentPane td.pred { + min-width: 12em; +} /* Keep aligned with others better */ +div.dataContentPane td.pred a { + color: var(--color-text-muted); +} /* Greyish as form field names have less info value */ /* .collectionAsTables {border-right: green 1px; margin: 0.2em;} */ - - div.n3Pane { -padding: 1em; -border-top: solid 1px black; -border-left: solid 1px black; -border-bottom: solid 1px #777; -border-right: solid 1px #777; -color: #004; + padding: 1em; + border-top: solid 1px var(--color-data-pane-border-top); + border-left: solid 1px var(--color-data-pane-border-top); + border-bottom: solid 1px var(--color-data-pane-border-side); + border-right: solid 1px var(--color-data-pane-border-side); + color: var(--color-text-blue); } -.imageView { border: 1em white; margin: 1em; } +.imageView { + border: 1em var(--color-background); + margin: 1em; +} -.n3Pane pre { font-size: 120%; } -div.n3Pane { } +.n3Pane pre { + font-size: 120%; +} +div.n3Pane { +} -.RDFXMLPane pre { font-size: 120%; } -div.RDFXMLPane { } +.RDFXMLPane pre { + font-size: 120%; +} +div.RDFXMLPane { +} div.RDFXMLPane { -padding: 1em; -border-top: solid 2px black; -border-left: solid 2px black; -border-bottom: solid 2px #777; -border-right: solid 2px #777; -color: #440; + padding: 1em; + border-top: solid 2px var(--color-data-pane-border-top); + border-left: solid 2px var(--color-data-pane-border-top); + border-bottom: solid 2px var(--color-data-pane-border-side); + border-right: solid 2px var(--color-data-pane-border-side); + color: var(--color-text-brown); } /* Generic things useful anywhere */ - img.hideTillHover { -visibility:hidden; + visibility: hidden; } -img.hideTillHover:hover { -visibility:visible; +img.hideTillHover:hover { + visibility: visible; } -.hideTillHover img{ -visibility:hidden; +.hideTillHover img { + visibility: hidden; } .hideTillHover:hover img { -visibility:visible; + visibility: visible; } -.hideTillHover a{ -visibility:hidden; +.hideTillHover a { + visibility: hidden; } .hideTillHover:hover a { -visibility:visible; + visibility: visible; } -.hoverControl .hoverControlHide{ -visibility:hidden; +.hoverControl .hoverControlHide { + visibility: hidden; } .hoverControl:hover .hoverControlHide { -visibility:visible; + visibility: visible; } - /* Pane icons: */ /* @@ -478,311 +715,369 @@ visibility:visible; .hoverControl:hover .paneHidden { border-radius: 0.5em; margin-left: 1em; padding: 3px; visibility:visible; } */ - - /* outline object view */ -img.outlineImage { max-height: 20em; max-width: 30em } /* save vertical space */ +img.outlineImage { + max-height: 20em; + max-width: 30em; +} /* save vertical space */ /* Compare facebook which only limits width -> lots of tall images! */ -img.phoneIcon { border: 0; margin-left: 1em} +img.phoneIcon { + border: 0; + margin-left: 1em; +} -table#sources { width: 100% } +table#sources { + width: 100%; +} -table { border-spacing: 0} +table { + border-spacing: 0; +} -table { margin: 0em } +table { + margin: 0em; +} -td { font-size: 100%; -border-left: none; -border-top: none; -border-right: none; -border-bottom: none; -margin: 0.2em; -/* border-right: solid purple 0.1em ; +td { + font-size: 100%; + border-left: none; + border-top: none; + border-right: none; + border-bottom: none; + margin: 0.2em; + /* border-right: solid purple 0.1em ; border-bottom: solid purple 0.1em; */ -vertical-align: top; -/* display: compact; Causes console errors in ffox */ + vertical-align: top; + /* display: compact; Causes console errors in ffox */ } -td.pred { padding-left: 0.5em } +td.pred { + padding-left: 0.5em; +} /*td.optButton { display: none } tr[parentOfSelected] > td.pred td.optButton { display: block } */ -table.results { width: 100% } - -table.results td { font-size: 100%; -background-color:#fff; -border-left: none; -border-top: none; -border-right: none; -border-bottom: none; -margin: 0.1em; -border-right: solid #777 0.1em ; -border-bottom: solid #777 0.1em; +table.results { + width: 100%; +} -vertical-align: top } +table.results td { + font-size: 100%; + background-color: var(--color-table-result-bg); + border-left: none; + border-top: none; + border-right: none; + border-bottom: none; + margin: 0.1em; + border-right: solid var(--color-table-border-dark) 0.1em; + border-bottom: solid var(--color-table-border-dark) 0.1em; + vertical-align: top; +} -table.results th { font-size: 100%; -background-color: #ddf; -border-left: none; -border-top: none; -border-right: solid #777 0.1em; -border-bottom: solid #777 0.1em; -margin: 0.3em; -padding-top: 0.5em; padding-right: 0.5em; -border-right: solid #777 0.1em ; -border-bottom: solid #777 0.1em; +table.results th { + font-size: 100%; + background-color: var(--color-table-header-bg); + border-left: none; + border-top: none; + border-right: solid var(--color-table-border-dark) 0.1em; + border-bottom: solid var(--color-table-border-dark) 0.1em; + margin: 0.3em; + padding-top: 0.5em; + padding-right: 0.5em; + border-right: solid var(--color-table-border-dark) 0.1em; + border-bottom: solid var(--color-table-border-dark) 0.1em; -vertical-align: top } + vertical-align: top; +} /* Hide sections of the display. Collpase not actually in CSS1 except for table row and col. Supposed to leave layoutunchanged. So we float it too. */ -.collapse { display: none } -.expand { display: block } +.collapse { + display: none; +} +.expand { + display: block; +} /* log classes */ -.nrml { color: black; } -.info { color: black; } -.warn { color: black; background-color: #ffd; } -.eror { color: black; background-color: #fdd; } -.mesg { color: green; } -.dbug { color: black; background-color: #ddf;} /* Blue */ +.nrml { + color: var(--color-log-normal); +} +.info { + color: var(--color-log-info); +} +.warn { + color: var(--color-log-warn); + background-color: var(--color-log-warn-bg); +} +.eror { + color: var(--color-log-error); + background-color: var(--color-log-error-bg); +} +.mesg { + color: var(--color-log-message); +} +.dbug { + color: var(--color-log-debug); + background-color: var(--color-log-debug-bg); +} /* Blue */ /* Try to get the icons to flush right in the cell */ .sortheader { -color: black; -text-decoration: none; -position: relative; -border:none; /* Jim's commented out */ + color: var(--color-log-normal); + text-decoration: none; + position: relative; + border: none; /* Jim's commented out */ } -.colclose { float: right; color: #aaa } /* Should be 67% transp black */ -.sortarrow { float: left; color: #aaa; border: none;} - +.colclose { + float: right; + color: var(--color-col-close); +} /* Should be 67% transp black */ +.sortarrow { + float: left; + color: var(--color-sort-arrow); + border: none; +} /* CSS Stuff for tabbed Views.. */ table.viewTable { -padding: 0; -margin: 0; -border-style: none; -border-width: 0; -height: 40em; -width: 100%; -border-spacing: 0; + padding: 0; + margin: 0; + border-style: none; + border-width: 0; + height: 40em; + width: 100%; + border-spacing: 0; } div.viewTabs { -background-color: #fff; -padding:0; + background-color: var(--color-view-tab-bg); + padding: 0; } div.viewWindows { -width: 100%; -height:100%; -overflow: auto; -margin: 0em; -padding:0em; -border-right: solid #aaa 0.1em; /* was 2px */ -border-left: solid #aaa 0.1em; -border-bottom: solid #aaa 0.1em; -background-color: #ccc; + width: 100%; + height: 100%; + overflow: auto; + margin: 0em; + padding: 0em; + border-right: solid var(--color-border-light) 0.1em; /* was 2px */ + border-left: solid var(--color-border-light) 0.1em; + border-bottom: solid var(--color-border-light) 0.1em; + background-color: var(--color-view-window-bg); } div.querySelect { -background-color: #ccc; -width:100%; -height:100%; -border-left: solid #aaa 0.1em; -border-bottom: solid #aaa 0.1em; -overflow:auto; -margin: 0em; -padding:0em; + background-color: var(--color-query-select-bg); + width: 100%; + height: 100%; + border-left: solid var(--color-border-light) 0.1em; + border-bottom: solid var(--color-border-light) 0.1em; + overflow: auto; + margin: 0em; + padding: 0em; } td.viewTableData { -padding: 0em; -margin: 0em; -height:100%; -width:80%; + padding: 0em; + margin: 0em; + height: 100%; + width: 80%; } td.queryTableData { -padding: 0em; -margin: 0em; -border-width: 0em; -height:100%; -width:20%; -border-style:none; + padding: 0em; + margin: 0em; + border-width: 0em; + height: 100%; + width: 20%; + border-style: none; } table.viewTable tr { -height: 100%; -margin: 0em; -padding: 0em; -border-style:none; + height: 100%; + margin: 0em; + padding: 0em; + border-style: none; } - a { -color: #3B5998; -text-decoration: none; -cursor: pointer; -} -a.inactive{ -background-color: #eee; -border-right:solid #ddd 0.1em; -border-top:solid #aaa 0.1em; -border-left:solid #aaa 0.1em; -padding-top: 0.3em; -padding-left: 0.8em; -padding-right: 0.8em; -padding-bottom: 0em; -margin-right: 0.1em; -color: #99f; -text-decoration:none; -} - -a.active{ -background-color: #ccc; -border-right:solid #ddd 0.1em; -border-top:solid #aaa 0.1em; -border-left:solid #aaa 0.1em; -padding-top: 0.3em; -padding-left: 0.8em; -padding-right: 0.8em; -padding-bottom:0em; -margin-right:0.1em; -color: #22f; -text-decoration:none; + color: var(--color-text-link); + text-decoration: none; + cursor: pointer; +} +a.inactive { + background-color: var(--color-tab-inactive-bg); + border-right: solid var(--color-tab-inactive-border) 0.1em; + border-top: solid var(--color-tab-inactive-border-light) 0.1em; + border-left: solid var(--color-tab-inactive-border-light) 0.1em; + padding-top: 0.3em; + padding-left: 0.8em; + padding-right: 0.8em; + padding-bottom: 0em; + margin-right: 0.1em; + color: var(--color-tab-inactive-text); + text-decoration: none; +} + +a.active { + background-color: var(--color-tab-active-bg); + border-right: solid var(--color-tab-active-border) 0.1em; + border-top: solid var(--color-tab-active-border-light) 0.1em; + border-left: solid var(--color-tab-active-border-light) 0.1em; + padding-top: 0.3em; + padding-left: 0.8em; + padding-right: 0.8em; + padding-bottom: 0em; + margin-right: 0.1em; + color: var(--color-tab-active-text); + text-decoration: none; } input.tabQueryName { -border: solid #aaa 0.1em; -width:100%; -padding:0em; + border: solid var(--color-border-light) 0.1em; + width: 100%; + padding: 0em; } input.delQueryButton { -border:none; -color:#c00; -background-color:#ccc; -cursor:pointer; -padding:0em; + border: none; + color: var(--color-warning); + background-color: var(--color-tab-active-bg); + cursor: pointer; + padding: 0em; } td.checkboxTD { -padding-right:0.5em; + padding-right: 0.5em; } .sourceHighlight { -background-color:yellow; + background-color: var(--color-source-highlight); } #MenuBar { -padding: 0.5em; -position: fixed; -top: 0; -bottom: auto; -left: 0; -right: 0; -background-color: #eee; -border: 0.1em solid #aaa; + padding: 0.5em; + position: fixed; + top: 0; + bottom: auto; + left: 0; + right: 0; + background-color: var(--color-nav-block-bg); + border: 0.1em solid var(--color-border-light); } #TabulatorStatusWidget { -position: fixed; -top: 0; -bottom: auto; -left: auto; -right: 0; + position: fixed; + top: 0; + bottom: auto; + left: auto; + right: 0; } div.mapKeyDiv { -position:relative; -float:right; -margin: 0.3em; -color: #777; -background:#fff; -border:solid #777 0.1em; -padding:0.1em; + position: relative; + float: right; + margin: 0.3em; + color: var(--color-border-dark); + background: var(--color-background); + border: solid var(--color-border-dark) 0.1em; + padding: 0.1em; } span.closeQuerySpan { -float:right; -text-align:right; -height: 0.1em; -overflow:visible; + float: right; + text-align: right; + height: 0.1em; + overflow: visible; } span.openQuerySpan { -float:left; -overflow:visible; -height:0em; -text-align:left; -position:relative; -top:0em; -z-index:1; + float: left; + overflow: visible; + height: 0em; + text-align: left; + position: relative; + top: 0em; + z-index: 1; } -input.textinput{ -width: 100%; -border: none; -font-size:95%; -padding: 0em; -margin: 0; +input.textinput { + width: 100%; + border: none; + font-size: 95%; + padding: 0em; + margin: 0; } -textarea.textinput{ -border: none; +textarea.textinput { + border: none; } .pendingedit { -color: #bbb; + color: var(--color-pending-edit); } -td.undetermined{ -color: gray; -font-style: italic; +td.undetermined { + color: var(--color-nav-block-border); + font-style: italic; } /*revert back*/ -td.undetermined table{ -color: black; -font-style: normal; +td.undetermined table { + color: var(--color-text); + font-style: normal; } /*color style from http://developer.yahoo.com/yui/docs/module_menu.html*/ -.outlineMenu{ -position:absolute; -/*width:10em;*/ -height:10em; /* Jim's commented out */ -background: #FFFFFF none repeat scroll 0%; -overflow-x: hidden; -overflow-y: auto; -border: 1px solid; -/*padding:.2em;*/ +.outlineMenu { + position: absolute; + /*width:10em;*/ + height: 10em; /* Jim's commented out */ + background: var(--color-menu-bg) none repeat scroll 0%; + overflow-x: hidden; + overflow-y: auto; + border: 1px solid; + /*padding:.2em;*/ +} +.outlineMenu table { + cursor: default; + width: 100%; + text-align: left; + padding: 5px 5px; +} +.outlineMenu div { + /*width:6em;*/ + overflow: auto; + white-space: nowrap; +} +.outlineMenu td { + color: var(--color-menu-item-text); +} +.outlineMenu .activeItem { + background: var(--color-menu-item-active); +} /* @@ Jim's: #f4e8fc; */ +.outlineMenu input { + margin: 0.2em; } -.outlineMenu table{cursor:default;width:100%;text-align:left;padding:5px 5px;} -.outlineMenu div{/*width:6em;*/ overflow:auto; white-space:nowrap;} -.outlineMenu td{color:#654d6c;} -.outlineMenu .activeItem{background: #D1C6DA;} /* @@ Jim's: #f4e8fc; */ -.outlineMenu input{margin: 0.2em;} -div.bottom-border{ -border: .2em solid transparent; -width: 100%; +div.bottom-border { + border: 0.2em solid transparent; + width: 100%; } -div.bottom-border-active{ -cursor: copy; -border: .2em solid; -border-color: rgb(100%,65%,0%); +div.bottom-border-active { + cursor: copy; + border: 0.2em solid; + border-color: var(--color-bottom-border-highlight); } /* The thing below was for the kenny's orange bar*/ @@ -794,199 +1089,195 @@ td{ */ .deleteIcon { -margin-left: 0.1em; + margin-left: 0.1em; } .deleteCol { -float: right; -display: inline; + float: right; + display: inline; } -.suggestion_list -{ -background: white; -border: 1px solid; -padding: 4px; +.suggestion_list { + background: var(--color-suggestion-bg); + border: 1px solid var(--color-suggestion-border); + padding: 4px; } -.suggestion_list ul -{ -padding: 0; -margin: 0; -list-style-type: none; +.suggestion_list ul { + padding: 0; + margin: 0; + list-style-type: none; } -.suggestion_list a -{ -text-decoration: none; -color: navy; +.suggestion_list a { + text-decoration: none; + color: var(--color-suggestion-link); } -.suggestion_list .selected -{ -background: navy; -color: white; +.suggestion_list .selected { + background: var(--color-suggestion-selected-bg); + color: var(--color-suggestion-selected-text); } -.suggestion_list .selected a -{ -color: white; +.suggestion_list .selected a { + color: var(--color-suggestion-selected-text); } -#autosuggest -{ -display: none; +#autosuggest { + display: none; } - - /* Start of styles for the photoPane, by albert08@csail.mit.edu */ div.PhotoContentPane { -float: left; -width: 900px; -border: 1px solid #AAAAAA; -padding: 10px; + float: left; + width: 900px; + border: 1px solid var(--color-photo-border); + padding: 10px; } div.PhotoListPanel { -float: left; -padding: 5px ; -border: 1px solid #AAAAAA; -width: 540px; -min-height: 300px; + float: left; + padding: 5px; + border: 1px solid var(--color-photo-border); + width: 540px; + min-height: 300px; } div.PhotoInfoPanel { -float: left; -padding: 10px; -border: 1px solid #AAAAAA; -width: 300px; -text-align: center; -margin: 0px 0px 10px 10px; + float: left; + padding: 10px; + border: 1px solid var(--color-photo-border); + width: 300px; + text-align: center; + margin: 0px 0px 10px 10px; } div.TagMenu { -float: left; -padding: 10px; -border: 1px solid #AAAAAA; -width: 300px; -margin: 0px 0px 0px 10px; -text-align: justify; + float: left; + padding: 10px; + border: 1px solid var(--color-photo-border); + width: 300px; + margin: 0px 0px 0px 10px; + text-align: justify; } .tagItem { -float: left; -padding: 2px; -margin: 2px; -cursor:pointer; + float: left; + padding: 2px; + margin: 2px; + cursor: pointer; } .tagItem_h { -float: left; -padding: 2px; -margin: 1px; -border: 1px solid #DDBB99; -background-color: #DDEEFF; -cursor:pointer; + float: left; + padding: 2px; + margin: 1px; + border: 1px solid var(--color-photo-tag-highlight-border); + background-color: var(--color-photo-tag-highlight); + cursor: pointer; } div.photoItem { -float: left; -width: 100%; + float: left; + width: 100%; } div.photoFrame { -border-right: 1px solid #AAAAAA; -width: 260px; -padding: 10px; -margin: 10px 10px 10px 10px; -text-align: center; -float: left; + border-right: 1px solid var(--color-photo-border); + width: 260px; + padding: 10px; + margin: 10px 10px 10px 10px; + text-align: center; + float: left; } img.photoThumbnail { -border: 1px solid #CCCCCC; -margin: auto auto auto auto; + border: 1px solid var(--color-photo-thumb-border); + margin: auto auto auto auto; } .photoListTags { -width:200px; -margin-top: 10px; -padding-top: 10px; -float: left; + width: 200px; + margin-top: 10px; + padding-top: 10px; + float: left; } .photoList_tag { -background: transparent url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px 1px no-repeat; -padding: 1px 0px 1px 18px; -margin-left: 5px; + background: transparent + url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px + 1px no-repeat; + padding: 1px 0px 1px 18px; + margin-left: 5px; } .TagMenu_tag { -background: transparent url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px 1px no-repeat; -padding: 1px 0px 1px 18px; -margin-left: 5px; + background: transparent + url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px + 1px no-repeat; + padding: 1px 0px 1px 18px; + margin-left: 5px; } div.photoImportContentPane { -float: left; -padding: 0px; -width: 930px; -border: 1px solid #AAAAAA; -padding: 10px; + float: left; + padding: 0px; + width: 930px; + border: 1px solid var(--color-photo-border); + padding: 10px; } .photoImportTitle { -font-size: 16px; -font-weight: bold; + font-size: 1rem; + font-weight: bold; } .photoItemPanel { -width: 260px; -height: 300px; -float: left; -padding: 10px; -border: 1px solid #AAAAAA; -margin: 0px 10px 10px 0px; + width: 260px; + height: 300px; + float: left; + padding: 10px; + border: 1px solid var(--color-photo-border); + margin: 0px 10px 10px 0px; } .photoControlImg { -border: 0px; -cursor: pointer; + border: 0px; + cursor: pointer; } .photoControlImgInactive { -opacity: .5; -border: 0px; + opacity: 0.5; + border: 0px; } #photoPageInfo { -font-family: Arial; -font-size: 14px; -font-weight: bold; + font-family: var(--font-family-ui); + font-size: 0.875rem; + font-weight: bold; } .controls { -clear: both; -text-align: right; -margin: 15px 15px 0px 0px; + clear: both; + text-align: right; + margin: 15px 15px 0px 0px; } .controlButton { -margin: 0px 0px 0px 10px; + margin: 0px 0px 0px 10px; } div.TagPane { -min-width: 500px; -border: 1px solid #AAAAAA; -padding: 10px; + min-width: 500px; + border: 1px solid var(--color-photo-border); + padding: 10px; } div.TagSemanticsPanel { -margin: 5px 0px 20px 0px; + margin: 5px 0px 20px 0px; } div.TagSemanticsTable { -width: 100%; -font-family: Arial; -font-size: 12px; + width: 100%; + font-family: var(--font-family-ui); + font-size: 0.75rem; } div.AddTagSemantics { -margin: 50px 0px 10px 0px; + margin: 50px 0px 10px 0px; } .controlSelect { -margin: 5px; -font-family: Arial; -font-size: 12px; + margin: 5px; + font-family: var(--font-family-ui); + font-size: 0.75rem; } .tagURIInput { -margin: 5px; -font-family: Arial; -font-size: 12px; -width: 300px; + margin: 5px; + font-family: var(--font-family-ui); + font-size: 0.75rem; + width: 300px; } -div.TagPane hr{ -border: 1px solid #AAAAAA; +div.TagPane hr { + border: 1px solid var(--color-photo-border); } /* End of styles for the photoPane @@ -997,89 +1288,123 @@ Styles for tableViewPane */ .tableViewPane table th { -background-color: #eee; -color: black; + background-color: var(--color-tab-inactive-bg); + color: var(--color-log-normal); } .tableViewPane table th a { -color: #555; + color: var(--color-text-secondary); } .tableViewPane table .selectors td { -background-color: #ccc; + background-color: var(--color-tab-active-bg); } .tableViewPane table td { -border-bottom: 1px solid black; -border-right: 1px solid black; + border-bottom: 1px solid var(--color-data-pane-border-top); + border-right: 1px solid var(--color-data-pane-border-top); } .tableViewPane .toolbar td { -border: none; + border: none; } .tableViewPane .sparqlButton { -width: 16px; -height: 16px; -border: 1px solid black; + width: 16px; + height: 16px; + border: 1px solid var(--color-data-pane-border-top); } .tableViewPane .sparqlDialog { -position: fixed; -top: 40px; -left: 100px; -width: 600px; -background: white; -border: 1px solid black; -padding: 5px; + position: fixed; + top: 40px; + left: 100px; + width: 600px; + background: var(--color-background); + border: 1px solid var(--color-data-pane-border-top); + padding: 5px; } .tableViewPane .sparqlDialog textarea { -width: 590px; -height: 250px; + width: 590px; + height: 250px; } /* These should be the same as with hthe dataContentPane */ -.tableViewPane a { color: #3B5998; text-decoration: none; font-weight: bold} -.tableViewPane a:link { color: #3B5998; text-decoration: none; font-weight: bold} -.tableViewPane a:visited { color: #3B5998; text-decoration: none; font-weight: bold} -.tableViewPane a:hover { color: #3B5998; text-decoration: underline; font-weight: bold} -.tableViewPane a:active { color: #888; text-decoration: none; } - -.tableViewPane tr {border-color: #444; padding-left: 0.3em; padding-right: 0.3em } - +.tableViewPane a { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.tableViewPane a:link { + color: var(--color-text-link); + text-decoration: none; + font-weight: bold; +} +.tableViewPane a:visited { + color: var(--color-text-link-visited); + text-decoration: none; + font-weight: bold; +} +.tableViewPane a:hover { + color: var(--color-text-link-hover); + text-decoration: underline; + font-weight: bold; +} +.tableViewPane a:active { + color: var(--color-text-link-active); + text-decoration: none; +} +.tableViewPane tr { + border-color: var(--color-border-darker); + padding-left: 0.3em; + padding-right: 0.3em; +} /*The 'display explanation' feature*/ .inquiry { -padding-left: 0.2em; -color: red; -font-family: Arial; -font-weight: bold; + padding-left: 0.2em; + color: var(--color-warning); + font-family: var(--font-family-ui); + font-weight: bold; } /* End of styles for tableViewPane */ - - /* Styles for FORM PANE ** ** Colors from data cotent pane */ -.formPane a { color: #3B5998; text-decoration: none; } -.formPane a:link { color: #3B5998; text-decoration: none; } -.formPane a:visited { color: #3B5998; text-decoration: none; } -.formPane a:hover { color: #3B5998; font-weight: bold} /* was text-decoration: underline; */ -.formPane a:active { color: #888; text-decoration: none; } +.formPane a { + color: var(--color-text-link); + text-decoration: none; +} +.formPane a:link { + color: var(--color-text-link); + text-decoration: none; +} +.formPane a:visited { + color: var(--color-text-link-visited); + text-decoration: none; +} +.formPane a:hover { + color: var(--color-text-link-hover); + font-weight: bold; +} /* was text-decoration: underline; */ +.formPane a:active { + color: var(--color-text-link-active); + text-decoration: none; +} /* ends */ @mixin box-shadow($x-axis: 0, $y-axis: 1px, $blur: 4px, $color: $default) { -box-shadow: $x-axis $y-axis $blur $color; --webkit-box-shadow: $x-axis $y-axis $blur $color; --moz-box-shadow: $x-axis $y-axis $blur $color; --o-box-shadow: $x-axis $y-axis $blur $color; -} \ No newline at end of file + box-shadow: $x-axis $y-axis $blur $color; + -webkit-box-shadow: $x-axis $y-axis $blur $color; + -moz-box-shadow: $x-axis $y-axis $blur $color; + -o-box-shadow: $x-axis $y-axis $blur $color; +} diff --git a/src/styles/mashlib-style.ts b/src/styles/mashlib-style.ts deleted file mode 100644 index b0ab56bd..00000000 --- a/src/styles/mashlib-style.ts +++ /dev/null @@ -1,17 +0,0 @@ -export interface MashStyle { - dbLayout: string; - dbLayoutContent: string; - dbLayoutHeader: string; - dbLayoutFooter: string; - setStyle: (ele: HTMLElement, styleName: keyof Omit) => void; -} - -export const mashStyle: MashStyle = { - dbLayout: 'display: flex; flex-direction: column;', - dbLayoutContent: 'flex: 1 0 auto;', - dbLayoutHeader: 'flex-shrink: 0;', - dbLayoutFooter: 'flex-shrink: 0;', - setStyle: function setStyle(ele: HTMLElement, styleName: keyof Omit) { - ele.setAttribute('style', mashStyle[styleName]) - } -} \ No newline at end of file diff --git a/src/styles/themes.css b/src/styles/themes.css new file mode 100644 index 00000000..4615b259 --- /dev/null +++ b/src/styles/themes.css @@ -0,0 +1,8 @@ +/* +** ------SolidOS Themes------ +** Theme variables for light and dark modes +*/ + +@import url('./themes/light.css'); +/* @import url('./themes/dark.css'); */ + diff --git a/src/styles/themes/dark.css b/src/styles/themes/dark.css new file mode 100644 index 00000000..50cc6e40 --- /dev/null +++ b/src/styles/themes/dark.css @@ -0,0 +1,196 @@ +/* +** Dark Theme +** Dark color scheme for SolidOS with high contrast and reduced eye strain +*/ + +html[data-theme="dark"] { + /* Background and Text */ + --color-background: #1e1e1e; + --color-text: #e0e0e0; + --color-text-secondary: #999; + --color-text-light: #555; + --color-text-link: #66b3ff; + --color-text-link-visited: #66b3ff; + --color-text-link-hover: #66b3ff; + --color-text-link-active: #aaa; + --color-text-answer: #66b3ff; + --color-text-muted: #bbb; + --color-text-dark-gray: #d4d4d4; + --color-text-blue: #7cb9ff; + --color-text-brown: #c4a660; + + /* Borders */ + --color-border: #444; + --color-border-dark: #555; + --color-border-darker: #333; + --color-border-light: #666; + --color-border-pale: #555; + + /* Status Colors */ + --color-selected-bg: #4a6e3a; + --color-warning: #ff6b6b; + --color-success-bg: #2a5f2a; + --color-success-border: #4db84d; + --color-failure-bg: #3a3a3a; + --color-failure-border: #ff6b6b; + + /* Info and Alert Colors */ + --color-info-bg: #2a2a5a; + --color-info-border: #6699ff; + --color-alert-bg: #5a5a2a; + --color-alert-border: #ccaa00; + --color-fetch-bg: #2a5a2a; + --color-request-bg: #6b6b00; + --color-error-bg: #3a3a3a; + --color-error-notice-bg: #5a3a3a; + --color-unparseable-bg: #6b5a00; + + /* Component Colors */ + --color-container-border: #555; + --color-iframe-bg: #2a2a2a; + --color-main-block-bg: #252525; + --color-nav-block-bg: #2a2a2a; + --color-nav-block-border: #555; + --color-category-bg: #1f2b1f; + --color-category-border: #555; + --color-category-class-bg: #2a5f2a; + --color-category-class-border: #4db84d; + --color-pubs-pane-bg: #3a3a2a; + --color-pubs-pane-border: #555; + --color-cv-pane-bg: #1f4a5a; + + /* Data Content Pane */ + --color-data-pane-border-top: #888; + --color-data-pane-border-side: #555; + --color-table-header-bg: #2a3a5a; + --color-table-result-bg: #252525; + --color-table-border-dark: #555; + + /* Notification Colors */ + --color-log-normal: #e0e0e0; + --color-log-info: #e0e0e0; + --color-log-warn: #e0e0e0; + --color-log-warn-bg: #5a5a2a; + --color-log-error: #e0e0e0; + --color-log-error-bg: #5a3a3a; + --color-log-message: #66bb66; + --color-log-debug: #e0e0e0; + --color-log-debug-bg: #2a3a5a; + + /* Suggestion List */ + --color-suggestion-bg: #2a2a2a; + --color-suggestion-border: #4db8ff; + --color-suggestion-link: #4db8ff; + --color-suggestion-selected-bg: #4db8ff; + --color-suggestion-selected-text: #1e1e1e; + + /* Photo Pane */ + --color-photo-border: #555; + --color-photo-tag-highlight: #2a4a7a; + --color-photo-tag-highlight-border: #5a6b4a; + --color-photo-thumb-border: #444; + + /* Menu and Tab Colors */ + --color-menu-bg: #2a2a2a; + --color-menu-item-text: #c4b4d4; + --color-menu-item-active: #4a5a7a; + --color-view-tab-bg: #252525; + --color-view-window-bg: #3a3a3a; + --color-query-select-bg: #3a3a3a; + --color-tab-inactive-bg: #2a2a2a; + --color-tab-inactive-border: #444; + --color-tab-inactive-border-light: #555; + --color-tab-inactive-text: #6b7baa; + --color-tab-active-bg: #3a3a3a; + --color-tab-active-border: #444; + --color-tab-active-border-light: #555; + --color-tab-active-text: #66b3ff; + + /* Special Highlights */ + --color-source-highlight: #6b6b00; + --color-hover-visibility: visible; + --color-hidden-visibility: hidden; + --color-mild-notice-bg: #3a3a2a; + --color-bottom-border-highlight: rgb(60%,80%,100%); + --color-col-close: #555; + --color-sort-arrow: #555; + + /* Typography */ + --font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-family-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-size-base: 100%; + --font-size-strong: 120%; + --font-weight-normal: normal; + --font-weight-bold: bold; + --line-height-base: 1.5; + --line-height-tight: 1.4; + --line-height-loose: 1.6; + --letter-spacing-wide: 0.025em; + --font-size-sm: 0.875rem; + --font-size-lg: 1.125rem; + --font-size-xl: 1.25rem; + + /* Spacing and Sizing */ + --spacing-tiny: 0.05em; + --spacing-small: 0.1em; + --spacing-xs: 0.5rem; + --spacing-sm: 0.75em; + --spacing-base: 0.5em; + --spacing-md: 1em; + --spacing-lg: 1.5em; + --spacing-xl: 2em; + --spacing-2xl: 3em; + --border-width-thin: 1px; + --border-width-medium: 2px; + --border-width-bold: 5px; + --border-radius-base: 0.5em; + --border-radius-lg: 0.75em; + --border-radius-full: 1em; + + /* Primary/Accent Colors */ + --color-primary: #B388FF; + --color-secondary: #4FC3F7; + --color-accent: #FFE082; + --color-error: #FF5252; + --color-success: #69F0AE; + --color-primary-alpha: rgba(124, 77, 255, 0.35); + --color-primary-alpha-light: rgba(124, 77, 255, 0.15); + + /* Card/Section Backgrounds */ + --color-card-bg: #2a2a2a; + --color-section-bg: #1a1a1a; + --color-zebra-stripe: rgba(255, 255, 255, 0.03); + --color-hover-bg: rgba(255, 255, 255, 0.08); + + /* Shadows */ + --box-shadow: 0 2px 8px rgba(0,0,0,0.3); + --box-shadow-sm: 0 1px 4px rgba(0,0,0,0.2); + + /* Accessibility */ + --min-touch-target: 44px; + --focus-ring-width: 2px; + --focus-indicator-width: 3px; + --animation-duration: 0.2s; + --animation-duration-slow: 0.3s; + --min-font-size: 14px; + --min-line-height: 1.4; + --high-contrast-ratio: 7:1; + + /* Overlay and Modal */ + --overlay-bg: rgba(0, 0, 0, 0.7); + --z-index-modal: 9999; + --z-index-skip-links: 1000; + + /* Opacity */ + --opacity-disabled: 0.6; + + /* Layout Values */ + --max-width-readable: 65ch; + --max-width-readable-wide: 70ch; + + /* Outline Offsets */ + --outline-offset-sm: 2px; + + /* Success Alpha */ + --color-success-alpha: rgba(105, 240, 174, 0.15); +} diff --git a/src/styles/themes/light.css b/src/styles/themes/light.css new file mode 100644 index 00000000..5a8a8839 --- /dev/null +++ b/src/styles/themes/light.css @@ -0,0 +1,197 @@ +/* +** Light Theme (Default) +** Default color scheme for SolidOS +*/ + +:root { + /* Background and Text */ + --color-background: white; + --color-text: ##1A1A1A; + --color-text-secondary: #666; + --color-text-light: #aaa; + --color-text-link: #3B5998; + --color-text-link-visited: #3B5998; + --color-text-link-hover: #3B5998; + --color-text-link-active: #888; + --color-text-answer: #00c; + --color-text-muted: #444; + --color-text-dark-gray: #202; + --color-text-blue: #004; + --color-text-brown: #440; + + /* Borders */ + --color-border: #ccc; + --color-border-dark: #777; + --color-border-darker: #444; + --color-border-light: #aaa; + --color-border-pale: #eee; + + /* Status Colors */ + --color-selected-bg: #8F3; + --color-warning: red; + --color-success-bg: #dfd; + --color-success-border: green; + --color-failure-bg: white; + --color-failure-border: red; + + /* Info and Alert Colors */ + --color-info-bg: #ccccff; + --color-info-border: #3399ff; + --color-alert-bg: #ffffdd; + --color-alert-border: yellow; + --color-fetch-bg: #eeffee; + --color-request-bg: yellow; + --color-error-bg: white; + --color-error-notice-bg: #fee; + --color-unparseable-bg: #ffcc00; + + /* Component Colors */ + --color-container-border: black; + --color-iframe-bg: white; + --color-main-block-bg: #fff; + --color-nav-block-bg: #eee; + --color-nav-block-border: gray; + --color-category-bg: #f8fff8; + --color-category-border: #777777; + --color-category-class-bg: #efe; + --color-category-class-border: green; + --color-pubs-pane-bg: #F2F6DA; + --color-pubs-pane-border: #777777; + --color-cv-pane-bg: LightSkyBlue; + + /* Data Content Pane */ + --color-data-pane-border-top: black; + --color-data-pane-border-side: #777; + --color-table-header-bg: #ddf; + --color-table-result-bg: #fff; + --color-table-border-dark: #777; + + /* Notification Colors */ + --color-log-normal: black; + --color-log-info: black; + --color-log-warn: black; + --color-log-warn-bg: #ffd; + --color-log-error: black; + --color-log-error-bg: #fdd; + --color-log-message: green; + --color-log-debug: black; + --color-log-debug-bg: #ddf; + + /* Suggestion List */ + --color-suggestion-bg: white; + --color-suggestion-border: navy; + --color-suggestion-link: navy; + --color-suggestion-selected-bg: navy; + --color-suggestion-selected-text: white; + + /* Photo Pane */ + --color-photo-border: #AAAAAA; + --color-photo-tag-highlight: #DDEEFF; + --color-photo-tag-highlight-border: #DDBB99; + --color-photo-thumb-border: #CCCCCC; + + /* Menu and Tab Colors */ + --color-menu-bg: #FFFFFF; + --color-menu-item-text: #654d6c; + --color-menu-item-active: #D1C6DA; + --color-view-tab-bg: #fff; + --color-view-window-bg: #ccc; + --color-query-select-bg: #ccc; + --color-tab-inactive-bg: #eee; + --color-tab-inactive-border: #ddd; + --color-tab-inactive-border-light: #aaa; + --color-tab-inactive-text: #99f; + --color-tab-active-bg: #ccc; + --color-tab-active-border: #ddd; + --color-tab-active-border-light: #aaa; + --color-tab-active-text: #22f; + + /* Special Highlights */ + --color-source-highlight: yellow; + --color-hover-visibility: visible; + --color-hidden-visibility: hidden; + --color-mild-notice-bg: #ffe; + --color-bottom-border-highlight: rgb(100%,65%,0%); + --color-col-close: #aaa; + --color-sort-arrow: #aaa; + --color-pending-edit: #bbb; + + /* Typography */ + --font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-family-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-size-base: 100%; + --font-size-strong: 120%; + --font-weight-normal: normal; + --font-weight-bold: bold; + --line-height-base: 1.5; + --line-height-tight: 1.4; + --line-height-loose: 1.6; + --letter-spacing-wide: 0.025em; + --font-size-sm: 0.875rem; + --font-size-lg: 1.125rem; + --font-size-xl: 1.25rem; + + /* Spacing and Sizing */ + --spacing-tiny: 0.05em; + --spacing-small: 0.1em; + --spacing-xs: 0.5rem; + --spacing-sm: 0.75em; + --spacing-base: 0.5em; + --spacing-md: 1em; + --spacing-lg: 1.5em; + --spacing-xl: 2em; + --spacing-2xl: 3em; + --border-width-thin: 1px; + --border-width-medium: 2px; + --border-width-bold: 5px; + --border-radius-base: 0.5em; + --border-radius-lg: 0.75em; + --border-radius-full: 1em; + + /* Primary/Accent Colors */ + --color-primary: #7C4DFF; + --color-primary-alpha: rgba(124, 77, 255, 0.25); + --color-primary-alpha-light: rgba(124, 77, 255, 0.1); + --color-secondary: #0077B6; + --color-accent: #FFD600; + --color-error: #B00020; + --color-success: #00C853; + + /* Card/Section Backgrounds */ + --color-card-bg: #FFFFFF; + --color-section-bg: #F5F5F5; + --color-zebra-stripe: rgba(0, 0, 0, 0.02); + --color-hover-bg: rgba(0, 0, 0, 0.05); + + /* Shadows */ + --box-shadow: 0 2px 8px rgba(124,77,255,0.08); + --box-shadow-sm: 0 1px 4px rgba(124,77,255,0.12); + + /* Accessibility */ + --min-touch-target: 44px; + --focus-ring-width: 2px; + --focus-indicator-width: 3px; + --animation-duration: 0.2s; + --animation-duration-slow: 0.3s; + --min-font-size: 14px; + --min-line-height: 1.4; + --high-contrast-ratio: 7:1; /* WCAG AAA standard */ + + /* Overlay and Modal */ + --overlay-bg: rgba(0, 0, 0, 0.5); + --z-index-modal: 9999; + --z-index-skip-links: 1000; + + /* Opacity */ + --opacity-disabled: 0.6; + + /* Layout Values */ + --max-width-readable: 65ch; + --max-width-readable-wide: 70ch; + + /* Outline Offsets */ + --outline-offset-sm: 2px; + + /* Success Alpha */ + --color-success-alpha: rgba(0, 200, 83, 0.1); +} diff --git a/static/browse-test.html b/static/browse-test.html index 2ef6e111..f43fadc2 100644 --- a/static/browse-test.html +++ b/static/browse-test.html @@ -2,6 +2,17 @@ + + + + +
-
-
- The SolidOS Databrowser +
+ Viewing
-
- Viewing -
-
- As user <public user> +
+ As user <public user> +
- - -
-
-
-
- - +
+ + + + + + + + + + +
+
+
+
+