Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
49b82f3
basic structure of new design
SharonStrats Aug 22, 2026
95faee7
separate main storage view and content view for containers
SharonStrats Aug 26, 2026
d083b87
add + and make it work in sidebar and container pane
SharonStrats Aug 28, 2026
1183bb7
basic header and new menu (not working yet)
SharonStrats Aug 29, 2026
a00da04
Styling for the page and specifically work on the sidebar
SharonStrats Aug 29, 2026
febdb66
wired up the pane creation flow
SharonStrats Aug 30, 2026
8677036
basic implementation and styling of the container pane
SharonStrats Aug 31, 2026
0f6447f
consume the store, file explorer context and create a storage context…
SharonStrats Sep 3, 2026
d28fb03
implement goback from storage pane
SharonStrats Sep 3, 2026
edfef51
cleanup, overall styling, upload area
SharonStrats Sep 17, 2026
9a9b75d
fix container pane upload
SharonStrats Sep 17, 2026
040fd28
Make container folders droppable both sidebar and container pane - up…
SharonStrats Sep 17, 2026
a325f43
Add Resource Action Menu to grid and list view in container pane
SharonStrats Sep 18, 2026
0635c45
Implement details for Adding new things
SharonStrats Sep 19, 2026
16ed79e
Add delete and cleanup
SharonStrats Sep 20, 2026
f2a1874
Add delete and cleanup
SharonStrats Sep 20, 2026
cfcdab7
Add type index discovery options
SharonStrats Sep 21, 2026
fb94a4e
Implement the > shift and option clicks on storage sidebar
SharonStrats Sep 22, 2026
02a13da
create the empty container
SharonStrats Sep 22, 2026
ac17e2a
Click to upload on upload area or empty div
SharonStrats Sep 22, 2026
1374f03
add header to the list view
SharonStrats Sep 22, 2026
92b53b9
Access Denied message and check for the container resources
SharonStrats Sep 22, 2026
c89b37c
Make all resources drag and droppable to move them around to trash or…
SharonStrats Sep 22, 2026
5a1f4cb
merge
SharonStrats Sep 22, 2026
44bc7ad
update rdflib version
SharonStrats Sep 22, 2026
665bac8
merge with latest staging
SharonStrats Sep 22, 2026
239ee06
chore: update solidos dependencies (dev: solid-logic@6.0.0-2 solid-ui…
github-actions[bot] Sep 23, 2026
a872acb
pull and fix
SharonStrats Sep 23, 2026
15d90bd
chore: update solidos dependencies (dev: solid-logic@6.0.0-2 solid-ui…
github-actions[bot] Sep 23, 2026
8e735f3
update version
SharonStrats Sep 23, 2026
93685ae
chore: update solidos dependencies (dev: solid-logic@6.0.0-2 solid-ui…
github-actions[bot] Sep 23, 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
8 changes: 4 additions & 4 deletions declarations.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
declare module '*.css' {
const classes: Record<string, string>;
export default classes;
}
/// <reference types="unplugin-icons/types/web-components" />

declare module '*.css';
declare module '~icons/*';
1,570 changes: 471 additions & 1,099 deletions package-lock.json

Large diffs are not rendered by default.

14 changes: 9 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "folder-pane",
"version": "4.0.0-0",
"version": "4.0.0-1",
"description": "Solid-compatible Panes: File browser",
"main": "dist/index.cjs.js",
"types": "dist/index.d.ts",
Expand All @@ -12,7 +12,8 @@
}
},
"sideEffects": [
"**/*.css"
"**/*.css",
"src/components/**/*.ts"
],
"scripts": {
"clean": "rm -rf dist",
Expand Down Expand Up @@ -58,6 +59,7 @@
"devDependencies": {
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^10.0.1",
"@iconify-json/lucide": "^1.2.116",
"@types/node": "^24.13.3",
"@typescript-eslint/parser": "^8.53.1",
"@vitest/coverage-v8": "^4.0.18",
Expand All @@ -67,9 +69,11 @@
"typescript": "^5.9.3"
},
"dependencies": {
"rdflib": "2.4.0",
"solid-logic": "6.0.0-0",
"solid-ui": "5.0.0-0",
"@lit/context": "^1.1.6",
"pane-registry": "5.0.0-1",
"rdflib": "2.4.1",
"solid-logic": "6.0.0-2",
"solid-ui": "5.0.0-2",
"vite": "^8.0.16",
"vitest": "^4.0.18",
"vitest-axe": "^0.1.0"
Expand Down
257 changes: 257 additions & 0 deletions src/components/storage-container-pane/StorageContainerPane.styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
/*
* Future shadow-DOM layout for the container pane.
* These rules are mirrored in src/styles/folderPane.css for now because the
* storage shell still renders into light DOM. Once the shell can move back to
* shadow DOM, this stylesheet can be reattached via static styles and the
* light-DOM copy can be removed.
*/

:host {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
min-height: 0;
overflow: hidden;
flex: 1 1 auto;
}

:host > .storage-container-pane-content {
display: flex;
flex: 1 1 auto;
flex-direction: column;
min-height: 0;
width: 100%;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: thin;
scrollbar-color: transparent transparent;
}

:host > .storage-container-pane-content::-webkit-scrollbar {
width: 6px;
}

:host > .storage-container-pane-content::-webkit-scrollbar-track {
background: transparent;
}

:host > .storage-container-pane-content::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 999px;
}

:host > .storage-container-pane-content:hover {
scrollbar-color: #c7cbd1 transparent;
}

:host > .storage-container-pane-content:hover::-webkit-scrollbar-thumb {
background: #c7cbd1;
}

:host > .storage-container-pane-content > .storage-container-pane-resource-drop-zone {
display: flex;
flex: 1 1 auto;
flex-direction: column;
min-height: 0;
width: 100%;
}

.resource-grid,
.resource-list {
flex: 1 1 auto;
width: 100%;
overflow: visible;
min-height: 0;
margin: 0;
padding: 20px;
}

.resource-list {
flex-direction: column;
}

.resource-list-header {
display: flex;
align-items: center;
justify-content: space-between;
color: var(--solid-ui-color-gray-600, #4A5565);
font-size: var(--solid-ui-font-size-sm, .875rem);
font-weight: 500;
list-style: none;
}

.resource-list-main {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
flex: 1 1 auto;
}

.resource-grid {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 20px;
}

storage-content-view {
display: block;
width: 100%;
min-height: 0;
flex: 0 0 auto;
}

storage-creation-area {
margin-top: auto;
align-self: stretch;
width: 100%;
box-sizing: border-box;
flex: 0 0 auto;
padding: 10px 20px;
--storage-creation-area-message-font-size: var(--solid-ui-font-size-sm, .875rem);
--storage-creation-area-padding: 28px 20px;
--storage-creation-icon-size: 26px;
--storage-creation-gap: 10px;
--storage-creation-area-border-radius: 12px;
}

.storage-container-pane-resource-drop-zone {
display: flex;
flex-direction: column;
flex: 1 1 auto;
min-height: 0;
width: 100%;
}

.resource-actions-menu {
display: flex;
align-items: center;
flex: 0 0 auto;
justify-content: flex-end;
}

.resource-actions-menu--grid {
position: absolute;
top: 10px;
right: 10px;
}

.resource-actions-menu--list {
margin-left: auto;
}

.resource-grid-item {
position: relative;
}

.resource-grid-item.drop-target,
.resource-list-item.drop-target {
outline: 2px solid var(--solid-ui-color-lavender-300, #C4B5FD);
outline-offset: -2px;
background: color-mix(in srgb, var(--solid-ui-color-lavender-200, #DDD6FE) 35%, white);
}

.resource-grid-top {
position: relative;
}

.resource-grid-icon {
display: flex;
width: 80px;
height: 80px;
padding: 0;
justify-content: center;
align-items: center;
aspect-ratio: 1/1;
margin: 12px auto 0;
}

.resource-grid-icon .resource-pane-icon {
width: 80px;
height: 80px;
object-fit: contain;
}

.resource-grid-icon--container {
width: 37.282px;
height: 37.282px;
padding: 0 9.32px;
margin: 12px 0 0 12px;
justify-content: flex-start;
}

.resource-grid-label--container {
color: var(--solid-ui-color-gray-700, #364153);
font-size: var(--solid-ui-font-size-md, 1rem);
font-weight: 500;
}

icon-lucide-folder,
icon-lucide-file,
icon-lucide-globe,
icon-lucide-lock-keyhole {
width: 15px;
height: 15px;
}

.storage-container-pane-empty-message {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 20px;
min-height: 100%;
text-align: center;
color: var(--solid-ui-color-gray-700, #364153);
}

.storage-container-pane-empty-message-icon {
display: flex;
width: 64px;
height: 64px;
padding: 0 16.785px;
justify-content: center;
align-items: center;
border-radius: 16px;
border: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);
background: var(--solid-ui-color-white, #FFF);
}

.storage-container-pane-empty-message-icon icon-lucide-file-box {
width: 32px;
height: 32px;
color: var(--solid-ui-color-gray-300, #D1D5DC);
stroke-width: 2px;
}

.storage-container-pane-empty-message-title {
margin: 0;
color: var(--solid-ui-color-gray-900, #030712);
font-size: 1.25rem;
font-weight: 700;
line-height: 1.2;
}

.storage-container-pane-empty-message-body {
max-width: 24rem;
margin: 0;
color: var(--solid-ui-color-gray-600, #4A5565);
font-size: var(--solid-ui-font-size-sm, .875rem);
line-height: 21.125px;
}

.storage-container-pane-empty-message--search {
min-height: 100%;
}

.storage-container-pane-empty-message-button {
--text-color: var(--solid-ui-color-primary);
--border-color: var(--solid-ui-color-gray-200, #e5e7eb);
--background-color: var(--solid-ui-color-white, #ffffff);
--hover-text-color: var(--solid-ui-color-primary);
--hover-border-color: var(--solid-ui-color-gray-300, #d1d5db);
--hover-background-color: var(--solid-ui-color-white, #ffffff);
align-self: center;
}
Loading
Loading