diff --git a/assets/js/custom.js b/assets/js/custom.js index 3f1211631..531f587a8 100644 --- a/assets/js/custom.js +++ b/assets/js/custom.js @@ -1,2 +1,2 @@ -// Minimal custom JS - testing if complex sidebar logic is still needed -console.log('=== MINIMAL CUSTOM JS LOADED ==='); +// Minimal custom JS - testing if complex sidebar logic is still needed +console.log('=== MINIMAL CUSTOM JS LOADED ==='); diff --git a/assets/scss/common/_base.scss b/assets/scss/common/_base.scss index 9c9d01f20..62ceb9c92 100644 --- a/assets/scss/common/_base.scss +++ b/assets/scss/common/_base.scss @@ -14,23 +14,32 @@ * Important for landing pages or wide documentation pages. */ .container-fw { - max-width: 100%; /* Uses the full available width */ - padding-left: 1rem; /* Minimal left padding */ + max-width: 100%; + /* Uses the full available width */ + padding-left: 1rem; + /* Minimal left padding */ /* Main content (docs-content) in full-width mode */ .docs-content { - margin-left: 0rem !important; /* Removes standard margins */ - margin-right: 0rem !important; /* so the content can use the full */ - padding-right: 0rem !important; /* width */ + margin-left: 0rem !important; + /* Removes standard margins */ + margin-right: 0rem !important; + /* so the content can use the full */ + padding-right: 0rem !important; + /* width */ padding-left: 0rem !important; } /* Table of contents (TOC) in full-width mode */ .docs-toc { - margin-left: 3rem !important; /* Spacing to main content */ - margin-right: 0rem !important; /* No right margin */ - padding-right: 0rem !important; /* No right padding */ - padding-left: 0rem !important; /* or left */ + margin-left: 3rem !important; + /* Spacing to main content */ + margin-right: 0rem !important; + /* No right margin */ + padding-right: 0rem !important; + /* No right padding */ + padding-left: 0rem !important; + /* or left */ } } @@ -40,6 +49,22 @@ * They automatically fit the width of their container. */ .content img { - max-width: 100%; /* Image never wider than its container */ - height: auto; /* Height scales proportionally */ + max-width: 100%; + /* Image never wider than its container */ + height: auto; + /* Height scales proportionally */ +} + +/* WORD WRAPPING + * ------------- + * Used to wrap individual words in spans for styling or animation. + */ +.word { + display: inline-block; + margin-right: 0.25em; + /* Add space between words wrapped in spans */ + + &:last-child { + margin-right: 0; + } } \ No newline at end of file diff --git a/assets/scss/common/_custom.scss b/assets/scss/common/_custom.scss index 0e2d080db..1ddd2f079 100644 --- a/assets/scss/common/_custom.scss +++ b/assets/scss/common/_custom.scss @@ -1,11 +1,16 @@ // Main SCSS file importing all modular components -@import "base"; // Layout & structure -@import "header"; // Header & navigation -@import "branding"; // Logo & fonts -@import "sidebar"; // Sidebar navigation -@import "cards"; // Card grid system -@import "components"; // TOC & description boxes -@import "footer"; // Footer styles -@import "pages"; // Page-specific overrides +@import "variables-custom"; // Custom variables (colors, fonts) +@import "base"; // Layout & structure +// @import "header"; // Header & navigation +@import "header-custom"; // New Custom Header Port +@import "branding"; // Logo & fonts +@import "sidebar"; // Sidebar navigation +@import "cards"; // Card grid system +@import "components"; // TOC & description boxes +@import "footer"; // Footer styles +@import "pages"; // Page-specific overrides @import "version-warning"; // Version warning banner styles +@import "landing-ord"; // Migrated ORD Landing Page Styles + + // End of imports \ No newline at end of file diff --git a/assets/scss/common/_header-custom.scss b/assets/scss/common/_header-custom.scss new file mode 100644 index 000000000..c61e2a5c8 --- /dev/null +++ b/assets/scss/common/_header-custom.scss @@ -0,0 +1,397 @@ +/* Custom Header Styles adapted from ORD Specification */ + +:root { + --nav-height: 60px; + --nav-gap: clamp(16px, 2vw, 24px); + --nav-link-size: 0.9375rem; + /* 15px */ + --fw-nav: 500; + --fw-nav-hover: 500; + --fw-nav-active: 600; + --nav-border-scrolled: var(--lp-c-border); +} + +.header { + position: sticky; + top: 0; + z-index: 1000; + width: 100%; + height: var(--nav-height); + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; + + @include media-breakpoint-up(lg) { + background-color: var(--lp-c-bg); + + /* Glassmorphism */ + @supports (backdrop-filter: blur(12px)) { + background-color: var(--glass-bg); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + } + } + + &.scrolled { + border-bottom-color: var(--nav-border-scrolled); + box-shadow: var(--shadow-md); + } +} + +.navbar { + height: 100%; + padding: 0 !important; + + .container-fluid { + max-width: var(--container); + height: 100%; + display: flex; + align-items: center; + gap: var(--nav-gap); + padding-inline: var(--nav-pad-x, 24px); // Add padding using var or fallback + } +} + +[data-bs-theme="dark"] { + .navbar { + background-color: transparent; + } +} + +[data-bs-theme="light"] { + .navbar { + background-color: var(--lp-c-bg); + } +} + +.navbar-brand { + display: flex; + align-items: center; + padding: 0; + margin: 0; + font-size: 1rem; + + img { + // height attribute handles size, ensuring unconstrained width maintains aspect ratio + display: block; + } + + .navbar-brand-text { + margin-left: 10px; + font-weight: 700; + color: var(--c-text-strong); + line-height: 1; + } +} + +.navbar-nav { + display: flex; + flex-direction: column; // Column on mobile + align-items: flex-start; // Align left on mobile + gap: 1rem; // Spacing on mobile + margin: 0; + padding: 0; + list-style: none; + height: auto; // Auto height on mobile + + @include media-breakpoint-up(lg) { + flex-direction: row; // Row on desktop + align-items: center; + gap: var(--nav-gap); + height: 100%; + } + + .nav-item { + width: 100%; // Full width on mobile + + @include media-breakpoint-up(lg) { + width: auto; + height: 100%; + display: flex; + align-items: center; + } + } + + .nav-link { + display: inline-flex; + align-items: center; + width: 100%; // Full width on mobile + padding: 0.5rem 0; // Larger hit area on mobile + font-size: var(--nav-link-size); + font-weight: var(--fw-nav); + color: var(--lp-c-text-1) !important; + text-decoration: none; + transition: color 0.15s ease; + background: transparent; + border: none; + + @include media-breakpoint-up(lg) { + width: auto; + height: 100%; + padding: 0 4px; + } + + &:hover, + &:focus { + color: var(--c-accent) !important; + font-weight: var(--fw-nav-hover); + } + + &.active, + &[aria-current="page"] { + color: var(--c-accent) !important; + font-weight: var(--fw-nav-active); + } + } +} + +/* Right aligned items */ +.navbar-right { + display: flex; + align-items: center; + gap: 16px; + margin-top: 1rem; // Spacing on mobile + + @include media-breakpoint-up(lg) { + margin-left: auto; + margin-top: 0; + height: var(--nav-height); // Full height for container centering + } + + // Standardize all utility buttons/links in the right section + .btn-link, + .nav-link, + .header-github-pill, + .mode-toggle, + .btn-dropdown, + .dropdown, + .version-droplet { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + height: 32px !important; + margin: 0 !important; + padding: 0 !important; + line-height: 1 !important; + vertical-align: middle !important; + } + + .version-droplet { + position: relative; // Needed for tooltip positioning + padding: 0 10px !important; + background-color: #ffc107; + color: #000; + border-radius: 16px; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.5px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + cursor: help; + + // Custom CSS Tooltip + &::after { + content: attr(data-tooltip); + position: absolute; + top: calc(100% + 14px); // Position below + bottom: auto; + right: 0; // Align to right edge (extends left) + left: auto; + width: 260px; + padding: 12px; + background-color: #1b1b1f; + color: #fff; + font-size: 13px; + font-weight: 500; + text-transform: none; + line-height: 1.5; + border-radius: 8px; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4); + opacity: 0; + pointer-events: none; + transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1); + z-index: 1001; + text-align: left; + transform: translateY(-8px); // Start slightly up + } + + // Tooltip Arrow + &::before { + content: ""; + position: absolute; + top: calc(100% + 2px); // Tip of arrow just below element + bottom: auto; + right: 15px; // Align arrow with the droplet center (roughly) + left: auto; + border-width: 6px; + border-style: solid; + // Arrow pointing UP: Bottom border has color + border-color: transparent transparent #1b1b1f transparent; + opacity: 0; + pointer-events: none; + transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1); + z-index: 1001; + transform: translateY(-8px); + } + + &:hover { + + &::after, + &::before { + opacity: 1; + transform: translateY(0); + } + } + } +} + +/* GitHub Pill Style */ +.header-github-pill { + gap: 6px; + color: var(--lp-c-text-1); + font-size: var(--nav-link-size); + font-weight: var(--fw-nav); + text-decoration: none; + transition: color 0.15s ease; + + span { + display: inline-flex; + align-items: center; + } + + &:hover { + color: var(--c-accent); + } + + .icon { + width: 1.5rem; + height: 1.5rem; + display: inline-flex; + align-items: center; + justify-content: center; + } +} + +/* Theme Toggle */ +.mode-toggle { + width: 32px; + color: var(--lp-c-text-1); + + &:hover { + color: var(--c-accent); + } +} + +/* Button & Dropdown Reset */ +.btn-link.nav-link, +.btn-dropdown { + font-size: var(--nav-link-size); + font-weight: var(--fw-nav); + color: var(--lp-c-text-1) !important; + text-decoration: none !important; + border: none; + background: transparent; + + &:hover { + color: var(--c-accent) !important; + } + + svg { + stroke: currentColor; + } + + &.me-3 { + margin-right: 1rem !important; // Restore spacing for search button + } +} + +.dropdown-toggle::after { + display: none; // Hide Bootstrap default caret if needed, though we use our own SVG +} + +/* Dropdown Menu Styles */ +.dropdown-menu { + background-color: var(--lp-c-bg-elv) !important; + border: 1px solid var(--lp-c-border) !important; + padding: 8px 0; + + .dropdown-item { + color: var(--lp-c-text-1) !important; + font-size: 0.875rem; + padding: 8px 16px; + transition: background-color 0.2s ease, color 0.2s ease; + + &:hover, + &:focus { + background-color: var(--lp-c-bg-soft) !important; + color: var(--c-accent) !important; + } + + &.current, + &[aria-current="true"] { + color: var(--c-accent) !important; + font-weight: 600; + } + + .version-flag { + font-size: 0.75rem; + opacity: 0.7; + margin-left: 4px; + } + } +} + +/* Mobile Toggle */ +.navbar-toggler { + border: none; + background: transparent; + padding: 0; + color: var(--lp-c-text-2); + display: flex; + margin-left: auto; + + @include media-breakpoint-up(lg) { + display: none; + } +} + +/* Offcanvas/Mobile Menu tweaks + Desktop Reset */ +.offcanvas { + background-color: var(--lp-c-bg); + + .offcanvas-header { + border-bottom: 1px solid var(--lp-c-border); + } + + .offcanvas-body { + padding: 24px; // Spacing on mobile + width: 100%; // Ensure body fills the offcanvas + } + + /* DESKTOP RESET: Make offcanvas behave like normal navbar */ + @include media-breakpoint-up(lg) { + position: static; + z-index: auto; + flex-grow: 1; + width: 100% !important; // Force full width to fill container + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + display: flex; + align-items: center; + + .offcanvas-header { + display: none; + } + + .offcanvas-body { + display: flex; + align-items: center; + flex-grow: 1; + padding: 0; + overflow: visible; + width: 100%; // Ensure body fills the offcanvas + } + } +} \ No newline at end of file diff --git a/assets/scss/common/_header.scss b/assets/scss/common/_header.scss deleted file mode 100644 index 584878071..000000000 --- a/assets/scss/common/_header.scss +++ /dev/null @@ -1,120 +0,0 @@ -/* VERSION DROPDOWN - * ------------------------- - * Ensures the version dropdown is wide enough so that - * the version flag (default) is never overlapped by the chevron icon. - * Ensures the "(default)" flag in the version dropdown - * has the same color, size, and weight as the version text. - */ -.dropdown-menu[aria-labelledby="doks-versions"] { - min-width: 11em; -} - -.dropdown-item .version-flag { - color: inherit; /* Same color as text */ - font-size: inherit; /* Same size as text */ - font-weight: inherit; /* Same weight as text */ -} - -/* - * HEADER STYLES - * ============ - * This file controls the appearance of the main navigation bar (header) - * at the top of every page. - * - * IMPORTANT INFORMATION: - * - The header is always visible (fixed position) - * - Always uses a dark design (even if the page is light) - * - Contains the OCM logo and main navigation - * - Has a colored bar at the top - */ - -/* MAIN NAVIGATION BAR - * ------------------- - * Forces a dark design for better readability. - * !important is used to override other theme settings. - */ -header.navbar { - background-color: #1d1e22 !important; /* Dark background (almost black) */ - color: #dee2e6 !important; /* Light text color */ - padding-top: 1rem; /* Top spacing */ - padding-bottom: 1rem; /* Bottom spacing */ -} - -/* COLORED BAR AT THE TOP - * ---------------------- - * A thin, colored stripe above the header. - * Remains the same in light and dark mode. - */ -.header-bar { - height: 4px !important; /* Very thin line */ - background: linear-gradient(to right, #4cc9f0, #4361ee) !important; /* Blue gradient */ - border: none !important; /* No borders */ - box-shadow: none !important; /* No shadow */ -} - -/* NAVIGATION ELEMENTS - * ------------------- - * All clickable elements in the header (links, buttons, dropdown menus) - * have the same light color. - */ -header.navbar .nav-link, -header.navbar .btn-link, -header.navbar .btn-dropdown { - color: #dee2e6 !important; /* Light text color for all elements */ -} - -/* ICONS IN NAVIGATION - * ------------------- - * Special settings for SVG icons like search, menu toggle, etc. - * Uses only outlines (stroke) without fill for a light look. - */ -header.navbar .btn-link svg, -header.navbar .btn-dropdown svg, -header.navbar .nav-link[aria-label="Search website"] svg { - stroke: #dee2e6; /* Light stroke color */ - fill: none; /* No fill */ -} - -/* OFFCANVAS MENU - * -------------- - * Specific settings for the mobile offcanvas menu. - * Only apply on small screens (max-width: 991.98px)! - */ -@media (max-width: 991.98px) { - .offcanvas.offcanvas-end .offcanvas-body .navbar-nav .nav-link { - color: #232336 !important; /* Dark gray for readability in light mode */ - } - - /* Versions dropdown and social media icons styling */ - .offcanvas.offcanvas-end .offcanvas-body .btn-dropdown, - .offcanvas.offcanvas-end .offcanvas-body .btn-link, - .offcanvas.offcanvas-end .offcanvas-body .dropdown-toggle { - color: #232336 !important; /* Same color as nav links */ - } - - /* Social media icons (SVG) styling - match desktop header exactly */ - .offcanvas.offcanvas-end .offcanvas-body .social-link svg, - .offcanvas.offcanvas-end .offcanvas-body .btn-link svg, - .offcanvas.offcanvas-end .offcanvas-body .nav-link svg { - stroke: #dee2e6 !important; /* Same as desktop header */ - /* Don't override fill - let SVG definitions control solid vs outlined */ - } - - /* Dark mode styles */ - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .navbar-nav .nav-link { - color: #dee2e6 !important; /* Light color in dark mode */ - } - - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .btn-dropdown, - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .btn-link, - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .dropdown-toggle { - color: #dee2e6 !important; /* Light color in dark mode */ - } - - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .social-link svg, - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .btn-link svg, - [data-bs-theme="dark"] .offcanvas.offcanvas-end .offcanvas-body .nav-link svg { - stroke: #dee2e6 !important; /* Same as desktop header */ - /* Don't override fill - let SVG definitions control solid vs outlined */ - } -} diff --git a/assets/scss/common/_landing-ord.scss b/assets/scss/common/_landing-ord.scss new file mode 100644 index 000000000..e8308b788 --- /dev/null +++ b/assets/scss/common/_landing-ord.scss @@ -0,0 +1,618 @@ +/* Hero area and layout */ +.lp-home { + display: grid; + background: var(--lp-c-bg); + min-height: 100vh; + gap: 24px; + padding-top: var(--nav-height); + padding-left: var(--nav-pad-x) !important; + padding-right: var(--nav-pad-x) !important; + padding-bottom: var(--nav-height); + + .container { + display: flex; + margin: 0 auto; + flex-direction: column; + align-items: center; + text-align: center; + gap: 64px; + width: 100%; + max-width: var(--container); + } + + .main { + flex: 1 1 100%; + order: 2; + } + + .heading { + line-height: 1.2; + font-weight: 600; + margin-bottom: 24px; + } + + .name { + font-size: 48px; + display: block; + line-height: 1.12; + padding-bottom: 0.12em; + + + &.clip { + background: var(--lp-home-hero-name-background); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: var(--lp-home-hero-name-color); + } + } + + .text { + font-size: 36px; + font-weight: 500; + color: var(--lp-c-text-1); + display: block; + margin-top: 8px; + } + + .tagline { + color: var(--lp-c-text-2); + font-size: 20px; + line-height: 30px; + margin: 0 auto 32px; + max-width: 600px; + } + + .definition { + color: var(--c-text-dim); + font-size: 14px; + line-height: 22px; + margin: 24px auto 0; + max-width: 850px; + opacity: 0.85; + text-align: center; + } + + .actions { + display: flex; + flex-wrap: wrap; + gap: 12px; + justify-content: center; + } + + .image { + display: flex; + order: 1; + flex: 1 1 100%; + margin-top: 10px; + justify-content: center; + align-items: center; + + .image-container { + position: relative; + width: 350px; + height: 350px; + margin: 0 auto; + max-width: 100%; + + @media (max-width: 480px) { + width: 200px; + height: 200px; + } + + @media (min-width: 481px) and (max-width: 959px) { + width: 280px; + height: 280px; + } + } + + .image-bg { + position: absolute; + inset: 0; + background-image: var(--lp-home-hero-image-background-image); + filter: var(--lp-home-hero-image-filter); + border-radius: 50%; + opacity: 0.6; + } + + .image-src { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: contain; + z-index: 1; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + } + } + + /* Responsive styles */ + @media (max-width: 480px) { + .container { + gap: var(--nav-pad-x) !important; + } + + .actions { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px; + width: 100%; + } + + .action a { + padding: 12px 16px; + font-size: 14px; + } + } + + @media (min-width: 481px) and (max-width: 959px) { + .actions-grid { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + width: 100%; + } + } + + @media (min-width: 768px) { + .name { + font-size: 56px; + } + + .text { + font-size: 48px; + } + + .tagline { + font-size: 24px; + line-height: 36px; + } + + .definition { + font-size: 16px; + line-height: 26px; + text-align: center; + } + } + + @media (min-width: 960px) { + padding-top: 16px; + + .container { + flex-direction: row; + text-align: left; + gap: 64px; + } + + .main { + flex: 1 1 50%; + order: 1; + } + + .name { + font-size: 64px; + } + + .text { + font-size: 56px; + } + + .tagline { + margin: 0 0 32px; + } + + .definition { + margin: 24px 0 32px; + text-align: left; + } + + .actions { + justify-content: flex-start; + } + + .image { + flex: 1 1 50%; + order: 2; + } + } +} + +/* Actions / Buttons */ +.action p { + margin: 0; + padding: 0; +} + +.action a, +.lp-button { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 14px 24px; + line-height: 1.2; + height: auto; + min-width: 0; + white-space: nowrap; + border-radius: 16px; + font-size: 16px; + font-weight: 600; + text-decoration: none !important; + border: 1px solid transparent; + transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.25s ease, color 0.25s ease; + width: 100%; // For .action a inside flex container if needed + + &:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-md); + } + + &:active { + transform: translateY(0); + box-shadow: none; + } +} + +.action.brand a, +.lp-button.brand { + background: var(--brand-cyan); + color: var(--lp-button-brand-text); + border-color: transparent; + + &:hover { + color: var(--lp-button-brand-text); + } +} + +.action.alt a, +.lp-button.alt { + background: var(--brand-blue-dark); + color: var(--lp-button-brand-text); + border-color: transparent; + + &:hover { + color: var(--lp-button-brand-text); + } +} + +/* Feature Cards */ +.lp-features { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 14px; + max-width: 1152px; + margin-left: auto; + margin-right: auto; + align-items: stretch; + align-content: start; + height: max-content; + cursor: pointer; + + h3 { + font-size: 16px; + } + + @media (min-width: 481px) and (max-width: 959px) { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + width: 100%; + } + + @media (max-width: 480px) { + grid-template-columns: 1fr; + gap: 20px; + width: 100%; + } +} + +.lp-feature-card { + color: var(--lp-c-text-1); + padding: 16px 28px 20px; + transition: all 0.25s ease; + display: flex; + flex-direction: column; + height: 100%; + background: var(--lp-c-bg-soft); + border-radius: 12px; + box-shadow: none; + background-clip: padding-box; + text-decoration: none; // Added to handle linkified cards + + &:hover { + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); + transform: translateY(-1px); + text-decoration: none; // Ensure no underline on hover + } + + &:active { + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.25); + transform: translateY(0); + } + + .card-header { + display: flex; + align-items: center; + gap: 8px; + margin: 0; + font-size: 16px; + + .emoji { + font-size: 1.2em; + } + + .title { + font-weight: 600; + } + } + + p { + margin: 12px 0 0; + color: var(--lp-c-text-2); + font-weight: 500; + line-height: 1.6; + font-size: 14px; + } + + @media (max-width: 480px) { + text-align: left; + } +} + + +/* Footer styles */ +.footer--dark { + --ifm-footer-background-color: var(--lp-c-bg); + background-color: var(--lp-c-bg); + border-top: 1px solid var(--lp-c-divider); + padding: 16px 0 0; +} + +.footer-content-wrapper { + width: 100%; + padding: 0 24px; // Mobile/Tablet + margin: 0 auto; + + @media (min-width: 960px) { + padding: 0 64px; // Desktop + } +} + +.footer-inner-container { + max-width: 1152px; + margin: 0 auto; + width: 100%; +} + +.footer--dark .footer__copyright { + color: var(--lp-c-text-2); + font-size: 12px; + line-height: 24px; + max-width: var(--container); + margin: 0 auto; + text-align: left; +} + +.footer--dark svg { + display: none; +} + +.footer-funding { + display: flex; + flex-wrap: wrap; + flex-direction: column; + align-items: center; + gap: 24px; + padding: 0; +} + +.footer-funding__image img { + max-width: 300px; + height: auto; + display: block; +} + +.footer-funding__text { + flex: 1; + font-size: 12px; + color: var(--lp-c-text-2); + line-height: 1.6; + text-align: left; +} + +.footer-funding__text p { + color: var(--lp-c-text-3); + margin: 0; + font-size: 12px; + text-align: left; +} + +.footer-funding__text strong { + color: var(--lp-c-text-3); + font-weight: 600; +} + +.footer-funding__text a { + color: var(--c-accent); + text-decoration: none; +} + +.footer-funding__text a:hover { + color: var(--lp-c-brand-2); + text-decoration: underline; +} + +.footer-copyright { + margin-top: 24px; + padding-top: 24px; + border-top: 1px solid var(--lp-c-divider); +} + +.footer-container { + display: flex; + flex-direction: column; + gap: 24px; + + @media (min-width: 960px) { + flex-direction: row; + justify-content: space-between; + align-items: center; + } +} + +.neonephos-logos { + display: flex; + justify-content: center; + align-items: center; + margin: 20px 0; +} + +.neonephos-link { + display: inline-flex; + align-items: center; + text-decoration: none; +} + +.neonephos-logo { + height: 60px; + width: auto; + opacity: 0.8; + transition: opacity 0.2s ease; +} + +.neonephos-link:hover .neonephos-logo { + opacity: 1; +} + +.neonephos-logo--light { + display: none; +} + +.neonephos-logo--dark { + display: inline; +} + +html[data-bs-theme="light"] .neonephos-logo--dark { + display: none; +} + +html[data-bs-theme="light"] .neonephos-logo--light { + display: inline; +} + +.footer-legal-links { + display: flex; + gap: 16px; + align-items: center; + justify-content: center; + font-size: 12px; + color: var(--lp-c-text-2); +} + +.footer-legal-links a { + color: var(--lp-c-text-2); + text-decoration: none; + transition: color 0.2s ease; +} + +.footer-legal-links a:hover { + color: var(--lp-c-brand-1); + text-decoration: underline; +} + +.footer-legal-sep { + color: var(--lp-c-text-3); + opacity: 0.5; +} + +@media (max-width: 649px) { + .footer-funding { + flex-direction: column; + gap: 24px; + width: 100%; + } + + .footer-funding__image { + align-self: flex-start; + } +} + +@media (min-width: 650px) and (max-width: 768px) { + .footer-funding { + flex-direction: row; + gap: 24px; + width: 100%; + flex-wrap: unset; + } + + .footer-funding__image img { + max-height: 200px; + } + + .footer-legal-links { + flex-wrap: wrap; + justify-content: center; + } + + .footer-legal-sep { + margin: 0 8px; + } +} + +@media (min-width: 769px) { + .footer-funding { + flex-direction: row; + gap: 24px; + width: auto; // Changed from 100% to auto to allow side-by-side + flex: 1; // Allow it to take available space + flex-wrap: wrap; + } + + .footer-funding__image { + align-self: flex-start; + } +} + +/* Light Theme Overrides */ +[data-bs-theme="light"] { + .lp-home { + .heading .name { + color: var(--lp-c-text-1); + } + + .heading .text, + .tagline { + color: var(--lp-c-text-2); + } + + .lp-features { + color: var(--lp-c-text-2); + } + + .lp-feature-card { + background: var(--lp-c-bg-elv); + + h3 { + color: var(--lp-c-text-2) + } + + &:hover { + background: var(--lp-c-bg-soft); + } + } + + .image .image-container, + .image .image-bg { + background: transparent; + } + + .actions .action a { + color: var(--lp-button-brand-text) !important; + } + } + + .footer--dark { + background: var(--lp-c-bg) !important; + color: var(--lp-c-text-2) !important; + border-top-color: var(--lp-c-divider); + } +} \ No newline at end of file diff --git a/assets/scss/common/_variables-custom.scss b/assets/scss/common/_variables-custom.scss index 56c9eb79e..9aafb78f5 100644 --- a/assets/scss/common/_variables-custom.scss +++ b/assets/scss/common/_variables-custom.scss @@ -1 +1,89 @@ -// Put your custom SCSS variables here +:root { + --lp-c-white: #ffffff; + --lp-c-black: #000000; + --lp-c-gray-1: #515c67; + --lp-c-gray-2: #414853; + --lp-c-gray-3: #32363f; + --lp-c-gray-soft: rgba(101, 117, 133, 0.16); + --lp-highlight-bg: #f3f38d; + --lp-highlight-text: #000000; + --lp-c-bg: #1b1b1f; + --lp-c-bg-alt: #161618; + --lp-c-bg-elv: #202127; + --lp-c-bg-soft: #202127; + --lp-c-border: #3c3f44; + --lp-c-divider: #2e2e32; + --lp-c-gutter: #000000; + --lp-c-text-1: #dfdfd6; + --lp-c-text-2: #98989f; + --lp-c-text-3: #6a6a71; + + /* Glassmorphism / Blur */ + --glass-bg: rgba(27, 27, 31, 0.8); + --glass-blur: blur(12px) saturate(140%); + --glass-border: var(--lp-c-border); + /* OCM Brand Colors (Canonical) */ + --brand-blue-dark: #257ddc; + /* Logo Dark */ + --brand-blue-mid: #1d65b4; + /* Logo Light/Mid */ + --brand-cyan: #4cc9f0; + /* Header Cyan */ + --brand-gradient: linear-gradient(to right, var(--brand-cyan), #4361ee); + + /* Mapping to LP Variables (Replacing Green with Blue) */ + --lp-c-green-1: var(--brand-blue-dark); + --lp-c-green-2: var(--brand-blue-mid); + --lp-c-green-3: var(--brand-cyan); + --lp-c-green-soft: rgba(59, 114, 199, 0.16); + /* Blue-ish soft bg */ + + --lp-c-brand-1: var(--lp-c-green-1); + --lp-c-brand-2: var(--lp-c-green-2); + --lp-c-brand-3: var(--lp-c-green-3); + --lp-c-brand-soft: var(--lp-c-green-soft); + + --lp-button-brand-bg: var(--brand-blue-mid); + --lp-button-brand-border: transparent; + --lp-button-brand-text: var(--lp-c-white); + --lp-button-brand-hover-bg: #1d65b4; + /* Slightly darker than mid blue */ + + --lp-button-alt-bg: var(--lp-c-gray-3); + --lp-button-alt-text: var(--lp-c-text-1); + --lp-button-alt-hover-bg: var(--lp-c-gray-2); + + --lp-home-hero-name-color: transparent; + --lp-home-hero-name-background: var(--brand-gradient); + --lp-home-hero-image-background-image: linear-gradient(-45deg, var(--brand-blue-dark) 50%, var(--brand-cyan) 50%); + --lp-home-hero-image-filter: blur(68px); + + --c-accent: var(--brand-cyan); + --shadow-md: 0 10px 30px rgba(4, 13, 18, 0.14); + --container: 1200px; + --nav-pad-x: 24px; + + /* Defaults for Dark Mode (ORD default) */ + --c-text-strong: #f4f7f8; +} + +[data-bs-theme="light"] { + --lp-c-bg: #ffffff; + --lp-c-bg-alt: #f9fbfc; + --lp-c-bg-elv: #f6f8f9; + --lp-c-bg-soft: #fbfbfc; + --lp-c-border: #e7ecef; + --lp-c-text-1: #0a0f12; + --lp-c-text-2: #1b242a; + --lp-c-text-3: #5a6a73; + --lp-c-divider: #e2e2de; + --c-accent: var(--brand-blue-mid); + --lp-button-brand-text: #ffffff; + --lp-button-brand-hover-bg: var(--brand-blue-dark); + --lp-button-alt-bg: #eef3f6; + --lp-button-alt-text: var(--lp-c-text-1); + --lp-button-alt-hover-bg: #e6edf3; + + /* Light Mode Overrides */ + --c-text-strong: #0a0f12; +} \ No newline at end of file diff --git a/config/_default/languages.toml b/config/_default/languages.toml index d25b6c750..accbd6354 100644 --- a/config/_default/languages.toml +++ b/config/_default/languages.toml @@ -5,22 +5,4 @@ [en.params] languageISO = "EN" languageTag = "en-US" - # Footer - footer = ''' -
-
- Building this site is powered by Netlify -
- Funded by the European Union - NextGenerationEU -
- - Copyright © Linux Foundation Europe. - Open Component Model is a project of NeoNephos Foundation. - For applicable policies including privacy policy, - terms of use and trademark usage guidelines, - please see https://linuxfoundation.eu. - Linux is a registered trademark of Linus Torvalds. - -
-
- ''' + diff --git a/config/_default/menus/menus.en.toml b/config/_default/menus/menus.en.toml index 1f8d6614d..2ffbe643b 100644 --- a/config/_default/menus/menus.en.toml +++ b/config/_default/menus/menus.en.toml @@ -22,7 +22,7 @@ [[social]] name = "Slack" - pre = "" + pre = '' url = "https://kubernetes.slack.com/archives/C05UWBE8R1D" weight = 20 diff --git a/content/_index.md b/content/_index.md index 34f323fbb..b8d9ed7b8 100644 --- a/content/_index.md +++ b/content/_index.md @@ -7,30 +7,18 @@ subheadline: "Anywhere, at any scale." intro1: "The Open Component Model (OCM) is your one-stop open-source" intro2: "Software Bill of Delivery (SBoD)" intro3: "for packaging, signing, transporting and deploying your artifacts – preserving end-to-end security, integrity and provenance." -cta_text: "Get Started" -how_ocm_works_title: "How OCM Works" -how_ocm_works: +actions: - label: "Pack" - emoji: "📝" - title: "Pack" - description: "Describe and pack components in code with powerful lifecycle metadata." - link: "/docs/getting-started/create-component-version/" + link: "docs/getting-started/create-component-version/" - label: "Sign" - emoji: "🔐" - title: "Sign" - description: "Add cryptographic signatures. End-to-end trust from source to deployment." - link: "/docs/getting-started/sign-component-version/" + link: "docs/getting-started/sign-component-version/" - label: "Transport" - emoji: "🚚" - title: "Transport" - description: "Works across boundaries — public cloud, on-prem, air-gapped. Tamper-proof." - link: "/docs/tutorials/complex-component-structure-deployment/" + link: "docs/tutorials/complex-component-structure-deployment/" - label: "Deploy" - emoji: "🚀" - title: "Deploy" - description: "Automate deployments with OCM controllers and Flux. Seamless GitOps." - link: "/docs/getting-started/setup/" + link: "docs/getting-started/deploy-a-helm-chart/" + +hero_image: "images/base.svg" benefits_title: "Why Choose OCM?" benefits_cards_max_columns: 3 @@ -38,25 +26,25 @@ benefits: - emoji: "📦" title: "Create a Software Bill of Delivery" description: "Gain visibility into everything you deliver — from container images to configuration files." - link: "/docs/overview/benefits/#create-a-software-bill-of-delivery" + link: "docs/overview/benefits-of-ocm/#create-a-software-bill-of-delivery" - emoji: "🔒" title: "Protect Your Supply Chain" description: "Secure the integrity and provenance of your software with built-in signing and verification." - link: "/docs/overview/benefits/#protect-your-supply-chain" + link: "docs/overview/benefits-of-ocm/#protect-your-supply-chain" - emoji: "🌐" title: "Deploy Anywhere, Even Air-Gapped" description: "Deliver across any system or environment without losing traceability." - link: "/docs/overview/benefits/#deploy-anywhere-even-air-gapped" + link: "docs/overview/benefits-of-ocm/#deploy-anywhere-even-air-gapped" - emoji: "⚙️" title: "Works with Your Existing Tools" description: "OCM fits seamlessly into your current ecosystem and workflows." - link: "docs/overview/benefits/#works-with-your-existing-tools" + link: "docs/overview/benefits-of-ocm/#works-with-your-existing-tools" - emoji: "🔧" title: "Adapts to Your Needs" description: "OCM's functionality is easy to extend. Just plug in what you need." - link: "/docs/overview/benefits/#adapts-to-your-needs" + link: "docs/overview/benefits-of-ocm/#adapts-to-your-needs" - emoji: "🤝" title: "Committed to Open Source" description: "We champion open innovation — in OCM and across the community." - link: "/docs/overview/benefits/#committed-to-open-source" + link: "docs/overview/benefits-of-ocm/#committed-to-open-source" --- diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index f903e86c2..e74859d02 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,32 +1,44 @@ - - {{ partial "head/head" . }} - {{ partial "head/body-class" . }} - - {{ partial "header/header" . }} -
-
- {{ block "main" . }}{{ end }} -
+ +{{ partial "head/head" . }} +{{ partial "head/body-class" . }} + + + {{ partial "header/custom-header" . }} + {{ if .IsHome }} +
+ {{ block "main" . }}{{ end }} +
+ {{ else }} +
+
+ {{ block "main" . }}{{ end }}
+
+ {{ end }} + + {{ block "sidebar-prefooter" . }}{{ end }} + {{ block "sidebar-footer" . }}{{ end }} + + + {{ partial "footer/footer" . }} + + {{ partial "footer/script-footer" . }} + + + {{ if .Store.Get "hasMermaid" }} + + {{ end }} + + {{ if eq site.Params.doks.toTopButton true -}} + {{ partial "footer/to-top" . }} + {{ end }} + - {{ block "sidebar-prefooter" . }}{{ end }} - {{ block "sidebar-footer" . }}{{ end }} - - - {{ partial "footer/footer" . }} - - {{ partial "footer/script-footer" . }} - - {{ if .Store.Get "hasMermaid" }} - - {{ end }} - - {{ if eq site.Params.doks.toTopButton true -}} - {{ partial "footer/to-top" . }} - {{ end }} - - + \ No newline at end of file diff --git a/layouts/_partials/cards/cards-grid.html b/layouts/_partials/cards/cards-grid.html deleted file mode 100644 index 280035ac0..000000000 --- a/layouts/_partials/cards/cards-grid.html +++ /dev/null @@ -1,28 +0,0 @@ -{{- $variant := default "" .cards_variant -}} -{{- $gridClass := "ocm-cards-grid" -}} -{{- if $variant -}} - {{- $gridClass = printf "%s ocm-cards-grid--%s" $gridClass $variant -}} -{{- end -}} -{{- $cardClass := "ocm-section-card" -}} -{{- if $variant -}} - {{- $cardClass = printf "%s ocm-section-card--%s" $cardClass $variant -}} -{{- end -}} - -{{- $styleValue := "" -}} -{{- if eq $variant "home" -}} - {{- $styleValue = printf "--ocm-grid-home-columns: %d;" (default 4 .cards_max_columns) -}} -{{- else if .cards_max_columns -}} - {{- $styleValue = printf "grid-template-columns: repeat(%d, minmax(210px, 1fr));" .cards_max_columns -}} -{{- end -}} - -
- {{- range .items }} - {{- $href := "#" -}} - {{- with .link }}{{ $href = ref $.page . }}{{ end -}} - - -
{{ .title }}
- {{- with .description }}
{{ . }}
{{ end -}} -
- {{- end -}} -
diff --git a/layouts/_partials/footer/footer.html b/layouts/_partials/footer/footer.html index 59d1bc016..5a5f1e787 100644 --- a/layouts/_partials/footer/footer.html +++ b/layouts/_partials/footer/footer.html @@ -1,7 +1,42 @@ -
-{{ define "sidebar-footer" }} -
-
-

{{ .Params.how_ocm_works_title }}

- {{- $howCardsMaxColumns := default 4 .Params.how_ocm_works_cards_max_columns -}} - {{ partial "cards/cards-grid.html" (dict "items" .Params.how_ocm_works "cards_max_columns" $howCardsMaxColumns "cards_variant" "home" "page" .) }} -
+

+ {{ .Params.intro1 }} {{ .Params.intro2 }} {{ .Params.intro3 }} +

-
-
-

{{ .Params.benefits_title }}

- {{- $benefitsMaxColumns := default 4 .Params.benefits_cards_max_columns -}} - {{ partial "cards/cards-grid.html" (dict "items" .Params.benefits "cards_max_columns" $benefitsMaxColumns "cards_variant" "home" "page" .) }} +
+ {{ range .Params.benefits }} + {{ if .link }} + +

+ {{ .title }} +

+

{{ .description }}

+
+ {{ else }} +
+

+ {{ .title }} +

+

{{ .description }}

+
+ {{ end }} + {{ end }} +
-
-{{ end }} + + +{{ end }} \ No newline at end of file diff --git a/layouts/partials/header/custom-header.html b/layouts/partials/header/custom-header.html new file mode 100644 index 000000000..67cf7e99d --- /dev/null +++ b/layouts/partials/header/custom-header.html @@ -0,0 +1,162 @@ +
+ +
+ +{{ if site.Params.doks.flexSearch }} +{{ partial "header/search-modal" . }} +{{ end }} \ No newline at end of file diff --git a/layouts/partials/header/version-warning.html b/layouts/partials/header/version-warning.html new file mode 100644 index 000000000..fe3214033 --- /dev/null +++ b/layouts/partials/header/version-warning.html @@ -0,0 +1,8 @@ +{{ $currentVer := site.Params.doks.docsVersion }} +{{ $defaultVer := site.Data.versions.defaultVersion }} +{{ if eq $currentVer "dev" }} +
+ Dev +
+{{ end }} \ No newline at end of file diff --git a/layouts/shortcodes/callout.html b/layouts/shortcodes/callout.html new file mode 100644 index 000000000..a29334d84 --- /dev/null +++ b/layouts/shortcodes/callout.html @@ -0,0 +1,18 @@ +{{ $context := .Get "context" | default "note" }} +{{ $title := .Get "title" }} +{{ $class := "primary" }} + +{{ if eq $context "note" }} +{{ $class = "info" }} +{{ else if eq $context "warning" }} +{{ $class = "warning" }} +{{ else if eq $context "caution" }} +{{ $class = "danger" }} +{{ else if eq $context "tip" }} +{{ $class = "success" }} +{{ end }} + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ca3964552..a458909fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,19 +27,6 @@ "npm": ">=10.9.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/cli": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.3.tgz", @@ -124,30 +111,31 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", - "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", + "peer": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -163,13 +151,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -207,17 +195,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", - "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.3", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -228,13 +216,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -270,13 +258,13 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -390,9 +378,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -422,25 +410,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -450,13 +438,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -651,9 +639,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", - "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -698,9 +686,9 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", - "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -708,7 +696,7 @@ "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -734,13 +722,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", - "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -828,9 +816,9 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -921,9 +909,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -983,15 +971,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1078,16 +1066,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", - "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1128,9 +1116,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -1207,9 +1195,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", - "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1392,16 +1380,16 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", - "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.0", + "@babel/compat-data": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", @@ -1414,42 +1402,42 @@ "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-block-scoping": "^7.28.5", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regenerator": "^7.28.4", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -1504,17 +1492,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -1522,13 +1510,13 @@ } }, "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1585,9 +1573,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -1597,9 +1585,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" @@ -1632,9 +1620,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -1673,6 +1661,16 @@ "@jridgewell/trace-mapping": "^0.3.24" } }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1689,9 +1687,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1745,6 +1743,7 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -1775,9 +1774,9 @@ } }, "node_modules/@tabler/icons": { - "version": "3.34.1", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.34.1.tgz", - "integrity": "sha512-9gTnUvd7Fd/DmQgr3MKY+oJLa1RfNsQo8c/ir3TJAWghOuZXodbtbVp0QBY2DxWuuvrSZFys0HEbv1CoiI5y6A==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.36.0.tgz", + "integrity": "sha512-z9OfTEG6QbaQWM9KBOxxUdpgvMUn0atageXyiaSc2gmYm51ORO8Ua7eUcjlks+Dc0YMK4rrodAFdK9SfjJ4ZcA==", "license": "MIT", "funding": { "type": "github", @@ -1888,12 +1887,12 @@ } }, "node_modules/@types/node": { - "version": "24.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz", - "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", "license": "MIT", "dependencies": { - "undici-types": "~7.10.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/responselike": { @@ -1959,9 +1958,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", "funding": [ { "type": "opencollective", @@ -1978,10 +1977,9 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, @@ -2075,6 +2073,15 @@ ], "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.9", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.9.tgz", + "integrity": "sha512-V8fbOCSeOFvlDj7LLChUcqbZrdKD9RU/VR260piF1790vT0mfLSwGc/Qzxv3IqiTukOpNtItePa0HBpMAj7MDg==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -2139,9 +2146,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", - "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "funding": [ { "type": "opencollective", @@ -2157,11 +2164,13 @@ } ], "license": "MIT", + "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001737", - "electron-to-chromium": "^1.5.211", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -2345,9 +2354,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001741", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz", - "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==", + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", "funding": [ { "type": "opencollective", @@ -2474,12 +2483,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.45.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", - "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", "license": "MIT", "dependencies": { - "browserslist": "^4.25.3" + "browserslist": "^4.28.0" }, "funding": { "type": "opencollective", @@ -2522,9 +2531,9 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2766,9 +2775,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.214", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz", - "integrity": "sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==", + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -2956,14 +2965,18 @@ } }, "node_modules/flexsearch": { - "version": "0.8.205", - "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.8.205.tgz", - "integrity": "sha512-REFjMqy86DKkCTJ4gIE42c9MVm9t1vUWfEub/8taixYuhvyu4jd4XmFALk5VuKW4GH4VLav8A4BJboTsslHF1w==", + "version": "0.8.212", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.8.212.tgz", + "integrity": "sha512-wSyJr1GUWoOOIISRu+X2IXiOcVfg9qqBRyCPRUdLMIGJqPzMo+jMRlvE83t14v1j0dRMEaBbER/adQjp6Du2pw==", "funding": [ { "type": "github", "url": "https://github.com/ts-thomas" }, + { + "type": "paypal", + "url": "https://www.paypal.com/donate/?hosted_button_id=GEVR88FC9BWRW" + }, { "type": "opencollective", "url": "https://opencollective.com/flexsearch" @@ -2975,14 +2988,6 @@ { "type": "liberapay", "url": "https://liberapay.com/ts-thomas" - }, - { - "type": "paypal", - "url": "https://www.paypal.com/donate/?hosted_button_id=GEVR88FC9BWRW" - }, - { - "type": "bountysource", - "url": "https://salt.bountysource.com/teams/ts-thomas" } ], "license": "Apache-2.0" @@ -3099,15 +3104,15 @@ } }, "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", "license": "MIT", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, @@ -3118,9 +3123,9 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", - "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -4039,9 +4044,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "license": "MIT" }, "node_modules/normalize-path": { @@ -4053,15 +4058,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -4225,9 +4221,9 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -4241,10 +4237,10 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz", - "integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==", - "license": "ISC", + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } @@ -4340,6 +4336,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -4686,9 +4683,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -4707,17 +4704,17 @@ } }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -4730,29 +4727,17 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4769,12 +4754,12 @@ "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -4923,9 +4908,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5202,13 +5187,13 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -5239,6 +5224,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -5247,9 +5233,9 @@ } }, "node_modules/to-buffer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz", - "integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", "license": "MIT", "dependencies": { "isarray": "^2.0.5", @@ -5303,9 +5289,9 @@ } }, "node_modules/undici-types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -5331,18 +5317,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "license": "MIT", "engines": { "node": ">=4" @@ -5358,9 +5344,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "funding": [ { "type": "opencollective", @@ -5499,15 +5485,18 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { diff --git a/static/images/base.svg b/static/images/base.svg new file mode 100644 index 000000000..83f6ccb0d --- /dev/null +++ b/static/images/base.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/static/images/logo-image.png b/static/images/logo-image.png deleted file mode 100755 index d13e8a60f..000000000 Binary files a/static/images/logo-image.png and /dev/null differ diff --git a/static/images/ocm-logo-black-text.svg b/static/images/ocm-logo-black-text.svg deleted file mode 100644 index 9bdb0fed9..000000000 --- a/static/images/ocm-logo-black-text.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/static/images/ocm-logo-white-text.svg b/static/images/ocm-logo-white-text.svg deleted file mode 100644 index 3e5002079..000000000 --- a/static/images/ocm-logo-white-text.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/static/images/ocm-text.png b/static/images/ocm-text.png deleted file mode 100644 index 2c7fbff44..000000000 Binary files a/static/images/ocm-text.png and /dev/null differ diff --git a/static/images/ord-footer-bmwe.png b/static/images/ord-footer-bmwe.png new file mode 100644 index 000000000..ab642e34a Binary files /dev/null and b/static/images/ord-footer-bmwe.png differ diff --git a/static/images/ord-footer-neonephos-light.svg b/static/images/ord-footer-neonephos-light.svg new file mode 100644 index 000000000..b2aac8139 --- /dev/null +++ b/static/images/ord-footer-neonephos-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/ord-footer-neonephos.svg b/static/images/ord-footer-neonephos.svg new file mode 100644 index 000000000..df6664e63 --- /dev/null +++ b/static/images/ord-footer-neonephos.svg @@ -0,0 +1 @@ + \ No newline at end of file