Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e25ea0f
mashlib using branch newStyle
timea-solid Nov 20, 2025
f3051e6
use overrides to fix version issues
timea-solid Nov 20, 2025
4ca28e8
update solid-panes
timea-solid Nov 22, 2025
2c8ef35
new porfile pane
timea-solid Dec 9, 2025
75ea8e4
merge main, fix vuln
timea-solid Jan 12, 2026
f1d46b3
updated dep
timea-solid Jan 16, 2026
dfcec15
WCAG compliant
timea-solid Jan 16, 2026
b8ce7ba
updated dep, added light and dark theme for future use only, improved…
timea-solid Jan 16, 2026
2b964d3
fixed css
timea-solid Jan 18, 2026
5e6c6d9
test dependencies
bourgeoa Jan 25, 2026
a90434f
test dependencies
bourgeoa Jan 25, 2026
39954d3
edit overrides
bourgeoa Jan 25, 2026
a310984
test profile-pane
bourgeoa Jan 25, 2026
edc75c1
Merge branch 'main' into newStyle
timea-solid Jan 27, 2026
4845e7d
updated dep
timea-solid Jan 27, 2026
2e4408c
Merge branch 'main' into newStyle
timea-solid Jan 27, 2026
222f306
copilot suggestions
timea-solid Jan 27, 2026
01c4116
some style imporvements
timea-solid Jan 27, 2026
8f2761d
caught some resize error
timea-solid Jan 27, 2026
7f62b54
updates dependencies
bourgeoa Jan 27, 2026
51726a2
update dependencies
bourgeoa Jan 28, 2026
a06552b
use unminified mashlib in dev and watch
timea-solid Jan 29, 2026
97ebd64
solid-panes hardening
bourgeoa Jan 29, 2026
21e4883
Merge branch 'newStyle' of https://github.com/solidos/mashlib into ne…
bourgeoa Jan 29, 2026
363e9e6
dependencies
bourgeoa Jan 30, 2026
25ceedb
update dependencies
bourgeoa Jan 30, 2026
844d035
2.1.0
bourgeoa Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,538 changes: 873 additions & 665 deletions package-lock.json

Large diffs are not rendered by default.

48 changes: 27 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mashlib",
"version": "2.0.0",
"version": "2.1.0",
"description": "Data mashup library",
"main": "dist/mashlib.js",
"files": [
Expand Down Expand Up @@ -49,35 +49,41 @@
},
"homepage": "https://github.com/solidos/mashlib",
"dependencies": {
"rdflib": "^2.3.3",
"solid-logic": "^4.0.0",
"solid-panes": "^4.0.0",
"solid-ui": "^3.0.0"
"rdflib": "^2.3.5",
"solid-logic": "^4.0.2",
"solid-panes": "^4.1.0",
"solid-ui": "^3.0.4"
},
"overrides": {
"rdflib": "$rdflib",
"solid-logic": "$solid-logic",
"solid-panes": "$solid-panes",
"solid-ui": "$solid-ui"
},
"devDependencies": {
"@babel/cli": "^7.28.0",
"@babel/core": "^7.28.0",
"@babel/plugin-transform-runtime": "^7.28.0",
"@babel/preset-env": "^7.28.0",
"@babel/preset-typescript": "^7.27.1",
"@typescript-eslint/parser": "^8.39.0",
"@babel/cli": "^7.28.6",
"@babel/core": "^7.28.6",
"@babel/plugin-transform-runtime": "^7.28.5",
"@babel/preset-env": "^7.28.6",
"@babel/preset-typescript": "^7.28.5",
"@typescript-eslint/parser": "^8.54.0",
"@webpack-cli/serve": "^3.0.1",
"babel-loader": "^10.0.0",
"bundlesize2": "^0.0.35",
"copy-webpack-plugin": "^13.0.0",
"css-loader": "^7.1.2",
"eslint": "^9.33.0",
"copy-webpack-plugin": "^13.0.1",
"css-loader": "^7.1.3",
"eslint": "^9.39.2",
"file-loader": "^6.2.0",
"globals": "^17.0.0",
"html-webpack-plugin": "^5.6.3",
"mini-css-extract-plugin": "^2.9.4",
"globals": "^17.2.0",
"html-webpack-plugin": "^5.6.6",
"mini-css-extract-plugin": "^2.10.0",
"node-polyfill-webpack-plugin": "^4.1.0",
"terser-webpack-plugin": "^5.3.14",
"typescript": "^5.9.2",
"terser-webpack-plugin": "^5.3.16",
"typescript": "^5.9.3",
"url-loader": "^4.1.1",
"webpack": "^5.101.0",
"webpack": "^5.104.1",
"webpack-cli": "^6.0.1",
"webpack-dev-server": "^5.2.2"
"webpack-dev-server": "^5.2.3"
},
"bundlesize": [
{
Expand Down
29 changes: 21 additions & 8 deletions src/databrowser.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,26 @@
})
</script>
</head>
<body id="PageBody">
<!-- solid-panes' OutlineManager injects into this element -->
<header id="PageHeader"></header>
<div class="TabulatorOutline" id="DummyUUID" role="main">
<table id="outline"></table>
<div id="GlobalDashboard"></div>
</div>
<footer id="PageFooter"></footer>
<body id="PageBody">
<a href="#DummyUUID" class="skip-link">Skip to main content</a>
<!-- solid-panes' OutlineManager injects into this element -->
<header id="PageHeader" role="banner"></header>
<main id="mainContent" tabindex="-1">
<div class="TabulatorOutline" id="DummyUUID">
<table id="outline">
<thead>
<tr>
<th id="outlineHeader" scope="col"></th>
<!-- Add more <th> as needed for columns -->
</tr>
</thead>
<tbody>
<!-- Table rows injected by JS -->
</tbody>
</table>
<div id="GlobalDashboard" aria-label="Global Dashboard"></div>
</div>
</main>
<footer id="PageFooter" role="contentinfo"></footer>
</body>
</html>
42 changes: 35 additions & 7 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand All @@ -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}'
Expand Down
Loading