Skip to content

Commit 32035cb

Browse files
author
Alain Bourgeois
committed
Merge branch 'milestone3m' of https://github.com/solidos/solid-panes into milestone3m
2 parents f4f76fd + 782064c commit 32035cb

23 files changed

Lines changed: 16303 additions & 1536 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,32 @@ jobs:
8282
- name: Publish to npm
8383
if: github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]'
8484
run: npm publish --tag latest
85+
86+
github-release:
87+
needs: [npm-publish-latest]
88+
runs-on: ubuntu-latest
89+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
90+
permissions:
91+
contents: write
92+
steps:
93+
- uses: actions/checkout@v6
94+
with:
95+
fetch-depth: 0
96+
- name: Create GitHub release with generated notes
97+
env:
98+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
99+
run: |
100+
TAG="v$(node -p 'require("./package.json").version')"
101+
102+
if gh release view "$TAG" >/dev/null 2>&1; then
103+
echo "Release $TAG already exists. Skipping."
104+
exit 0
105+
fi
106+
107+
if git ls-remote --exit-code --tags origin "refs/tags/$TAG" >/dev/null 2>&1; then
108+
echo "Tag $TAG already exists on origin. Creating release from existing tag."
109+
gh release create "$TAG" --verify-tag --generate-notes
110+
else
111+
echo "Creating tag and release $TAG from commit $GITHUB_SHA."
112+
gh release create "$TAG" --target "$GITHUB_SHA" --generate-notes
113+
fi

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,25 @@ contacts (A VCARD Address Book, Group, Individual, Organization) can be handled
7878
pane. Any other pane which wants to deal with contacts can just use the pane within its own user interface.
7979

8080
![Mapping many classes on the L to panes on the R](https://solidos.github.io/solid-panes/doc/images/panes-for-classes.svg)
81+
82+
83+
## Generative AI usage
84+
The SolidOS team is using GitHub Copilot integrated in Visual Studio Code.
85+
We have added comments in the code to make it explicit which parts are 100% written by AI.
86+
87+
### Prompt usage hitory:
88+
* Model Claude Opus 4.6: Initially solid-panes is loaded into a HTML shell form mashlib that looks like ... Also, an iFrame is rendered inside the <div class="TabulatorOutline" id="DummyUUID"> for “isolated pane rendering”. Analize the solid-panes code for what it uses from this HTML and suggest a new HTML structure which is mobile and accessibility friendly. Lets go ahead and make chnages in this code as suggested to accommodate the new databwroser HTML.
89+
90+
* Raptor mini: take a look how I wired the environement from mashlib into solid-panes. It is not quite right, can you suggest fixes?
91+
92+
* 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.
93+
94+
* Auto: chnage the menu to fill up the menu items like in the code: async function getMenuItems (outliner: any) {
95+
const items = await outliner.getDashboardItems()
96+
return items.map((element) => {
97+
return {
98+
label: element.label,
99+
onclick: () => openDashboardPane(outliner, element.tabName || element.paneName)
100+
}
101+
})
102+
}

dev/dev-mash.css

Lines changed: 80 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -8,81 +8,54 @@
88
@import url("./dev-light.css");
99
@import url("./dev-mash-utilities.css");
1010

11-
/* I couldn't find the code for the collapse image. this is a quick work around
12-
to make the collapsing easier to use ( the triangles dont jump 20 pixels). ~cm2
13-
*/
14-
img[title="Hide details."] {
15-
float: left;
16-
}
17-
18-
html {
19-
height: 100%;
20-
line-height: 1.15;
21-
}
22-
body {
23-
height: 100%;
24-
background-color: var(--color-background);
25-
color: var(--color-text);
11+
html, body {
12+
margin: 0;
13+
padding: 0;
2614
font-family: var(--font-family-base);
27-
}
28-
29-
/* Improved heading hierarchy */
30-
h1, h2, h3, h4, h5, h6 {
31-
color: var(--color-primary);
32-
font-weight: 600;
33-
line-height: var(--line-height-tight);
34-
margin-top: 0;
35-
margin-bottom: var(--spacing-sm);
36-
}
37-
38-
h1 { font-size: 2em; } /* 32px */
39-
h2 { font-size: 1.5em; } /* 24px */
40-
h3 { font-size: 1.25em; } /* 20px */
41-
h4 { font-size: 1.125em; }/* 18px */
42-
h5, h6 { font-size: 1em; }/* 16px */
43-
44-
/* Better paragraph spacing */
45-
p {
46-
margin-bottom: var(--spacing-md);
15+
font-size: var(--font-size-base);
4716
line-height: var(--line-height-base);
48-
max-width: 65ch; /* Optimal reading width */
49-
}
50-
51-
/* Improved link accessibility */
52-
a {
53-
color: var(--color-primary);
54-
text-decoration: underline;
55-
text-underline-offset: 0.125em;
56-
text-decoration-thickness: 0.0625em;
57-
}
58-
59-
a:hover, a:focus {
60-
text-decoration-thickness: 0.125em;
17+
background: var(--color-background);
18+
color: var(--color-text);
19+
-webkit-font-smoothing: antialiased;
20+
-moz-osx-font-smoothing: grayscale;
21+
text-rendering: optimizeLegibility;
6122
}
6223

63-
64-
/* Main page elements in databrowser.html */
65-
#PageBody {
24+
/* ── App layout ── */
25+
body {
6626
display: flex;
6727
flex-direction: column;
28+
min-height: 100dvh; /* dvh = dynamic viewport for mobile chrome */
6829
}
69-
#DummyUUID {
70-
flex: 1 0 auto;
71-
}
30+
7231
#PageHeader {
32+
position: sticky;
33+
top: 0;
34+
z-index: 100;
7335
flex-shrink: 0;
7436
}
37+
38+
#MainContent {
39+
flex: 1 1 auto;
40+
overflow-y: auto;
41+
-webkit-overflow-scrolling: touch; /* smooth iOS scroll */
42+
padding: clamp(0.5rem, 2vw, 1.5rem); /* responsive gutter */
43+
container-type: inline-size; /* enable @container queries */
44+
}
45+
7546
#PageFooter {
7647
flex-shrink: 0;
7748
}
7849

50+
7951
.warning {
8052
color: var(--color-warning);
8153
}
8254
.selected {
8355
background-color: var(--color-selected-bg);
8456
}
8557

58+
/* used in profile-pane as success button */
8659
.licOkay {
8760
background-color: var(--color-success-bg);
8861
}
@@ -1409,3 +1382,56 @@ End of styles for tableViewPane
14091382
-moz-box-shadow: $x-axis $y-axis $blur $color;
14101383
-o-box-shadow: $x-axis $y-axis $blur $color;
14111384
}
1385+
1386+
/* Generated by AI */
1387+
@media screen and (max-width: 768px) {
1388+
#PageHeader,
1389+
#PageFooter {
1390+
width: 100%;
1391+
}
1392+
1393+
#MainContent {
1394+
padding-top: 0.75rem;
1395+
padding-right: max(0.75rem, env(safe-area-inset-right));
1396+
padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
1397+
padding-left: max(0.75rem, env(safe-area-inset-left));
1398+
}
1399+
1400+
.TabulatorOutline,
1401+
.outline-view {
1402+
overflow-x: auto;
1403+
-webkit-overflow-scrolling: touch;
1404+
}
1405+
1406+
.TabulatorOutline table,
1407+
.outline-view table {
1408+
min-width: 100%;
1409+
}
1410+
1411+
img.outlineImage,
1412+
img.pic,
1413+
img.foafPic {
1414+
height: auto;
1415+
max-width: 100%;
1416+
}
1417+
1418+
div.description,
1419+
div.premises,
1420+
div.justification,
1421+
div.mildNotice {
1422+
box-sizing: border-box;
1423+
margin-left: 0;
1424+
margin-right: 0;
1425+
width: 100%;
1426+
}
1427+
}
1428+
1429+
html[data-layout="mobile"] #PageBody {
1430+
min-height: var(--app-height, 100dvh);
1431+
}
1432+
1433+
html[data-layout="mobile"] #MainContent {
1434+
overscroll-behavior-x: contain;
1435+
}
1436+
1437+
/* END of Generated by AI */

dev/loader.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { solidLogicSingleton, store, authSession } from 'solid-logic'
55
import { getOutliner } from '../src'
66
import Pane from 'profile-pane'
77
import './dev-mash.css'
8+
import { DataBrowserContext, RenderEnvironment } from 'pane-registry'
89

910
// Add custom properties to the Window interface for TypeScript
1011
declare global {
@@ -27,15 +28,24 @@ async function renderPane (uri: string) {
2728
await new Promise((resolve, reject) => {
2829
store.fetcher.load(doc).then(resolve, reject)
2930
})
30-
const context = {
31+
32+
const devEnvironment : RenderEnvironment = {
33+
layout: 'desktop', // or 'mobile'
34+
layoutPreference: 'desktop', // or 'mobile' or 'auto'
35+
inputMode: 'pointer', // or 'touch'
36+
theme: 'light', // or 'dark'
37+
viewport: { width: 800, height: 480 } // this is the default viewport for the browser window
38+
}
39+
const context : DataBrowserContext = {
3140
// see https://github.com/solidos/solid-panes/blob/005f90295d83e499fd626bd84aeb3df10135d5c1/src/index.ts#L30-L34
3241
dom: document,
3342
getOutliner,
3443
session: {
3544
store: store,
3645
paneRegistry,
3746
logic: solidLogicSingleton
38-
}
47+
},
48+
environment: devEnvironment
3949
}
4050

4151
console.log(subject, context)

0 commit comments

Comments
 (0)