diff --git a/babel.config.mjs b/babel.config.mjs
index d5db5463..85813868 100644
--- a/babel.config.mjs
+++ b/babel.config.mjs
@@ -1,11 +1,12 @@
export default {
+ sourceType: 'unambiguous',
presets: [
['@babel/preset-env', {
targets: {
browsers: ['> 1%', 'last 3 versions', 'not dead']
}
}],
- '@babel/preset-typescript'
+ '@babel/preset-typescript',
],
plugins: [
[
diff --git a/dev/dev-light.css b/dev/dev-light.css
new file mode 100644
index 00000000..59d69a0a
--- /dev/null
+++ b/dev/dev-light.css
@@ -0,0 +1,202 @@
+/* ---ONLY FOR LOCAL DEV--- */
+/* ---final version is in mashlib--- */
+
+
+/*
+** Light Theme (Default)
+** Default color scheme for SolidOS
+*/
+
+:root {
+ /* Background and Text */
+ --color-background: white;
+ --color-text: ##1A1A1A;
+ --color-text-secondary: #666;
+ --color-text-light: #aaa;
+ --color-text-link: #3B5998;
+ --color-text-link-visited: #3B5998;
+ --color-text-link-hover: #3B5998;
+ --color-text-link-active: #888;
+ --color-text-answer: #00c;
+ --color-text-muted: #444;
+ --color-text-dark-gray: #202;
+ --color-text-blue: #004;
+ --color-text-brown: #440;
+
+ /* Borders */
+ --color-border: #ccc;
+ --color-border-dark: #777;
+ --color-border-darker: #444;
+ --color-border-light: #aaa;
+ --color-border-pale: #eee;
+
+ /* Status Colors */
+ --color-selected-bg: #8F3;
+ --color-warning: red;
+ --color-success-bg: #dfd;
+ --color-success-border: green;
+ --color-failure-bg: white;
+ --color-failure-border: red;
+
+ /* Info and Alert Colors */
+ --color-info-bg: #ccccff;
+ --color-info-border: #3399ff;
+ --color-alert-bg: #ffffdd;
+ --color-alert-border: yellow;
+ --color-fetch-bg: #eeffee;
+ --color-request-bg: yellow;
+ --color-error-bg: white;
+ --color-error-notice-bg: #fee;
+ --color-unparseable-bg: #ffcc00;
+
+ /* Component Colors */
+ --color-container-border: black;
+ --color-iframe-bg: white;
+ --color-main-block-bg: #fff;
+ --color-nav-block-bg: #eee;
+ --color-nav-block-border: gray;
+ --color-category-bg: #f8fff8;
+ --color-category-border: #777777;
+ --color-category-class-bg: #efe;
+ --color-category-class-border: green;
+ --color-pubs-pane-bg: #F2F6DA;
+ --color-pubs-pane-border: #777777;
+ --color-cv-pane-bg: LightSkyBlue;
+
+ /* Data Content Pane */
+ --color-data-pane-border-top: black;
+ --color-data-pane-border-side: #777;
+ --color-table-header-bg: #ddf;
+ --color-table-result-bg: #fff;
+ --color-table-border-dark: #777;
+
+ /* Notification Colors */
+ --color-log-normal: black;
+ --color-log-info: black;
+ --color-log-warn: black;
+ --color-log-warn-bg: #ffd;
+ --color-log-error: black;
+ --color-log-error-bg: #fdd;
+ --color-log-message: green;
+ --color-log-debug: black;
+ --color-log-debug-bg: #ddf;
+
+ /* Suggestion List */
+ --color-suggestion-bg: white;
+ --color-suggestion-border: navy;
+ --color-suggestion-link: navy;
+ --color-suggestion-selected-bg: navy;
+ --color-suggestion-selected-text: white;
+
+ /* Photo Pane */
+ --color-photo-border: #AAAAAA;
+ --color-photo-tag-highlight: #DDEEFF;
+ --color-photo-tag-highlight-border: #DDBB99;
+ --color-photo-thumb-border: #CCCCCC;
+
+ /* Menu and Tab Colors */
+ --color-menu-bg: #FFFFFF;
+ --color-menu-item-text: #654d6c;
+ --color-menu-item-active: #D1C6DA;
+ --color-view-tab-bg: #fff;
+ --color-view-window-bg: #ccc;
+ --color-query-select-bg: #ccc;
+ --color-tab-inactive-bg: #eee;
+ --color-tab-inactive-border: #ddd;
+ --color-tab-inactive-border-light: #aaa;
+ --color-tab-inactive-text: #99f;
+ --color-tab-active-bg: #ccc;
+ --color-tab-active-border: #ddd;
+ --color-tab-active-border-light: #aaa;
+ --color-tab-active-text: #22f;
+
+ /* Special Highlights */
+ --color-source-highlight: yellow;
+ --color-hover-visibility: visible;
+ --color-hidden-visibility: hidden;
+ --color-mild-notice-bg: #ffe;
+ --color-bottom-border-highlight: rgb(100%,65%,0%);
+ --color-col-close: #aaa;
+ --color-sort-arrow: #aaa;
+ --color-pending-edit: #bbb;
+
+ /* Typography */
+ --font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ --font-family-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ --font-size-base: 100%;
+ --font-size-strong: 120%;
+ --font-weight-normal: normal;
+ --font-weight-bold: bold;
+ --line-height-base: 1.5;
+ --line-height-tight: 1.4;
+ --line-height-loose: 1.6;
+ --letter-spacing-wide: 0.025em;
+ --font-size-sm: 0.875rem;
+ --font-size-lg: 1.125rem;
+ --font-size-xl: 1.25rem;
+
+ /* Spacing and Sizing */
+ --spacing-tiny: 0.05em;
+ --spacing-small: 0.1em;
+ --spacing-xs: 0.5rem;
+ --spacing-sm: 0.75em;
+ --spacing-base: 0.5em;
+ --spacing-md: 1em;
+ --spacing-lg: 1.5em;
+ --spacing-xl: 2em;
+ --spacing-2xl: 3em;
+ --border-width-thin: 1px;
+ --border-width-medium: 2px;
+ --border-width-bold: 5px;
+ --border-radius-base: 0.5em;
+ --border-radius-lg: 0.75em;
+ --border-radius-full: 1em;
+
+ /* Primary/Accent Colors */
+ --color-primary: #7C4DFF;
+ --color-primary-alpha: rgba(124, 77, 255, 0.25);
+ --color-primary-alpha-light: rgba(124, 77, 255, 0.1);
+ --color-secondary: #0077B6;
+ --color-accent: #FFD600;
+ --color-error: #B00020;
+ --color-success: #00C853;
+
+ /* Card/Section Backgrounds */
+ --color-card-bg: #FFFFFF;
+ --color-section-bg: #F5F5F5;
+ --color-zebra-stripe: rgba(0, 0, 0, 0.02);
+ --color-hover-bg: rgba(0, 0, 0, 0.05);
+
+ /* Shadows */
+ --box-shadow: 0 2px 8px rgba(124,77,255,0.08);
+ --box-shadow-sm: 0 1px 4px rgba(124,77,255,0.12);
+
+ /* Accessibility */
+ --min-touch-target: 44px;
+ --focus-ring-width: 2px;
+ --focus-indicator-width: 3px;
+ --animation-duration: 0.2s;
+ --animation-duration-slow: 0.3s;
+ --min-font-size: 14px;
+ --min-line-height: 1.4;
+ --high-contrast-ratio: 7:1; /* WCAG AAA standard */
+
+ /* Overlay and Modal */
+ --overlay-bg: rgba(0, 0, 0, 0.5);
+ --z-index-modal: 9999;
+ --z-index-skip-links: 1000;
+
+ /* Opacity */
+ --opacity-disabled: 0.6;
+
+ /* Layout Values */
+ --max-width-readable: 65ch;
+ --max-width-readable-wide: 70ch;
+ --grid-min-column: 30em;
+
+ /* Outline Offsets */
+ --outline-offset-sm: 2px;
+
+ /* Success Alpha */
+ --color-success-alpha: rgba(0, 200, 83, 0.1);
+}
diff --git a/dev/dev-mash-utilities.css b/dev/dev-mash-utilities.css
new file mode 100644
index 00000000..7a476155
--- /dev/null
+++ b/dev/dev-mash-utilities.css
@@ -0,0 +1,691 @@
+/* ---ONLY FOR LOCAL DEV--- */
+/* ---final version is in mashlib--- */
+
+/* ===========================================
+ ACCESSIBILITY UTILITIES (HIGH PRIORITY)
+ =========================================== */
+
+/* Screen reader only content - hidden visually but available to assistive tech */
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+/* Visually hidden but can become visible on focus */
+.visually-hidden {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+
+.visually-hidden.focusable:focus,
+.visually-hidden.focusable:active {
+ position: static !important;
+ width: auto !important;
+ height: auto !important;
+ padding: inherit !important;
+ margin: inherit !important;
+ overflow: visible !important;
+ clip: auto !important;
+ white-space: inherit !important;
+}
+
+/* Minimum touch target for mobile accessibility (WCAG 2.5.5) */
+.min-touch-target {
+ min-height: var(--min-touch-target);
+ min-width: var(--min-touch-target);
+}
+
+/* Reduced motion support */
+.reduced-motion {
+ animation: none !important;
+ transition: none !important;
+}
+
+/* Focus ring utility */
+.focus-ring {
+ outline: var(--focus-ring-width) solid var(--color-primary);
+ outline-offset: var(--outline-offset-sm);
+}
+
+.no-focus-ring {
+ outline: none;
+}
+
+/* ARIA live regions - for dynamic content announcements */
+.live-region {
+ position: absolute;
+ left: -10000px;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+
+/* Skip links for keyboard navigation */
+.skip-links {
+ position: absolute;
+ top: -100px;
+ left: 0;
+ z-index: var(--z-index-skip-links);
+}
+
+.skip-links a {
+ position: absolute;
+ left: var(--spacing-xs);
+ top: var(--spacing-xs);
+ padding: var(--spacing-sm);
+ background: var(--color-primary);
+ color: var(--color-background);
+ text-decoration: none;
+ border-radius: var(--border-radius-base);
+}
+
+.skip-links a:focus {
+ top: var(--spacing-xs);
+}
+
+/* ===========================================
+ LAYOUT UTILITIES
+ =========================================== */
+
+.flex {
+ display: flex;
+}
+
+.grid {
+ display: grid;
+}
+
+.center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.flex-center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.flex-column {
+ display: flex;
+ flex-direction: column;
+}
+
+.flex-column-center {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.flex-row {
+ display: flex;
+ flex-direction: row;
+}
+
+.flex-wrap {
+ flex-wrap: wrap;
+}
+
+.flex-1 {
+ flex: 1;
+}
+
+.justify-start {
+ justify-content: flex-start;
+}
+
+.justify-end {
+ justify-content: flex-end;
+}
+
+.justify-center {
+ justify-content: center;
+}
+
+.justify-between {
+ justify-content: space-between;
+}
+
+.align-start {
+ align-items: flex-start;
+}
+
+.align-end {
+ align-items: flex-end;
+}
+
+.align-center {
+ align-items: center;
+}
+
+/* ===========================================
+ SPACING UTILITIES
+ =========================================== */
+
+/* Gap utilities */
+.gap-xs { gap: var(--spacing-xs); }
+.gap-sm { gap: var(--spacing-sm); }
+.gap-md { gap: var(--spacing-md); }
+.gap-lg { gap: var(--spacing-lg); }
+.gap-xl { gap: var(--spacing-xl); }
+
+/* Margin top */
+.mt-0 { margin-top: 0; }
+.mt-xs { margin-top: var(--spacing-xs); }
+.mt-sm { margin-top: var(--spacing-sm); }
+.mt-md { margin-top: var(--spacing-md); }
+.mt-lg { margin-top: var(--spacing-lg); }
+.mt-xl { margin-top: var(--spacing-xl); }
+
+/* Margin bottom */
+.mb-0 { margin-bottom: 0; }
+.mb-xs { margin-bottom: var(--spacing-xs); }
+.mb-sm { margin-bottom: var(--spacing-sm); }
+.mb-md { margin-bottom: var(--spacing-md); }
+.mb-lg { margin-bottom: var(--spacing-lg); }
+.mb-xl { margin-bottom: var(--spacing-xl); }
+
+/* Margin left */
+.ml-0 { margin-left: 0; }
+.ml-xs { margin-left: var(--spacing-xs); }
+.ml-sm { margin-left: var(--spacing-sm); }
+.ml-md { margin-left: var(--spacing-md); }
+.ml-lg { margin-left: var(--spacing-lg); }
+
+/* Margin right */
+.mr-0 { margin-right: 0; }
+.mr-xs { margin-right: var(--spacing-xs); }
+.mr-sm { margin-right: var(--spacing-sm); }
+.mr-md { margin-right: var(--spacing-md); }
+.mr-lg { margin-right: var(--spacing-lg); }
+
+/* Margin horizontal (left + right) */
+.mx-auto { margin-left: auto; margin-right: auto; }
+.mx-xs { margin-left: var(--spacing-xs); margin-right: var(--spacing-xs); }
+.mx-sm { margin-left: var(--spacing-sm); margin-right: var(--spacing-sm); }
+.mx-md { margin-left: var(--spacing-md); margin-right: var(--spacing-md); }
+
+/* Margin vertical (top + bottom) */
+.my-xs { margin-top: var(--spacing-xs); margin-bottom: var(--spacing-xs); }
+.my-sm { margin-top: var(--spacing-sm); margin-bottom: var(--spacing-sm); }
+.my-md { margin-top: var(--spacing-md); margin-bottom: var(--spacing-md); }
+
+/* Padding */
+.p-0 { padding: 0; }
+.p-xs { padding: var(--spacing-xs); }
+.p-sm { padding: var(--spacing-sm); }
+.p-md { padding: var(--spacing-md); }
+.p-lg { padding: var(--spacing-lg); }
+.p-xl { padding: var(--spacing-xl); }
+
+/* Padding top */
+.pt-xs { padding-top: var(--spacing-xs); }
+.pt-sm { padding-top: var(--spacing-sm); }
+.pt-md { padding-top: var(--spacing-md); }
+.pt-lg { padding-top: var(--spacing-lg); }
+
+/* Padding bottom */
+.pb-xs { padding-bottom: var(--spacing-xs); }
+.pb-sm { padding-bottom: var(--spacing-sm); }
+.pb-md { padding-bottom: var(--spacing-md); }
+.pb-lg { padding-bottom: var(--spacing-lg); }
+
+/* Padding horizontal */
+.px-xs { padding-left: var(--spacing-xs); padding-right: var(--spacing-xs); }
+.px-sm { padding-left: var(--spacing-sm); padding-right: var(--spacing-sm); }
+.px-md { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
+.px-lg { padding-left: var(--spacing-lg); padding-right: var(--spacing-lg); }
+
+/* Padding vertical */
+.py-xs { padding-top: var(--spacing-xs); padding-bottom: var(--spacing-xs); }
+.py-sm { padding-top: var(--spacing-sm); padding-bottom: var(--spacing-sm); }
+.py-md { padding-top: var(--spacing-md); padding-bottom: var(--spacing-md); }
+.py-lg { padding-top: var(--spacing-lg); padding-bottom: var(--spacing-lg); }
+
+/* ===========================================
+ TEXT UTILITIES
+ =========================================== */
+
+.text-center { text-align: center; }
+.text-left { text-align: left; }
+.text-right { text-align: right; }
+
+.text-secondary { color: var(--color-text-secondary); }
+.text-muted { color: var(--color-text-muted); }
+.text-primary { color: var(--color-primary); }
+.text-error { color: var(--color-error); }
+.text-success { color: var(--color-success); }
+
+.text-bold { font-weight: var(--font-weight-bold); }
+.text-normal { font-weight: var(--font-weight-normal); }
+
+.text-sm { font-size: var(--font-size-sm); }
+.text-lg { font-size: var(--font-size-lg); }
+.text-xl { font-size: var(--font-size-xl); }
+
+/* Text that respects accessibility guidelines */
+.text-readable {
+ line-height: var(--line-height-base);
+ max-width: var(--max-width-readable);
+}
+
+.text-scale-friendly {
+ line-height: var(--line-height-base);
+ max-width: var(--max-width-readable-wide);
+}
+
+/* Text with minimum font size safety */
+.text-small {
+ font-size: max(var(--font-size-sm), var(--min-font-size));
+ line-height: var(--min-line-height);
+}
+
+.text-large {
+ font-size: var(--font-size-lg);
+ line-height: var(--line-height-base);
+}
+
+/* Text overflow handling */
+.text-truncate {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.text-wrap-anywhere {
+ overflow-wrap: anywhere;
+ word-break: break-word;
+}
+
+.text-nowrap {
+ white-space: nowrap;
+}
+
+/* High contrast text for accessibility */
+.text-contrast-high {
+ color: var(--color-text);
+ font-weight: var(--font-weight-bold);
+}
+
+/* Better focus for text elements */
+.focusable-text:focus {
+ background-color: var(--color-primary-alpha-light);
+ outline: var(--focus-ring-width) solid var(--color-primary);
+ outline-offset: var(--outline-offset-sm);
+ border-radius: var(--outline-offset-sm);
+}
+
+/* High contrast box */
+.high-contrast {
+ color: var(--color-text);
+ background: var(--color-background);
+ border: var(--border-width-thin) solid var(--color-border-pale);
+}
+
+/* ===========================================
+ BORDER & SHADOW UTILITIES
+ =========================================== */
+
+.rounded { border-radius: var(--border-radius-full); }
+.rounded-sm { border-radius: var(--border-radius-base); }
+.rounded-lg { border-radius: var(--border-radius-lg); }
+.rounded-none { border-radius: 0; }
+
+.shadow { box-shadow: var(--box-shadow); }
+.shadow-sm { box-shadow: var(--box-shadow-sm); }
+.shadow-none { box-shadow: none; }
+
+.border { border: var(--border-width-thin) solid var(--color-border); }
+.border-dark { border: var(--border-width-thin) solid var(--color-border-dark); }
+.border-light { border: var(--border-width-thin) solid var(--color-border-light); }
+.border-none { border: none; }
+
+/* ===========================================
+ BACKGROUND UTILITIES
+ =========================================== */
+
+.bg-primary {
+ background: var(--color-primary);
+ color: var(--color-background);
+}
+
+.bg-card {
+ background: var(--color-card-bg);
+}
+
+.bg-section {
+ background: var(--color-section-bg);
+}
+
+.bg-transparent {
+ background: transparent;
+}
+
+.bg-white {
+ background: var(--color-background);
+}
+
+/* ===========================================
+ BUTTON COMPONENTS
+ =========================================== */
+
+/* Primary button */
+.btn-primary {
+ min-height: var(--min-touch-target);
+ padding: var(--spacing-sm) var(--spacing-md);
+ border: var(--border-width-thin) solid var(--color-primary);
+ border-radius: var(--border-radius-base);
+ background: var(--color-primary);
+ color: var(--color-background);
+ font-weight: var(--font-weight-bold);
+ cursor: pointer;
+ transition: all var(--animation-duration) ease;
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.btn-primary:hover {
+ background: color-mix(in srgb, var(--color-primary) 85%, black);
+ box-shadow: 0 2px 4px var(--color-primary-alpha);
+}
+
+.btn-primary:active {
+ box-shadow: 0 1px 2px var(--color-primary-alpha);
+}
+
+.btn-primary:focus,
+.btn-primary:focus-visible {
+ outline: var(--focus-indicator-width) solid var(--color-primary);
+ outline-offset: var(--outline-offset-sm);
+ box-shadow: 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha);
+}
+
+.btn-primary:disabled {
+ opacity: var(--opacity-disabled);
+ cursor: not-allowed;
+ transform: none;
+}
+
+/* Secondary button */
+.btn-secondary {
+ min-height: var(--min-touch-target);
+ padding: var(--spacing-sm) var(--spacing-md);
+ border: var(--border-width-thin) solid var(--color-secondary);
+ border-radius: var(--border-radius-base);
+ background: var(--color-secondary);
+ color: var(--color-background);
+ font-weight: var(--font-weight-bold);
+ cursor: pointer;
+ transition: all var(--animation-duration) ease;
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.btn-secondary:hover {
+ background: color-mix(in srgb, var(--color-secondary) 85%, black);
+}
+
+.btn-secondary:disabled {
+ opacity: var(--opacity-disabled);
+ cursor: not-allowed;
+}
+
+/* Outline button */
+.btn-outline {
+ min-height: var(--min-touch-target);
+ padding: var(--spacing-sm) var(--spacing-md);
+ border: var(--border-width-medium) solid var(--color-primary);
+ border-radius: var(--border-radius-base);
+ background: transparent;
+ color: var(--color-primary);
+ font-weight: var(--font-weight-bold);
+ cursor: pointer;
+ transition: all var(--animation-duration) ease;
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.btn-outline:hover {
+ background: var(--color-primary);
+ color: var(--color-background);
+}
+
+.btn-outline:disabled {
+ opacity: var(--opacity-disabled);
+ cursor: not-allowed;
+}
+
+/* Transparent button (for solid-ui integration) */
+.btn-transparent {
+ background-color: transparent;
+ border: none;
+ cursor: pointer;
+}
+
+.btn-transparent:hover {
+ background-color: var(--color-hover-bg);
+}
+
+/* Button focus state */
+.action-button-focus:focus,
+.action-button-focus:focus-visible {
+ outline: var(--focus-indicator-width) solid var(--color-primary) !important;
+ outline-offset: var(--outline-offset-sm) !important;
+ box-shadow: 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha) !important;
+ z-index: 1;
+}
+
+/* ===========================================
+ CARD & SECTION COMPONENTS
+ =========================================== */
+
+.module-card {
+ background: var(--color-card-bg);
+ border-radius: var(--border-radius-full);
+ box-shadow: var(--box-shadow);
+ padding: var(--spacing-lg);
+ margin-bottom: var(--spacing-lg);
+ width: 100%;
+ max-width: 100%;
+ box-sizing: border-box;
+}
+
+.module-header {
+ text-align: center;
+ margin-bottom: var(--spacing-md);
+}
+
+.section-centered {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.section-bg {
+ background: var(--color-section-bg);
+ border-radius: var(--border-radius-full);
+ box-shadow: var(--box-shadow);
+ padding: var(--spacing-md);
+}
+
+.section-title {
+ font-size: var(--font-size-xl);
+ font-weight: var(--font-weight-bold);
+ color: var(--color-primary);
+ margin: 0;
+}
+
+/* ===========================================
+ LIST & TABLE UTILITIES
+ =========================================== */
+
+.list-reset {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.zebra-stripe tr:nth-child(even),
+.zebra-stripe > *:nth-child(even) {
+ background-color: var(--color-zebra-stripe);
+}
+
+/* ===========================================
+ DISPLAY & VISIBILITY UTILITIES
+ =========================================== */
+
+.block { display: block; }
+.inline { display: inline; }
+.inline-block { display: inline-block; }
+.hidden { display: none; }
+.visible { visibility: visible; }
+.invisible { visibility: hidden; }
+
+/* ===========================================
+ WIDTH & HEIGHT UTILITIES
+ =========================================== */
+
+.w-full { width: 100%; }
+.w-auto { width: auto; }
+.h-full { height: 100%; }
+.h-auto { height: auto; }
+.max-w-full { max-width: 100%; }
+
+/* ===========================================
+ POSITION UTILITIES
+ =========================================== */
+
+.relative { position: relative; }
+.absolute { position: absolute; }
+.fixed { position: fixed; }
+.sticky { position: sticky; }
+
+/* ===========================================
+ LOADING & STATUS INDICATORS
+ =========================================== */
+
+.loading-text {
+ color: var(--color-primary);
+ text-align: center;
+ margin: var(--spacing-md) 0;
+}
+
+.loading-spinner {
+ width: var(--min-touch-target);
+ height: var(--min-touch-target);
+ border: var(--focus-indicator-width) solid var(--color-border-pale);
+ border-top: var(--focus-indicator-width) solid var(--color-primary);
+ border-radius: var(--border-radius-full);
+ animation: spin var(--animation-duration-slow) linear infinite;
+}
+
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+/* ===========================================
+ ARIA ROLE STYLING
+ =========================================== */
+
+[role="alert"] {
+ padding: var(--spacing-md);
+ border: var(--border-width-medium) solid var(--color-error);
+ border-radius: var(--border-radius-base);
+ background-color: var(--color-primary-alpha-light);
+ margin: var(--spacing-md) 0;
+}
+
+[role="status"] {
+ padding: var(--spacing-md);
+ border: var(--border-width-medium) solid var(--color-success);
+ border-radius: var(--border-radius-base);
+ background-color: var(--color-success-alpha);
+ margin: var(--spacing-md) 0;
+}
+
+/* ===========================================
+ FOCUS TRAP FOR MODALS
+ =========================================== */
+
+.focus-trap {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: var(--z-index-modal);
+ background: var(--overlay-bg);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+/* ===========================================
+ MEDIA QUERIES
+ =========================================== */
+
+/* Respect reduced motion preferences */
+@media (prefers-reduced-motion: reduce) {
+ .loading-spinner {
+ animation: none;
+ border-top-color: var(--color-primary);
+ }
+
+ *,
+ *::before,
+ *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ }
+}
+
+/* High contrast mode support */
+@media (prefers-contrast: high) {
+ .btn-primary,
+ .btn-secondary,
+ .btn-outline {
+ border-width: var(--border-width-medium);
+ }
+
+ .module-card,
+ .section-bg {
+ border: var(--border-width-medium) solid var(--color-border-dark);
+ }
+}
+
+/* Mobile minimum font size */
+@media screen and (max-width: 768px) {
+ html {
+ font-size: max(16px, 1rem);
+ }
+}
+
+/* Smooth scroll when no motion preference */
+@media (prefers-reduced-motion: no-preference) {
+ html {
+ scroll-behavior: smooth;
+ }
+}
diff --git a/dev/dev-mash.css b/dev/dev-mash.css
new file mode 100644
index 00000000..8aa75274
--- /dev/null
+++ b/dev/dev-mash.css
@@ -0,0 +1,1411 @@
+/* ---ONLY FOR LOCAL DEV--- */
+/* ---final version is in mashlib--- */
+
+/*
+** ------SolidOS Styles------
+**
+*/
+@import url("./dev-light.css");
+@import url("./dev-mash-utilities.css");
+
+/* I couldn't find the code for the collapse image. this is a quick work around
+to make the collapsing easier to use ( the triangles dont jump 20 pixels). ~cm2
+*/
+img[title="Hide details."] {
+ float: left;
+}
+
+html {
+ height: 100%;
+ line-height: 1.15;
+}
+body {
+ height: 100%;
+ background-color: var(--color-background);
+ color: var(--color-text);
+ font-family: var(--font-family-base);
+}
+
+/* Improved heading hierarchy */
+h1, h2, h3, h4, h5, h6 {
+ color: var(--color-primary);
+ font-weight: 600;
+ line-height: var(--line-height-tight);
+ margin-top: 0;
+ margin-bottom: var(--spacing-sm);
+}
+
+h1 { font-size: 2em; } /* 32px */
+h2 { font-size: 1.5em; } /* 24px */
+h3 { font-size: 1.25em; } /* 20px */
+h4 { font-size: 1.125em; }/* 18px */
+h5, h6 { font-size: 1em; }/* 16px */
+
+/* Better paragraph spacing */
+p {
+ margin-bottom: var(--spacing-md);
+ line-height: var(--line-height-base);
+ max-width: 65ch; /* Optimal reading width */
+}
+
+/* Improved link accessibility */
+a {
+ color: var(--color-primary);
+ text-decoration: underline;
+ text-underline-offset: 0.125em;
+ text-decoration-thickness: 0.0625em;
+}
+
+a:hover, a:focus {
+ text-decoration-thickness: 0.125em;
+}
+
+
+/* Main page elements in databrowser.html */
+#PageBody {
+ display: flex;
+ flex-direction: column;
+}
+#DummyUUID {
+ flex: 1 0 auto;
+}
+#PageHeader {
+ flex-shrink: 0;
+}
+#PageFooter {
+ flex-shrink: 0;
+}
+
+.warning {
+ color: var(--color-warning);
+}
+.selected {
+ background-color: var(--color-selected-bg);
+}
+
+.licOkay {
+ background-color: var(--color-success-bg);
+}
+
+/*
+** other potential colors for CC:
+** #C4FF55. "faded" version of CC
+** #486d00, actual CC
+** #ccff99, mit page color
+*/
+
+strong {
+ font-size: 120%;
+ color: var(--color-text);
+ font-weight: bold;
+}
+div.Outliner {
+ margin-top: 2em;
+ padding: 0.8em;
+}
+form#TabulateForm {
+ padding: 0.8em;
+}
+div#addViewForm {
+ padding: 0.8em;
+}
+iframe {
+ background: var(--color-iframe-bg);
+}
+
+/* Map */
+
+img.pic {
+ max-height: 20em;
+}
+
+/* Sources */
+
+.fetched {
+ background-color: var(--color-fetch-bg);
+}
+.requested {
+ background-color: var(--color-request-bg);
+}
+.failed {
+ color: var(--color-warning);
+ background-color: var(--color-error-bg);
+}
+.unparseable {
+ background-color: var(--color-unparseable-bg);
+}
+
+pre#status {
+ font-size: 100%;
+}
+
+/* Panes */
+/*
+td.internal { }
+
+/* Moved into code:
+div.internalPane { background-color: #ddddff; padding: 0.5em;
+border-radius: 1em; border-radius: .4em; }
+
+div.instancePane {
+ border-top: solid 1px #777; border-bottom: solid 1px #777;
+ margin-top: 0.5em; margin-bottom: 0.5em }
+*/
+/* ***************** For the Justification UI Panes **********/
+
+div.container {
+ border-top: solid 5px var(--color-container-border);
+ border-left: solid 5px var(--color-container-border);
+ border-bottom: solid 5px var(--color-container-border);
+ border-right: solid 5px var(--color-container-border);
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ border-radius: 0.75em;
+}
+/*
+div.nonCompliantPane {
+ border-top: solid 1px red;
+ border-left: solid 1px red;
+ border-bottom: solid 1px red;
+ border-right: solid 1px red;
+ padding: 0.5em;
+ background-color: #fbf0f7;
+ margin-top: 0.5em; margin-bottom: 0.5em;
+ border-radius: 1em;
+}
+
+div.compliantPane {
+ border-top: solid 1px green;
+ border-left: solid 1px green;
+ border-bottom: solid 1px green;
+ border-right: solid 1px green;
+ padding: 0.5em;
+ background-color: #def8e0;
+ margin-top: 0.5em; margin-bottom: 0.5em;
+ border-radius: 1em;
+}
+*/
+div.justification {
+ font-size: 100%;
+ padding: 0 5px;
+ width: 80%; /* @@ Don't use pixels -- use em */
+ background-color: var(--color-background);
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+div.description {
+ font-size: 120%;
+ border-top: solid 1px var(--color-alert-border);
+ border-left: solid 1px var(--color-alert-border);
+ border-bottom: solid 1px var(--color-alert-border);
+ border-right: solid 1px var(--color-alert-border);
+ padding: 15px;
+ width: 100%;
+ background-color: var(--color-alert-bg);
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ margin-left: 0.5em;
+ margin-right: 0.5em;
+ border-radius: 0.75em;
+ position: relative;
+ left: 0%;
+}
+
+div.premises {
+ font-size: 100%;
+ border-top: solid 1px var(--color-info-border);
+ border-left: solid 1px var(--color-info-border);
+ border-bottom: solid 1px var(--color-info-border);
+ border-right: solid 1px var(--color-info-border);
+ padding: 0.5px;
+ width: 100%;
+ background-color: var(--color-info-bg);
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ margin-left: 0.5em;
+ margin-right: 0.5em;
+ border-radius: 0.75em;
+ position: relative;
+ left: 0%; /*May be we could shift the left margin a bit?*/
+}
+
+/* ***************** Social Pane **********/
+
+div.socialPane {
+ border-top: solid 1px var(--color-border-dark);
+ border-bottom: solid 1px var(--color-border-dark);
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ margin: 0;
+}
+
+img.foafPic {
+ width: 100%;
+ border: none;
+ margin: 0;
+ padding: 0;
+ /*float:right; */
+}
+
+div.mildNotice {
+ border: dashed 0.1em var(--color-border-dark);
+ margin: 1em;
+ padding: 1em;
+ width: 80%; /* float: right; */
+ background-color: var(--color-mild-notice-bg);
+}
+
+.friendBox {
+ /* height: 4em; */
+ border-top: solid 0.01em var(--color-border);
+ margin: 0;
+ padding: 0.3em;
+ /* float: left; */
+}
+.friendBoxBig {
+ height: 20em;
+ border-top: solid 0.01em var(--color-text-dark-gray); /* float: left; */
+}
+
+.socialPane a {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.socialPane a:link {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.socialPane a:visited {
+ color: var(--color-text-link-visited);
+ text-decoration: none;
+ font-weight: bold;
+}
+.socialPane a:hover {
+ color: var(--color-text-link-hover);
+ text-decoration: underline;
+ font-weight: bold;
+}
+.socialPane a:active {
+ color: var(--color-text-link-active);
+ text-decoration: none;
+}
+
+img.foafThumb {
+ height: 3em;
+ border: 0px;
+ margin: 0.1em;
+ padding: 0.1em;
+ vertical-align: middle;
+} /* Thumbnail of a fiend etc */
+
+.friendBox .confirmed {
+ font-weight: bold;
+}
+
+table.inputForm {
+ font-size: 100%;
+}
+
+.mainBlock {
+ background: var(--color-main-block-bg);
+ color: var(--color-text);
+ float: left;
+ width: 46%;
+ margin: 0;
+ border-left: 1px solid var(--color-border);
+ border-right: 1px solid var(--color-border);
+ border-bottom: 1px solid var(--color-border);
+ padding: 0;
+}
+
+.navBlock {
+ background-color: var(--color-nav-block-bg);
+ float: left;
+ width: 25%;
+ border: 0;
+ padding: 0.5em;
+ margin: 0;
+}
+
+.navBlock .navSection {
+ border: solid 0.05em var(--color-nav-block-border);
+ padding: 0.5em;
+ border-radius: 0.5em; /* CSS3: border-radius: .4em; */
+}
+
+div.socialPane h2 {
+ color: var(--color-text-dark-gray);
+}
+div.socialPane h3 {
+ color: var(--color-text-dark-gray);
+}
+
+div.social_linkButton {
+ width: 80%;
+ background-color: var(--color-background);
+ border: solid 0.05em var(--color-border);
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+ padding: 0.1em;
+ text-align: center;
+}
+
+/* For question-and-answer stuff for new web id but quite reusable.
+*/
+.answer {
+ font-style: italic;
+ color: var(--color-text-answer);
+ text-decoration: underline;
+}
+.tip {
+ font-style: normal;
+ color: var(--color-text);
+ margin: 1em;
+}
+.task {
+ font-style: normal;
+ color: var(--color-text);
+ margin: 1em;
+ background-color: var(--color-mild-notice-bg);
+ padding: 1em;
+ border-radius: 1em; /* CSS3: border-radius: 1em; */
+}
+.success {
+ background-color: var(--color-success-bg);
+}
+.failure {
+ background-color: var(--color-failure-bg);
+ border: 0.5em var(--color-failure-border);
+}
+div.unknown {
+ display: none;
+}
+div.yes > div.negative {
+ display: none;
+}
+div.no > div.affirmative {
+ display: none;
+}
+
+/******************* Exception Pane ********
+**
+** A pane created when the loading of a pane
+** throws an exception
+**/
+
+div.exceptionPane pre {
+ background-color: var(--color-error-notice-bg);
+}
+
+/******************* Category Pane *********/
+
+.categoryPane a {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.categoryPane a:link {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.categoryPane a:visited {
+ color: var(--color-text-link-visited);
+ text-decoration: none;
+ font-weight: bold;
+}
+.categoryPane a:hover {
+ color: var(--color-text-link-hover);
+ text-decoration: underline;
+ font-weight: bold;
+}
+.categoryPane a:active {
+ color: var(--color-text-link-active);
+ text-decoration: none;
+}
+
+.categoryBottomClass {
+ background-color: var(--color-category-class-bg);
+ border: 0.1em solid var(--color-category-class-border);
+}
+
+.categoryTable {
+ padding-left: 2em;
+}
+.categoryPane {
+ background-color: var(--color-category-bg);
+ padding: 0.5em;
+ border-width: 0.1em;
+ border-color: var(--color-category-border);
+ border-radius: 1em; /* CSS3: border-radius: .4em; */
+}
+
+.categoryPane a.categoryWhy {
+ color: var(--color-border-pale);
+}
+.categoryPane a.categoryWhy:link {
+ color: var(--color-border-pale);
+ text-decoration: none;
+ font-weight: bold;
+}
+.categoryPane a.categoryWhy:visited {
+ color: var(--color-border-pale);
+ text-decoration: none;
+ font-weight: bold;
+}
+.categoryPane a.categoryWhy:hover {
+ color: var(--color-text-link-hover);
+ text-decoration: underline;
+ font-weight: bold;
+}
+.categoryPane a.categoryWhy:active {
+ color: var(--color-border-pale);
+ text-decoration: none;
+}
+
+.categoryPane a.categoryWhy {
+ color: grey;
+}
+/* a.categoryWhy:hover { color: #3B5998 } */
+
+/******************* PubsPane *********/
+
+.pubsPane {
+ background-color: var(--color-pubs-pane-bg);
+ border-width: 0.1em;
+ border-color: var(--color-pubs-pane-border);
+ border-radius: 1em; /* CSS3: border-radius: .4em; */
+ padding: 1em;
+
+ text-decoration: none;
+ font-weight: bold;
+}
+
+.pubsPane h2 {
+ margin: 0;
+ padding: 0;
+}
+
+.pubsPane form {
+ padding-left: 1em;
+}
+
+/*Clear both - start things on individula lines */
+.pubsRow {
+ margin: 0.5em 3em 0.5em 0em;
+ clear: both;
+}
+
+/*inputs float right to line up */
+.pubsRow input {
+ float: right;
+ width: 20em;
+ height: 1em;
+}
+#inpid_book_description {
+ float: right;
+ height: 8em;
+ width: 17em;
+}
+
+.pubsRow button {
+ float: left;
+ height: 2em;
+ padding: 0.5em;
+ margin: 0.5em;
+}
+
+.hideit {
+ display: none;
+}
+
+.active {
+ /* display: visible; */
+}
+
+.submitRow {
+ clear: both;
+ height: 5em;
+}
+
+.submitRow button {
+ width: 7em;
+ height: 100%;
+}
+
+#buttonid {
+ display: none;
+}
+
+#buttonid.active {
+ display: inline;
+}
+
+/******************* CV Pane *****************/
+
+.CVclass {
+ background-color: var(--color-cv-pane-bg);
+}
+
+/******************* Data Content Pane *****************/
+
+div.dataContentPane {
+ border-top: solid 1px var(--color-data-pane-border-top);
+ border-left: solid 1px var(--color-data-pane-border-top);
+ border-bottom: solid 1px var(--color-data-pane-border-side);
+ border-right: solid 1px var(--color-data-pane-border-side);
+ padding: 0.5em; /* color: #404; */
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+.nestedFormula {
+ border-top: solid 1px var(--color-data-pane-border-top);
+ border-left: solid 1px var(--color-data-pane-border-top);
+ border-bottom: solid 1px var(--color-data-pane-border-side);
+ border-right: solid 1px var(--color-data-pane-border-side);
+ padding: 0.5em;
+ border-radius: 0.5em;
+}
+
+div.dataContentPane td {
+ padding-left: 0.2em;
+ padding-top: 0.1em;
+ padding-right: 0.2em;
+ padding-bottom: 0.05em;
+ /* vertical-align: middle; /*@@ Lalana's request*/
+ vertical-align: top; /*@@ Tims's request*/
+ /* With middel, you can't tell what is with what */
+ /* background-color: white; */
+}
+
+div.dataContentPane tr {
+ margin-bottom: 0.6em;
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.dataContentPane a {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.dataContentPane a:link {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.dataContentPane a:visited {
+ color: var(--color-text-link-visited);
+ text-decoration: none;
+ font-weight: bold;
+}
+.dataContentPane a:hover {
+ color: var(--color-text-link-hover);
+ text-decoration: underline;
+ font-weight: bold;
+}
+.dataContentPane a:active {
+ color: var(--color-text-link-active);
+ text-decoration: none;
+}
+
+.dataContentPane.embeddedText {
+ white-space: pre-wrap;
+}
+.dataContentPane.embeddedXHTML {
+}
+
+/* div.dataContentPane a { text-decoration: none; color: #006} /* Only very slightly blue */
+div.dataContentPane td.pred {
+ min-width: 12em;
+} /* Keep aligned with others better */
+div.dataContentPane td.pred a {
+ color: var(--color-text-muted);
+} /* Greyish as form field names have less info value */
+
+/* .collectionAsTables {border-right: green 1px; margin: 0.2em;} */
+
+div.n3Pane {
+ padding: 1em;
+ border-top: solid 1px var(--color-data-pane-border-top);
+ border-left: solid 1px var(--color-data-pane-border-top);
+ border-bottom: solid 1px var(--color-data-pane-border-side);
+ border-right: solid 1px var(--color-data-pane-border-side);
+ color: var(--color-text-blue);
+}
+
+.imageView {
+ border: 1em var(--color-background);
+ margin: 1em;
+}
+
+.n3Pane pre {
+ font-size: 120%;
+}
+div.n3Pane {
+}
+
+.RDFXMLPane pre {
+ font-size: 120%;
+}
+div.RDFXMLPane {
+}
+
+div.RDFXMLPane {
+ padding: 1em;
+ border-top: solid 2px var(--color-data-pane-border-top);
+ border-left: solid 2px var(--color-data-pane-border-top);
+ border-bottom: solid 2px var(--color-data-pane-border-side);
+ border-right: solid 2px var(--color-data-pane-border-side);
+ color: var(--color-text-brown);
+}
+
+/* Generic things useful anywhere */
+
+img.hideTillHover {
+ visibility: hidden;
+}
+img.hideTillHover:hover {
+ visibility: visible;
+}
+.hideTillHover img {
+ visibility: hidden;
+}
+.hideTillHover:hover img {
+ visibility: visible;
+}
+.hideTillHover a {
+ visibility: hidden;
+}
+.hideTillHover:hover a {
+ visibility: visible;
+}
+.hoverControl .hoverControlHide {
+ visibility: hidden;
+}
+.hoverControl:hover .hoverControlHide {
+ visibility: visible;
+}
+
+/* Pane icons: */
+
+/*
+.hoverControl .paneShown{ border-radius: 0.5em;
+ border-top: solid #222 1px;
+ border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em;
+ border-right: solid #eee 0.1em;
+ margin-left: 1em; padding: 3px;
+ background-color: #ffd;
+ visibility: hidden;}
+
+.hoverControl:hover .paneShown{ border-radius: 0.5em;
+ border-top: solid #222 1px;
+ border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em;
+ border-right: solid #eee 0.1em;
+ margin-left: 1em; padding: 3px;
+ background-color: #ffd;
+ visibility:visible; }
+
+.paneHidden { border-radius: 0.5em; margin-left: 1em; padding: 3px}
+
+.hoverControl .paneHidden { border-radius: 0.5em; margin-left: 1em; padding: 3px; visibility:hidden;}
+.hoverControl:hover .paneHidden { border-radius: 0.5em; margin-left: 1em; padding: 3px; visibility:visible; }
+*/
+
+/* outline object view */
+img.outlineImage {
+ max-height: 20em;
+ max-width: 30em;
+} /* save vertical space */
+/* Compare facebook which only limits width -> lots of tall images! */
+
+img.phoneIcon {
+ border: 0;
+ margin-left: 1em;
+}
+
+table#sources {
+ width: 100%;
+}
+
+table {
+ border-spacing: 0;
+}
+
+table {
+ margin: 0em;
+}
+
+td {
+ font-size: 100%;
+ border-left: none;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
+ margin: 0.2em;
+ /* border-right: solid purple 0.1em ;
+ border-bottom: solid purple 0.1em;
+*/
+ vertical-align: top;
+ /* display: compact; Causes console errors in ffox */
+}
+
+td.pred {
+ padding-left: 0.5em;
+}
+/*td.optButton { display: none }
+tr[parentOfSelected] > td.pred td.optButton { display: block }
+*/
+
+table.results {
+ width: 100%;
+}
+
+table.results td {
+ font-size: 100%;
+ background-color: var(--color-table-result-bg);
+ border-left: none;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
+ margin: 0.1em;
+ border-right: solid var(--color-table-border-dark) 0.1em;
+ border-bottom: solid var(--color-table-border-dark) 0.1em;
+
+ vertical-align: top;
+}
+
+table.results th {
+ font-size: 100%;
+ background-color: var(--color-table-header-bg);
+ border-left: none;
+ border-top: none;
+ border-right: solid var(--color-table-border-dark) 0.1em;
+ border-bottom: solid var(--color-table-border-dark) 0.1em;
+ margin: 0.3em;
+ padding-top: 0.5em;
+ padding-right: 0.5em;
+ border-right: solid var(--color-table-border-dark) 0.1em;
+ border-bottom: solid var(--color-table-border-dark) 0.1em;
+
+ vertical-align: top;
+}
+
+/* Hide sections of the display.
+Collpase not actually in CSS1 except for table row and col.
+Supposed to leave layoutunchanged. So we float it too. */
+
+.collapse {
+ display: none;
+}
+.expand {
+ display: block;
+}
+
+/* log classes */
+.nrml {
+ color: var(--color-log-normal);
+}
+.info {
+ color: var(--color-log-info);
+}
+.warn {
+ color: var(--color-log-warn);
+ background-color: var(--color-log-warn-bg);
+}
+.eror {
+ color: var(--color-log-error);
+ background-color: var(--color-log-error-bg);
+}
+.mesg {
+ color: var(--color-log-message);
+}
+.dbug {
+ color: var(--color-log-debug);
+ background-color: var(--color-log-debug-bg);
+} /* Blue */
+
+/* Try to get the icons to flush right in the cell */
+
+.sortheader {
+ color: var(--color-log-normal);
+ text-decoration: none;
+ position: relative;
+ border: none; /* Jim's commented out */
+}
+
+.colclose {
+ float: right;
+ color: var(--color-col-close);
+} /* Should be 67% transp black */
+.sortarrow {
+ float: left;
+ color: var(--color-sort-arrow);
+ border: none;
+}
+
+/* CSS Stuff for tabbed Views.. */
+table.viewTable {
+ padding: 0;
+ margin: 0;
+ border-style: none;
+ border-width: 0;
+ height: 40em;
+ width: 100%;
+ border-spacing: 0;
+}
+
+div.viewTabs {
+ background-color: var(--color-view-tab-bg);
+ padding: 0;
+}
+
+div.viewWindows {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ margin: 0em;
+ padding: 0em;
+ border-right: solid var(--color-border-light) 0.1em; /* was 2px */
+ border-left: solid var(--color-border-light) 0.1em;
+ border-bottom: solid var(--color-border-light) 0.1em;
+ background-color: var(--color-view-window-bg);
+}
+
+div.querySelect {
+ background-color: var(--color-query-select-bg);
+ width: 100%;
+ height: 100%;
+ border-left: solid var(--color-border-light) 0.1em;
+ border-bottom: solid var(--color-border-light) 0.1em;
+ overflow: auto;
+ margin: 0em;
+ padding: 0em;
+}
+
+td.viewTableData {
+ padding: 0em;
+ margin: 0em;
+ height: 100%;
+ width: 80%;
+}
+
+td.queryTableData {
+ padding: 0em;
+ margin: 0em;
+ border-width: 0em;
+ height: 100%;
+ width: 20%;
+ border-style: none;
+}
+
+table.viewTable tr {
+ height: 100%;
+ margin: 0em;
+ padding: 0em;
+ border-style: none;
+}
+
+a {
+ color: var(--color-text-link);
+ text-decoration: none;
+ cursor: pointer;
+}
+a.inactive {
+ background-color: var(--color-tab-inactive-bg);
+ border-right: solid var(--color-tab-inactive-border) 0.1em;
+ border-top: solid var(--color-tab-inactive-border-light) 0.1em;
+ border-left: solid var(--color-tab-inactive-border-light) 0.1em;
+ padding-top: 0.3em;
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+ padding-bottom: 0em;
+ margin-right: 0.1em;
+ color: var(--color-tab-inactive-text);
+ text-decoration: none;
+}
+
+a.active {
+ background-color: var(--color-tab-active-bg);
+ border-right: solid var(--color-tab-active-border) 0.1em;
+ border-top: solid var(--color-tab-active-border-light) 0.1em;
+ border-left: solid var(--color-tab-active-border-light) 0.1em;
+ padding-top: 0.3em;
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+ padding-bottom: 0em;
+ margin-right: 0.1em;
+ color: var(--color-tab-active-text);
+ text-decoration: none;
+}
+
+input.tabQueryName {
+ border: solid var(--color-border-light) 0.1em;
+ width: 100%;
+ padding: 0em;
+}
+
+input.delQueryButton {
+ border: none;
+ color: var(--color-warning);
+ background-color: var(--color-tab-active-bg);
+ cursor: pointer;
+ padding: 0em;
+}
+
+td.checkboxTD {
+ padding-right: 0.5em;
+}
+
+.sourceHighlight {
+ background-color: var(--color-source-highlight);
+}
+
+#MenuBar {
+ padding: 0.5em;
+ position: fixed;
+ top: 0;
+ bottom: auto;
+ left: 0;
+ right: 0;
+ background-color: var(--color-nav-block-bg);
+ border: 0.1em solid var(--color-border-light);
+}
+
+#TabulatorStatusWidget {
+ position: fixed;
+ top: 0;
+ bottom: auto;
+ left: auto;
+ right: 0;
+}
+
+div.mapKeyDiv {
+ position: relative;
+ float: right;
+ margin: 0.3em;
+ color: var(--color-border-dark);
+ background: var(--color-background);
+ border: solid var(--color-border-dark) 0.1em;
+ padding: 0.1em;
+}
+
+span.closeQuerySpan {
+ float: right;
+ text-align: right;
+ height: 0.1em;
+ overflow: visible;
+}
+
+span.openQuerySpan {
+ float: left;
+ overflow: visible;
+ height: 0em;
+ text-align: left;
+ position: relative;
+ top: 0em;
+ z-index: 1;
+}
+
+input.textinput {
+ width: 100%;
+ border: none;
+ font-size: 95%;
+ padding: 0em;
+ margin: 0;
+}
+
+textarea.textinput {
+ border: none;
+}
+
+.pendingedit {
+ color: var(--color-pending-edit);
+}
+
+td.undetermined {
+ color: var(--color-nav-block-border);
+ font-style: italic;
+}
+
+/*revert back*/
+td.undetermined table {
+ color: var(--color-text);
+ font-style: normal;
+}
+
+/*color style from http://developer.yahoo.com/yui/docs/module_menu.html*/
+.outlineMenu {
+ position: absolute;
+ /*width:10em;*/
+ height: 10em; /* Jim's commented out */
+ background: var(--color-menu-bg) none repeat scroll 0%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border: 1px solid;
+ /*padding:.2em;*/
+}
+.outlineMenu table {
+ cursor: default;
+ width: 100%;
+ text-align: left;
+ padding: 5px 5px;
+}
+.outlineMenu div {
+ /*width:6em;*/
+ overflow: auto;
+ white-space: nowrap;
+}
+.outlineMenu td {
+ color: var(--color-menu-item-text);
+}
+.outlineMenu .activeItem {
+ background: var(--color-menu-item-active);
+} /* @@ Jim's: #f4e8fc; */
+.outlineMenu input {
+ margin: 0.2em;
+}
+
+div.bottom-border {
+ border: 0.2em solid transparent;
+ width: 100%;
+}
+
+div.bottom-border-active {
+ cursor: copy;
+ border: 0.2em solid;
+ border-color: var(--color-bottom-border-highlight);
+}
+
+/* The thing below was for the kenny's orange bar*/
+/* @@@ This is not specific enough
+td{
+ margin: 0;
+ padding: 0;
+}
+*/
+
+.deleteIcon {
+ margin-left: 0.1em;
+}
+
+.deleteCol {
+ float: right;
+ display: inline;
+}
+
+.suggestion_list {
+ background: var(--color-suggestion-bg);
+ border: 1px solid var(--color-suggestion-border);
+ padding: 4px;
+}
+
+.suggestion_list ul {
+ padding: 0;
+ margin: 0;
+ list-style-type: none;
+}
+
+.suggestion_list a {
+ text-decoration: none;
+ color: var(--color-suggestion-link);
+}
+
+.suggestion_list .selected {
+ background: var(--color-suggestion-selected-bg);
+ color: var(--color-suggestion-selected-text);
+}
+
+.suggestion_list .selected a {
+ color: var(--color-suggestion-selected-text);
+}
+
+#autosuggest {
+ display: none;
+}
+
+/*
+Start of styles for the photoPane, by albert08@csail.mit.edu
+*/
+div.PhotoContentPane {
+ float: left;
+ width: 900px;
+ border: 1px solid var(--color-photo-border);
+ padding: 10px;
+}
+div.PhotoListPanel {
+ float: left;
+ padding: 5px;
+ border: 1px solid var(--color-photo-border);
+ width: 540px;
+ min-height: 300px;
+}
+div.PhotoInfoPanel {
+ float: left;
+ padding: 10px;
+ border: 1px solid var(--color-photo-border);
+ width: 300px;
+ text-align: center;
+ margin: 0px 0px 10px 10px;
+}
+div.TagMenu {
+ float: left;
+ padding: 10px;
+ border: 1px solid var(--color-photo-border);
+ width: 300px;
+ margin: 0px 0px 0px 10px;
+ text-align: justify;
+}
+.tagItem {
+ float: left;
+ padding: 2px;
+ margin: 2px;
+ cursor: pointer;
+}
+.tagItem_h {
+ float: left;
+ padding: 2px;
+ margin: 1px;
+ border: 1px solid var(--color-photo-tag-highlight-border);
+ background-color: var(--color-photo-tag-highlight);
+ cursor: pointer;
+}
+div.photoItem {
+ float: left;
+ width: 100%;
+}
+div.photoFrame {
+ border-right: 1px solid var(--color-photo-border);
+ width: 260px;
+ padding: 10px;
+ margin: 10px 10px 10px 10px;
+ text-align: center;
+ float: left;
+}
+img.photoThumbnail {
+ border: 1px solid var(--color-photo-thumb-border);
+ margin: auto auto auto auto;
+}
+.photoListTags {
+ width: 200px;
+ margin-top: 10px;
+ padding-top: 10px;
+ float: left;
+}
+.photoList_tag {
+ background: transparent
+ url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px
+ 1px no-repeat;
+ padding: 1px 0px 1px 18px;
+ margin-left: 5px;
+}
+.TagMenu_tag {
+ background: transparent
+ url("https://solidos.github.io/solid-ui/src/originalIcons/tag_tiny.png") 0px
+ 1px no-repeat;
+ padding: 1px 0px 1px 18px;
+ margin-left: 5px;
+}
+div.photoImportContentPane {
+ float: left;
+ padding: 0px;
+ width: 930px;
+ border: 1px solid var(--color-photo-border);
+ padding: 10px;
+}
+.photoImportTitle {
+ font-size: 1rem;
+ font-weight: bold;
+}
+.photoItemPanel {
+ width: 260px;
+ height: 300px;
+ float: left;
+ padding: 10px;
+ border: 1px solid var(--color-photo-border);
+ margin: 0px 10px 10px 0px;
+}
+.photoControlImg {
+ border: 0px;
+ cursor: pointer;
+}
+.photoControlImgInactive {
+ opacity: 0.5;
+ border: 0px;
+}
+#photoPageInfo {
+ font-family: var(--font-family-ui);
+ font-size: 0.875rem;
+ font-weight: bold;
+}
+.controls {
+ clear: both;
+ text-align: right;
+ margin: 15px 15px 0px 0px;
+}
+.controlButton {
+ margin: 0px 0px 0px 10px;
+}
+div.TagPane {
+ min-width: 500px;
+ border: 1px solid var(--color-photo-border);
+ padding: 10px;
+}
+div.TagSemanticsPanel {
+ margin: 5px 0px 20px 0px;
+}
+div.TagSemanticsTable {
+ width: 100%;
+ font-family: var(--font-family-ui);
+ font-size: 0.75rem;
+}
+div.AddTagSemantics {
+ margin: 50px 0px 10px 0px;
+}
+.controlSelect {
+ margin: 5px;
+ font-family: var(--font-family-ui);
+ font-size: 0.75rem;
+}
+.tagURIInput {
+ margin: 5px;
+ font-family: var(--font-family-ui);
+ font-size: 0.75rem;
+ width: 300px;
+}
+div.TagPane hr {
+ border: 1px solid var(--color-photo-border);
+}
+/*
+End of styles for the photoPane
+*/
+
+/*
+Styles for tableViewPane
+*/
+
+.tableViewPane table th {
+ background-color: var(--color-tab-inactive-bg);
+ color: var(--color-log-normal);
+}
+
+.tableViewPane table th a {
+ color: var(--color-text-secondary);
+}
+
+.tableViewPane table .selectors td {
+ background-color: var(--color-tab-active-bg);
+}
+
+.tableViewPane table td {
+ border-bottom: 1px solid var(--color-data-pane-border-top);
+ border-right: 1px solid var(--color-data-pane-border-top);
+}
+
+.tableViewPane .toolbar td {
+ border: none;
+}
+
+.tableViewPane .sparqlButton {
+ width: 16px;
+ height: 16px;
+ border: 1px solid var(--color-data-pane-border-top);
+}
+
+.tableViewPane .sparqlDialog {
+ position: fixed;
+ top: 40px;
+ left: 100px;
+ width: 600px;
+ background: var(--color-background);
+ border: 1px solid var(--color-data-pane-border-top);
+ padding: 5px;
+}
+
+.tableViewPane .sparqlDialog textarea {
+ width: 590px;
+ height: 250px;
+}
+
+/* These should be the same as with hthe dataContentPane */
+.tableViewPane a {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.tableViewPane a:link {
+ color: var(--color-text-link);
+ text-decoration: none;
+ font-weight: bold;
+}
+.tableViewPane a:visited {
+ color: var(--color-text-link-visited);
+ text-decoration: none;
+ font-weight: bold;
+}
+.tableViewPane a:hover {
+ color: var(--color-text-link-hover);
+ text-decoration: underline;
+ font-weight: bold;
+}
+.tableViewPane a:active {
+ color: var(--color-text-link-active);
+ text-decoration: none;
+}
+
+.tableViewPane tr {
+ border-color: var(--color-border-darker);
+ padding-left: 0.3em;
+ padding-right: 0.3em;
+}
+
+/*The 'display explanation' feature*/
+.inquiry {
+ padding-left: 0.2em;
+ color: var(--color-warning);
+ font-family: var(--font-family-ui);
+ font-weight: bold;
+}
+
+/*
+End of styles for tableViewPane
+*/
+
+/* Styles for FORM PANE
+**
+** Colors from data cotent pane
+*/
+
+.formPane a {
+ color: var(--color-text-link);
+ text-decoration: none;
+}
+.formPane a:link {
+ color: var(--color-text-link);
+ text-decoration: none;
+}
+.formPane a:visited {
+ color: var(--color-text-link-visited);
+ text-decoration: none;
+}
+.formPane a:hover {
+ color: var(--color-text-link-hover);
+ font-weight: bold;
+} /* was text-decoration: underline; */
+.formPane a:active {
+ color: var(--color-text-link-active);
+ text-decoration: none;
+}
+
+/* ends */
+
+@mixin box-shadow($x-axis: 0, $y-axis: 1px, $blur: 4px, $color: $default) {
+ box-shadow: $x-axis $y-axis $blur $color;
+ -webkit-box-shadow: $x-axis $y-axis $blur $color;
+ -moz-box-shadow: $x-axis $y-axis $blur $color;
+ -o-box-shadow: $x-axis $y-axis $blur $color;
+}
diff --git a/dev/index.html b/dev/index.html
index 515ef587..e3ee4f64 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -14,15 +14,16 @@
if (typeof UI !== 'undefined') window.UI = UI;
@@ -30,7 +31,7 @@ Solid Pane Tester
A handy tool for pane developers. Put your JS or TS file in dev/pane/.
- Run renderPane('https://solidos.solidcommunity.net/profile/card#me') from the console.
+ Run renderPane('https://testingsolidos.solidcommunity.net/profile/card#me') from the console.
Don't forget that the resource owner needs to add http://localhost:9000 as a trusted app.
HTML element from pane.render will be inserted here ...
diff --git a/dev/loader.ts b/dev/loader.ts
index 14eebf04..207e35db 100644
--- a/dev/loader.ts
+++ b/dev/loader.ts
@@ -1,11 +1,20 @@
+
import * as paneRegistry from 'pane-registry'
import * as $rdf from 'rdflib'
import { solidLogicSingleton, store, authSession } from 'solid-logic'
import { getOutliner } from '../src'
import Pane from 'profile-pane'
+import './dev-mash.css'
-// FIXME:
-window.$rdf = $rdf
+// Add custom properties to the Window interface for TypeScript
+declare global {
+ interface Window {
+ logout: () => void;
+ login: () => Promise;
+ renderPane: typeof renderPane;
+ Pane: typeof Pane;
+ }
+}
async function renderPane (uri: string) {
if (!uri) {
@@ -28,17 +37,22 @@ async function renderPane (uri: string) {
logic: solidLogicSingleton
}
}
- const options = {}
- console.log(subject, Pane)
+
+ console.log(subject, context)
const icon = createIconElement(Pane)
- const paneDiv = Pane.render(subject, context, options)
+ const paneDiv = Pane.render(subject, context)
+
const target = document.getElementById('render')
- target.innerHTML = ''
- target.appendChild(icon)
- target.appendChild(paneDiv)
+ if (target) {
+ target.innerHTML = ''
+ target.appendChild(icon)
+ target.appendChild(paneDiv)
+ } else {
+ console.error("Element with id 'render' not found.")
+ }
}
-function createIconElement (Pane) {
+function createIconElement (Pane: { icon: string }) {
const icon = Pane.icon
const img = document.createElement('img')
img.src = icon
@@ -46,12 +60,6 @@ function createIconElement (Pane) {
return img
}
-document.addEventListener('DOMContentLoaded', () => {
- renderPane(
- 'https://solidos.solidcommunity.net/Team/SolidOs%20team%20chat/index.ttl#this'
- )
-})
-
window.onload = async () => {
console.log('document ready')
// registerPanes((cjsOrEsModule: any) => paneRegistry.register(cjsOrEsModule.default || cjsOrEsModule))
@@ -62,30 +70,38 @@ window.onload = async () => {
const session = await authSession
if (!session.info.isLoggedIn) {
console.log('The user is not logged in')
- document.getElementById('loginBanner').innerHTML =
- 'Log in '
- } else {
- console.log(`Logged in as ${session.info.webId}`)
-
- document.getElementById(
- 'loginBanner'
- ).innerHTML = `Logged in as ${session.info.webId} Log out `
+ const loginBanner = document.getElementById('loginBanner');
+ if (loginBanner) {
+ loginBanner.innerHTML = 'Log in ';
+ }
+ } else {
+ console.log(`Logged in as ${session.info.webId}`)
+
+ const loginBanner = document.getElementById('loginBanner');
+ if (loginBanner) {
+ loginBanner.innerHTML = `Logged in as ${session.info.webId} Log out `;
+ }
}
- renderPane()
+ renderPane('https://testingsolidos.solidcommunity.net/profile/card#me')
}
window.logout = () => {
authSession.logout()
- window.location = ''
+ window.location.href = ''
}
window.login = async function () {
const session = await authSession
if (!session.info.isLoggedIn) {
const issuer = prompt('Please enter an issuer URI', 'https://solidcommunity.net')
- await authSession.login({
- oidcIssuer: issuer,
- redirectUrl: window.location.href,
- clientName: 'Solid Panes Dev Loader'
- })
+ if (issuer) {
+ await authSession.login({
+ oidcIssuer: issuer,
+ redirectUrl: window.location.href,
+ clientName: 'Solid Panes Dev Loader'
+ })
+ } else {
+ console.warn('Login cancelled: No issuer provided.')
+ }
}
};
(window as any).renderPane = renderPane
+console.log("Pane at runtime:", Pane); window.Pane = Pane;
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 427d7dbf..b97e1bab 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -7,11 +7,11 @@ export default [
{
ignores: [
'dist/**',
+ 'dist-dev/**',
'lib/**',
'docs/**',
'node_modules/**',
'dev/**',
- 'dev-dist/**',
'coverage/**',
],
},
@@ -84,10 +84,21 @@ export default [
{
files: ['test/**/**/*.js', 'test/**/*.js'],
rules: {
+ // Code style - match TypeScript settings
semi: ['error', 'never'],
quotes: ['error', 'single'],
- 'no-console': 'off', // Allow console in tests
- 'no-undef': 'off', // Tests may define globals
- }
+
+ // Strict checking - match TypeScript strictness
+ 'no-console': 'warn',
+ 'no-unused-vars': 'warn', // Match TypeScript noUnusedLocals: true
+ 'no-undef': 'error',
+ strict: ['error', 'global'], // Match TypeScript alwaysStrict: true
+
+ // Additional strictness to match TypeScript behavior
+ 'no-implicit-globals': 'error',
+ 'prefer-const': 'error', // Encourage immutability
+ 'no-var': 'error', // Use let/const only
+ 'no-redeclare': 'error'
+ },
}
]
diff --git a/package-lock.json b/package-lock.json
index f4e73f70..752dbdac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "solid-panes",
- "version": "4.0.0",
+ "version": "4.0.0-newStyle",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "solid-panes",
- "version": "4.0.0",
+ "version": "4.0.0-newStyle",
"license": "MIT",
"dependencies": {
"@solid/better-simple-slideshow": "^0.1.0",
@@ -20,7 +20,7 @@
"meeting-pane": "^3.0.0",
"mime-types": "^3.0.1",
"pane-registry": "^3.0.0",
- "profile-pane": "^2.0.0",
+ "profile-pane": "2.0.0-newStyle-6806a782",
"solid-namespace": "^0.5.4",
"source-pane": "^3.0.0"
},
@@ -39,6 +39,7 @@
"babel-loader": "^10.0.0",
"babel-plugin-inline-import": "^3.0.0",
"buffer": "^6.0.3",
+ "css-loader": "^7.1.2",
"eslint": "^9.33.0",
"globals": "^17.0.0",
"html-webpack-plugin": "^5.6.3",
@@ -48,16 +49,19 @@
"neostandard": "^0.12.2",
"node-polyfill-webpack-plugin": "^4.1.0",
"path-browserify": "^1.0.1",
+ "raw-loader": "^4.0.2",
"rdflib": "^2.3.0",
"react": "^19.1.1",
"react-dom": "^19.1.1",
- "solid-logic": "^4.0.0",
- "solid-ui": "^3.0.0",
+ "solid-logic": "^4.0.1",
+ "solid-ui": "^3.0.1",
+ "style-loader": "^4.0.0",
"ts-jest": "^29.4.1",
+ "ts-loader": "^9.5.4",
"typescript": "^5.9.2",
- "webpack": "^5.101.0",
+ "webpack": "^5.104.1",
"webpack-cli": "^6.0.1",
- "webpack-dev-server": "^5.2.2"
+ "webpack-dev-server": "^5.2.3"
}
},
"node_modules/@adobe/css-tools": {
@@ -693,13 +697,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz",
- "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
+ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -819,13 +823,13 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz",
- "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
+ "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1641,17 +1645,17 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz",
- "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz",
+ "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
- "@babel/helper-create-class-features-plugin": "^7.28.5",
- "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
"@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
- "@babel/plugin-syntax-typescript": "^7.27.1"
+ "@babel/plugin-syntax-typescript": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -1848,9 +1852,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -2050,9 +2054,9 @@
}
},
"node_modules/@emnapi/core": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz",
- "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz",
+ "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -2062,9 +2066,9 @@
}
},
"node_modules/@emnapi/runtime": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz",
- "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
+ "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -2099,9 +2103,9 @@
"license": "MIT"
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
- "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3560,9 +3564,9 @@
}
},
"node_modules/@sinclair/typebox": {
- "version": "0.34.41",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz",
- "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==",
+ "version": "0.34.47",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz",
+ "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==",
"dev": true,
"license": "MIT"
},
@@ -3819,9 +3823,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.19.7",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz",
- "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==",
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3955,9 +3959,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "24.10.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
- "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
+ "version": "25.0.8",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz",
+ "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.16.0"
@@ -4092,21 +4096,20 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz",
- "integrity": "sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz",
+ "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.48.0",
- "@typescript-eslint/type-utils": "8.48.0",
- "@typescript-eslint/utils": "8.48.0",
- "@typescript-eslint/visitor-keys": "8.48.0",
- "graphemer": "^1.4.0",
- "ignore": "^7.0.0",
+ "@eslint-community/regexpp": "^4.12.2",
+ "@typescript-eslint/scope-manager": "8.53.0",
+ "@typescript-eslint/type-utils": "8.53.0",
+ "@typescript-eslint/utils": "8.53.0",
+ "@typescript-eslint/visitor-keys": "8.53.0",
+ "ignore": "^7.0.5",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^2.1.0"
+ "ts-api-utils": "^2.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4116,7 +4119,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.48.0",
+ "@typescript-eslint/parser": "^8.53.0",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <6.0.0"
}
@@ -4156,7 +4159,7 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
+ "node_modules/@typescript-eslint/project-service": {
"version": "8.53.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz",
"integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==",
@@ -4178,7 +4181,7 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "node_modules/@typescript-eslint/scope-manager": {
"version": "8.53.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz",
"integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==",
@@ -4196,7 +4199,7 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
+ "node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.53.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz",
"integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==",
@@ -4213,35 +4216,17 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz",
- "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "node_modules/@typescript-eslint/type-utils": {
"version": "8.53.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz",
- "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz",
+ "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.53.0",
- "@typescript-eslint/tsconfig-utils": "8.53.0",
"@typescript-eslint/types": "8.53.0",
- "@typescript-eslint/visitor-keys": "8.53.0",
+ "@typescript-eslint/typescript-estree": "8.53.0",
+ "@typescript-eslint/utils": "8.53.0",
"debug": "^4.4.3",
- "minimatch": "^9.0.5",
- "semver": "^7.7.3",
- "tinyglobby": "^0.2.15",
"ts-api-utils": "^2.4.0"
},
"engines": {
@@ -4251,127 +4236,15 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz",
- "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.53.0",
- "eslint-visitor-keys": "^4.2.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@typescript-eslint/project-service": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz",
- "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.48.0",
- "@typescript-eslint/types": "^8.48.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz",
- "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.48.0",
- "@typescript-eslint/visitor-keys": "8.48.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz",
- "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz",
- "integrity": "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.48.0",
- "@typescript-eslint/typescript-estree": "8.48.0",
- "@typescript-eslint/utils": "8.48.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz",
- "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz",
+ "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4383,21 +4256,21 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz",
- "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz",
+ "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.48.0",
- "@typescript-eslint/tsconfig-utils": "8.48.0",
- "@typescript-eslint/types": "8.48.0",
- "@typescript-eslint/visitor-keys": "8.48.0",
- "debug": "^4.3.4",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
+ "@typescript-eslint/project-service": "8.53.0",
+ "@typescript-eslint/tsconfig-utils": "8.53.0",
+ "@typescript-eslint/types": "8.53.0",
+ "@typescript-eslint/visitor-keys": "8.53.0",
+ "debug": "^4.4.3",
+ "minimatch": "^9.0.5",
+ "semver": "^7.7.3",
"tinyglobby": "^0.2.15",
- "ts-api-utils": "^2.1.0"
+ "ts-api-utils": "^2.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4424,16 +4297,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz",
- "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz",
+ "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.48.0",
- "@typescript-eslint/types": "8.48.0",
- "@typescript-eslint/typescript-estree": "8.48.0"
+ "@eslint-community/eslint-utils": "^4.9.1",
+ "@typescript-eslint/scope-manager": "8.53.0",
+ "@typescript-eslint/types": "8.53.0",
+ "@typescript-eslint/typescript-estree": "8.53.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4448,13 +4321,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz",
- "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz",
+ "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.48.0",
+ "@typescript-eslint/types": "8.53.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -5154,6 +5027,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
"node_modules/ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -5666,9 +5549,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
- "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
+ "version": "2.9.14",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz",
+ "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -5682,6 +5565,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -5737,27 +5630,6 @@
"ms": "2.0.0"
}
},
- "node_modules/body-parser/node_modules/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "depd": "~2.0.0",
- "inherits": "~2.0.4",
- "setprototypeof": "~1.2.0",
- "statuses": "~2.0.2",
- "toidentifier": "~1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -5765,16 +5637,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/body-parser/node_modules/statuses": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/bonjour-service": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
@@ -6185,9 +6047,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001761",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz",
- "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==",
+ "version": "1.0.30001764",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz",
+ "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==",
"dev": true,
"funding": [
{
@@ -6319,9 +6181,9 @@
}
},
"node_modules/cjs-module-lexer": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz",
- "integrity": "sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz",
+ "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==",
"dev": true,
"license": "MIT"
},
@@ -6555,9 +6417,9 @@
"license": "MIT"
},
"node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6565,9 +6427,9 @@
}
},
"node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"dev": true,
"license": "MIT"
},
@@ -6726,6 +6588,55 @@
"jss-preset-default": "^10.10.0"
}
},
+ "node_modules/css-loader": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz",
+ "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.33",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.27.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-loader/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/css-select": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
@@ -6773,6 +6684,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/cssstyle": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
@@ -6896,9 +6820,9 @@
"license": "MIT"
},
"node_modules/dedent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
- "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz",
+ "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -7313,6 +7237,16 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"license": "MIT"
},
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/encodeurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
@@ -7324,9 +7258,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.18.3",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
- "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
+ "version": "5.18.4",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz",
+ "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7374,9 +7308,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
- "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
+ "version": "1.24.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
+ "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7463,27 +7397,27 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz",
+ "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
+ "es-abstract": "^1.24.1",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
+ "es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
+ "get-intrinsic": "^1.3.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.2.0",
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
+ "iterator.prototype": "^1.1.5",
"safe-array-concat": "^1.1.3"
},
"engines": {
@@ -7808,9 +7742,9 @@
}
},
"node_modules/eslint-plugin-n": {
- "version": "17.23.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz",
- "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==",
+ "version": "17.23.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.2.tgz",
+ "integrity": "sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8054,9 +7988,9 @@
}
},
"node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -8359,18 +8293,18 @@
}
},
"node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "statuses": "2.0.1",
+ "statuses": "~2.0.2",
"unpipe": "~1.0.0"
},
"engines": {
@@ -8870,13 +8804,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -9238,20 +9165,24 @@
"license": "MIT"
},
"node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/http-parser-js": {
@@ -9375,6 +9306,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -11733,9 +11677,9 @@
}
},
"node_modules/ky": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.1.tgz",
- "integrity": "sha512-hYje4L9JCmpEQBtudo+v52X5X8tgWXUYyPcxKSuxQNboqufecl9VMWjGiucAFH060AwPXHZuH+WB2rrqfkmafw==",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.2.tgz",
+ "integrity": "sha512-q3RBbsO5A5zrPhB6CaCS8ZUv+NWCXv6JJT4Em0i264G9W0fdPB8YRfnnEi7Dm7X7omAkBIPojzYJ2D1oHTHqug==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -11787,9 +11731,9 @@
"license": "MIT"
},
"node_modules/lit-html": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz",
- "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz",
+ "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==",
"license": "BSD-3-Clause",
"dependencies": {
"@types/trusted-types": "^2.0.2"
@@ -11809,6 +11753,21 @@
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -11992,9 +11951,9 @@
}
},
"node_modules/memfs": {
- "version": "4.51.0",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.0.tgz",
- "integrity": "sha512-4zngfkVM/GpIhC8YazOsM6E8hoB33NP0BCESPOA6z7qaL6umPJNqkO8CNYaLV2FB2MV6H1O3x2luHHOSqppv+A==",
+ "version": "4.51.1",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.1.tgz",
+ "integrity": "sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -12230,6 +12189,25 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
"node_modules/napi-postinstall": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
@@ -12523,9 +12501,9 @@
}
},
"node_modules/nwsapi": {
- "version": "2.2.22",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
- "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
+ "version": "2.2.23",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
+ "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
"dev": true,
"license": "MIT"
},
@@ -13216,6 +13194,119 @@
"node": ">= 0.4"
}
},
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz",
+ "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "icss-utils": "^5.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -13282,20 +13373,20 @@
"license": "MIT"
},
"node_modules/profile-pane": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0.tgz",
- "integrity": "sha512-YOaG9Ep9IM05HjognsPenfPzjvgqnftQyieUY46ASxpp84VvPx8sPC8w4+jvms6gqtyRkf5+LRn/u32Fkvb1VQ==",
+ "version": "2.0.0-newStyle-6806a782",
+ "resolved": "https://registry.npmjs.org/profile-pane/-/profile-pane-2.0.0-newStyle-6806a782.tgz",
+ "integrity": "sha512-tG7wtQNrj5iYIL5nfofsN957qgJ8m5YS0hHFhc3teIV1/3oq5fyDqk/5IrcDhZucXjjga0jvQi0bj6LJsLOkiQ==",
"license": "MIT",
"dependencies": {
- "lit-html": "^3.2.1",
+ "lit-html": "^3.3.2",
"pane-registry": "^3.0.0",
"qrcode": "^1.5.4",
"validate-color": "^2.2.4"
},
"peerDependencies": {
"rdflib": "^2.3.0",
- "solid-logic": "^4.0.0",
- "solid-ui": "^3.0.0"
+ "solid-logic": "^4.0.1",
+ "solid-ui": "^3.0.1"
}
},
"node_modules/promise-polyfill": {
@@ -13618,35 +13709,44 @@
"node": ">= 0.8"
}
},
- "node_modules/raw-body/node_modules/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "node_modules/raw-loader": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
+ "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "depd": "~2.0.0",
- "inherits": "~2.0.4",
- "setprototypeof": "~1.2.0",
- "statuses": "~2.0.2",
- "toidentifier": "~1.0.1"
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 10.13.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/express"
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
}
},
- "node_modules/raw-body/node_modules/statuses": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "node_modules/raw-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
"node_modules/rdf-canonize": {
@@ -14323,25 +14423,25 @@
}
},
"node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "statuses": "~2.0.2"
},
"engines": {
"node": ">= 0.8.0"
@@ -14364,16 +14464,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
@@ -14493,16 +14583,16 @@
}
},
"node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"dev": true,
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "~0.19.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -14805,7 +14895,7 @@
},
"peerDependencies": {
"rdflib": "^2.3.0",
- "solid-logic": "^4.0.0"
+ "solid-logic": "^4.0.1"
}
},
"node_modules/source-map": {
@@ -14818,6 +14908,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/source-map-support": {
"version": "0.5.13",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
@@ -14920,9 +15020,9 @@
}
},
"node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -15190,6 +15290,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/style-loader": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz",
+ "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.27.0"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -15233,9 +15350,9 @@
"license": "MIT"
},
"node_modules/synckit": {
- "version": "0.11.11",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz",
- "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==",
+ "version": "0.11.12",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz",
+ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -15775,6 +15892,50 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/ts-loader": {
+ "version": "9.5.4",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz",
+ "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.0.0",
+ "micromatch": "^4.0.0",
+ "semver": "^7.3.4",
+ "source-map": "^0.7.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "typescript": "*",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/ts-loader/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-loader/node_modules/source-map": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+ "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
@@ -15975,41 +16136,16 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.0.tgz",
- "integrity": "sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/eslint-plugin": "8.48.0",
- "@typescript-eslint/parser": "8.48.0",
- "@typescript-eslint/typescript-estree": "8.48.0",
- "@typescript-eslint/utils": "8.48.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <6.0.0"
- }
- },
- "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.0.tgz",
- "integrity": "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==",
+ "version": "8.53.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz",
+ "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.48.0",
- "@typescript-eslint/types": "8.48.0",
- "@typescript-eslint/typescript-estree": "8.48.0",
- "@typescript-eslint/visitor-keys": "8.48.0",
- "debug": "^4.3.4"
+ "@typescript-eslint/eslint-plugin": "8.53.0",
+ "@typescript-eslint/parser": "8.53.0",
+ "@typescript-eslint/typescript-estree": "8.53.0",
+ "@typescript-eslint/utils": "8.53.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -16338,9 +16474,9 @@
}
},
"node_modules/watchpack": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
- "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz",
+ "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -16662,6 +16798,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -16915,9 +17052,9 @@
}
},
"node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true,
"license": "MIT",
"engines": {
diff --git a/package.json b/package.json
index ccac58ad..36f37a42 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,12 @@
{
"name": "solid-panes",
- "version": "4.0.0",
+ "version": "4.0.0-newStyle",
"description": "Solid-compatible Panes: applets and views for the mashlib and databrowser",
"main": "dist/index.js",
"types": "dist/index.d.ts",
- "sideEffects": false,
+ "sideEffects": [
+ "*.css"
+ ],
"files": [
"dist/",
"README.md",
@@ -13,7 +15,7 @@
"scripts": {
"clean": "rm -rf dist src/versionInfo.ts",
"build": "npm run clean && npm run build-version && npm run typecheck && npm run build-dist && npm run postbuild-js",
- "build-version": "./timestamp.sh > src/versionInfo.ts && eslint 'src/versionInfo.ts' --fix",
+ "build-version": "bash timestamp.sh > src/versionInfo.ts && ./node_modules/.bin/eslint 'src/versionInfo.ts' --fix",
"build-dist": "npm run build-js && npm run build-types",
"build-js": "babel src --out-dir dist --extensions '.ts,.js' --source-maps",
"build-types": "tsc --emitDeclarationOnly",
@@ -26,11 +28,11 @@
"test-watch": "npm run lint && jest --onlyChanged --watch",
"test-coverage": "jest --coverage --collectCoverageFrom=src/**/*.[jt]s",
"test-debug": "node --inspect-brk ./node_modules/.bin/jest -i --env jest-environment-node-debug",
- "prepublishOnly": "npm test && npm run build",
+ "prepublishOnly": "npm run build && npm run lint && npm test",
"preversion": "npm run lint && npm run typecheck && npm test",
"postversion": "git push origin main --follow-tags",
"watch": "npm run build-version && babel src -d dist --source-maps --extensions '.ts,.js' --watch",
- "start": "webpack serve --config webpack.dev.config.js --open"
+ "start": "webpack serve --config webpack.dev.config.mjs --open"
},
"repository": {
"type": "git",
@@ -67,7 +69,7 @@
"meeting-pane": "^3.0.0",
"mime-types": "^3.0.1",
"pane-registry": "^3.0.0",
- "profile-pane": "^2.0.0",
+ "profile-pane": "2.0.0-newStyle-6806a782",
"solid-namespace": "^0.5.4",
"source-pane": "^3.0.0"
},
@@ -91,6 +93,7 @@
"babel-loader": "^10.0.0",
"babel-plugin-inline-import": "^3.0.0",
"buffer": "^6.0.3",
+ "css-loader": "^7.1.2",
"eslint": "^9.33.0",
"globals": "^17.0.0",
"html-webpack-plugin": "^5.6.3",
@@ -100,15 +103,18 @@
"neostandard": "^0.12.2",
"node-polyfill-webpack-plugin": "^4.1.0",
"path-browserify": "^1.0.1",
+ "raw-loader": "^4.0.2",
"rdflib": "^2.3.0",
"react": "^19.1.1",
"react-dom": "^19.1.1",
- "solid-logic": "^4.0.0",
- "solid-ui": "^3.0.0",
+ "solid-logic": "^4.0.1",
+ "solid-ui": "^3.0.1",
+ "style-loader": "^4.0.0",
"ts-jest": "^29.4.1",
+ "ts-loader": "^9.5.4",
"typescript": "^5.9.2",
- "webpack": "^5.101.0",
+ "webpack": "^5.104.1",
"webpack-cli": "^6.0.1",
- "webpack-dev-server": "^5.2.2"
+ "webpack-dev-server": "^5.2.3"
}
}
diff --git a/test/unit/test-import-export/edit-importer.js b/test/unit/test-import-export/edit-importer.js
index 9934d158..597d4b29 100644
--- a/test/unit/test-import-export/edit-importer.js
+++ b/test/unit/test-import-export/edit-importer.js
@@ -1,4 +1,3 @@
-'use strict'
// Suspect this is unsed test code
/* Profile Editing Appp Pane
diff --git a/timestamp.sh b/timestamp.sh
index 88d51254..75356bb8 100755
--- a/timestamp.sh
+++ b/timestamp.sh
@@ -1,13 +1,22 @@
#!/bin/bash
echo "export default {"
-date -u '+buildTime: "%Y-%m-%dT%H:%M:%SZ",'
-git log | grep commit | head -1 | sed -e 's/ /: "/' | sed -e 's/$/",/'
+date -u '+ buildTime: "%Y-%m-%dT%H:%M:%SZ",'
+if [ -d .git ]; then
+ commit=$(git log --pretty=format:'%H' -n 1)
+else
+ commit="unknown"
+fi
+echo " commit: \"$commit\","
echo " npmInfo: {"
- npm version | sed 's/\x1b\[[0-9;:]*[mG]//g' | grep -v '^{' | while read line; do
- key=$(echo "$line" | cut -d ':' -f 1 | tr -d ' ')
- value=$(echo "$line" | cut -d ':' -f 2- | tr -d ' ')
- echo " \"${key}\": \"${value}\","
- done
+npm version | grep -v '^{' | while IFS=: read key value; do
+ key=$(echo "$key" | xargs)
+ value=$(echo $value | xargs)
+ # Remove any trailing comma from value
+ value=$(echo "$value" | sed 's/,$//')
+ if [ "$key" != "}" ]; then
+ echo " '$key': '$value',"
+ fi
+done
echo " }"
echo "}"
\ No newline at end of file
diff --git a/tsconfig.dev.json b/tsconfig.dev.json
new file mode 100644
index 00000000..8a4f7fa3
--- /dev/null
+++ b/tsconfig.dev.json
@@ -0,0 +1,7 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "rootDir": "."
+ },
+ "include": ["dev/index.ts", "dev/**/*.ts", "typings/**/*"]
+}
diff --git a/tsconfig.json b/tsconfig.json
index 9ab6e381..cce40837 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -53,8 +53,7 @@
"node_modules/@types",
"node_modules/@testing-library",
"typings",
- "src/types.ts",
- "declarations.d.ts",
+ "src/types.ts"
] /* List of folders to include type definitions from. */,
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
@@ -73,8 +72,7 @@
},
"include": [
"src/**/*",
- "typings/**/*",
- "declarations.d.ts"
+ "typings/**/*"
],
"exclude": ["node_modules", "dist"]
}
diff --git a/declarations.d.ts b/typings/declarations.d.ts
similarity index 76%
rename from declarations.d.ts
rename to typings/declarations.d.ts
index ca8ebec2..a3d226c8 100644
--- a/declarations.d.ts
+++ b/typings/declarations.d.ts
@@ -1,3 +1,4 @@
+declare module '*.css';
declare module '*.ttl' {
const content: string
export default content
diff --git a/typings/raw-loader.d.ts b/typings/raw-loader.d.ts
deleted file mode 100644
index ca8ebec2..00000000
--- a/typings/raw-loader.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module '*.ttl' {
- const content: string
- export default content
-}
diff --git a/webpack.dev.config.js b/webpack.dev.config.mjs
similarity index 52%
rename from webpack.dev.config.js
rename to webpack.dev.config.mjs
index 6ffe580d..0ed1a44e 100644
--- a/webpack.dev.config.js
+++ b/webpack.dev.config.mjs
@@ -23,11 +23,32 @@ export default [
module: {
rules: [
{
- test: /\.(mjs|js|ts)$/,
+ test: /\.(mjs|js)$/,
exclude: /(node_modules)/,
use: {
- loader: 'babel-loader'
+ loader: 'babel-loader',
+ options: {
+ presets: ['@babel/preset-env'],
+ },
}
+ },
+ {
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: {
+ loader: 'ts-loader',
+ options: {
+ configFile: 'tsconfig.dev.json'
+ }
+ },
+ },
+ {
+ test: /\.css$/i,
+ use: ['style-loader', 'css-loader']
+ },
+ {
+ test: /\.ttl$/,
+ use: 'raw-loader'
}
]
},
@@ -40,7 +61,12 @@ export default [
}
],
compress: true,
- port: 9000
+ port: 9001,
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
+ 'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization'
+ }
},
devtool: 'source-map'
}]