From 8d631dac056418f219c9cbb3fda07aaeedd37498 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 13 Aug 2026 10:56:31 +1000 Subject: [PATCH 01/15] fix resize issue - subject showing --- src/mainPage/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mainPage/index.ts b/src/mainPage/index.ts index ca50b463..3e0a781d 100644 --- a/src/mainPage/index.ts +++ b/src/mainPage/index.ts @@ -63,9 +63,12 @@ export async function initMainPage ( export async function refreshUI (outliner: OutlineManager) { const store = outliner?.context?.session?.store const paneRegistry = outliner?.context?.session?.paneRegistry - const subjectUri = window.document.location.href const paneName = window.history.state?.paneName - const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined + const paneUri = window.history.state?.paneUri + const subjectUri = paneUri && (paneName === 'profile' || paneName === 'social') + ? paneUri + : window.document.location.href + let pane = paneName ? paneRegistry?.byName?.(paneName) : undefined // Only re-run GotoSubject (full pane re-render) when render-relevant // environment fields actually changed since the last render. From bc3ad6b292428ae53b1f6948aa8d4c736715b48a Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 13 Aug 2026 11:01:57 +1000 Subject: [PATCH 02/15] remove delete from resource action menu --- .../ResourceActionsMenu.ts | 71 +------------------ 1 file changed, 1 insertion(+), 70 deletions(-) diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.ts b/src/components/resource-actions-menu/ResourceActionsMenu.ts index 884b3004..40311a83 100644 --- a/src/components/resource-actions-menu/ResourceActionsMenu.ts +++ b/src/components/resource-actions-menu/ResourceActionsMenu.ts @@ -1,15 +1,11 @@ -import { showDialog, utils, WebComponent } from 'solid-ui' +import { WebComponent } from 'solid-ui' import { customElement, property } from 'lit/decorators.js' import { html } from 'lit' import 'solid-ui/components/button' import 'solid-ui/components/menu' import 'solid-ui/components/menu-item' -import DeleteResourceDialog from './DeleteResourceDialog' import '~icons/lucide/ellipsis-vertical' -import '~icons/lucide/trash-2' import { LiveStore } from 'rdflib' -// TODO: Add Error Status section - @customElement('resource-actions-menu') export default class ResourceActionsMenu extends WebComponent { @property({ attribute: false }) @@ -21,67 +17,6 @@ export default class ResourceActionsMenu extends WebComponent { @property({ attribute: false }) accessor menuItems: Array<{ label: string, icon?: HTMLElement, action: (event: Event) => void }> = [] - private confirmDelete (resourceName: string) { - return new Promise(resolve => { - showDialog(DeleteResourceDialog, { - props: { resourceName }, - onClose: (result) => resolve(result === true) - }) - }) - } - - /* private gotoParentFolder(resourceUri: string) { - const sourceContext = this.sourceContext - const outliner = sourceContext?.context?.getOutliner?.(sourceContext.context.dom) - - if (!outliner) return - - const parentFolderUri = this.getParentFolderUri(resourceUri) - ;(outliner as any).GotoSubject(sourceContext.context.session.store.sym(parentFolderUri), true, undefined, true, undefined) - } */ - - private async deleteResourceIfPresent (store: LiveStore, uri: string) { - try { - await store.fetcher.webOperation('DELETE', uri) - } catch (err: any) { - const status = err?.response?.status ?? err?.status - if (status === 404) return - throw err - } - } - - // TODO: Below is for a file only. I need to move this to a function - // that function needs to check if it's a container and if so we can do the - // recursive delete function. - // dont' forget public and private type indexes. - private async handleDelete (event: Event) { - event.preventDefault() - - if (!this.store?.fetcher || !this.subjectUri) return - - const store = this.store - const resourceNode = store.sym(this.subjectUri) - - const confirmation = await this.confirmDelete(utils.label(resourceNode)) - if (!confirmation) return - - try { - await this.deleteResourceIfPresent(store, resourceNode.value) - - const aclUri = this.subjectUri + '.acl' - if (aclUri) { - await this.deleteResourceIfPresent(store, aclUri) - store.removeDocument(store.sym(aclUri)) - } - - store.removeDocument(resourceNode) - // this.gotoParentFolder(resourceNode.value) - } catch (err) { - // error('Error deleting resource:', err) - // getStatusSection()?.showError('Failed to delete resource. Check console for details.') - } - } - render () { return html` @@ -94,10 +29,6 @@ export default class ResourceActionsMenu extends WebComponent { ${item.label} `)} - this.handleDelete(event)}> - - Delete - ` } From fe40f189a37101b1013832ee734e30e274de4ed6 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 13 Aug 2026 18:47:14 +1000 Subject: [PATCH 03/15] fix up header stylings --- .../FileExplorerHeader.styles.css | 1 + .../FileExplorerHeaderControls.styles.css | 6 +++ .../FileExplorerHeaderControls.ts | 32 +++++++++------ .../FileExplorerHeaderSummary.styles.css | 19 ++++++++- .../FileExplorerHeaderSummary.ts | 41 ++++++++++++++++--- .../FileExplorerProvider.ts | 1 + src/components/file-explorer-header/helper.ts | 19 +++++++++ .../ResourceActionsMenu.styles.css | 6 +++ .../ResourceActionsMenu.ts | 22 +++++++++- 9 files changed, 126 insertions(+), 21 deletions(-) create mode 100644 src/components/resource-actions-menu/ResourceActionsMenu.styles.css diff --git a/src/components/file-explorer-header/FileExplorerHeader.styles.css b/src/components/file-explorer-header/FileExplorerHeader.styles.css index d75d59f4..cd6b76f3 100644 --- a/src/components/file-explorer-header/FileExplorerHeader.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeader.styles.css @@ -8,5 +8,6 @@ width: 100%; text-align: right; padding: 15px; + border-bottom: 1px solid var(--solid-ui-color-gray-200, #cbd5e1); } } diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css b/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css index d962f83b..42f6d217 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css @@ -31,6 +31,12 @@ white-space: nowrap; } + icon-lucide-share-2, + icon-lucide-pencil { + width: 16px; + height: 16px; + } + @media (max-width: 900px) { div { padding-right: 3px; diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.ts b/src/components/file-explorer-header/FileExplorerHeaderControls.ts index b6668ce4..bb89133a 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.ts @@ -8,6 +8,7 @@ import '~icons/lucide/pencil' import styles from './FileExplorerHeaderControls.styles.css' import '../resource-actions-menu/ResourceActionsMenu' import { fileExplorerContext, type FileExplorerContext } from 'solid-ui' +import { isContainerSubject } from './helper' @customElement('file-explorer-header-controls') export default class FileExplorerHeaderControls extends WebComponent { @@ -49,22 +50,29 @@ export default class FileExplorerHeaderControls extends WebComponent { } render () { + const isContainerResource = isContainerSubject(this.fileExplorerContext.store, this.fileExplorerContext.subjectUri) + return html`
${this.renderDirtyIndicator()} - - - - - - + ${!isContainerResource + ? html` + + + + + + + ` + : nothing} diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css index 0fce991a..5ec3b728 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css @@ -12,8 +12,25 @@ h1 { color: var(--solid-ui-color-gray-700, #364153); - font-size: var(--solid-ui-font-size-2xl, 1.5rem); + font-size: var(--solid-ui-font-size-xl, 1.25rem); /* while in expand will go to 2xl when new design is complete */ font-weight: 500; + display: flex; + align-items: center; + gap: 8px; + margin: 0; + } + + .resource-info { + display: flex; + flex-direction: column; + min-width: 0; + } + + .container-info { + display: flex; + flex-direction: row; + gap: 10px; + min-width: 0; } .pane-icon { diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts index a02b6947..c87cc751 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts @@ -8,8 +8,9 @@ import { PaneIcon } from './types' import '~icons/lucide/globe' import '~icons/lucide/lock-keyhole' import '~icons/lucide/arrow-left' +import '~icons/lucide/folder' import styles from './FileExplorerHeaderSummary.styles.css' -import { type FileExplorerResourceMetadata } from './helper' +import { getContainerItemCount, isContainerSubject, type FileExplorerResourceMetadata } from './helper' @customElement('file-explorer-header-summary') export default class FileExplorerHeaderSummary extends WebComponent { @@ -93,11 +94,41 @@ export default class FileExplorerHeaderSummary extends WebComponent { } } + private renderContainerResourceHeader (label: string, isPublic: boolean) { + const itemCount = getContainerItemCount(this.fileExplorerContext?.store, this.fileExplorerContext?.subjectUri) ?? 0 + return html` +
+

+ ${label} +

+

+ ${itemCount} items + ${isPublic + ? html`` + : html``} +

+
+ ` + } + + private renderResourceHeader (label: string, isPublic: boolean) { + const modified = this.formatModifiedDate(this.responseMetadata.modified) + + return html` +
+

+ ${label} +

+

${modified} ${isPublic ? html` Public` : html` Private`}

+
+ ` + } + render () { const subject = this.fileExplorerContext?.subjectUri ? sym(this.fileExplorerContext.subjectUri) : undefined const label = subject ? utils.label(subject) : '' - const modified = this.formatModifiedDate(this.responseMetadata.modified) const isPublic = this.responseMetadata.isPublic + const isContainerResource = isContainerSubject(this.fileExplorerContext?.store, this.fileExplorerContext?.subjectUri) return html`
@@ -111,10 +142,8 @@ export default class FileExplorerHeaderSummary extends WebComponent { ${this.resolvedPaneIcon ? html`` : ''} -
-

${label}

-

${modified} ${isPublic ? html` Public` : html` Private`}

-
+ ${isContainerResource ? this.renderContainerResourceHeader(label, isPublic) : this.renderResourceHeader(label, isPublic)} +
` } diff --git a/src/components/file-explorer-header/FileExplorerProvider.ts b/src/components/file-explorer-header/FileExplorerProvider.ts index 07ea4c24..dca92b37 100644 --- a/src/components/file-explorer-header/FileExplorerProvider.ts +++ b/src/components/file-explorer-header/FileExplorerProvider.ts @@ -9,6 +9,7 @@ import './FileExplorerHeader' import styles from './FileExplorerProvider.styles.css' import personIcon from '../../icons/person.svg' import friendsIcon from '../../icons/friends.svg' +import '~icons/lucide/share-2' const PERSON_ICON = personIcon const FRIENDS_ICON = friendsIcon diff --git a/src/components/file-explorer-header/helper.ts b/src/components/file-explorer-header/helper.ts index 129c30bb..ba5e10dc 100644 --- a/src/components/file-explorer-header/helper.ts +++ b/src/components/file-explorer-header/helper.ts @@ -12,6 +12,25 @@ export type FileExplorerResourceMetadata = { modified: string | undefined } +export function isContainerSubject (store: LiveStore | undefined, subjectUri: string | undefined): boolean { + if (!store || !subjectUri) return false + + const subject = store.sym(subjectUri) + const typeUris = store.findTypeURIs(subject) + return Boolean( + typeUris[ns.ldp('Container').uri] || + typeUris[ns.ldp('BasicContainer').uri] || + subject.uri.endsWith('/') + ) +} + +export function getContainerItemCount (store: LiveStore | undefined, subjectUri: string | undefined): number { + if (!store || !subjectUri) return 0 + + const subject = store.sym(subjectUri) + return store.each(subject, ns.ldp('contains')).length +} + function parseWacAllowHeader (headerValue: string | null | undefined) { const permissions = new Map>() if (!headerValue) return permissions diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.styles.css b/src/components/resource-actions-menu/ResourceActionsMenu.styles.css new file mode 100644 index 00000000..33a5392f --- /dev/null +++ b/src/components/resource-actions-menu/ResourceActionsMenu.styles.css @@ -0,0 +1,6 @@ +:host { + .ellipsisIcon { + width: 16px; + height: 16px; + } +} diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.ts b/src/components/resource-actions-menu/ResourceActionsMenu.ts index 40311a83..1e66e982 100644 --- a/src/components/resource-actions-menu/ResourceActionsMenu.ts +++ b/src/components/resource-actions-menu/ResourceActionsMenu.ts @@ -1,27 +1,37 @@ import { WebComponent } from 'solid-ui' import { customElement, property } from 'lit/decorators.js' -import { html } from 'lit' +import { html, nothing } from 'lit' import 'solid-ui/components/button' import 'solid-ui/components/menu' import 'solid-ui/components/menu-item' import '~icons/lucide/ellipsis-vertical' +import '~icons/lucide/share-2' import { LiveStore } from 'rdflib' +import styles from './ResourceActionsMenu.styles.css' +import { isContainerSubject } from '../file-explorer-header/helper' @customElement('resource-actions-menu') export default class ResourceActionsMenu extends WebComponent { + static styles = styles + @property({ attribute: false }) accessor store: LiveStore | undefined @property({ type: String }) accessor subjectUri: string | undefined + @property({ attribute: false }) + accessor handleSharingClick: (() => void) | undefined = undefined + @property({ attribute: false }) accessor menuItems: Array<{ label: string, icon?: HTMLElement, action: (event: Event) => void }> = [] render () { + const isContainerResource = isContainerSubject(this.store, this.subjectUri) + return html` - + ${this.menuItems.map(item => html` item.action(event)}> @@ -29,6 +39,14 @@ export default class ResourceActionsMenu extends WebComponent { ${item.label} `)} + ${isContainerResource && this.handleSharingClick + ? html` + this.handleSharingClick?.()}> + + Share + + ` + : nothing} ` } From 58393eebdad45325acab3f217aedcf19c888a7e5 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 13 Aug 2026 19:14:57 +1000 Subject: [PATCH 04/15] needed to include storage for refresh Prompt: storage has the same problem as profile please investigate the profile and social fix and include storage Co-authored-by: Claude Optus 5 --- src/mainPage/index.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/mainPage/index.ts b/src/mainPage/index.ts index 3e0a781d..21eb7ee9 100644 --- a/src/mainPage/index.ts +++ b/src/mainPage/index.ts @@ -44,14 +44,14 @@ export async function initMainPage ( ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment) uri = uri || window.location.href const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri + const urlPane = isWebIdUri(subject) + ? await getProfilePaneFromURI(subject) + : undefined const historyPaneName = window.history.state?.paneName const historyPane = historyPaneName ? paneRegistry.byName(historyPaneName) : undefined - const initialPane = historyPane ?? - (!historyPaneName && isWebIdUri(subject) - ? await getProfilePaneFromURI(subject) - : undefined) + const initialPane = urlPane ?? historyPane outliner.GotoSubject(subject, true, initialPane, true, undefined, undefined, true, false) @@ -65,7 +65,10 @@ export async function refreshUI (outliner: OutlineManager) { const paneRegistry = outliner?.context?.session?.paneRegistry const paneName = window.history.state?.paneName const paneUri = window.history.state?.paneUri - const subjectUri = paneUri && (paneName === 'profile' || paneName === 'social') + // Panes rendered for a subject other than the page URL (storage/profile/social) + // must be restored from paneUri, since byName() returns the pane without that subject. + const usesOwnSubject = paneName === 'profile' || paneName === 'social' || paneName === 'folder' + const subjectUri = paneUri && usesOwnSubject ? paneUri : window.document.location.href let pane = paneName ? paneRegistry?.byName?.(paneName) : undefined From 35eba13d85e1c74c25317855f0bdacb56589e7bf Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Fri, 14 Aug 2026 12:41:14 +1000 Subject: [PATCH 05/15] mobile --- .../FileExplorerHeader.styles.css | 2 +- .../FileExplorerHeaderControls.styles.css | 12 +++++ .../FileExplorerHeaderControls.ts | 46 +++++++++++++++---- .../FileExplorerHeaderSummary.styles.css | 42 +++++++++++++++++ .../FileExplorerHeaderSummary.ts | 2 +- .../ResourceActionsMenu.ts | 24 ++++++++-- src/outline/manager.css | 9 ++++ src/outline/manager.js | 10 +--- 8 files changed, 124 insertions(+), 23 deletions(-) diff --git a/src/components/file-explorer-header/FileExplorerHeader.styles.css b/src/components/file-explorer-header/FileExplorerHeader.styles.css index cd6b76f3..866bd8cb 100644 --- a/src/components/file-explorer-header/FileExplorerHeader.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeader.styles.css @@ -7,7 +7,7 @@ flex-wrap: nowrap; width: 100%; text-align: right; - padding: 15px; + padding: 10px; border-bottom: 1px solid var(--solid-ui-color-gray-200, #cbd5e1); } } diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css b/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css index 42f6d217..8e8aadb0 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.styles.css @@ -48,5 +48,17 @@ justify-content: flex-start; gap: 5px; } + + .file-explorer-header-share-button, + .file-explorer-header-edit-button { + display: none; + } + + icon-lucide-ellipsis-vertical { + width: 15.36px; + height: 15.36px; + flex-shrink: 0; + aspect-ratio: 1 / 1; + } } } diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.ts b/src/components/file-explorer-header/FileExplorerHeaderControls.ts index bb89133a..8d681062 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.ts @@ -1,5 +1,5 @@ import { WebComponent } from 'solid-ui' -import { customElement, property } from 'lit/decorators.js' +import { customElement, property, state } from 'lit/decorators.js' import { consume } from '@lit/context' import { html, nothing } from 'lit' import 'solid-ui/components/button' @@ -14,15 +14,44 @@ import { isContainerSubject } from './helper' export default class FileExplorerHeaderControls extends WebComponent { static styles = styles + private mobileMediaQuery: MediaQueryList | undefined + private readonly mobileQuery = '(max-width: 600px)' + private readonly handleMobileMediaChange = (event: MediaQueryListEvent) => { + this.isMobile = event.matches + } + @consume({ context: fileExplorerContext, subscribe: true }) accessor fileExplorerContext: FileExplorerContext = undefined as unknown as FileExplorerContext @property({ attribute: false }) - accessor menuItems: Array<{ label: string, action: (event: Event) => void }> = [] + accessor menuItems: Array<{ label: string, action: (event: Event) => void, icon?: HTMLElement }> = [] @property({ type: Boolean }) accessor canEdit: boolean = false + @state() + accessor isMobile = typeof window !== 'undefined' && typeof window.matchMedia === 'function' + ? window.matchMedia('(max-width: 600px)').matches + : false + + connectedCallback () { + super.connectedCallback() + + if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') { + return + } + + this.mobileMediaQuery = window.matchMedia(this.mobileQuery) + this.isMobile = this.mobileMediaQuery.matches + this.mobileMediaQuery.addEventListener('change', this.handleMobileMediaChange) + } + + disconnectedCallback () { + this.mobileMediaQuery?.removeEventListener('change', this.handleMobileMediaChange) + this.mobileMediaQuery = undefined + super.disconnectedCallback() + } + // TODO: Add broken then use this function to set tooltip and disable edit button /* private setEditable() { const sourcePaneState = this.sourceContext?.sourcePaneState @@ -33,10 +62,6 @@ export default class FileExplorerHeaderControls extends WebComponent { this.sourceContext?.setEditing?.() } */ - private handleEditingClick () { - this.fileExplorerContext.edit?.onEdit?.() - } - private getEditTooltip () { if (!this.fileExplorerContext.paneSupportsEditing) return 'Not Supported' if (!this.canEdit) return 'No Access' @@ -55,16 +80,17 @@ export default class FileExplorerHeaderControls extends WebComponent { return html`
${this.renderDirtyIndicator()} - ${!isContainerResource + ${!isContainerResource && !this.isMobile ? html` - + @@ -73,8 +99,10 @@ export default class FileExplorerHeaderControls extends WebComponent {
` diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css index 5ec3b728..7e125bd9 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css @@ -99,8 +99,50 @@ height: 0.875rem; } + .resource-date { + font-size: inherit; + } + icon-lucide-arrow-left { width: 1.125rem; height: 1.125rem; } + + @media (max-width: 600px) { + .file-explorer-header-summary { + gap: 7px; + } + + h1 { + font-size: 14px; + } + + .pane-icon { + width: 18.2px; + height: 18.2px; + flex-shrink: 0; + aspect-ratio: 1 / 1; + padding: 0; + } + + p { + font-size: 14px; + } + + .resource-date { + font-size: 10px; + } + + .public, + .private { + font-size: 9px; + } + + icon-lucide-arrow-left { + width: 15px; + height: 18px; + flex-shrink: 0; + aspect-ratio: 5 / 6; + } + } } diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts index c87cc751..01ee4409 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts @@ -119,7 +119,7 @@ export default class FileExplorerHeaderSummary extends WebComponent {

${label}

-

${modified} ${isPublic ? html` Public` : html` Private`}

+

${modified} ${isPublic ? html` Public` : html` Private`}

` } diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.ts b/src/components/resource-actions-menu/ResourceActionsMenu.ts index 1e66e982..5a8dfedb 100644 --- a/src/components/resource-actions-menu/ResourceActionsMenu.ts +++ b/src/components/resource-actions-menu/ResourceActionsMenu.ts @@ -6,6 +6,7 @@ import 'solid-ui/components/menu' import 'solid-ui/components/menu-item' import '~icons/lucide/ellipsis-vertical' import '~icons/lucide/share-2' +import '~icons/lucide/pencil' import { LiveStore } from 'rdflib' import styles from './ResourceActionsMenu.styles.css' import { isContainerSubject } from '../file-explorer-header/helper' @@ -23,11 +24,16 @@ export default class ResourceActionsMenu extends WebComponent { accessor handleSharingClick: (() => void) | undefined = undefined @property({ attribute: false }) - accessor menuItems: Array<{ label: string, icon?: HTMLElement, action: (event: Event) => void }> = [] + accessor handleEditingClick: (() => void) | undefined = undefined + + @property({ type: Boolean }) + accessor isMobile = false + + @property({ attribute: false }) + accessor menuItems: Array<{ label: string, icon?: unknown, action: (event: Event) => void }> = [] render () { const isContainerResource = isContainerSubject(this.store, this.subjectUri) - return html` @@ -39,9 +45,21 @@ export default class ResourceActionsMenu extends WebComponent { ${item.label} `)} + ${!isContainerResource && this.isMobile + ? html` + + + Edit + + + + Share + + ` + : nothing} ${isContainerResource && this.handleSharingClick ? html` - this.handleSharingClick?.()}> + Share diff --git a/src/outline/manager.css b/src/outline/manager.css index 028ad892..e2fcf108 100644 --- a/src/outline/manager.css +++ b/src/outline/manager.css @@ -82,3 +82,12 @@ width: 12px; height: 12px; } + +@media (max-width: 600px) { + .obj, + .iconTD { + font-size: 100%; + margin: 0 !important; + vertical-align: top; + } +} diff --git a/src/outline/manager.js b/src/outline/manager.js index 1207ad30..e0c56b66 100644 --- a/src/outline/manager.js +++ b/src/outline/manager.js @@ -711,10 +711,7 @@ export default function (context) { // Add the x more here const moreTR = dom.createElement('tr') const moreTD = moreTR.appendChild(dom.createElement('td')) - moreTD.setAttribute( - 'style', - 'margin: 0.2em; border: none; padding: 0; vertical-align: top;' - ) + moreTD.classList.add('obj') moreTD.setAttribute('notSelectable', 'false') if (predDups > n) { // what is this for?? @@ -790,13 +787,8 @@ export default function (context) { termWidget.construct = function (dom) { dom = dom || document const td = dom.createElement('TD') - td.setAttribute( - 'style', - 'margin: 0.2em; border: none; padding: 0; vertical-align: top;' - ) td.setAttribute('class', 'iconTD') td.setAttribute('notSelectable', 'true') - td.style.width = '0px' return td } termWidget.addIcon = function (td, icon, listener) { From b266d3e4c793eb8a34e58048232e16714318e2c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Aug 2026 02:55:26 +0000 Subject: [PATCH 06/15] chore: update solidos dependencies (dev: solid-logic@4.0.8-3 solid-ui@3.1.3-17 pane-registry@3.1.2-2 activitystreams-pane@1.0.3-4 chat-pane@3.0.4-3 contacts-pane@3.2.1-6 folder-pane@3.1.1-3 issue-pane@3.0.3-1 meeting-pane@3.0.3-1 profile-pane@3.2.3-4 source-pane@3.1.1-7) (latest: rdflib@2.4.0) --- package-lock.json | 488 ++++++++++++++++++++++++---------------------- package.json | 8 +- 2 files changed, 255 insertions(+), 241 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99c6b360..d7636782 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@solid/better-simple-slideshow": "^0.1.0", "activitystreams-pane": "1.0.3-4", "chat-pane": "3.0.4-3", - "contacts-pane": "3.2.1-5", + "contacts-pane": "3.2.1-6", "dompurify": "^3.4.4", "folder-pane": "3.1.1-3", "issue-pane": "3.0.3-1", @@ -23,10 +23,10 @@ "pane-registry": "3.1.2-2", "profile-pane": "3.2.3-4", "rdflib": "2.4.0", - "solid-logic": "4.0.8-2", + "solid-logic": "4.0.8-3", "solid-namespace": "^0.5.4", - "solid-ui": "3.1.3-15", - "source-pane": "3.1.1-6" + "solid-ui": "3.1.3-17", + "source-pane": "3.1.1-7" }, "devDependencies": { "@iconify/json": "2.2.494", @@ -2034,6 +2034,21 @@ "@lezer/json": "^1.0.0" } }, + "node_modules/@codemirror/lang-markdown": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.5.2.tgz", + "integrity": "sha512-AwBOdkWYuA//WcM0xO5PfHPUcmz/O2i5o0Nsg1U69SII/loCJlFI1Romd9xp2HYb1kYJRGZotyqRghuHH5n8Kw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.7.1", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.3.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.2.1", + "@lezer/markdown": "^1.0.0" + } + }, "node_modules/@codemirror/lang-xml": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", @@ -2082,17 +2097,6 @@ "crelt": "^1.0.5" } }, - "node_modules/@codemirror/search": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.7.1.tgz", - "integrity": "sha512-uMe5UO6PamJtSHrXhhHOzSX3ReWtiJrva6GnPMwSOrZtiExb5X5eExhr2OUZQVvdxPsKpY3Ro2mFbQadpPWmHA==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.37.0", - "crelt": "^1.0.5" - } - }, "node_modules/@codemirror/state": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.7.1.tgz", @@ -2312,13 +2316,13 @@ } }, "node_modules/@digitalbazaar/http-client": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.3.0.tgz", - "integrity": "sha512-6lMpxpt9BOmqHKGs9Xm6DP4LlZTBFer/ZjHvP3FcW3IaUWYIWC7dw5RFZnvw4fP57kAVcm1dp3IF+Y50qhBvAw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.4.0.tgz", + "integrity": "sha512-ODhCGmElUPmR3IR+KZmBNkRAFyjJ01rxvk2E+/qQ2h2EGPJH5k6bz3N24ympGc5+i4YCGk/ipIpmkwc0+iSmRg==", "license": "BSD-3-Clause", "dependencies": { - "ky": "^1.14.2", - "undici": "^6.23.0" + "ky": "^1.14.3", + "undici": "^6.28.0" }, "engines": { "node": ">=18.0" @@ -2827,6 +2831,16 @@ "@lezer/common": "^1.0.0" } }, + "node_modules/@lezer/markdown": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.7.2.tgz", + "integrity": "sha512-iTkYvoVcKt3WkeL7qUDyXHONZEwLio4wj8KTNi2dnjQEXBZKMV63BpQrPqfsM+OkvuRbiSTAcycYAsQzLhRNoQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0" + } + }, "node_modules/@lezer/xml": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz", @@ -2969,12 +2983,12 @@ "license": "MIT" }, "node_modules/@noble/curves": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.2.0.tgz", - "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.3.0.tgz", + "integrity": "sha512-v7cY+4oWYPQszRj6ZFGzTVL7uP2TaLo1xMhWHzYC5wj0ZhOXQ5x+sBre8rF3hi8cAoi0bh1qXoovoOkdFtvqEg==", "license": "MIT", "dependencies": { - "@noble/hashes": "2.2.0" + "@noble/hashes": "2.3.0" }, "engines": { "node": ">= 20.19.0" @@ -2984,9 +2998,9 @@ } }, "node_modules/@noble/hashes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz", - "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.3.0.tgz", + "integrity": "sha512-oN+QwyX7VSHotibwubG3kpzbwKrfnyR6OOO+3Nk/53ADL7FmgHHz4TgrbaYKvvOw09u6QTx0oiH1cNCIOuN0CQ==", "license": "MIT", "engines": { "node": ">= 20.19.0" @@ -2996,9 +3010,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", - "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", + "version": "0.144.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", + "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" @@ -3047,9 +3061,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz", - "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", + "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", "cpu": [ "arm64" ], @@ -3063,9 +3077,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz", - "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", "cpu": [ "arm64" ], @@ -3079,9 +3093,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz", - "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", + "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", "cpu": [ "x64" ], @@ -3095,9 +3109,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz", - "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", + "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", "cpu": [ "x64" ], @@ -3111,9 +3125,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz", - "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", + "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", "cpu": [ "arm" ], @@ -3127,9 +3141,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz", - "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", + "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", "cpu": [ "arm64" ], @@ -3143,9 +3157,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz", - "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", + "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", "cpu": [ "arm64" ], @@ -3159,9 +3173,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz", - "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", + "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", "cpu": [ "ppc64" ], @@ -3175,9 +3189,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz", - "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", + "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", "cpu": [ "s390x" ], @@ -3191,9 +3205,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz", - "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", + "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", "cpu": [ "x64" ], @@ -3207,9 +3221,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz", - "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", + "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", "cpu": [ "x64" ], @@ -3223,9 +3237,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz", - "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", + "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", "cpu": [ "arm64" ], @@ -3239,9 +3253,9 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz", - "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", + "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", "cpu": [ "arm64" ], @@ -3255,9 +3269,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz", - "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", + "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", "cpu": [ "x64" ], @@ -3529,17 +3543,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", - "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", + "integrity": "sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/type-utils": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/type-utils": "8.67.0", + "@typescript-eslint/utils": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -3552,7 +3566,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.66.0", + "@typescript-eslint/parser": "^8.67.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } @@ -3568,15 +3582,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", - "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz", + "integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==", "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "debug": "^4.4.3" }, "engines": { @@ -3592,13 +3606,13 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", - "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", + "integrity": "sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.66.0", - "@typescript-eslint/types": "^8.66.0", + "@typescript-eslint/tsconfig-utils": "^8.67.0", + "@typescript-eslint/types": "^8.67.0", "debug": "^4.4.3" }, "engines": { @@ -3613,13 +3627,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", - "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", + "integrity": "sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0" + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3630,9 +3644,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", - "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", + "integrity": "sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3646,15 +3660,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", - "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", + "integrity": "sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -3671,9 +3685,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", - "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", + "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3684,15 +3698,15 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", - "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", + "integrity": "sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==", "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.66.0", - "@typescript-eslint/tsconfig-utils": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/project-service": "8.67.0", + "@typescript-eslint/tsconfig-utils": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3711,16 +3725,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", - "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz", + "integrity": "sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0" + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3735,12 +3749,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", - "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", + "integrity": "sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/types": "8.67.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -3958,9 +3972,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", - "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.11.tgz", + "integrity": "sha512-tW8bcK3hsG0/uqSnNz6TK4BkcuZSezoU7DlnYssILmZDktPnSHHuDJJFM0AJv+13gz2r0iGdrj6qqKeUnxXEDg==", "license": "MIT", "engines": { "node": ">=14.6" @@ -4421,9 +4435,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.12.tgz", - "integrity": "sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==", + "version": "2.11.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.14.tgz", + "integrity": "sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4468,9 +4482,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", - "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", "dev": true, "funding": [ { @@ -4488,11 +4502,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.44", - "caniuse-lite": "^1.0.30001806", - "electron-to-chromium": "^1.5.393", - "node-releases": "^2.0.51", - "update-browserslist-db": "^1.2.3" + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" }, "bin": { "browserslist": "cli.js" @@ -4591,9 +4605,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001806", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", - "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "version": "1.0.30001809", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", + "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", "dev": true, "funding": [ { @@ -4736,21 +4750,6 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/codemirror": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", - "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4799,9 +4798,9 @@ "license": "MIT" }, "node_modules/contacts-pane": { - "version": "3.2.1-5", - "resolved": "https://registry.npmjs.org/contacts-pane/-/contacts-pane-3.2.1-5.tgz", - "integrity": "sha512-EuEeD8J5dtSkODaOEjIbLtEf4wurE4M5XHUbPgh2ZKFzCtYRxBwb1J5W+rnAfA1lQBn3EQ4fDe/b1RfyPVjbjA==", + "version": "3.2.1-6", + "resolved": "https://registry.npmjs.org/contacts-pane/-/contacts-pane-3.2.1-6.tgz", + "integrity": "sha512-Mf8OCx5Jp4bgTOI0QdDp/Ecs0Pl2SWqriqM/HSnVJ1Q69WOi081pBymR6shL4cP0hv2SHEBy7sjABTXEqjqMrg==", "license": "MIT", "dependencies": { "@lit/context": "^1.1.6", @@ -5223,9 +5222,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.401", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.401.tgz", - "integrity": "sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==", + "version": "1.5.406", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.406.tgz", + "integrity": "sha512-hWH5ORBi3d0IipnMh7BN5GDTaAmrSSSWmznwt2zltdiRNEWoEQyTwF0FFSBxzHO7hLSRT6loQu3IQGV0wg/Tvg==", "dev": true, "license": "ISC" }, @@ -6071,6 +6070,21 @@ "vitest-axe": "^0.1.0" } }, + "node_modules/folder-pane/node_modules/solid-logic": { + "version": "4.0.8-2", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-2.tgz", + "integrity": "sha512-1/QFgchqCSkmIKvN47t6/OuBays1Yk6MoVtENqesgcpL5t2Q9hzqpQA6ToZNvzDu7Ep6Gs50rJSB1jJJsFi23Q==", + "license": "MIT", + "dependencies": { + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4", + "vite": "^8.0.16", + "vitest": "^4.1.9" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/folder-pane/node_modules/solid-ui": { "version": "3.1.3-14", "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-14.tgz", @@ -6288,9 +6302,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", - "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.2.tgz", + "integrity": "sha512-XpwZALwwl/BaKTAyC6+c5T8y6kCg2jk+XGqOVrKIQmW49pNypYLMRjCUXqa28tQgJlhS2RlzP7sc+Rx7W6qsfw==", "dev": true, "license": "MIT", "dependencies": { @@ -6370,9 +6384,9 @@ } }, "node_modules/globals": { - "version": "17.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.9.0.tgz", - "integrity": "sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", "dev": true, "license": "MIT", "engines": { @@ -8595,9 +8609,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.52", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.52.tgz", - "integrity": "sha512-MRlTqhAfoMx/4mhEbPo3Hi02g9LJZaJkka69V6h67Cb1gjrAG0jsTE4CZX1eptNx+VCAwJmfpnDIF4P0Nh1A7A==", + "version": "2.0.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", + "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", "dev": true, "license": "MIT", "engines": { @@ -9190,9 +9204,9 @@ } }, "node_modules/postcss": { - "version": "8.5.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", - "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "funding": [ { "type": "opencollective", @@ -9209,7 +9223,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -9247,9 +9261,9 @@ } }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.17", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", - "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "funding": [ { "type": "github", @@ -9849,12 +9863,12 @@ } }, "node_modules/rolldown": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz", - "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", + "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.143.0", + "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -9864,20 +9878,20 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.2.3", - "@rolldown/binding-darwin-arm64": "1.2.3", - "@rolldown/binding-darwin-x64": "1.2.3", - "@rolldown/binding-freebsd-x64": "1.2.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", - "@rolldown/binding-linux-arm64-gnu": "1.2.3", - "@rolldown/binding-linux-arm64-musl": "1.2.3", - "@rolldown/binding-linux-ppc64-gnu": "1.2.3", - "@rolldown/binding-linux-s390x-gnu": "1.2.3", - "@rolldown/binding-linux-x64-gnu": "1.2.3", - "@rolldown/binding-linux-x64-musl": "1.2.3", - "@rolldown/binding-openharmony-arm64": "1.2.3", - "@rolldown/binding-win32-arm64-msvc": "1.2.3", - "@rolldown/binding-win32-x64-msvc": "1.2.3" + "@rolldown/binding-android-arm64": "1.2.4", + "@rolldown/binding-darwin-arm64": "1.2.4", + "@rolldown/binding-darwin-x64": "1.2.4", + "@rolldown/binding-freebsd-x64": "1.2.4", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", + "@rolldown/binding-linux-arm64-gnu": "1.2.4", + "@rolldown/binding-linux-arm64-musl": "1.2.4", + "@rolldown/binding-linux-ppc64-gnu": "1.2.4", + "@rolldown/binding-linux-s390x-gnu": "1.2.4", + "@rolldown/binding-linux-x64-gnu": "1.2.4", + "@rolldown/binding-linux-x64-musl": "1.2.4", + "@rolldown/binding-openharmony-arm64": "1.2.4", + "@rolldown/binding-win32-arm64-msvc": "1.2.4", + "@rolldown/binding-win32-x64-msvc": "1.2.4" } }, "node_modules/safe-array-concat": { @@ -10182,9 +10196,9 @@ "license": "MIT" }, "node_modules/solid-logic": { - "version": "4.0.8-2", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-2.tgz", - "integrity": "sha512-1/QFgchqCSkmIKvN47t6/OuBays1Yk6MoVtENqesgcpL5t2Q9hzqpQA6ToZNvzDu7Ep6Gs50rJSB1jJJsFi23Q==", + "version": "4.0.8-3", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-3.tgz", + "integrity": "sha512-0HKcZJb5ZF2MvFzOid26LMilgL6jD1zaRpix5nb2fB1h3H9WB0kquyD/297L6jIiUTIYSMlVb7ivpvkiVNTTNQ==", "license": "MIT", "dependencies": { "@uvdsl/solid-oidc-client-browser": "^0.2.3", @@ -10203,22 +10217,34 @@ "license": "MIT" }, "node_modules/solid-ui": { - "version": "3.1.3-15", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-15.tgz", - "integrity": "sha512-qX/IabG/Wets1w7ZQ+wLg9HIhBz3n8BTr36hC0whwfpjFBKe/62fow9CkrIVbRcSLz+fZ9+44SU5aUo4mFAoqg==", + "version": "3.1.3-17", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-17.tgz", + "integrity": "sha512-XVnz8u3lhW0AhmywMlEOif23lYkQcCmWiL5NUf8A5kmz3Ixw3E/qGiqmPpJ8VAOPZhEsj8+G7u+Y6pUDmhrLeA==", "license": "MIT", "dependencies": { "@awesome.me/webawesome": "^3.9.0", + "@codemirror/commands": "^6.10.0", + "@codemirror/lang-css": "^6.3.1", + "@codemirror/lang-html": "^6.4.11", + "@codemirror/lang-javascript": "^6.2.5", + "@codemirror/lang-json": "^6.0.2", + "@codemirror/lang-markdown": "^6.3.1", + "@codemirror/lang-xml": "^6.1.0", + "@codemirror/language": "^6.12.3", + "@codemirror/legacy-modes": "^6.5.3", + "@codemirror/state": "^6.6.0", + "@codemirror/view": "^6.43.0", "@lit/context": "^1.1.6", "@lit/task": "^1.0.3", "@noble/curves": "^2.2.0", "@noble/hashes": "^2.2.0", + "@uiw/codemirror-theme-vscode": "^4.25.10", "escape-html": "^1.0.3", "lit": "^3.3.3", "mime-types": "^3.0.2", "pane-registry": "3.1.2-2", "rdflib": "2.4.0", - "solid-logic": "4.0.8-2", + "solid-logic": "4.0.8-3", "solid-namespace": "^0.5.4", "uuid": "^14.0.0" }, @@ -10286,30 +10312,18 @@ } }, "node_modules/source-pane": { - "version": "3.1.1-6", - "resolved": "https://registry.npmjs.org/source-pane/-/source-pane-3.1.1-6.tgz", - "integrity": "sha512-hus/mBSt2fo8nzxJwHwjMLHFKBivTjsF9MknpL0dIsRae35bIbrVrYs79icp7b419h4PfWGa337eJaA1GOrfWQ==", + "version": "3.1.1-7", + "resolved": "https://registry.npmjs.org/source-pane/-/source-pane-3.1.1-7.tgz", + "integrity": "sha512-fssbKBXlm16/YA8S/5W/YNUZILlR54DeC71CIr5j0FJx/R8Ts2b7ClMtdpFput39vW7+WCpSH1NkBW+k97157w==", "license": "MIT", "dependencies": { - "@codemirror/commands": "^6.10.0", - "@codemirror/lang-css": "^6.3.1", - "@codemirror/lang-html": "^6.4.11", - "@codemirror/lang-javascript": "^6.2.5", - "@codemirror/lang-json": "^6.0.2", - "@codemirror/lang-xml": "^6.1.0", - "@codemirror/language": "^6.12.3", - "@codemirror/legacy-modes": "^6.5.3", - "@codemirror/state": "^6.6.0", - "@codemirror/view": "^6.43.0", "@lit/context": "^1.1.6", "@typescript-eslint/parser": "^8.63.0", - "@uiw/codemirror-theme-vscode": "^4.25.10", - "codemirror": "^6.0.2", "lit": "^3.3.3", "pane-registry": "3.1.2-2", "rdflib": "2.4.0", - "solid-logic": "4.0.8-2", - "solid-ui": "3.1.3-15", + "solid-logic": "4.0.8-3", + "solid-ui": "3.1.3-17", "vite": "^8.0.16", "vitest": "^4.0.18", "vitest-axe": "^0.1.0" @@ -10875,16 +10889,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", - "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.67.0.tgz", + "integrity": "sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.66.0", - "@typescript-eslint/parser": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0" + "@typescript-eslint/eslint-plugin": "8.67.0", + "@typescript-eslint/parser": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11142,9 +11156,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz", + "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==", "dev": true, "funding": [ { @@ -11229,15 +11243,15 @@ } }, "node_modules/vite": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", - "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", "license": "MIT", "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.23", - "rolldown": "~1.2.0", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { diff --git a/package.json b/package.json index 12f293f5..f74d8e9a 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@solid/better-simple-slideshow": "^0.1.0", "activitystreams-pane": "1.0.3-4", "chat-pane": "3.0.4-3", - "contacts-pane": "3.2.1-5", + "contacts-pane": "3.2.1-6", "dompurify": "^3.4.4", "folder-pane": "3.1.1-3", "issue-pane": "3.0.3-1", @@ -70,10 +70,10 @@ "pane-registry": "3.1.2-2", "profile-pane": "3.2.3-4", "rdflib": "2.4.0", - "solid-logic": "4.0.8-2", + "solid-logic": "4.0.8-3", "solid-namespace": "^0.5.4", - "solid-ui": "3.1.3-15", - "source-pane": "3.1.1-6" + "solid-ui": "3.1.3-17", + "source-pane": "3.1.1-7" }, "overrides": { "rdflib": "$rdflib" From b225e8b9fc890f8a932f2437001244bdbe89bef3 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Fri, 14 Aug 2026 13:11:02 +1000 Subject: [PATCH 07/15] address pr comments --- .../FileExplorerHeaderControls.ts | 2 ++ .../resource-actions-menu/ResourceActionsMenu.ts | 16 ++++++++++++++-- src/mainPage/index.ts | 11 ++++++----- src/outline/manager.js | 8 -------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.ts b/src/components/file-explorer-header/FileExplorerHeaderControls.ts index 8d681062..d1fb50ba 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.ts @@ -100,6 +100,8 @@ export default class FileExplorerHeaderControls extends WebComponent { .store=${this.fileExplorerContext.store} .handleSharingClick=${this.fileExplorerContext.handleSharingClick} .handleEditingClick=${this.fileExplorerContext.edit?.onEdit} + .paneSupportsEditing=${this.fileExplorerContext.paneSupportsEditing} + .canEdit=${this.canEdit} .subjectUri=${this.fileExplorerContext?.subjectUri} .menuItems=${this.menuItems} .isMobile=${this.isMobile} diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.ts b/src/components/resource-actions-menu/ResourceActionsMenu.ts index 5a8dfedb..d7db4828 100644 --- a/src/components/resource-actions-menu/ResourceActionsMenu.ts +++ b/src/components/resource-actions-menu/ResourceActionsMenu.ts @@ -26,6 +26,12 @@ export default class ResourceActionsMenu extends WebComponent { @property({ attribute: false }) accessor handleEditingClick: (() => void) | undefined = undefined + @property({ type: Boolean }) + accessor paneSupportsEditing = false + + @property({ type: Boolean }) + accessor canEdit = false + @property({ type: Boolean }) accessor isMobile = false @@ -34,6 +40,8 @@ export default class ResourceActionsMenu extends WebComponent { render () { const isContainerResource = isContainerSubject(this.store, this.subjectUri) + const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick + const canShare = !!this.handleSharingClick return html` @@ -45,19 +53,23 @@ export default class ResourceActionsMenu extends WebComponent { ${item.label} `)} - ${!isContainerResource && this.isMobile + ${canEdit ? html` Edit + ` + : nothing} + ${!isContainerResource && this.isMobile && canShare + ? html` Share ` : nothing} - ${isContainerResource && this.handleSharingClick + ${isContainerResource && canShare ? html` diff --git a/src/mainPage/index.ts b/src/mainPage/index.ts index 21eb7ee9..01d562b2 100644 --- a/src/mainPage/index.ts +++ b/src/mainPage/index.ts @@ -44,14 +44,15 @@ export async function initMainPage ( ;(outliner as any)[LAST_RENDER_ENV_KEY] = renderEnvSignature(environment) uri = uri || window.location.href const subject: NamedNode = typeof uri === 'string' ? store.sym(uri) : uri - const urlPane = isWebIdUri(subject) - ? await getProfilePaneFromURI(subject) - : undefined const historyPaneName = window.history.state?.paneName const historyPane = historyPaneName ? paneRegistry.byName(historyPaneName) : undefined - const initialPane = urlPane ?? historyPane + let initialPane = historyPane + + if (!initialPane && isWebIdUri(subject)) { + initialPane = await getProfilePaneFromURI(subject) + } outliner.GotoSubject(subject, true, initialPane, true, undefined, undefined, true, false) @@ -71,7 +72,7 @@ export async function refreshUI (outliner: OutlineManager) { const subjectUri = paneUri && usesOwnSubject ? paneUri : window.document.location.href - let pane = paneName ? paneRegistry?.byName?.(paneName) : undefined + const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined // Only re-run GotoSubject (full pane re-render) when render-relevant // environment fields actually changed since the last render. diff --git a/src/outline/manager.js b/src/outline/manager.js index e0c56b66..a3bde72f 100644 --- a/src/outline/manager.js +++ b/src/outline/manager.js @@ -794,11 +794,7 @@ export default function (context) { termWidget.addIcon = function (td, icon, listener) { const iconTD = td.childNodes[1] if (!iconTD) return - let width = iconTD.style.width const img = UI.utils.AJARImage(icon.src, icon.alt, icon.tooltip, dom) - width = parseInt(width) - width = width + icon.width - iconTD.style.width = width + 'px' iconTD.appendChild(img) if (listener) { img.addEventListener('click', listener) @@ -808,10 +804,6 @@ export default function (context) { const iconTD = td.childNodes[1] let baseURI if (!iconTD) return - let width = iconTD.style.width - width = parseInt(width) - width = width - icon.width - iconTD.style.width = width + 'px' for (let x = 0; x < iconTD.childNodes.length; x++) { const elt = iconTD.childNodes[x] const eltSrc = elt.src From 5ac0174ce9d8cca4d15a143e5c656326329c62e1 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Tue, 18 Aug 2026 18:25:48 +1000 Subject: [PATCH 08/15] remove fix for resize issue --- src/mainPage/index.ts | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/mainPage/index.ts b/src/mainPage/index.ts index 01d562b2..ca50b463 100644 --- a/src/mainPage/index.ts +++ b/src/mainPage/index.ts @@ -48,11 +48,10 @@ export async function initMainPage ( const historyPane = historyPaneName ? paneRegistry.byName(historyPaneName) : undefined - let initialPane = historyPane - - if (!initialPane && isWebIdUri(subject)) { - initialPane = await getProfilePaneFromURI(subject) - } + const initialPane = historyPane ?? + (!historyPaneName && isWebIdUri(subject) + ? await getProfilePaneFromURI(subject) + : undefined) outliner.GotoSubject(subject, true, initialPane, true, undefined, undefined, true, false) @@ -64,14 +63,8 @@ export async function initMainPage ( export async function refreshUI (outliner: OutlineManager) { const store = outliner?.context?.session?.store const paneRegistry = outliner?.context?.session?.paneRegistry + const subjectUri = window.document.location.href const paneName = window.history.state?.paneName - const paneUri = window.history.state?.paneUri - // Panes rendered for a subject other than the page URL (storage/profile/social) - // must be restored from paneUri, since byName() returns the pane without that subject. - const usesOwnSubject = paneName === 'profile' || paneName === 'social' || paneName === 'folder' - const subjectUri = paneUri && usesOwnSubject - ? paneUri - : window.document.location.href const pane = paneName ? paneRegistry?.byName?.(paneName) : undefined // Only re-run GotoSubject (full pane re-render) when render-relevant From f669922476430ea0370f5d1a49b0584cab0e4f99 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Aug 2026 08:29:50 +0000 Subject: [PATCH 09/15] chore: update solidos dependencies (dev: solid-logic@4.0.8-3 solid-ui@3.1.3-17 pane-registry@3.1.2-2 activitystreams-pane@1.0.3-4 chat-pane@3.0.4-3 contacts-pane@3.2.1-6 folder-pane@3.1.1-3 issue-pane@3.0.3-1 meeting-pane@3.0.3-1 profile-pane@3.2.3-4 source-pane@3.1.1-7) (latest: rdflib@2.4.0) --- package-lock.json | 62 +++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7636782..482203dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1968,9 +1968,9 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.4.tgz", - "integrity": "sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.0.tgz", + "integrity": "sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -2107,9 +2107,9 @@ } }, "node_modules/@codemirror/view": { - "version": "6.43.8", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.8.tgz", - "integrity": "sha512-qtItTDssZ/5GFfi94hrILu9j/VUeFPDPkhovEfmWFj2ipTxnzPB8DdHgfbb8HYTzLTYhrndKmyQxXUz/PDLenw==", + "version": "6.43.9", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.9.tgz", + "integrity": "sha512-sTuUzTpPMFebRhg6dawChoKKgndIwfjmJgKVxBefPElcU2NwQ6AFroupk0SFqEerQyZOGRfDNnSN8Dw/lMAsXw==", "license": "MIT", "dependencies": { "@codemirror/state": "^6.7.0", @@ -2143,9 +2143,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", - "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.1.tgz", + "integrity": "sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==", "devOptional": true, "funding": [ { @@ -2187,9 +2187,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.10.tgz", - "integrity": "sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.0.tgz", + "integrity": "sha512-5+5LEmFuY1AjXdYhmgjTJogtQnP1evJ1zrBZGUNZ0thkpwnnmKxcHdAMn/OtFjAb25zA+jKDVYVRl+5G7rjv1A==", "devOptional": true, "funding": [ { @@ -2203,7 +2203,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^6.1.0", + "@csstools/color-helpers": "^6.1.1", "@csstools/css-calc": "^3.3.0" }, "engines": { @@ -2238,9 +2238,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", - "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.8.tgz", + "integrity": "sha512-CpMLjAvwQg3BL5S0IeqsZNMH7EQrEWi0kLKOC13ZBF0ZwERiLWlibNPJr8G1kdU3Ms/r2KiNrF81pUh2HwAHdg==", "devOptional": true, "funding": [ { @@ -4435,9 +4435,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.14", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.14.tgz", - "integrity": "sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==", + "version": "2.11.15", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.15.tgz", + "integrity": "sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5222,9 +5222,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.406", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.406.tgz", - "integrity": "sha512-hWH5ORBi3d0IipnMh7BN5GDTaAmrSSSWmznwt2zltdiRNEWoEQyTwF0FFSBxzHO7hLSRT6loQu3IQGV0wg/Tvg==", + "version": "1.5.409", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.409.tgz", + "integrity": "sha512-ChI4N44d0B4A6C8prnNjMOaGgE59fUyEVYcRYm2XEXIjMbbvF5i9UL1cblDbpGqiU0uS8FE8UcKxqZqTXdmzbQ==", "dev": true, "license": "ISC" }, @@ -5413,9 +5413,9 @@ } }, "node_modules/es-module-lexer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", - "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "license": "MIT" }, "node_modules/es-object-atoms": { @@ -6302,9 +6302,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.2.tgz", - "integrity": "sha512-XpwZALwwl/BaKTAyC6+c5T8y6kCg2jk+XGqOVrKIQmW49pNypYLMRjCUXqa28tQgJlhS2RlzP7sc+Rx7W6qsfw==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.3.tgz", + "integrity": "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==", "dev": true, "license": "MIT", "dependencies": { @@ -8218,9 +8218,9 @@ } }, "node_modules/marked": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.9.tgz", - "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==", + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.10.tgz", + "integrity": "sha512-FJeH4bRpYoXiggcgriCGItKCSv3xkngJc4QCZ/rkQCogU3VYaLxYJoZl8Nw/b4+x7iij/pd+09mZ6A1dXzpL0A==", "license": "MIT", "bin": { "marked": "bin/marked.js" From 1c2626b49ba1fb6d9acba415e52553ac053a16c5 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Tue, 18 Aug 2026 18:37:38 +1000 Subject: [PATCH 10/15] add index for export --- src/components/file-explorer-header/index.ts | 2 ++ src/outline/manager.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/components/file-explorer-header/index.ts diff --git a/src/components/file-explorer-header/index.ts b/src/components/file-explorer-header/index.ts new file mode 100644 index 00000000..2140b416 --- /dev/null +++ b/src/components/file-explorer-header/index.ts @@ -0,0 +1,2 @@ +export { default as FileExplorerHeader } from './FileExplorerHeader' +export { default as FileExplorerProvider } from './FileExplorerProvider' diff --git a/src/outline/manager.js b/src/outline/manager.js index a3bde72f..afb06da2 100644 --- a/src/outline/manager.js +++ b/src/outline/manager.js @@ -13,7 +13,7 @@ import { UserInput } from './userInput.js' import * as queryByExample from './queryByExample.js' import { loadContainerRepresentation } from '../utils/podUtils' import { isWebIdUri } from '../utils/webIdUtils' -import '../components/file-explorer-header/FileExplorerProvider' +import '../components/file-explorer-header' export default function (context) { const dom = context.dom From 9c1cb5735f9cae0cc5a4d4492c20b50a7ecde7ad Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Tue, 18 Aug 2026 18:40:14 +1000 Subject: [PATCH 11/15] Apply suggestion from @TallTed Co-authored-by: Ted Thibodeau Jr --- .../file-explorer-header/FileExplorerHeaderSummary.styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css index 7e125bd9..db9952b7 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.styles.css @@ -12,7 +12,7 @@ h1 { color: var(--solid-ui-color-gray-700, #364153); - font-size: var(--solid-ui-font-size-xl, 1.25rem); /* while in expand will go to 2xl when new design is complete */ + font-size: var(--solid-ui-font-size-xl, 1.25rem); /* while in expand; will go to 2xl when new design is complete */ font-weight: 500; display: flex; align-items: center; From 53c195f81672e9f3dcbf2d07da8022b8a32e23f1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 10:39:44 +0000 Subject: [PATCH 12/15] chore: update solidos dependencies (dev: solid-logic@4.0.8-3 solid-ui@3.1.3-17 pane-registry@3.1.2-2 activitystreams-pane@1.0.3-4 chat-pane@3.0.4-3 contacts-pane@3.2.1-6 folder-pane@3.1.1-3 issue-pane@3.0.3-1 meeting-pane@3.0.3-1 profile-pane@3.2.3-4 source-pane@3.1.1-7) (latest: rdflib@2.4.0) --- package-lock.json | 128 +++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/package-lock.json b/package-lock.json index 482203dd..e2cfa68a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3806,14 +3806,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", - "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.11.tgz", + "integrity": "sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==", "devOptional": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.10", + "@vitest/utils": "4.1.11", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -3827,8 +3827,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.1.10", - "vitest": "4.1.10" + "@vitest/browser": "4.1.11", + "vitest": "4.1.11" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -3837,15 +3837,15 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", - "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", + "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -3854,12 +3854,12 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", - "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz", + "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==", "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.10", + "@vitest/spy": "4.1.11", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -3880,9 +3880,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", - "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz", + "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==", "license": "MIT", "dependencies": { "tinyrainbow": "^3.1.0" @@ -3892,12 +3892,12 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", - "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz", + "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==", "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.10", + "@vitest/utils": "4.1.11", "pathe": "^2.0.3" }, "funding": { @@ -3905,13 +3905,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", - "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz", + "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.10", - "@vitest/utils": "4.1.10", + "@vitest/pretty-format": "4.1.11", + "@vitest/utils": "4.1.11", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -3920,21 +3920,21 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", - "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz", + "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==", "license": "MIT", "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", - "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz", + "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.10", + "@vitest/pretty-format": "4.1.11", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -5154,9 +5154,9 @@ "license": "MIT" }, "node_modules/dompurify": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.13.tgz", - "integrity": "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.14.tgz", + "integrity": "sha512-dVoH9z+MY+C9IilgGCk3YfFqjLi3fChm2OiKJMzh6axrJ5qwxqWaZamgmHrpv22CN/KdbZJuGEGgfQoL00LTdg==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -5222,9 +5222,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.409", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.409.tgz", - "integrity": "sha512-ChI4N44d0B4A6C8prnNjMOaGgE59fUyEVYcRYm2XEXIjMbbvF5i9UL1cblDbpGqiU0uS8FE8UcKxqZqTXdmzbQ==", + "version": "1.5.411", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.411.tgz", + "integrity": "sha512-gglkxzokjHfawpGxq75XdBV2/l3BAPzrsMs70qgaZdTW5rpV1tC4MdgJVP9fN126bODA4ZJQkn1wryEzJyQXIg==", "dev": true, "license": "ISC" }, @@ -8376,9 +8376,9 @@ "license": "MIT" }, "node_modules/n3": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/n3/-/n3-2.2.0.tgz", - "integrity": "sha512-K/Orb5XrUPocfYfhUT+muvK1I0n2AvVMt93fIExlgjo23u7q0lU0eIFrhBJqooyFWAnpEBz3QZqjHzEHMs1RZg==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/n3/-/n3-2.2.5.tgz", + "integrity": "sha512-lR/0N7zVayC6N0uWqrMkPpJn8Up4+qBsjWiBnoOWWEi/ldTcygs2Dw1iAgozzDXLW/fcxXFfbMzpGHlc/1MBLQ==", "license": "MIT", "dependencies": { "buffer": "^6.0.3", @@ -11214,9 +11214,9 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz", - "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz", + "integrity": "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -11343,18 +11343,18 @@ } }, "node_modules/vitest": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", - "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.10", - "@vitest/mocker": "4.1.10", - "@vitest/pretty-format": "4.1.10", - "@vitest/runner": "4.1.10", - "@vitest/snapshot": "4.1.10", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz", + "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==", + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.11", + "@vitest/mocker": "4.1.11", + "@vitest/pretty-format": "4.1.11", + "@vitest/runner": "4.1.11", + "@vitest/snapshot": "4.1.11", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -11382,12 +11382,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.10", - "@vitest/browser-preview": "4.1.10", - "@vitest/browser-webdriverio": "4.1.10", - "@vitest/coverage-istanbul": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "@vitest/ui": "4.1.10", + "@vitest/browser-playwright": "4.1.11", + "@vitest/browser-preview": "4.1.11", + "@vitest/browser-webdriverio": "4.1.11", + "@vitest/coverage-istanbul": "4.1.11", + "@vitest/coverage-v8": "4.1.11", + "@vitest/ui": "4.1.11", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" From 99869a3006816ab6bb7322addd38f00f7eeb164b Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 20 Aug 2026 11:49:59 +1000 Subject: [PATCH 13/15] address PR comments --- .../FileExplorerHeader.ts | 4 +- .../FileExplorerHeaderControls.ts | 2 +- .../FileExplorerHeaderSummary.ts | 3 +- src/components/file-explorer-header/helper.ts | 124 ------------------ src/components/file-explorer-header/types.ts | 9 ++ .../ResourceActionsMenu.ts | 18 +-- src/utils/podUtils.ts | 115 +++++++++++++++- 7 files changed, 137 insertions(+), 138 deletions(-) delete mode 100644 src/components/file-explorer-header/helper.ts diff --git a/src/components/file-explorer-header/FileExplorerHeader.ts b/src/components/file-explorer-header/FileExplorerHeader.ts index 136cdc3f..9509899a 100644 --- a/src/components/file-explorer-header/FileExplorerHeader.ts +++ b/src/components/file-explorer-header/FileExplorerHeader.ts @@ -10,8 +10,8 @@ import styles from './FileExplorerHeader.styles.css' import './FileExplorerHeaderSummary' import './FileExplorerHeaderControls' import { PaneIcon } from './types' -import { fetchContentAndMetadata, type FileExplorerResourceMetadata } from './helper' - +import { fetchContentAndMetadata } from '../../utils/podUtils' +import { type FileExplorerResourceMetadata } from './types' @customElement('file-explorer-header') export default class FileExplorerHeader extends WebComponent { static styles = styles diff --git a/src/components/file-explorer-header/FileExplorerHeaderControls.ts b/src/components/file-explorer-header/FileExplorerHeaderControls.ts index d1fb50ba..014367c4 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderControls.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderControls.ts @@ -8,7 +8,7 @@ import '~icons/lucide/pencil' import styles from './FileExplorerHeaderControls.styles.css' import '../resource-actions-menu/ResourceActionsMenu' import { fileExplorerContext, type FileExplorerContext } from 'solid-ui' -import { isContainerSubject } from './helper' +import { isContainerSubject } from '../../utils/podUtils' @customElement('file-explorer-header-controls') export default class FileExplorerHeaderControls extends WebComponent { diff --git a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts index 01ee4409..2ca785d5 100644 --- a/src/components/file-explorer-header/FileExplorerHeaderSummary.ts +++ b/src/components/file-explorer-header/FileExplorerHeaderSummary.ts @@ -10,7 +10,8 @@ import '~icons/lucide/lock-keyhole' import '~icons/lucide/arrow-left' import '~icons/lucide/folder' import styles from './FileExplorerHeaderSummary.styles.css' -import { getContainerItemCount, isContainerSubject, type FileExplorerResourceMetadata } from './helper' +import { getContainerItemCount, isContainerSubject } from '../../utils/podUtils' +import type { FileExplorerResourceMetadata } from './types' @customElement('file-explorer-header-summary') export default class FileExplorerHeaderSummary extends WebComponent { diff --git a/src/components/file-explorer-header/helper.ts b/src/components/file-explorer-header/helper.ts deleted file mode 100644 index ba5e10dc..00000000 --- a/src/components/file-explorer-header/helper.ts +++ /dev/null @@ -1,124 +0,0 @@ -// TODO: this code will need to be moved later -import { ACL_LINK } from 'solid-logic' -import { ns } from 'solid-ui' -import type { LiveStore, NamedNode } from 'rdflib' - -export type FileExplorerResourceMetadata = { - contentType: string | undefined - canEdit: boolean - isPublic: boolean - aclUri: string | undefined - eTag: string | undefined - modified: string | undefined -} - -export function isContainerSubject (store: LiveStore | undefined, subjectUri: string | undefined): boolean { - if (!store || !subjectUri) return false - - const subject = store.sym(subjectUri) - const typeUris = store.findTypeURIs(subject) - return Boolean( - typeUris[ns.ldp('Container').uri] || - typeUris[ns.ldp('BasicContainer').uri] || - subject.uri.endsWith('/') - ) -} - -export function getContainerItemCount (store: LiveStore | undefined, subjectUri: string | undefined): number { - if (!store || !subjectUri) return 0 - - const subject = store.sym(subjectUri) - return store.each(subject, ns.ldp('contains')).length -} - -function parseWacAllowHeader (headerValue: string | null | undefined) { - const permissions = new Map>() - if (!headerValue) return permissions - - for (const entry of headerValue.split(',')) { - const match = entry.trim().match(/^([A-Za-z]+)\s*=\s*"([^"]*)"$/) - if (match) { - const [, permissionGroup, accessModes] = match - const modes = accessModes.trim().split(/\s+/).filter(Boolean) - permissions.set(permissionGroup.toLowerCase(), new Set(modes.map(mode => mode.toLowerCase()))) - } - } - - return permissions -} - -function deriveAccessFlags (wacAllow: string | null | undefined) { - if (!wacAllow) { - return { canEdit: false, isPublic: false } - } - - const permissions = parseWacAllowHeader(wacAllow) - const userModes = permissions.get('user') ?? new Set() - const publicModes = permissions.get('public') ?? new Set() - - return { - canEdit: userModes.has('write'), - isPublic: publicModes.has('read') || publicModes.has('write') - } -} - -export function getResponseMetadata (store: LiveStore, subject: NamedNode, response: Response): FileExplorerResourceMetadata { - let contentType: string | undefined - let canEdit = false - let isPublic = false - let eTag: string | undefined - let modified: string | undefined - - if (response.headers && response.headers.get('content-type')) { - contentType = response.headers.get('content-type')?.split(';')[0] ?? undefined - const accessFlags = deriveAccessFlags(response.headers.get('wac-allow')) - - canEdit = accessFlags.canEdit - isPublic = accessFlags.isPublic - eTag = response.headers.get('etag') ?? undefined - modified = store.anyValue(subject as any, ns.dct('modified')) || store.anyValue(subject as any, ns.dc('modified')) || undefined - } else { - const reqs = store.each( - null, - store.sym('http://www.w3.org/2007/ont/link#requestedURI'), - subject - ) - reqs.forEach((req: any) => { - const responseNode = store.any( - req as any, - store.sym('http://www.w3.org/2007/ont/link#response') - ) - if (responseNode && responseNode.termType === 'NamedNode') { - contentType = store.anyValue(responseNode as any, ns.httph('content-type')) || undefined - const wacAllow = (store.anyValue(responseNode as any, ns.httph('wac-allow')) as string | undefined) || - (store.anyValue(responseNode as any, ns.httph('WAC-Allow')) as string | undefined) - const accessFlags = deriveAccessFlags(wacAllow) - canEdit = accessFlags.canEdit - isPublic = accessFlags.isPublic - eTag = store.anyValue(responseNode as any, ns.httph('etag')) || undefined - modified = store.anyValue(subject as any, ns.dct('modified')) || store.anyValue(subject as any, ns.dc('modified')) || undefined - } - }) - } - - const aclUri = store.any(subject, ACL_LINK)?.value || undefined - return { contentType, canEdit, isPublic, aclUri, eTag, modified } -} - -export async function fetchContentAndMetadata (store: LiveStore, subject: NamedNode): Promise<{ content: string, metadata: FileExplorerResourceMetadata }> { - const fetcher = store.fetcher - - const response = await fetcher.webOperation('GET', subject.uri) - const content = (response as Response & { responseText?: string }).responseText - - if (content === undefined) { - throw new Error('No text in response object!!') - } - - const metadata = getResponseMetadata(store, subject, response) - if (!metadata.contentType) { - throw new Error('No content-type available!') - } - - return { content, metadata } -} diff --git a/src/components/file-explorer-header/types.ts b/src/components/file-explorer-header/types.ts index b3b3ecbd..826d13a8 100644 --- a/src/components/file-explorer-header/types.ts +++ b/src/components/file-explorer-header/types.ts @@ -1 +1,10 @@ export type PaneIcon = string | Promise | null | undefined + +export type FileExplorerResourceMetadata = { + contentType: string | undefined + canEdit: boolean + isPublic: boolean + aclUri: string | undefined + eTag: string | undefined + modified: string | undefined +} diff --git a/src/components/resource-actions-menu/ResourceActionsMenu.ts b/src/components/resource-actions-menu/ResourceActionsMenu.ts index d7db4828..e441e70d 100644 --- a/src/components/resource-actions-menu/ResourceActionsMenu.ts +++ b/src/components/resource-actions-menu/ResourceActionsMenu.ts @@ -9,7 +9,7 @@ import '~icons/lucide/share-2' import '~icons/lucide/pencil' import { LiveStore } from 'rdflib' import styles from './ResourceActionsMenu.styles.css' -import { isContainerSubject } from '../file-explorer-header/helper' +import { isContainerSubject } from '../../utils/podUtils' @customElement('resource-actions-menu') export default class ResourceActionsMenu extends WebComponent { static styles = styles @@ -21,7 +21,7 @@ export default class ResourceActionsMenu extends WebComponent { accessor subjectUri: string | undefined @property({ attribute: false }) - accessor handleSharingClick: (() => void) | undefined = undefined + accessor handleAccessClick: (() => void) | undefined = undefined @property({ attribute: false }) accessor handleEditingClick: (() => void) | undefined = undefined @@ -41,7 +41,7 @@ export default class ResourceActionsMenu extends WebComponent { render () { const isContainerResource = isContainerSubject(this.store, this.subjectUri) const canEdit = !isContainerResource && this.isMobile && this.paneSupportsEditing && this.canEdit && !!this.handleEditingClick - const canShare = !!this.handleSharingClick + const canManageAccess = !!this.handleAccessClick return html` @@ -61,19 +61,19 @@ export default class ResourceActionsMenu extends WebComponent { ` : nothing} - ${!isContainerResource && this.isMobile && canShare + ${!isContainerResource && this.isMobile && canManageAccess ? html` - + - Share + Manage Access ` : nothing} - ${isContainerResource && canShare + ${isContainerResource && canManageAccess ? html` - + - Share + Manage Access ` : nothing} diff --git a/src/utils/podUtils.ts b/src/utils/podUtils.ts index aa7b4aaa..81200a64 100644 --- a/src/utils/podUtils.ts +++ b/src/utils/podUtils.ts @@ -1,7 +1,40 @@ import { store } from 'solid-logic' import { ns } from 'solid-ui' -import { NamedNode, parse } from 'rdflib' +import { LiveStore, NamedNode, parse } from 'rdflib' import { isWebIdUri } from './webIdUtils' +import { ACL_LINK } from 'solid-logic' +import { FileExplorerResourceMetadata } from 'src/components/file-explorer-header/types' + +function parseWacAllowHeader (headerValue: string | null | undefined) { + const permissions = new Map>() + if (!headerValue) return permissions + + for (const entry of headerValue.split(',')) { + const match = entry.trim().match(/^([A-Za-z]+)\s*=\s*"([^"]*)"$/) + if (match) { + const [, permissionGroup, accessModes] = match + const modes = accessModes.trim().split(/\s+/).filter(Boolean) + permissions.set(permissionGroup.toLowerCase(), new Set(modes.map(mode => mode.toLowerCase()))) + } + } + + return permissions +} + +function deriveAccessFlags (wacAllow: string | null | undefined) { + if (!wacAllow) { + return { canEdit: false, isPublic: false } + } + + const permissions = parseWacAllowHeader(wacAllow) + const userModes = permissions.get('user') ?? new Set() + const publicModes = permissions.get('public') ?? new Set() + + return { + canEdit: userModes.has('write'), + isPublic: publicModes.has('read') || publicModes.has('write') + } +} export async function getPodStorages (url: NamedNode): Promise { if (isWebIdUri(url)) { @@ -56,3 +89,83 @@ export async function loadContainerRepresentation (subject) { } } } + +export function isContainerSubject (store: LiveStore | undefined, subjectUri: string | undefined): boolean { + if (!store || !subjectUri) return false + + const subject = store.sym(subjectUri) + const typeUris = store.findTypeURIs(subject) + return Boolean( + typeUris[ns.ldp('Container').uri] || + typeUris[ns.ldp('BasicContainer').uri] || + subject.uri.endsWith('/') + ) +} + +export function getContainerItemCount (store: LiveStore | undefined, subjectUri: string | undefined): number { + if (!store || !subjectUri) return 0 + + const subject = store.sym(subjectUri) + return store.each(subject, ns.ldp('contains')).length +} + +export function getResponseMetadata (store: LiveStore, subject: NamedNode, response: Response): FileExplorerResourceMetadata { + let contentType: string | undefined + let canEdit = false + let isPublic = false + let eTag: string | undefined + let modified: string | undefined + + if (response.headers && response.headers.get('content-type')) { + contentType = response.headers.get('content-type')?.split(';')[0] ?? undefined + const accessFlags = deriveAccessFlags(response.headers.get('wac-allow')) + + canEdit = accessFlags.canEdit + isPublic = accessFlags.isPublic + eTag = response.headers.get('etag') ?? undefined + modified = store.anyValue(subject as any, ns.dct('modified')) || store.anyValue(subject as any, ns.dc('modified')) || undefined + } else { + const reqs = store.each( + null, + store.sym('http://www.w3.org/2007/ont/link#requestedURI'), + subject + ) + reqs.forEach((req: any) => { + const responseNode = store.any( + req as any, + store.sym('http://www.w3.org/2007/ont/link#response') + ) + if (responseNode && responseNode.termType === 'NamedNode') { + contentType = store.anyValue(responseNode as any, ns.httph('content-type')) || undefined + const wacAllow = (store.anyValue(responseNode as any, ns.httph('wac-allow')) as string | undefined) || + (store.anyValue(responseNode as any, ns.httph('WAC-Allow')) as string | undefined) + const accessFlags = deriveAccessFlags(wacAllow) + canEdit = accessFlags.canEdit + isPublic = accessFlags.isPublic + eTag = store.anyValue(responseNode as any, ns.httph('etag')) || undefined + modified = store.anyValue(subject as any, ns.dct('modified')) || store.anyValue(subject as any, ns.dc('modified')) || undefined + } + }) + } + + const aclUri = store.any(subject, ACL_LINK)?.value || undefined + return { contentType, canEdit, isPublic, aclUri, eTag, modified } +} + +export async function fetchContentAndMetadata (store: LiveStore, subject: NamedNode): Promise<{ content: string, metadata: FileExplorerResourceMetadata }> { + const fetcher = store.fetcher + + const response = await fetcher.webOperation('GET', subject.uri) + const content = (response as Response & { responseText?: string }).responseText + + if (content === undefined) { + throw new Error('No text in response object!!') + } + + const metadata = getResponseMetadata(store, subject, response) + if (!metadata.contentType) { + throw new Error('No content-type available!') + } + + return { content, metadata } +} From 34906ede4b92643844943900ba0a28a02ca144dc Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 20 Aug 2026 12:01:30 +1000 Subject: [PATCH 14/15] change to access --- .../file-explorer-header/FileExplorerProvider.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/file-explorer-header/FileExplorerProvider.ts b/src/components/file-explorer-header/FileExplorerProvider.ts index dca92b37..b07c6997 100644 --- a/src/components/file-explorer-header/FileExplorerProvider.ts +++ b/src/components/file-explorer-header/FileExplorerProvider.ts @@ -21,7 +21,7 @@ function createFileExplorerContextValue (value: { soloPane?: boolean onBack?: () => void openPane?: (subject: NamedNode, paneName: string) => void - handleSharingClick?: () => void + handleAccessClick?: () => void paneSupportsEditing?: boolean edit?: { onEdit?: () => void @@ -36,7 +36,7 @@ function createFileExplorerContextValue (value: { soloPane: value.soloPane, onBack: value.onBack, openPane: value.openPane, - handleSharingClick: value.handleSharingClick, + handleAccessClick: value.handleAccessClick, paneSupportsEditing: value.paneSupportsEditing, edit: value.edit } @@ -126,7 +126,7 @@ export default class FileExplorerProvider extends WebComponent { soloPane: this.soloPane, onBack: this.onBack, openPane: this.openPane, - handleSharingClick: this.handleSharingClick, + handleAccessClick: this.handleAccessClick, paneSupportsEditing: false, edit: this.edit }) @@ -182,7 +182,7 @@ export default class FileExplorerProvider extends WebComponent { soloPane: this.soloPane, onBack: this.onBack, openPane: this.openPane, - handleSharingClick: this.handleSharingClick, + handleAccessClick: this.handleAccessClick, paneSupportsEditing: this.paneSupportsEditing, edit: this.edit }) @@ -229,7 +229,7 @@ export default class FileExplorerProvider extends WebComponent { changedProperties.has('soloPane') || changedProperties.has('onBack') || changedProperties.has('openPane') || - changedProperties.has('handleSharingClick') || + changedProperties.has('handleAccessClick') || changedProperties.has('pane') || changedProperties.has('isDirty') ) { From 838cb04c1bfaf264b5fd9f2f1d0942ebcc3002e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 19:21:50 +0000 Subject: [PATCH 15/15] chore: update solidos dependencies (dev: solid-logic@6.0.0-0 solid-ui@5.0.0-0 pane-registry@5.0.0-0 activitystreams-pane@2.0.0-0 chat-pane@4.0.0-0 contacts-pane@3.2.1-6 folder-pane@3.1.1-3 issue-pane@4.0.0-0 meeting-pane@4.0.0-0 profile-pane@3.2.3-4 source-pane@3.1.1-7) (latest: rdflib@2.4.0) --- package-lock.json | 473 ++++++++++++++++++++++++++-------------------- package.json | 14 +- 2 files changed, 270 insertions(+), 217 deletions(-) diff --git a/package-lock.json b/package-lock.json index e2cfa68a..913df594 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,22 +10,22 @@ "license": "MIT", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", - "activitystreams-pane": "1.0.3-4", - "chat-pane": "3.0.4-3", + "activitystreams-pane": "2.0.0-0", + "chat-pane": "4.0.0-0", "contacts-pane": "3.2.1-6", "dompurify": "^3.4.4", "folder-pane": "3.1.1-3", - "issue-pane": "3.0.3-1", + "issue-pane": "4.0.0-0", "lit-html": "^3.3.2", "marked": "^18.0.3", - "meeting-pane": "3.0.3-1", + "meeting-pane": "4.0.0-0", "mime-types": "^3.0.2", - "pane-registry": "3.1.2-2", + "pane-registry": "5.0.0-0", "profile-pane": "3.2.3-4", "rdflib": "2.4.0", - "solid-logic": "4.0.8-3", + "solid-logic": "6.0.0-0", "solid-namespace": "^0.5.4", - "solid-ui": "3.1.3-17", + "solid-ui": "5.0.0-0", "source-pane": "3.1.1-7" }, "devDependencies": { @@ -3010,9 +3010,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.144.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.144.0.tgz", - "integrity": "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==", + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.146.0.tgz", + "integrity": "sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" @@ -3060,10 +3060,26 @@ "@types/node": "*" } }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.5.tgz", + "integrity": "sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.4.tgz", - "integrity": "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.5.tgz", + "integrity": "sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==", "cpu": [ "arm64" ], @@ -3077,9 +3093,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.5.tgz", + "integrity": "sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==", "cpu": [ "arm64" ], @@ -3093,9 +3109,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.4.tgz", - "integrity": "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.5.tgz", + "integrity": "sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==", "cpu": [ "x64" ], @@ -3109,9 +3125,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.4.tgz", - "integrity": "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.5.tgz", + "integrity": "sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==", "cpu": [ "x64" ], @@ -3125,9 +3141,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.4.tgz", - "integrity": "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.5.tgz", + "integrity": "sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==", "cpu": [ "arm" ], @@ -3141,9 +3157,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.4.tgz", - "integrity": "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.5.tgz", + "integrity": "sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==", "cpu": [ "arm64" ], @@ -3157,9 +3173,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.4.tgz", - "integrity": "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.5.tgz", + "integrity": "sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==", "cpu": [ "arm64" ], @@ -3173,9 +3189,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.4.tgz", - "integrity": "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.5.tgz", + "integrity": "sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==", "cpu": [ "ppc64" ], @@ -3189,9 +3205,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.4.tgz", - "integrity": "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.5.tgz", + "integrity": "sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==", "cpu": [ "s390x" ], @@ -3205,9 +3221,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.4.tgz", - "integrity": "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.5.tgz", + "integrity": "sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==", "cpu": [ "x64" ], @@ -3221,9 +3237,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.4.tgz", - "integrity": "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.5.tgz", + "integrity": "sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==", "cpu": [ "x64" ], @@ -3237,9 +3253,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.4.tgz", - "integrity": "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.5.tgz", + "integrity": "sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==", "cpu": [ "arm64" ], @@ -3253,9 +3269,9 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.4.tgz", - "integrity": "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.5.tgz", + "integrity": "sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==", "cpu": [ "arm64" ], @@ -3269,9 +3285,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.4.tgz", - "integrity": "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.5.tgz", + "integrity": "sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==", "cpu": [ "x64" ], @@ -4029,64 +4045,22 @@ } }, "node_modules/activitystreams-pane": { - "version": "1.0.3-4", - "resolved": "https://registry.npmjs.org/activitystreams-pane/-/activitystreams-pane-1.0.3-4.tgz", - "integrity": "sha512-ebE4D2mytgUM2cmSEZE7scRnh9sO6R85U6wiwQYUnoOkX7loCthk32buGZCIFjJ7T9jqc4cyDpFTNbO0I7Dstg==", + "version": "2.0.0-0", + "resolved": "https://registry.npmjs.org/activitystreams-pane/-/activitystreams-pane-2.0.0-0.tgz", + "integrity": "sha512-pVPm8x8anDnno7FDd2N9/hj2u5IobhfW2p1b0ueDssjK3ztGjcagwcCqXidSI2gEnNdMt46pqLAuepCE20gn0A==", "license": "MIT", "dependencies": { - "pane-registry": "3.1.2-2", + "pane-registry": "5.0.0-0", "patch-package": "^8.0.1", "rdflib": "2.4.0", "react": "^19.2.3", "react-dom": "^19.2.3", "react-jss": "^10.10.0", - "solid-logic": "4.0.8-1", - "solid-ui": "3.1.3-9", + "solid-logic": "6.0.0-0", + "solid-ui": "5.0.0-0", "timeago.js": "^4.0.2" } }, - "node_modules/activitystreams-pane/node_modules/solid-logic": { - "version": "4.0.8-1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", - "integrity": "sha512-9Vtg9ukEaDTIvBPqECORWRtEJ3nTlEvInJzUCJZDp1qjN9VIdJG0mSiPTIP9RXOEOSAA+Q+cP3d7BzsNyI/RVA==", - "license": "MIT", - "dependencies": { - "@uvdsl/solid-oidc-client-browser": "^0.2.3", - "solid-namespace": "^0.5.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/activitystreams-pane/node_modules/solid-ui": { - "version": "3.1.3-9", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-9.tgz", - "integrity": "sha512-36as6RIBflm2gsIFnEPLH6hzykXxyc9yJlhJ+E0E6JSLOyjgENGxEj55hMH8lIXzBcR5tkym3Y61vgMm/LIU8Q==", - "license": "MIT", - "dependencies": { - "@awesome.me/webawesome": "^3.9.0", - "@lit/context": "^1.1.6", - "@noble/curves": "^2.2.0", - "@noble/hashes": "^2.2.0", - "escape-html": "^1.0.3", - "lit": "^3.3.3", - "mime-types": "^3.0.2", - "pane-registry": "3.1.2-1", - "rdflib": "2.4.0", - "solid-logic": "4.0.8-1", - "solid-namespace": "^0.5.4", - "uuid": "^14.0.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, - "node_modules/activitystreams-pane/node_modules/solid-ui/node_modules/pane-registry": { - "version": "3.1.2-1", - "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.1.2-1.tgz", - "integrity": "sha512-aibuyF8pAgHDnmywsMEKUddIcqC0oPF8fNx2TP7zRpRW9aYk2iv06td+br8wenbmu2V/l6Y6aJmCkckHWN/GpA==", - "license": "MIT" - }, "node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -4435,9 +4409,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.11.15", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.15.tgz", - "integrity": "sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==", + "version": "2.11.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.16.tgz", + "integrity": "sha512-H/bNPUFHewJHyCTdjn1n3Pit5+2GmWT6mmeHImPX+8MA9NA6b67jO4gYmi4jTbCJb2otq34KMZnovndDPqJwhQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4672,58 +4646,20 @@ } }, "node_modules/chat-pane": { - "version": "3.0.4-3", - "resolved": "https://registry.npmjs.org/chat-pane/-/chat-pane-3.0.4-3.tgz", - "integrity": "sha512-m099X1Lb1qaOtaYNAaJ+NfqD/TMRnhX3Gfx5Xgb2HoZYllaxn1xN3Y5Am4Un21k6tLoPaiq1OIkBe09/gHN/sw==", + "version": "4.0.0-0", + "resolved": "https://registry.npmjs.org/chat-pane/-/chat-pane-4.0.0-0.tgz", + "integrity": "sha512-MB1Pg8f76RnqcCrRMEpoFb/In5HyHyHC1N8LP9cik3F2/CLh1VHvJn7y6Yhc645okW0NfXGdVaUaI1kTd0R+AA==", "license": "MIT", "dependencies": { - "pane-registry": "3.1.2-2", "patch-package": "^8.0.1", - "rdflib": "^2.3.9", - "solid-logic": "^4.0.8-0", - "solid-ui": "3.1.3-13", + "rdflib": "^2.4.0", + "solid-logic": "6.0.0-0", + "solid-ui": "5.0.0-0", "vite": "^8.0.16", "vitest": "^4.0.18", "vitest-axe": "^0.1.0" } }, - "node_modules/chat-pane/node_modules/solid-logic": { - "version": "4.0.8-1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", - "integrity": "sha512-9Vtg9ukEaDTIvBPqECORWRtEJ3nTlEvInJzUCJZDp1qjN9VIdJG0mSiPTIP9RXOEOSAA+Q+cP3d7BzsNyI/RVA==", - "license": "MIT", - "dependencies": { - "@uvdsl/solid-oidc-client-browser": "^0.2.3", - "solid-namespace": "^0.5.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/chat-pane/node_modules/solid-ui": { - "version": "3.1.3-13", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-13.tgz", - "integrity": "sha512-0meJycoMXoelTD06W9A0S9Q4vg0I8BDSsui4BfwocfwFIpEZ02FBFZZf1LcanP7NNpAOs0So6HOQp4QlwSJE3w==", - "license": "MIT", - "dependencies": { - "@awesome.me/webawesome": "^3.9.0", - "@lit/context": "^1.1.6", - "@lit/task": "^1.0.3", - "@noble/curves": "^2.2.0", - "@noble/hashes": "^2.2.0", - "escape-html": "^1.0.3", - "lit": "^3.3.3", - "mime-types": "^3.0.2", - "pane-registry": "3.1.2-2", - "rdflib": "2.4.0", - "solid-logic": "4.0.8-1", - "solid-namespace": "^0.5.4", - "uuid": "^14.0.0" - }, - "optionalDependencies": { - "fsevents": "*" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -6070,6 +6006,29 @@ "vitest-axe": "^0.1.0" } }, + "node_modules/folder-pane/node_modules/pane-registry": { + "version": "3.1.2-2", + "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.1.2-2.tgz", + "integrity": "sha512-w+pCan1Umj+pLm5/uNlBMLw0YOKbKhHn5Qh62oqlKlbFrSHj4H3gNOXcKnI47liQFPQYepw5UPssP3aPdiowvA==", + "license": "MIT", + "dependencies": { + "rdflib": "2.4.0", + "solid-logic": "4.0.8-1" + } + }, + "node_modules/folder-pane/node_modules/pane-registry/node_modules/solid-logic": { + "version": "4.0.8-1", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", + "integrity": "sha512-9Vtg9ukEaDTIvBPqECORWRtEJ3nTlEvInJzUCJZDp1qjN9VIdJG0mSiPTIP9RXOEOSAA+Q+cP3d7BzsNyI/RVA==", + "license": "MIT", + "dependencies": { + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/folder-pane/node_modules/solid-logic": { "version": "4.0.8-2", "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-2.tgz", @@ -7296,13 +7255,16 @@ "license": "ISC" }, "node_modules/issue-pane": { - "version": "3.0.3-1", - "resolved": "https://registry.npmjs.org/issue-pane/-/issue-pane-3.0.3-1.tgz", - "integrity": "sha512-oB5Kqxn6px09hIv6wG4cTUt/H6q+MZsAmtp40HNQX2F515xmUYSakufliuQ0ONF30EVxjLGzJVB/X4xKYVZxpQ==", + "version": "4.0.0-0", + "resolved": "https://registry.npmjs.org/issue-pane/-/issue-pane-4.0.0-0.tgz", + "integrity": "sha512-vA0Tlq4s1gTKRZNPNRitXfeV4fXoJtLlnH6kGWMe2Lx5eL+ziMAp1LZTsTdclQffxzm1q8COnXCFGrOdhDoc/Q==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.6", - "patch-package": "^8.0.1" + "patch-package": "^8.0.1", + "rdflib": "2.4.0", + "solid-logic": "6.0.0-0", + "solid-ui": "5.0.0-0" }, "engines": { "node": ">=20.19.2" @@ -8246,12 +8208,15 @@ "license": "CC0-1.0" }, "node_modules/meeting-pane": { - "version": "3.0.3-1", - "resolved": "https://registry.npmjs.org/meeting-pane/-/meeting-pane-3.0.3-1.tgz", - "integrity": "sha512-3oAWpeurkBjWDuLlCAGrZGNu0+dJjTBkX2Ymrd97g0uQbnvLol38CCxf8/yhWGCFXs4NtICummRLctR4kgp9kA==", + "version": "4.0.0-0", + "resolved": "https://registry.npmjs.org/meeting-pane/-/meeting-pane-4.0.0-0.tgz", + "integrity": "sha512-l8+o/WXp0v0myGzKtgxgVQJJYLV48h8zB4hiJY+Adl9l6CmS4kRq5A6awPVDvSZVjuBaBTxpJ7+Q97nQnqgMUA==", "license": "MIT", "dependencies": { - "patch-package": "^8.0.1" + "patch-package": "^8.0.1", + "rdflib": "2.4.0", + "solid-logic": "6.0.0-0", + "solid-ui": "5.0.0-0" } }, "node_modules/micromatch": { @@ -8981,26 +8946,13 @@ } }, "node_modules/pane-registry": { - "version": "3.1.2-2", - "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.1.2-2.tgz", - "integrity": "sha512-w+pCan1Umj+pLm5/uNlBMLw0YOKbKhHn5Qh62oqlKlbFrSHj4H3gNOXcKnI47liQFPQYepw5UPssP3aPdiowvA==", + "version": "5.0.0-0", + "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-5.0.0-0.tgz", + "integrity": "sha512-Yb+qcM4fIDFHxF9CM9PkhIAR1BteaRUCUpmoPOZyGVkqAs4pRbpKsh1QKr0r+ibfTnNUZZ2uBfybg1QUVlmlLA==", "license": "MIT", "dependencies": { "rdflib": "2.4.0", - "solid-logic": "4.0.8-1" - } - }, - "node_modules/pane-registry/node_modules/solid-logic": { - "version": "4.0.8-1", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", - "integrity": "sha512-9Vtg9ukEaDTIvBPqECORWRtEJ3nTlEvInJzUCJZDp1qjN9VIdJG0mSiPTIP9RXOEOSAA+Q+cP3d7BzsNyI/RVA==", - "license": "MIT", - "dependencies": { - "@uvdsl/solid-oidc-client-browser": "^0.2.3", - "solid-namespace": "^0.5.4" - }, - "engines": { - "node": ">=18" + "solid-logic": "6.0.0-0" } }, "node_modules/parent-module": { @@ -9360,6 +9312,32 @@ "vitest-axe": "^0.1.0" } }, + "node_modules/profile-pane/node_modules/chat-pane": { + "version": "3.0.4-3", + "resolved": "https://registry.npmjs.org/chat-pane/-/chat-pane-3.0.4-3.tgz", + "integrity": "sha512-m099X1Lb1qaOtaYNAaJ+NfqD/TMRnhX3Gfx5Xgb2HoZYllaxn1xN3Y5Am4Un21k6tLoPaiq1OIkBe09/gHN/sw==", + "license": "MIT", + "dependencies": { + "pane-registry": "3.1.2-2", + "patch-package": "^8.0.1", + "rdflib": "^2.3.9", + "solid-logic": "^4.0.8-0", + "solid-ui": "3.1.3-13", + "vite": "^8.0.16", + "vitest": "^4.0.18", + "vitest-axe": "^0.1.0" + } + }, + "node_modules/profile-pane/node_modules/pane-registry": { + "version": "3.1.2-2", + "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.1.2-2.tgz", + "integrity": "sha512-w+pCan1Umj+pLm5/uNlBMLw0YOKbKhHn5Qh62oqlKlbFrSHj4H3gNOXcKnI47liQFPQYepw5UPssP3aPdiowvA==", + "license": "MIT", + "dependencies": { + "rdflib": "2.4.0", + "solid-logic": "4.0.8-1" + } + }, "node_modules/profile-pane/node_modules/solid-logic": { "version": "4.0.8-1", "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", @@ -9863,12 +9841,12 @@ } }, "node_modules/rolldown": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.4.tgz", - "integrity": "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.5.tgz", + "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.144.0", + "@oxc-project/types": "=0.146.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -9878,20 +9856,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.2.4", - "@rolldown/binding-darwin-arm64": "1.2.4", - "@rolldown/binding-darwin-x64": "1.2.4", - "@rolldown/binding-freebsd-x64": "1.2.4", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", - "@rolldown/binding-linux-arm64-gnu": "1.2.4", - "@rolldown/binding-linux-arm64-musl": "1.2.4", - "@rolldown/binding-linux-ppc64-gnu": "1.2.4", - "@rolldown/binding-linux-s390x-gnu": "1.2.4", - "@rolldown/binding-linux-x64-gnu": "1.2.4", - "@rolldown/binding-linux-x64-musl": "1.2.4", - "@rolldown/binding-openharmony-arm64": "1.2.4", - "@rolldown/binding-win32-arm64-msvc": "1.2.4", - "@rolldown/binding-win32-x64-msvc": "1.2.4" + "@rolldown/binding-android-arm-eabi": "1.2.5", + "@rolldown/binding-android-arm64": "1.2.5", + "@rolldown/binding-darwin-arm64": "1.2.5", + "@rolldown/binding-darwin-x64": "1.2.5", + "@rolldown/binding-freebsd-x64": "1.2.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.5", + "@rolldown/binding-linux-arm64-gnu": "1.2.5", + "@rolldown/binding-linux-arm64-musl": "1.2.5", + "@rolldown/binding-linux-ppc64-gnu": "1.2.5", + "@rolldown/binding-linux-s390x-gnu": "1.2.5", + "@rolldown/binding-linux-x64-gnu": "1.2.5", + "@rolldown/binding-linux-x64-musl": "1.2.5", + "@rolldown/binding-openharmony-arm64": "1.2.5", + "@rolldown/binding-win32-arm64-msvc": "1.2.5", + "@rolldown/binding-win32-x64-msvc": "1.2.5" } }, "node_modules/safe-array-concat": { @@ -10196,9 +10175,9 @@ "license": "MIT" }, "node_modules/solid-logic": { - "version": "4.0.8-3", - "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-3.tgz", - "integrity": "sha512-0HKcZJb5ZF2MvFzOid26LMilgL6jD1zaRpix5nb2fB1h3H9WB0kquyD/297L6jIiUTIYSMlVb7ivpvkiVNTTNQ==", + "version": "6.0.0-0", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-6.0.0-0.tgz", + "integrity": "sha512-ApPkheoF5Nu+7//WkPJw+tHZuGcktJ0lrkvbTsjNb594RW1DFUtLZY+OXRck45GJW0owoyTtJK7A0jZtlA33tw==", "license": "MIT", "dependencies": { "@uvdsl/solid-oidc-client-browser": "^0.2.3", @@ -10217,9 +10196,9 @@ "license": "MIT" }, "node_modules/solid-ui": { - "version": "3.1.3-17", - "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-17.tgz", - "integrity": "sha512-XVnz8u3lhW0AhmywMlEOif23lYkQcCmWiL5NUf8A5kmz3Ixw3E/qGiqmPpJ8VAOPZhEsj8+G7u+Y6pUDmhrLeA==", + "version": "5.0.0-0", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-5.0.0-0.tgz", + "integrity": "sha512-AHHhqeUcggQmudCHKi90ugJMdEHtFsT46MSl7oNbM/TGW2WpkpQv1d17Z4NU1ezq3YFhJPEK7j9iea5Nx5lHMw==", "license": "MIT", "dependencies": { "@awesome.me/webawesome": "^3.9.0", @@ -10242,9 +10221,9 @@ "escape-html": "^1.0.3", "lit": "^3.3.3", "mime-types": "^3.0.2", - "pane-registry": "3.1.2-2", + "pane-registry": "5.0.0-0", "rdflib": "2.4.0", - "solid-logic": "4.0.8-3", + "solid-logic": "6.0.0-0", "solid-namespace": "^0.5.4", "uuid": "^14.0.0" }, @@ -10253,9 +10232,9 @@ } }, "node_modules/solidos-toolkit": { - "version": "0.0.0-dev.761b46f81590c0224a612fba4771aa9c84e7944a", - "resolved": "https://registry.npmjs.org/solidos-toolkit/-/solidos-toolkit-0.0.0-dev.761b46f81590c0224a612fba4771aa9c84e7944a.tgz", - "integrity": "sha512-4KXTvJEYBuymrNTJoT15bT2Ml7a6871g4HExEgNNtmnTDhkl6f0H07BChXuotk/awCkJztaE4VHFJgzRqQYcwg==", + "version": "0.0.0-dev.998a984ddf8fda587eedb0c8125cb952ac28d191", + "resolved": "https://registry.npmjs.org/solidos-toolkit/-/solidos-toolkit-0.0.0-dev.998a984ddf8fda587eedb0c8125cb952ac28d191.tgz", + "integrity": "sha512-m2b3sZkKbjV5X/J8N25h3UIbsiQARdnXCGs1AeGqFiueoq8cWm+pdOyPpqiVuqRnnA5osmKG2wovUcBBYumL0Q==", "dev": true, "dependencies": { "@babel/core": "^7.29.0", @@ -10274,10 +10253,10 @@ "vite-plugin-lit-css": "^3.0.0" }, "peerDependencies": { - "pane-registry": "^3.1.1 || ^3.1.2-0", + "pane-registry": "^3.1.1 || ^3.1.2-0 || ^5.0.0 || ^5.0.0-0", "rdflib": "^2.3.6", - "solid-logic": "^4.0.7 || ^4.0.8-0", - "solid-ui": "^3.1.2 || ^3.1.3-0", + "solid-logic": "^4.0.7 || ^4.0.8-0 || ^6.0.0 || ^6.0.0-0", + "solid-ui": "^3.1.2 || ^3.1.3-0 || ^5.0.0 || ^5.0.0-0", "vite": "^8.0.0", "vitest": "^4.0.0" }, @@ -10329,6 +10308,80 @@ "vitest-axe": "^0.1.0" } }, + "node_modules/source-pane/node_modules/pane-registry": { + "version": "3.1.2-2", + "resolved": "https://registry.npmjs.org/pane-registry/-/pane-registry-3.1.2-2.tgz", + "integrity": "sha512-w+pCan1Umj+pLm5/uNlBMLw0YOKbKhHn5Qh62oqlKlbFrSHj4H3gNOXcKnI47liQFPQYepw5UPssP3aPdiowvA==", + "license": "MIT", + "dependencies": { + "rdflib": "2.4.0", + "solid-logic": "4.0.8-1" + } + }, + "node_modules/source-pane/node_modules/pane-registry/node_modules/solid-logic": { + "version": "4.0.8-1", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-1.tgz", + "integrity": "sha512-9Vtg9ukEaDTIvBPqECORWRtEJ3nTlEvInJzUCJZDp1qjN9VIdJG0mSiPTIP9RXOEOSAA+Q+cP3d7BzsNyI/RVA==", + "license": "MIT", + "dependencies": { + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-pane/node_modules/solid-logic": { + "version": "4.0.8-3", + "resolved": "https://registry.npmjs.org/solid-logic/-/solid-logic-4.0.8-3.tgz", + "integrity": "sha512-0HKcZJb5ZF2MvFzOid26LMilgL6jD1zaRpix5nb2fB1h3H9WB0kquyD/297L6jIiUTIYSMlVb7ivpvkiVNTTNQ==", + "license": "MIT", + "dependencies": { + "@uvdsl/solid-oidc-client-browser": "^0.2.3", + "solid-namespace": "^0.5.4", + "vite": "^8.0.16", + "vitest": "^4.1.9" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-pane/node_modules/solid-ui": { + "version": "3.1.3-17", + "resolved": "https://registry.npmjs.org/solid-ui/-/solid-ui-3.1.3-17.tgz", + "integrity": "sha512-XVnz8u3lhW0AhmywMlEOif23lYkQcCmWiL5NUf8A5kmz3Ixw3E/qGiqmPpJ8VAOPZhEsj8+G7u+Y6pUDmhrLeA==", + "license": "MIT", + "dependencies": { + "@awesome.me/webawesome": "^3.9.0", + "@codemirror/commands": "^6.10.0", + "@codemirror/lang-css": "^6.3.1", + "@codemirror/lang-html": "^6.4.11", + "@codemirror/lang-javascript": "^6.2.5", + "@codemirror/lang-json": "^6.0.2", + "@codemirror/lang-markdown": "^6.3.1", + "@codemirror/lang-xml": "^6.1.0", + "@codemirror/language": "^6.12.3", + "@codemirror/legacy-modes": "^6.5.3", + "@codemirror/state": "^6.6.0", + "@codemirror/view": "^6.43.0", + "@lit/context": "^1.1.6", + "@lit/task": "^1.0.3", + "@noble/curves": "^2.2.0", + "@noble/hashes": "^2.2.0", + "@uiw/codemirror-theme-vscode": "^4.25.10", + "escape-html": "^1.0.3", + "lit": "^3.3.3", + "mime-types": "^3.0.2", + "pane-registry": "3.1.2-2", + "rdflib": "2.4.0", + "solid-logic": "4.0.8-3", + "solid-namespace": "^0.5.4", + "uuid": "^14.0.0" + }, + "optionalDependencies": { + "fsevents": "*" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -11243,15 +11296,15 @@ } }, "node_modules/vite": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", - "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", "license": "MIT", "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", - "postcss": "^8.5.25", - "rolldown": "~1.2.1", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", "tinyglobby": "^0.2.17" }, "bin": { @@ -11268,7 +11321,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.4.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", diff --git a/package.json b/package.json index f74d8e9a..3cbb30a2 100644 --- a/package.json +++ b/package.json @@ -57,22 +57,22 @@ "homepage": "https://github.com/SolidOS/solid-panes", "dependencies": { "@solid/better-simple-slideshow": "^0.1.0", - "activitystreams-pane": "1.0.3-4", - "chat-pane": "3.0.4-3", + "activitystreams-pane": "2.0.0-0", + "chat-pane": "4.0.0-0", "contacts-pane": "3.2.1-6", "dompurify": "^3.4.4", "folder-pane": "3.1.1-3", - "issue-pane": "3.0.3-1", + "issue-pane": "4.0.0-0", "lit-html": "^3.3.2", "marked": "^18.0.3", - "meeting-pane": "3.0.3-1", + "meeting-pane": "4.0.0-0", "mime-types": "^3.0.2", - "pane-registry": "3.1.2-2", + "pane-registry": "5.0.0-0", "profile-pane": "3.2.3-4", "rdflib": "2.4.0", - "solid-logic": "4.0.8-3", + "solid-logic": "6.0.0-0", "solid-namespace": "^0.5.4", - "solid-ui": "3.1.3-17", + "solid-ui": "5.0.0-0", "source-pane": "3.1.1-7" }, "overrides": {