From e25ea0f1c8d215bc99d5c318cd56ab6e30e9080e Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:30:58 +0100 Subject: [PATCH 1/6] mashlib using branch newStyle --- package-lock.json | 343 +++++----------------------------------------- package.json | 2 +- 2 files changed, 34 insertions(+), 311 deletions(-) diff --git a/package-lock.json b/package-lock.json index bef0d9c7..9822eb85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "rdflib": "^2.3.0", "solid-logic": "^3.1.1-a44ca66", - "solid-panes": "^3.7.3-f06890f4", + "solid-panes": "github:solidos/solid-panes#newStyle", "solid-ui": "^2.6.1-e78cbe5" }, "devDependencies": { @@ -3149,39 +3149,6 @@ "timeago.js": "^4.0.2" } }, - "node_modules/activitystreams-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/activitystreams-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4101,39 +4068,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/chat-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/chat-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -4421,39 +4355,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/contacts-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/contacts-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -5995,39 +5896,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/folder-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/folder-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -7256,39 +7124,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/issue-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/issue-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -7996,39 +7831,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/meeting-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/meeting-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/memfs": { "version": "4.50.0", "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.50.0.tgz", @@ -8747,18 +8549,6 @@ "solid-logic": "^3.1.1" } }, - "node_modules/pane-registry/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -9187,53 +8977,6 @@ "dev": true, "license": "MIT" }, - "node_modules/profile-pane": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-1.2.1.tgz", - "integrity": "sha512-32RTg2ySOueFGElOevHAct6ea7It0ymC+OoVk92lNO6dD1vV67phtTMHCeGahnf2wQ+JoKH+arqF+A5FwRZRaw==", - "license": "MIT", - "dependencies": { - "lit-html": "^3.2.1", - "pane-registry": "^2.5.0", - "qrcode": "^1.5.4", - "rdflib": "^2.2.37", - "solid-ui": "^2.6.1", - "validate-color": "^2.2.4" - } - }, - "node_modules/profile-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/profile-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -10457,17 +10200,16 @@ } }, "node_modules/solid-logic": { - "version": "3.1.1-a44ca66", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1-a44ca66.tgz", - "integrity": "sha512-/mAc+SX8FTgNsKhEDa04hMkQymWRjJktVBanAJojcJgNwUuQmtuO/Rx+22PcoOkwedeENQ0oYacQpN9CzXQZ1w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", + "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", "license": "MIT", "peer": true, "dependencies": { "@inrupt/solid-client-authn-browser": "^3.1.0", + "lint-staged": "^16.1.5", + "rdflib": "^2.2.37", "solid-namespace": "^0.5.4" - }, - "peerDependencies": { - "rdflib": "^2.3.0" } }, "node_modules/solid-namespace": { @@ -10477,9 +10219,8 @@ "license": "MIT" }, "node_modules/solid-panes": { - "version": "3.7.3-f06890f4", - "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-3.7.3-f06890f4.tgz", - "integrity": "sha512-qGLMB8PNuFj637zEEg9k4l/29EqJvL/j//17shLTu6rhuMR55zVG39ay2ezDRENCUZZKt9V9AqbFNbJ/2R+ySg==", + "version": "3.7.3-newStyle", + "resolved": "git+ssh://git@github.com/solidos/solid-panes.git#6801cbc9e2ac0f96f7d8dd6b400a06fbd6da7ea3", "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", @@ -10493,7 +10234,7 @@ "meeting-pane": "^2.5.1-8ac4653c", "mime-types": "^3.0.1", "pane-registry": "^2.5.1-cfba46d", - "profile-pane": "^1.2.1-761bd8dd", + "profile-pane": "github:solidos/profile-pane#newStyle", "solid-namespace": "^0.5.4", "source-pane": "^2.3.1-d61e2165" }, @@ -10503,27 +10244,42 @@ "solid-ui": "2.6.1-e78cbe5" } }, + "node_modules/solid-panes/node_modules/profile-pane": { + "version": "1.2.1-newStyle", + "resolved": "git+ssh://git@github.com/solidos/profile-pane.git#218c3cbec2564e12e9b671ae5d4b2a5c635fd3bd", + "license": "MIT", + "dependencies": { + "lit-html": "^3.2.1", + "pane-registry": "^2.5.1-cfba46d", + "qrcode": "^1.5.4", + "validate-color": "^2.2.4" + }, + "peerDependencies": { + "rdflib": "^2.3.0", + "solid-logic": "3.1.1-a44ca66", + "solid-ui": "^2.6.1-e78cbe5" + } + }, "node_modules/solid-ui": { - "version": "2.6.1-e78cbe5", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1-e78cbe5.tgz", - "integrity": "sha512-wyp3gIABg9cLHDCzznwp935twCegNLK/nXBgZXVLzTL4ou3OOXvTxKxZ7KeWjcI7agDMmbyU2SnwfTodYgLKRA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", + "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", "license": "MIT", "peer": true, "dependencies": { "@noble/curves": "^1.9.6", - "@noble/hashes": "^1.8.0", + "acorn": "^8.15.0", "escape-html": "^1.0.3", + "i": "^0.3.7", "mime-types": "^3.0.1", - "pane-registry": "^2.5.1-f5c2189", + "pane-registry": "^2.5.1", + "rdflib": "^2.2.37", + "solid-logic": "^3.1.1", "solid-namespace": "^0.5.4", "uuid": "^11.1.0" }, "optionalDependencies": { "fsevents": "*" - }, - "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "3.1.1-a44ca66" } }, "node_modules/source-map": { @@ -10567,39 +10323,6 @@ "solid-ui": "^2.6.1" } }, - "node_modules/source-pane/node_modules/solid-logic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-3.1.1.tgz", - "integrity": "sha512-eG9t6LFDk3HXV1+gBUrEINXIcfZeNvKqbjkcNYBbC++YcgG7uJyGJrbYE5SGCyV5dV2KZiDTwX9e34UvONFUfQ==", - "license": "MIT", - "dependencies": { - "@inrupt/solid-client-authn-browser": "^3.1.0", - "lint-staged": "^16.1.5", - "rdflib": "^2.2.37", - "solid-namespace": "^0.5.4" - } - }, - "node_modules/source-pane/node_modules/solid-ui": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", - "integrity": "sha512-3AUaVHhzM0Xe3Fxcr1dL6qf1L5j9q75DbuTgeTtFGY9/EfGoOj8qQy5IvuqWgYK8BE1jy+oVB6ZuBY4JzVIsGw==", - "license": "MIT", - "dependencies": { - "@noble/curves": "^1.9.6", - "acorn": "^8.15.0", - "escape-html": "^1.0.3", - "i": "^0.3.7", - "mime-types": "^3.0.1", - "pane-registry": "^2.5.1", - "rdflib": "^2.2.37", - "solid-logic": "^3.1.1", - "solid-namespace": "^0.5.4", - "uuid": "^11.1.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", diff --git a/package.json b/package.json index 2de9289f..d0396bab 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "dependencies": { "rdflib": "^2.3.0", "solid-logic": "^3.1.1-a44ca66", - "solid-panes": "^3.7.3-f06890f4", + "solid-panes": "github:solidos/solid-panes#newStyle", "solid-ui": "^2.6.1-e78cbe5" }, "devDependencies": { From f3051e6ef62662d00917fa89a49996f97062fb7a Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:42:07 +0100 Subject: [PATCH 2/6] use overrides to fix version issues --- package-lock.json | 302 ++++++++++++++++++++-------------------------- package.json | 5 + 2 files changed, 138 insertions(+), 169 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9822eb85..45e6a9e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1745,6 +1745,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", @@ -1875,16 +1888,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", @@ -2529,9 +2532,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": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -2638,16 +2641,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.3.tgz", - "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz", + "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.46.3", - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/typescript-estree": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4" }, "engines": { @@ -2663,14 +2666,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.3.tgz", - "integrity": "sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", + "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.3", - "@typescript-eslint/types": "^8.46.3", + "@typescript-eslint/tsconfig-utils": "^8.47.0", + "@typescript-eslint/types": "^8.47.0", "debug": "^4.3.4" }, "engines": { @@ -2685,14 +2688,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", - "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", + "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3" + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2703,9 +2706,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz", - "integrity": "sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", + "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", "dev": true, "license": "MIT", "engines": { @@ -2720,9 +2723,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", - "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz", + "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", "dev": true, "license": "MIT", "engines": { @@ -2734,16 +2737,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", - "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", + "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.3", - "@typescript-eslint/tsconfig-utils": "8.46.3", - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3", + "@typescript-eslint/project-service": "8.47.0", + "@typescript-eslint/tsconfig-utils": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2776,13 +2779,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", - "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", + "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/types": "8.47.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2793,19 +2796,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", @@ -3438,9 +3428,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.25", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", - "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz", + "integrity": "sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3733,9 +3723,9 @@ } }, "node_modules/browserslist": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", - "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "dev": true, "funding": [ { @@ -3754,10 +3744,10 @@ "license": "MIT", "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.19", - "caniuse-lite": "^1.0.30001751", - "electron-to-chromium": "^1.5.238", - "node-releases": "^2.0.26", + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", "update-browserslist-db": "^1.1.4" }, "bin": { @@ -4013,9 +4003,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001754", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", - "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "version": "1.0.30001756", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz", + "integrity": "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==", "dev": true, "funding": [ { @@ -4440,9 +4430,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.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -4451,13 +4441,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.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.26.3" + "browserslist": "^4.28.0" }, "funding": { "type": "opencollective", @@ -4761,9 +4751,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": { @@ -4778,9 +4768,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": { @@ -5048,9 +5038,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.248", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.248.tgz", - "integrity": "sha512-zsur2yunphlyAO4gIubdJEXCK6KOVvtpiuDfCIqbM9FjcnMYiyn0ICa3hWfPr0nc41zcLWobgy1iL7VvoOyA2Q==", + "version": "1.5.258", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.258.tgz", + "integrity": "sha512-rHUggNV5jKQ0sSdWwlaRDkFc3/rRJIVnOSe9yR4zrR07m3ZxhP4N27Hlg8VeJGGYgFTxK5NqDmWI4DSH72vIJg==", "dev": true, "license": "ISC" }, @@ -5310,13 +5300,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" @@ -5333,19 +5323,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", @@ -5359,16 +5336,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", @@ -5400,19 +5367,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", @@ -5493,10 +5447,9 @@ } }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, "node_modules/events": { @@ -6427,9 +6380,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", - "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.5.tgz", + "integrity": "sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==", "dev": true, "license": "MIT", "dependencies": { @@ -6550,6 +6503,13 @@ } } }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -6627,6 +6587,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", @@ -7546,12 +7516,12 @@ } }, "node_modules/lint-staged": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.6.tgz", - "integrity": "sha512-s1gphtDbV4bmW1eylXpVMk2u7is7YsrLl8hzrtvC70h4ByhcMLZFY01Fx05ZUDNuv1H8HO4E+e2zgejV1jVwNw==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", + "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", "license": "MIT", "dependencies": { - "commander": "^14.0.1", + "commander": "^14.0.2", "listr2": "^9.0.5", "micromatch": "^4.0.8", "nano-spawn": "^2.0.0", @@ -7595,12 +7565,6 @@ "node": ">=20.0.0" } }, - "node_modules/listr2/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, "node_modules/lit-html": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", @@ -7832,9 +7796,9 @@ } }, "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.51.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.0.tgz", + "integrity": "sha512-4zngfkVM/GpIhC8YazOsM6E8hoB33NP0BCESPOA6z7qaL6umPJNqkO8CNYaLV2FB2MV6H1O3x2luHHOSqppv+A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8977,6 +8941,22 @@ "dev": true, "license": "MIT" }, + "node_modules/profile-pane": { + "version": "1.2.1-newStyle", + "resolved": "git+ssh://git@github.com/solidos/profile-pane.git#218c3cbec2564e12e9b671ae5d4b2a5c635fd3bd", + "license": "MIT", + "dependencies": { + "lit-html": "^3.2.1", + "pane-registry": "^2.5.1-cfba46d", + "qrcode": "^1.5.4", + "validate-color": "^2.2.4" + }, + "peerDependencies": { + "rdflib": "^2.3.0", + "solid-logic": "3.1.1-a44ca66", + "solid-ui": "^2.6.1-e78cbe5" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -10244,22 +10224,6 @@ "solid-ui": "2.6.1-e78cbe5" } }, - "node_modules/solid-panes/node_modules/profile-pane": { - "version": "1.2.1-newStyle", - "resolved": "git+ssh://git@github.com/solidos/profile-pane.git#218c3cbec2564e12e9b671ae5d4b2a5c635fd3bd", - "license": "MIT", - "dependencies": { - "lit-html": "^3.2.1", - "pane-registry": "^2.5.1-cfba46d", - "qrcode": "^1.5.4", - "validate-color": "^2.2.4" - }, - "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "3.1.1-a44ca66", - "solid-ui": "^2.6.1-e78cbe5" - } - }, "node_modules/solid-ui": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-2.6.1.tgz", @@ -11210,9 +11174,9 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.102.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", - "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "version": "5.103.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", + "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", "dev": true, "license": "MIT", "peer": true, @@ -11234,7 +11198,7 @@ "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", diff --git a/package.json b/package.json index d0396bab..d1d2a8bf 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,11 @@ "solid-panes": "github:solidos/solid-panes#newStyle", "solid-ui": "^2.6.1-e78cbe5" }, + "overrides": { + "rdflib": "^2.3.0", + "solid-logic": "^3.1.1-a44ca66", + "solid-ui": "^2.6.1-e78cbe5" + }, "devDependencies": { "@babel/cli": "^7.28.0", "@babel/core": "^7.28.0", From 4ca28e8dbc8540efcc21bc87fb0b656ae778145b Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Sat, 22 Nov 2025 18:21:13 +0100 Subject: [PATCH 3/6] update solid-panes --- package-lock.json | 53 +++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45e6a9e6..ed319509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "rdflib": "^2.3.0", "solid-logic": "^3.1.1-a44ca66", - "solid-panes": "github:solidos/solid-panes#newStyle", + "solid-panes": "^3.7.3-newStyle-5abdec51", "solid-ui": "^2.6.1-e78cbe5" }, "devDependencies": { @@ -3428,9 +3428,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz", - "integrity": "sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==", + "version": "2.8.30", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.30.tgz", + "integrity": "sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5038,9 +5038,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.258", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.258.tgz", - "integrity": "sha512-rHUggNV5jKQ0sSdWwlaRDkFc3/rRJIVnOSe9yR4zrR07m3ZxhP4N27Hlg8VeJGGYgFTxK5NqDmWI4DSH72vIJg==", + "version": "1.5.259", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.259.tgz", + "integrity": "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==", "dev": true, "license": "ISC" }, @@ -7743,9 +7743,9 @@ } }, "node_modules/marked": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.0.tgz", - "integrity": "sha512-KkDYEWEEiYJw/KC+DVm1zzlpMQSMIu6YRltkcCvwheCp8HWPXCk9JwOmHJKBlGfzcpzcIt6x3sMnTsRm/51oDg==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", + "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -7908,15 +7908,19 @@ } }, "node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/mimic-function": { @@ -8942,19 +8946,17 @@ "license": "MIT" }, "node_modules/profile-pane": { - "version": "1.2.1-newStyle", - "resolved": "git+ssh://git@github.com/solidos/profile-pane.git#218c3cbec2564e12e9b671ae5d4b2a5c635fd3bd", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-1.2.1.tgz", + "integrity": "sha512-32RTg2ySOueFGElOevHAct6ea7It0ymC+OoVk92lNO6dD1vV67phtTMHCeGahnf2wQ+JoKH+arqF+A5FwRZRaw==", "license": "MIT", "dependencies": { "lit-html": "^3.2.1", - "pane-registry": "^2.5.1-cfba46d", + "pane-registry": "^2.5.0", "qrcode": "^1.5.4", + "rdflib": "^2.2.37", + "solid-ui": "^2.6.1", "validate-color": "^2.2.4" - }, - "peerDependencies": { - "rdflib": "^2.3.0", - "solid-logic": "3.1.1-a44ca66", - "solid-ui": "^2.6.1-e78cbe5" } }, "node_modules/prop-types": { @@ -10199,8 +10201,9 @@ "license": "MIT" }, "node_modules/solid-panes": { - "version": "3.7.3-newStyle", - "resolved": "git+ssh://git@github.com/solidos/solid-panes.git#6801cbc9e2ac0f96f7d8dd6b400a06fbd6da7ea3", + "version": "3.7.3-newStyle-5abdec51", + "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-3.7.3-newStyle-5abdec51.tgz", + "integrity": "sha512-KvYT3vQjlPnZ1tTPeFOQQiUyWkq68xDI3ZeXj+kw0cXk90H0GiYSlsmt+au4fxI6e67ma/VwNgpg5X0RqHj6XQ==", "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", @@ -10214,7 +10217,7 @@ "meeting-pane": "^2.5.1-8ac4653c", "mime-types": "^3.0.1", "pane-registry": "^2.5.1-cfba46d", - "profile-pane": "github:solidos/profile-pane#newStyle", + "profile-pane": "^1.2.1-newStyle-218c3cbe", "solid-namespace": "^0.5.4", "source-pane": "^2.3.1-d61e2165" }, diff --git a/package.json b/package.json index d1d2a8bf..5d9158a7 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "dependencies": { "rdflib": "^2.3.0", "solid-logic": "^3.1.1-a44ca66", - "solid-panes": "github:solidos/solid-panes#newStyle", + "solid-panes": "^3.7.3-newStyle-5abdec51", "solid-ui": "^2.6.1-e78cbe5" }, "overrides": { From f1d46b354898f39cb4735b989efc81f4b0c941b8 Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:28:06 +0100 Subject: [PATCH 4/6] updated dep --- package-lock.json | 23 +++++++++++------------ package.json | 8 ++++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2158acf..25bfd034 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,9 @@ "version": "2.0.0", "license": "MIT", "dependencies": { - "profile-pane": "^2.0.0", "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-1df8879e", + "solid-panes": "4.0.0-newStyle-8c425185", "solid-ui": "^3.0.1" }, "devDependencies": { @@ -8567,20 +8566,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": "2.0.0-newStyle-62df24f8", + "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0-newStyle-62df24f8.tgz", + "integrity": "sha512-sQltIixwxJ7kJK9ieeBsAo8YFQL5a1JHSoOcxYlrQb4M84/Pp67bLrcg3if3cY2vEmhnsCATmxMedYP0uCww0Q==", "license": "MIT", "dependencies": { - "lit-html": "^3.2.1", + "lit-html": "^3.3.2", "pane-registry": "^3.0.0", "qrcode": "^1.5.4", "validate-color": "^2.2.4" }, "peerDependencies": { "rdflib": "^2.3.0", - "solid-logic": "^4.0.0", - "solid-ui": "^3.0.0" + "solid-logic": "^4.0.1", + "solid-ui": "^3.0.1" } }, "node_modules/prop-types": { @@ -9781,9 +9780,9 @@ "license": "MIT" }, "node_modules/solid-panes": { - "version": "4.0.0-newStyle-1df8879e", - "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.0.0-newStyle-1df8879e.tgz", - "integrity": "sha512-tpj/Bsy6NtVKj2MfwHgREJQpuKi+qPjDVmjYH8FZHaM0vmqDXBrsChPDrlHR3lIZcr2yMc798hgpEzIdi337/g==", + "version": "4.0.0-newStyle-8c425185", + "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.0.0-newStyle-8c425185.tgz", + "integrity": "sha512-OzBumvUkDKZcdkeN6lzsvwFl3nIQ02OxnMoxW/Qb+hny7fC6ugEeuHdnXBeJBUP3M6imcFQ5A8NYx8xI3zUuGg==", "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", @@ -9797,7 +9796,7 @@ "meeting-pane": "^3.0.0", "mime-types": "^3.0.1", "pane-registry": "^3.0.0", - "profile-pane": "^2.0.0-newStyle-18c2e2e1", + "profile-pane": "2.0.0-newStyle-62df24f8", "solid-namespace": "^0.5.4", "source-pane": "^3.0.0" } diff --git a/package.json b/package.json index 2706d07e..82bbde33 100644 --- a/package.json +++ b/package.json @@ -49,17 +49,17 @@ }, "homepage": "https://github.com/solidos/mashlib", "dependencies": { - "profile-pane": "^2.0.0", "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-1df8879e", + "solid-panes": "4.0.0-newStyle-8c425185", "solid-ui": "^3.0.1" }, "overrides": { "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-1df8879e", - "solid-ui": "^3.0.1" + "solid-panes": "4.0.0-newStyle-8c425185", + "solid-ui": "^3.0.1", + "profile-pane": "2.0.0-newStyle-62df24f8" }, "devDependencies": { "@babel/cli": "^7.28.0", From dfcec15abd96fe1f2a3f7ab4d0d8401f027e145e Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:21:35 +0100 Subject: [PATCH 5/6] WCAG compliant --- src/databrowser.html | 27 +++++++++--- static/browse-test.html | 97 ++++++++++++++++++++++++++++++----------- static/browse.html | 87 +++++++++++++++++++++++++++--------- 3 files changed, 158 insertions(+), 53 deletions(-) diff --git a/src/databrowser.html b/src/databrowser.html index fcd8a6cf..97416471 100644 --- a/src/databrowser.html +++ b/src/databrowser.html @@ -9,13 +9,26 @@ }) - + + - -
-
-
-
- + +
+
+ + + + + + + + + + +
+
+
+
+ diff --git a/static/browse-test.html b/static/browse-test.html index 2ef6e111..4f871812 100644 --- a/static/browse-test.html +++ b/static/browse-test.html @@ -33,7 +33,7 @@ const goButton = dom.getElementById('goButton') const loginButtonArea = document.getElementById("loginButtonArea"); const webIdArea = dom.getElementById('webId') - const banner = dom.getElementById('inputArea') + const inputArea = dom.getElementById('inputArea') uriField.addEventListener('keyup', function (e) { if (e.keyCode === 13) { @@ -59,11 +59,8 @@ const logoutButton = loginButtonArea.querySelector('input'); logoutButton.value = "Logout"; let displayId = `<${me.value}>`; - webIdArea.innerHTML = displayId; - banner.style.backgroundColor="#bbccbb"; - } else { - banner.style.backgroundColor="#ccbbbb"; - } + webIdArea.innerHTML = displayId; + } loginButtonArea.style.display="inline-block"; } @@ -87,33 +84,52 @@ + -
-
- The SolidOS Databrowser + +
+ +
+ Viewing
-
- Viewing -
-
- As user <public user> +
+ As user <public user> +
- - -
-
-
-
- - +
+ + + + + + + + + + +
+
+
+ + diff --git a/static/browse.html b/static/browse.html index f7c45657..8d48be1c 100644 --- a/static/browse.html +++ b/static/browse.html @@ -87,33 +87,51 @@ + -
-
- The SolidOS Databrowser + +
+
+ Viewing
-
- Viewing -
-
- As user <public user> +
+ As user <public user> +
- - -
-
-
-
- - +
+ + + + + + + + + + +
+
+
+ +
From b8ce7bab4c800675a7201937b30dc241628dfe13 Mon Sep 17 00:00:00 2001 From: timea-solid <4144203+timea-solid@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:42:15 +0100 Subject: [PATCH 6/6] updated dep, added light and dark theme for future use only, improved global CSS variables --- package-lock.json | 16 +- package.json | 6 +- src/index.ts | 42 +- src/styles/mash.css | 1523 +++++++++++++++++++++-------------- src/styles/mashlib-style.ts | 17 - src/styles/themes.css | 8 + src/styles/themes/dark.css | 171 ++++ src/styles/themes/light.css | 172 ++++ static/browse-test.html | 6 - static/browse.html | 6 - 10 files changed, 1302 insertions(+), 665 deletions(-) delete mode 100644 src/styles/mashlib-style.ts create mode 100644 src/styles/themes.css create mode 100644 src/styles/themes/dark.css create mode 100644 src/styles/themes/light.css diff --git a/package-lock.json b/package-lock.json index 25bfd034..3036667f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-8c425185", + "solid-panes": "4.0.0-newStyle-525515fb", "solid-ui": "^3.0.1" }, "devDependencies": { @@ -8566,9 +8566,9 @@ "license": "MIT" }, "node_modules/profile-pane": { - "version": "2.0.0-newStyle-62df24f8", - "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0-newStyle-62df24f8.tgz", - "integrity": "sha512-sQltIixwxJ7kJK9ieeBsAo8YFQL5a1JHSoOcxYlrQb4M84/Pp67bLrcg3if3cY2vEmhnsCATmxMedYP0uCww0Q==", + "version": "2.0.0-newStyle-e00e593f", + "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0-newStyle-e00e593f.tgz", + "integrity": "sha512-iUUw9PPeP59h8E5gA/P8JmMsNog/zivrnTrd2j+kEGGLZtRZBT2AIp6k+zsxmMXNRQ7oOXCHSIOXuCHo60XYDg==", "license": "MIT", "dependencies": { "lit-html": "^3.3.2", @@ -9780,9 +9780,9 @@ "license": "MIT" }, "node_modules/solid-panes": { - "version": "4.0.0-newStyle-8c425185", - "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.0.0-newStyle-8c425185.tgz", - "integrity": "sha512-OzBumvUkDKZcdkeN6lzsvwFl3nIQ02OxnMoxW/Qb+hny7fC6ugEeuHdnXBeJBUP3M6imcFQ5A8NYx8xI3zUuGg==", + "version": "4.0.0-newStyle-525515fb", + "resolved": "https://registry.npmjs.org/solid-panes/-/solid-panes-4.0.0-newStyle-525515fb.tgz", + "integrity": "sha512-UQyhFO1kE8YHa9g0jx+672R5zcmwQvCFOaquPwjDPBA+gdVMhm2tp1Wb6RmpQtg2yX/nmv5P5a3s7pzpJ74fRQ==", "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", @@ -9796,7 +9796,7 @@ "meeting-pane": "^3.0.0", "mime-types": "^3.0.1", "pane-registry": "^3.0.0", - "profile-pane": "2.0.0-newStyle-62df24f8", + "profile-pane": "^2.0.0-newStyle-e00e593f", "solid-namespace": "^0.5.4", "source-pane": "^3.0.0" } diff --git a/package.json b/package.json index 82bbde33..d16fc233 100644 --- a/package.json +++ b/package.json @@ -51,15 +51,15 @@ "dependencies": { "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-8c425185", + "solid-panes": "4.0.0-newStyle-525515fb", "solid-ui": "^3.0.1" }, "overrides": { "rdflib": "^2.3.3", "solid-logic": "^4.0.1", - "solid-panes": "4.0.0-newStyle-8c425185", + "solid-panes": "4.0.0-newStyle-525515fb", "solid-ui": "^3.0.1", - "profile-pane": "2.0.0-newStyle-62df24f8" + "profile-pane": "2.0.0-newStyle-e00e593f" }, "devDependencies": { "@babel/cli": "^7.28.0", 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.css b/src/styles/mash.css index 5d1d971c..e7afb218 100644 --- a/src/styles/mash.css +++ b/src/styles/mash.css @@ -1,25 +1,52 @@ -/* 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"); /* 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 { height: 100%; line-height:1.15 } -body { height: 100%; background-color: white ; font-family: sans-serif } /* was: font-size: 80%; */ +html { + height: 100%; + line-height: 1.15; +} +body { + height: 100%; + background-color: var(--color-background); + color: var(--color-text); + font-family: var(--font-family-base); +} + +/* 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 } +.licOkay { + background-color: var(--color-success-bg); +} /* ** other potential colors for CC: @@ -28,24 +55,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 +115,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 +147,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 +357,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 +677,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 +1051,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 +1250,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..c55c5b35 --- /dev/null +++ b/src/styles/themes/dark.css @@ -0,0 +1,171 @@ +/* +** 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.2em; + --spacing-sm: 0.3em; + --spacing-base: 0.5em; + --spacing-md: 0.8em; + --spacing-lg: 1em; + --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; + + /* Card/Section Backgrounds */ + --color-card-bg: #2a2a2a; + --color-section-bg: #1a1a1a; + + /* 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; +} diff --git a/src/styles/themes/light.css b/src/styles/themes/light.css new file mode 100644 index 00000000..28eeaa2d --- /dev/null +++ b/src/styles/themes/light.css @@ -0,0 +1,172 @@ +/* +** Light Theme (Default) +** Default color scheme for SolidOS +*/ + +:root { + /* Background and Text */ + --color-background: white; + --color-text: #333; + --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: #ddd; + + /* 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.2em; + --spacing-sm: 0.3em; + --spacing-base: 0.5em; + --spacing-md: 0.8em; + --spacing-lg: 1em; + --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-secondary: #0077B6; + --color-accent: #FFD600; + --color-error: #B00020; + --color-success: #00C853; + + /* Card/Section Backgrounds */ + --color-card-bg: #FFFFFF; + --color-section-bg: #F5F5F5; + + /* 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; +} diff --git a/static/browse-test.html b/static/browse-test.html index 4f871812..2178e69f 100644 --- a/static/browse-test.html +++ b/static/browse-test.html @@ -149,12 +149,6 @@ margin-top:0.6em !important; } - /* Accessible focus styles for all interactive elements */ - input:focus, button:focus, a:focus, [tabindex]:focus { - outline: 3px solid #005fcc; - outline-offset: 2px; - background-color: #e6f0fa; - } /* Ensure skip link is visible when focused */ .skip-link { position:absolute; diff --git a/static/browse.html b/static/browse.html index 8d48be1c..5adc74cd 100644 --- a/static/browse.html +++ b/static/browse.html @@ -151,12 +151,6 @@ margin-top:0.6em !important; } - /* Accessible focus styles for all interactive elements */ - input:focus, button:focus, a:focus, [tabindex]:focus { - outline: 3px solid #005fcc; - outline-offset: 2px; - background-color: #e6f0fa; - } /* Ensure skip link is visible when focused */ .skip-link { position:absolute;