Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
57056d4
improved local dev
timea-solid Mar 24, 2026
4f2c7e0
new outine structure, ts ignores
timea-solid Mar 24, 2026
89c9c46
wired in environement in context and added left side menu
timea-solid Mar 31, 2026
d9e8c7e
updated pane-registry
timea-solid Mar 31, 2026
4d9820b
merge main
timea-solid Mar 31, 2026
f8eb415
merge main
timea-solid Mar 31, 2026
14c9481
updated codebase
timea-solid Mar 31, 2026
f4bdc44
fic CI
timea-solid Mar 31, 2026
eeb27e6
fix lint
timea-solid Mar 31, 2026
9471402
register editProfileView only if it exists
Apr 6, 2026
b8d2e96
close to final design and calling components
timea-solid Apr 10, 2026
b70303a
small improvements and comments
timea-solid Apr 10, 2026
554c862
rewired menu, better header event handling
timea-solid Apr 10, 2026
782064c
Merge branch 'milestone2k' into milestone3m
timea-solid Apr 10, 2026
f4f76fd
Make outline manager resilient to missing legacy outline mount
Apr 11, 2026
32035cb
Merge branch 'milestone3m' of https://github.com/solidos/solid-panes …
Apr 11, 2026
b290be5
import solid-ui/components/header
Apr 11, 2026
0cac9df
allow png assets
Apr 11, 2026
aa0dc50
mobile/tablet trial
Apr 12, 2026
e44f462
remove nav bar
Apr 12, 2026
5c7c901
Update README.md
timea-solid Apr 13, 2026
d8e3938
Update README.md
timea-solid Apr 13, 2026
1a83a8d
Update README.md
timea-solid Apr 13, 2026
5202e7e
Update src/mainPage/header.ts
timea-solid Apr 13, 2026
6116cd9
Update src/outline/manager.js
timea-solid Apr 13, 2026
85a552f
building left side menu with getDashboardItems
timea-solid Apr 13, 2026
72c7287
Merge branch 'milestone2k' into milestone3m
timea-solid Apr 13, 2026
dc3de6f
alligned mielstone 2k
timea-solid Apr 13, 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
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,30 @@ contacts (A VCARD Address Book, Group, Individual, Organization) can be handled
pane. Any other pane which wants to deal with contacts can just use the pane within its own user interface.

![Mapping many classes on the L to panes on the R](https://solidos.github.io/solid-panes/doc/images/panes-for-classes.svg)


## Generative AI usage
The SolidOS team is using GitHub Copilot integrated in Visual Studio Code.
We have added comments in the code to make it explicit which parts are 100% written by AI.

### Prompt usage hitory:
* Model Claude Opus 4.6: Initially solid-panes is loaded into an HTML shell form mashlib that looks like ... Also, an iFrame is rendered inside the `<div class="TabulatorOutline" id="DummyUUID">` for “isolated pane rendering”. Analyze the solid-panes code for what it uses from this HTML and suggest a new HTML structure which is mobile and accessibility friendly. Let's go ahead and make changes in this code as suggested to accommodate the new databrowser HTML.

* Raptor mini: take a look at how I wired the environment from mashlib into solid-panes. It is not quite right, can you suggest fixes?

* Raptor mini: Update the code to use the new solid-ui-header component. Keep in mind the log in and sign up are wired in specific ways.

* Auto: change the menu to fill up the menu items like in the code: async function getMenuItems (outliner: any) {
const items = await outliner.getDashboardItems()
return items.map((element) => {
return {
label: element.label,
onclick: () => openDashboardPane(outliner, element.tabName || element.paneName)
}
})
}

* Auto: each #sym:MenuItem has an icon which i want displayed on the left side of each menu item when rendered

* Auto: don't add each menu item in a button looking border. Simply list them.
Upon hover apply background color e6dcff and selected or active to be background color: cbb9ff
134 changes: 80 additions & 54 deletions dev/dev-mash.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,81 +8,54 @@
@import url("./dev-light.css");
@import url("./dev-mash-utilities.css");

/* I couldn't find the code for the collapse image. this is a quick work around
to make the collapsing easier to use ( the triangles dont jump 20 pixels). ~cm2
*/
img[title="Hide details."] {
float: left;
}

html {
height: 100%;
line-height: 1.15;
}
body {
height: 100%;
background-color: var(--color-background);
color: var(--color-text);
html, body {
margin: 0;
padding: 0;
font-family: var(--font-family-base);
}

/* Improved heading hierarchy */
h1, h2, h3, h4, h5, h6 {
color: var(--color-primary);
font-weight: 600;
line-height: var(--line-height-tight);
margin-top: 0;
margin-bottom: var(--spacing-sm);
}

h1 { font-size: 2em; } /* 32px */
h2 { font-size: 1.5em; } /* 24px */
h3 { font-size: 1.25em; } /* 20px */
h4 { font-size: 1.125em; }/* 18px */
h5, h6 { font-size: 1em; }/* 16px */

/* Better paragraph spacing */
p {
margin-bottom: var(--spacing-md);
font-size: var(--font-size-base);
line-height: var(--line-height-base);
max-width: 65ch; /* Optimal reading width */
}

/* Improved link accessibility */
a {
color: var(--color-primary);
text-decoration: underline;
text-underline-offset: 0.125em;
text-decoration-thickness: 0.0625em;
}

a:hover, a:focus {
text-decoration-thickness: 0.125em;
background: var(--color-background);
color: var(--color-text);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}


/* Main page elements in databrowser.html */
#PageBody {
/* ── App layout ── */
body {
display: flex;
flex-direction: column;
min-height: 100dvh; /* dvh = dynamic viewport for mobile chrome */
}
#DummyUUID {
flex: 1 0 auto;
}

#PageHeader {
position: sticky;
top: 0;
z-index: 100;
flex-shrink: 0;
}

#MainContent {
flex: 1 1 auto;
overflow-y: auto;
-webkit-overflow-scrolling: touch; /* smooth iOS scroll */
padding: clamp(0.5rem, 2vw, 1.5rem); /* responsive gutter */
container-type: inline-size; /* enable @container queries */
}

#PageFooter {
flex-shrink: 0;
}


.warning {
color: var(--color-warning);
}
.selected {
background-color: var(--color-selected-bg);
}

/* used in profile-pane as success button */
.licOkay {
background-color: var(--color-success-bg);
}
Expand Down Expand Up @@ -1409,3 +1382,56 @@ End of styles for tableViewPane
-moz-box-shadow: $x-axis $y-axis $blur $color;
-o-box-shadow: $x-axis $y-axis $blur $color;
}

/* Generated by AI */
@media screen and (max-width: 768px) {
#PageHeader,
#PageFooter {
width: 100%;
}

#MainContent {
padding-top: 0.75rem;
padding-right: max(0.75rem, env(safe-area-inset-right));
padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
padding-left: max(0.75rem, env(safe-area-inset-left));
}

.TabulatorOutline,
.outline-view {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}

.TabulatorOutline table,
.outline-view table {
min-width: 100%;
}

img.outlineImage,
img.pic,
img.foafPic {
height: auto;
max-width: 100%;
}

div.description,
div.premises,
div.justification,
div.mildNotice {
box-sizing: border-box;
margin-left: 0;
margin-right: 0;
width: 100%;
}
}

html[data-layout="mobile"] #PageBody {
min-height: var(--app-height, 100dvh);
}

html[data-layout="mobile"] #MainContent {
overscroll-behavior-x: contain;
}

/* END of Generated by AI */
14 changes: 12 additions & 2 deletions dev/loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { solidLogicSingleton, store, authSession } from 'solid-logic'
import { getOutliner } from '../src'
import Pane from 'profile-pane'
import './dev-mash.css'
import { DataBrowserContext, RenderEnvironment } from 'pane-registry'

// Add custom properties to the Window interface for TypeScript
declare global {
Expand All @@ -27,15 +28,24 @@ async function renderPane (uri: string) {
await new Promise((resolve, reject) => {
store.fetcher.load(doc).then(resolve, reject)
})
const context = {

const devEnvironment : RenderEnvironment = {
layout: 'desktop', // or 'mobile'
layoutPreference: 'desktop', // or 'mobile' or 'auto'
inputMode: 'pointer', // or 'touch'
theme: 'light', // or 'dark'
viewport: { width: 800, height: 480 } // this is the default viewport for the browser window
}
const context : DataBrowserContext = {
// see https://github.com/solidos/solid-panes/blob/005f90295d83e499fd626bd84aeb3df10135d5c1/src/index.ts#L30-L34
dom: document,
getOutliner,
session: {
store: store,
paneRegistry,
logic: solidLogicSingleton
}
},
environment: devEnvironment
}

console.log(subject, context)
Expand Down
Loading