diff --git a/apps/build-docs/package.json b/apps/build-docs/package.json
index ac5be7e9be..56fff334a8 100644
--- a/apps/build-docs/package.json
+++ b/apps/build-docs/package.json
@@ -11,7 +11,7 @@
"license": "AGPL-3.0-only",
"packageManager": "pnpm@10.28.2",
"devDependencies": {
- "@redocly/cli": "2.15.0",
+ "@redocly/cli": "2.15.1",
"archiver": "7.0.1",
"fs-extra": "11.3.3",
"react": "19.2.4",
diff --git a/apps/client/package.json b/apps/client/package.json
index ca31f70a70..dc210480a6 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -78,7 +78,7 @@
"@types/reveal.js": "5.2.2",
"@types/tabulator-tables": "6.3.1",
"copy-webpack-plugin": "13.0.1",
- "happy-dom": "20.4.0",
+ "happy-dom": "20.5.0",
"lightningcss": "1.31.1",
"script-loader": "0.7.2",
"vite-plugin-static-copy": "3.2.0"
diff --git a/apps/client/src/layouts/mobile_layout.css b/apps/client/src/layouts/mobile_layout.css
new file mode 100644
index 0000000000..95b9dd8afb
--- /dev/null
+++ b/apps/client/src/layouts/mobile_layout.css
@@ -0,0 +1,72 @@
+span.keyboard-shortcut,
+kbd {
+ display: none;
+}
+
+.dropdown-menu {
+ font-size: larger;
+}
+
+.action-button {
+ background: none;
+ border: none;
+ cursor: pointer;
+ font-size: 1.25em;
+ padding-inline-start: 0.5em;
+ padding-inline-end: 0.5em;
+ color: var(--main-text-color);
+}
+.quick-search {
+ margin: 0;
+}
+.quick-search .dropdown-menu {
+ max-width: 350px;
+}
+
+/* #region Tree */
+.tree-wrapper {
+ max-height: 100%;
+ margin-top: 0px;
+ overflow-y: auto;
+ contain: content;
+ padding-inline-start: 10px;
+}
+
+.fancytree-title {
+ margin-inline-start: 0.6em !important;
+}
+
+.fancytree-node {
+ padding: 5px;
+}
+
+span.fancytree-expander {
+ width: 24px !important;
+ margin-inline-end: 5px;
+}
+
+.fancytree-loading span.fancytree-expander {
+ width: 24px;
+ height: 32px;
+}
+
+.fancytree-loading span.fancytree-expander:after {
+ width: 20px;
+ height: 20px;
+ margin-top: 4px;
+ border-width: 2px;
+ border-style: solid;
+}
+
+.tree-wrapper .collapse-tree-button,
+.tree-wrapper .scroll-to-active-note-button,
+.tree-wrapper .tree-settings-button {
+ position: fixed;
+ margin-inline-end: 16px;
+ display: none;
+}
+
+.tree-wrapper .unhoist-button {
+ font-size: 200%;
+}
+/* #endregion */
diff --git a/apps/client/src/layouts/mobile_layout.tsx b/apps/client/src/layouts/mobile_layout.tsx
index 27b0779921..0f36f282c4 100644
--- a/apps/client/src/layouts/mobile_layout.tsx
+++ b/apps/client/src/layouts/mobile_layout.tsx
@@ -1,3 +1,5 @@
+import "./mobile_layout.css";
+
import type AppContext from "../components/app_context.js";
import GlobalMenuWidget from "../widgets/buttons/global_menu.js";
import CloseZenModeButton from "../widgets/close_zen_button.js";
@@ -20,7 +22,6 @@ import NoteTitleWidget from "../widgets/note_title.js";
import NoteTreeWidget from "../widgets/note_tree.js";
import NoteWrapperWidget from "../widgets/note_wrapper.js";
import NoteDetail from "../widgets/NoteDetail.jsx";
-import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
import QuickSearchWidget from "../widgets/quick_search.js";
import { useNoteContext } from "../widgets/react/hooks.jsx";
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
@@ -30,98 +31,11 @@ import SearchResult from "../widgets/search_result.jsx";
import MobileEditorToolbar from "../widgets/type_widgets/text/mobile_editor_toolbar.jsx";
import { applyModals } from "./layout_commons.js";
-const MOBILE_CSS = `
-`;
-
-const FANCYTREE_CSS = `
-`;
-
export default class MobileLayout {
getRootWidget(appContext: typeof AppContext) {
const rootContainer = new RootContainer(true)
.setParent(appContext)
.class("horizontal-layout")
- .cssBlock(MOBILE_CSS)
.child(new FlexContainer("column").id("mobile-sidebar-container"))
.child(
new FlexContainer("row")
@@ -135,7 +49,7 @@ export default class MobileLayout {
.css("padding-inline-start", "0")
.css("padding-inline-end", "0")
.css("contain", "content")
- .child(new FlexContainer("column").filling().id("mobile-sidebar-wrapper").child(new QuickSearchWidget()).child(new NoteTreeWidget().cssBlock(FANCYTREE_CSS)))
+ .child(new FlexContainer("column").filling().id("mobile-sidebar-wrapper").child(new QuickSearchWidget()).child(new NoteTreeWidget()))
)
.child(
new ScreenContainer("detail", "row")
@@ -155,7 +69,6 @@ export default class MobileLayout {
.child()
.child()
)
- .child()
.child(
new ScrollingContainer()
.filling()
diff --git a/apps/client/src/services/content_renderer.css b/apps/client/src/services/content_renderer.css
new file mode 100644
index 0000000000..80764486d4
--- /dev/null
+++ b/apps/client/src/services/content_renderer.css
@@ -0,0 +1,9 @@
+.rendered-content.no-preview > div {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ align-items: center;
+ height: 100%;
+ font-size: 500%;
+ flex-grow: 1;
+}
diff --git a/apps/client/src/services/content_renderer.ts b/apps/client/src/services/content_renderer.ts
index 4fbf51024c..50fc94580d 100644
--- a/apps/client/src/services/content_renderer.ts
+++ b/apps/client/src/services/content_renderer.ts
@@ -1,3 +1,5 @@
+import "./content_renderer.css";
+
import { normalizeMimeTypeForCKEditor } from "@triliumnext/commons";
import WheelZoom from 'vanilla-js-wheel-zoom';
@@ -71,18 +73,9 @@ export async function getRenderedContent(this: {} | { ctx: string }, entity: FNo
$renderedContent.append($("
").append("
This note is protected and to access it you need to enter password.
").append("
").append($button));
} else if (entity instanceof FNote) {
- $renderedContent
- .css("display", "flex")
- .css("flex-direction", "column");
+ $renderedContent.addClass("no-preview");
$renderedContent.append(
- $("
")
- .css("display", "flex")
- .css("justify-content", "space-around")
- .css("align-items", "center")
- .css("height", "100%")
- .css("font-size", "500%")
- .css("flex-grow", "1")
- .append($("
").addClass(entity.getIcon()))
+ $("").append($("
").addClass(entity.getIcon()))
);
if (entity.type === "webView" && entity.hasLabel("webViewSrc")) {
diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css
index cac9bc2989..7b18f9356c 100644
--- a/apps/client/src/stylesheets/style.css
+++ b/apps/client/src/stylesheets/style.css
@@ -28,7 +28,7 @@
--bs-body-color: var(--main-text-color) !important;
--bs-body-bg: var(--main-background-color) !important;
--ck-mention-list-max-height: 500px;
- --tn-modal-max-height: 90vh;
+ --tn-modal-max-height: 90svh;
--tree-item-light-theme-max-color-lightness: 50;
--tree-item-dark-theme-min-color-lightness: 75;
@@ -111,6 +111,7 @@ body.mobile #root-widget.virtual-keyboard-opened #mobile-bottom-bar {
}
#mobile-bottom-bar {
+ border-top: 1px solid var(--main-border-color);
padding-bottom: var(--mobile-bottom-offset);
}
@@ -1553,8 +1554,8 @@ body:not(.mobile) #launcher-pane.horizontal .dropdown-submenu > .dropdown-menu {
max-height: calc(var(--tn-modal-max-height) - var(--dropdown-bottom));
}
- body.mobile .modal-dialog .dropdown-menu.mobile-bottom-menu.show {
- --dropdown-bottom: 0;
+ body.mobile .dropdown-menu.mobile-bottom-menu.show {
+ --dropdown-bottom: 0px;
}
#mobile-sidebar-container {
@@ -1682,47 +1683,15 @@ body:not(.mobile) #launcher-pane.horizontal .dropdown-submenu > .dropdown-menu {
background: var(--main-background-color);
}
- .modal-dialog {
- margin: var(--bs-modal-margin);
- max-width: 80%;
- }
+ body.mobile {
+ .modal-dialog {
+ margin: var(--bs-modal-margin);
+ max-width: 80%;
+ }
- .modal-content {
- height: 100%;
- }
-}
-
-@media (max-width: 991px) {
- body.mobile.force-fixed-tree #mobile-sidebar-wrapper {
- padding-top: 0;
- position: static;
- height: 40vh;
- width: 100vw;
- transform: none !important;
- background-color: var(--left-pane-background-color) !important;
- border-bottom: 0.5px solid var(--main-border-color);
- }
-
- body.mobile.force-fixed-tree #mobile-sidebar-container {
- display: none !important;
- }
-
- body.mobile.force-fixed-tree #mobile-sidebar-wrapper .quick-search {
- display: none;
- }
-
- body.mobile.force-fixed-tree .component > button.bx-sidebar {
- visibility: hidden;
- padding: 0;
- width: 6px;
- }
-
- body.mobile.force-fixed-tree #mobile-rest-container {
- flex-direction: column !important;
- }
-
- body.mobile.force-fixed-tree #detail-container {
- flex-grow: 1;
+ .modal-content {
+ height: 100%;
+ }
}
}
@@ -2638,10 +2607,10 @@ iframe.print-iframe {
}
}
- /* #root-widget.virtual-keyboard-opened .note-split:not(:focus-within) {
+ #root-widget.virtual-keyboard-opened .note-split:not(.active) {
max-height: 80px;
opacity: 0.4;
- } */
+ }
}
}
diff --git a/apps/client/src/stylesheets/theme-next/pages.css b/apps/client/src/stylesheets/theme-next/pages.css
index f323d00005..e6125e80e2 100644
--- a/apps/client/src/stylesheets/theme-next/pages.css
+++ b/apps/client/src/stylesheets/theme-next/pages.css
@@ -156,6 +156,10 @@
--preferred-max-content-width: var(--options-card-max-width);
}
+.note-split.options .collection-properties {
+ visibility: hidden;
+}
+
/* Create a gap at the top of the option pages */
.note-detail-content-widget-content.options>*:first-child {
margin-top: var(--options-first-item-top-margin, 1em);
diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css
index 18ab495907..0df9d6686a 100644
--- a/apps/client/src/stylesheets/theme-next/shell.css
+++ b/apps/client/src/stylesheets/theme-next/shell.css
@@ -739,18 +739,12 @@ body[dir=rtl] #left-pane span.fancytree-node.protected > span.fancytree-custom-i
transform: translateX(-25%);
}
-body.mobile .fancytree-expander::before,
-body.mobile .fancytree-title,
-body.mobile .fancytree-node > span {
- font-size: 1rem !important;
-}
-
@media (max-width: 991px) {
body.mobile #mobile-sidebar-container {
background-color: rgba(0, 0, 0, 0.5);
}
- body.mobile:not(.force-fixed-tree) #mobile-sidebar-wrapper {
+ body.mobile #mobile-sidebar-wrapper {
border-top-right-radius: 12px;
border-bottom-right-radius: 12px;
border-inline-end: 1px solid var(--subtle-border-color);
@@ -1272,7 +1266,7 @@ body.layout-horizontal #rest-pane > .classic-toolbar-widget {
#center-pane .note-split {
padding-top: 2px;
background-color: var(--note-split-background-color, var(--main-background-color));
- transition: border-color 250ms ease-in;
+ transition: border-color 150ms ease-out;
border: 2px solid transparent;
}
diff --git a/apps/client/src/widgets/NoteDetail.css b/apps/client/src/widgets/NoteDetail.css
index 4382277805..0f6cdbfb03 100644
--- a/apps/client/src/widgets/NoteDetail.css
+++ b/apps/client/src/widgets/NoteDetail.css
@@ -3,6 +3,29 @@
font-family: var(--detail-font-family);
font-size: var(--detail-font-size);
contain: none;
+
+ &.fixed-tree {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+
+ .fixed-note-tree-container {
+ height: 60%;
+ border-bottom: 1px solid var(--main-border-color);
+
+ .tree-wrapper {
+ padding: 0;
+ }
+
+ .tree {
+ padding: 0;
+ }
+
+ ul {
+ margin: 0;
+ }
+ }
+ }
}
body.prefers-centered-content .note-detail {
@@ -12,4 +35,4 @@ body.prefers-centered-content .note-detail {
.note-detail > * {
contain: none;
-}
\ No newline at end of file
+}
diff --git a/apps/client/src/widgets/NoteDetail.tsx b/apps/client/src/widgets/NoteDetail.tsx
index 64a485188e..4c3e778f1b 100644
--- a/apps/client/src/widgets/NoteDetail.tsx
+++ b/apps/client/src/widgets/NoteDetail.tsx
@@ -1,5 +1,6 @@
import "./NoteDetail.css";
+import clsx from "clsx";
import { isValidElement, VNode } from "preact";
import { useEffect, useRef, useState } from "preact/hooks";
@@ -12,8 +13,9 @@ import { t } from "../services/i18n";
import protected_session_holder from "../services/protected_session_holder";
import toast from "../services/toast.js";
import { dynamicRequire, isElectron, isMobile } from "../services/utils";
+import NoteTreeWidget from "./note_tree";
import { ExtendedNoteType, TYPE_MAPPINGS, TypeWidget } from "./note_types";
-import { useNoteContext, useTriliumEvent } from "./react/hooks";
+import { useLegacyWidget, useNoteContext, useTriliumEvent } from "./react/hooks";
import { NoteListWithLinks } from "./react/NoteList";
import { TypeWidgetProps } from "./type_widgets/type_widget";
@@ -36,6 +38,7 @@ export default function NoteDetail() {
const [ noteTypesToRender, setNoteTypesToRender ] = useState<{ [ key in ExtendedNoteType ]?: (props: TypeWidgetProps) => VNode }>({});
const [ activeNoteType, setActiveNoteType ] = useState();
const widgetRequestId = useRef(0);
+ const hasFixedTree = noteContext?.hoistedNoteId === "_lbMobileRoot" && isMobile();
const props: TypeWidgetProps = {
note: note!,
@@ -119,13 +122,6 @@ export default function NoteDetail() {
}
});
- // Fixed tree for launch bar config on mobile.
- useEffect(() => {
- if (!isMobile) return;
- const hasFixedTree = noteContext?.hoistedNoteId === "_lbMobileRoot";
- document.body.classList.toggle("force-fixed-tree", hasFixedTree);
- }, [ note ]);
-
// Handle toast notifications.
useEffect(() => {
if (!isElectron()) return;
@@ -215,8 +211,13 @@ export default function NoteDetail() {
return (
+ {hasFixedTree &&
}
+
{Object.entries(noteTypesToRender).map(([ itemType, Element ]) => {
return
new NoteTreeWidget(), { noteContext });
+ return {treeEl}
;
+}
+
/**
* Wraps a single note type widget, in order to keep it in the DOM even after the user has switched away to another note type. This allows faster loading of the same note type again. The properties are cached, so that they are updated only
* while the widget is visible, to avoid rendering in the background. When not visible, the DOM element is simply hidden.
diff --git a/apps/client/src/widgets/buttons/global_menu.tsx b/apps/client/src/widgets/buttons/global_menu.tsx
index 95a3b8b946..0986c8ad29 100644
--- a/apps/client/src/widgets/buttons/global_menu.tsx
+++ b/apps/client/src/widgets/buttons/global_menu.tsx
@@ -105,8 +105,7 @@ function BrowserOnlyOptions() {
function DevelopmentOptions({ dropStart }: { dropStart: boolean }) {
return <>
-
- Development Options
+
{experimentalFeatures.map((feature) => (
diff --git a/apps/client/src/widgets/containers/root_container.ts b/apps/client/src/widgets/containers/root_container.ts
index 03df4a8ec6..e81d867ef4 100644
--- a/apps/client/src/widgets/containers/root_container.ts
+++ b/apps/client/src/widgets/containers/root_container.ts
@@ -1,11 +1,12 @@
-import { EventData } from "../../components/app_context.js";
import { LOCALES } from "@triliumnext/commons";
-import { readCssVar } from "../../utils/css-var.js";
-import FlexContainer from "./flex_container.js";
-import options from "../../services/options.js";
-import type BasicWidget from "../basic_widget.js";
-import utils from "../../services/utils.js";
+
+import { EventData } from "../../components/app_context.js";
import { getEnabledExperimentalFeatureIds } from "../../services/experimental_features.js";
+import options from "../../services/options.js";
+import utils, { isMobile } from "../../services/utils.js";
+import { readCssVar } from "../../utils/css-var.js";
+import type BasicWidget from "../basic_widget.js";
+import FlexContainer from "./flex_container.js";
/**
* The root container is the top-most widget/container, from which the entire layout derives.
@@ -88,7 +89,7 @@ export default class RootContainer extends FlexContainer {
}
#setBackdropEffects() {
- const enabled = options.is("backdropEffectsEnabled");
+ const enabled = options.is("backdropEffectsEnabled") && !isMobile();
document.body.classList.toggle("backdrop-effects-disabled", !enabled);
}
@@ -96,7 +97,7 @@ export default class RootContainer extends FlexContainer {
// Supports background effects
const useBgfx = readCssVar(document.documentElement, "allow-background-effects")
- .asBoolean(false);
+ .asBoolean(false);
document.body.classList.toggle("theme-supports-background-effects", useBgfx);
}
diff --git a/apps/client/src/widgets/layout/NoteTitleActions.tsx b/apps/client/src/widgets/layout/NoteTitleActions.tsx
index 96a2e92963..7c4e68698a 100644
--- a/apps/client/src/widgets/layout/NoteTitleActions.tsx
+++ b/apps/client/src/widgets/layout/NoteTitleActions.tsx
@@ -1,25 +1,21 @@
import "./NoteTitleActions.css";
-import clsx from "clsx";
import { useEffect, useState } from "preact/hooks";
import NoteContext from "../../components/note_context";
import FNote from "../../entities/fnote";
import { t } from "../../services/i18n";
-import CollectionProperties from "../note_bars/CollectionProperties";
import { checkFullHeight, getExtendedWidgetType } from "../NoteDetail";
import { PromotedAttributesContent, usePromotedAttributeData } from "../PromotedAttributes";
-import SimpleBadge from "../react/Badge";
import Collapsible, { ExternallyControlledCollapsible } from "../react/Collapsible";
import { useNoteContext, useNoteLabel, useNoteProperty, useTriliumEvent, useTriliumOptionBool } from "../react/hooks";
-import NoteLink, { NewNoteLink } from "../react/NoteLink";
+import { NewNoteLink } from "../react/NoteLink";
import { useEditedNotes } from "../ribbon/EditedNotesTab";
import SearchDefinitionTab from "../ribbon/SearchDefinitionTab";
import NoteTypeSwitcher from "./NoteTypeSwitcher";
export default function NoteTitleActions() {
- const { note, ntxId, componentId, noteContext } = useNoteContext();
- const isHiddenNote = note && note.noteId !== "_search" && note.noteId.startsWith("_");
+ const { note, ntxId, componentId, noteContext, viewScope } = useNoteContext();
const noteType = useNoteProperty(note, "type");
return (
@@ -27,7 +23,7 @@ export default function NoteTitleActions() {
{noteType === "search" && }
-
+ {viewScope?.viewMode === "default" && }
);
}
diff --git a/apps/client/src/widgets/mobile_widgets/TabSwitcher.css b/apps/client/src/widgets/mobile_widgets/TabSwitcher.css
index f401ee61b0..8be65240b2 100644
--- a/apps/client/src/widgets/mobile_widgets/TabSwitcher.css
+++ b/apps/client/src/widgets/mobile_widgets/TabSwitcher.css
@@ -89,12 +89,25 @@
&.type-text {
padding: 10px;
+ --ck-content-todo-list-checkmark-size: 8px;
+
+ p { margin-bottom: 0.2em;}
+ hr { margin-block: 0.1em; height: 1px; }
+ h2 { font-size: 1.20em; }
+ h3 { font-size: 1.15em; }
+ h4 { font-size: 1.10em; }
+ h5 { font-size: 1.05em}
+ h6 { font-size: 1em; }
+ ul, ol { margin: 0 }
}
&.type-book,
&.type-contentWidget,
&.type-search,
- &.type-empty {
+ &.type-empty,
+ &.type-relationMap,
+ &.type-launcher,
+ &.tab-preview-placeholder {
display: flex;
align-items: center;
justify-content: center;
@@ -105,13 +118,6 @@
.preview-placeholder {
font-size: 500%;
}
-
- p { margin-bottom: 0.2em;}
- h2 { font-size: 1.20em; }
- h3 { font-size: 1.15em; }
- h4 { font-size: 1.10em; }
- h5 { font-size: 1.05em}
- h6 { font-size: 1em; }
}
&.with-split {
diff --git a/apps/client/src/widgets/mobile_widgets/TabSwitcher.tsx b/apps/client/src/widgets/mobile_widgets/TabSwitcher.tsx
index 6ee84f0465..ff92b6512e 100644
--- a/apps/client/src/widgets/mobile_widgets/TabSwitcher.tsx
+++ b/apps/client/src/widgets/mobile_widgets/TabSwitcher.tsx
@@ -1,6 +1,7 @@
import "./TabSwitcher.css";
import clsx from "clsx";
+import { ComponentChild } from "preact";
import { createPortal, Fragment } from "preact/compat";
import { useCallback, useEffect, useRef, useState } from "preact/hooks";
@@ -11,6 +12,7 @@ import contextMenu from "../../menus/context_menu";
import { getHue, parseColor } from "../../services/css_class_manager";
import froca from "../../services/froca";
import { t } from "../../services/i18n";
+import type { ViewMode, ViewScope } from "../../services/link";
import { NoteContent } from "../collections/legacy/ListOrGridView";
import { LaunchBarActionButton } from "../launch_bar/launch_bar_widgets";
import { ICON_MAPPINGS } from "../note_bars/CollectionProperties";
@@ -20,6 +22,13 @@ import Icon from "../react/Icon";
import LinkButton from "../react/LinkButton";
import Modal from "../react/Modal";
+const VIEW_MODE_ICON_MAPPINGS: Record, string> = {
+ source: "bx bx-code",
+ "contextual-help": "bx bx-help-circle",
+ "note-map": "bx bxs-network-chart",
+ attachments: "bx bx-paperclip",
+};
+
export default function TabSwitcher() {
const [ shown, setShown ] = useState(false);
const mainNoteContexts = useMainNoteContexts();
@@ -138,7 +147,6 @@ function Tab({ noteContext, containerRef, selectTab, activeNtxId }: {
activeNtxId: string | null | undefined;
}) {
const { note } = noteContext;
- const iconClass = useNoteIcon(note);
const colorClass = note?.getColorClass() || '';
const workspaceTabBackgroundColorHue = getWorkspaceTabBackgroundColorHue(noteContext);
const subContexts = noteContext.getSubContexts();
@@ -158,46 +166,65 @@ function Tab({ noteContext, containerRef, selectTab, activeNtxId }: {
>
{subContexts.map(subContext => (
-
- {subContext.note && }
- {subContext.note?.title ?? t("tab_row.new_tab")}
- {subContext.isMainContext() && {
- // We are closing a tab, so we need to prevent propagation for click (activate tab).
- e.stopPropagation();
- appContext.tabManager.removeNoteContext(subContext.ntxId);
- }}
- />}
-
-
-
-
+
+
))}
);
}
-function TabPreviewContent({ note }: {
- note: FNote | null
-}) {
- if (!note) {
- return ;
- }
+function TabHeader({ noteContext, colorClass }: { noteContext: NoteContext, colorClass: string }) {
+ const iconClass = useNoteIcon(noteContext.note);
+ const [ navigationTitle, setNavigationTitle ] = useState(null);
- if (note.type === "book") {
- return ;
- }
+ // Manage the title for read-only notes
+ useEffect(() => {
+ noteContext?.getNavigationTitle().then(setNavigationTitle);
+ }, [noteContext]);
return (
-
+ {noteContext.note && }
+ {navigationTitle ?? noteContext.note?.title ?? t("tab_row.new_tab")}
+ {noteContext.isMainContext() && {
+ // We are closing a tab, so we need to prevent propagation for click (activate tab).
+ e.stopPropagation();
+ appContext.tabManager.removeNoteContext(noteContext.ntxId);
+ }}
+ />}
+
+ );
+}
+
+function TabPreviewContent({ note, viewScope }: {
+ note: FNote | null,
+ viewScope: ViewScope | undefined
+}) {
+ let el: ComponentChild;
+ let isPlaceholder = true;
+
+ if (!note) {
+ el = ;
+ } else if (note.type === "book") {
+ el = ;
+ } else if (viewScope?.viewMode && viewScope.viewMode !== "default") {
+ el = ;
+ } else {
+ el =
+ />;
+ isPlaceholder = false;
+ }
+
+ return (
+ {el}
);
}
diff --git a/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx b/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx
index 06c6f8e11c..f35137b77a 100644
--- a/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx
+++ b/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx
@@ -1,6 +1,7 @@
import "./mobile_detail_menu.css";
-import { createPortal, useState } from "preact/compat";
+import { Dropdown as BootstrapDropdown } from "bootstrap";
+import { createPortal, useRef, useState } from "preact/compat";
import FNote, { NotePathRecord } from "../../entities/fnote";
import { t } from "../../services/i18n";
@@ -20,6 +21,7 @@ import SimilarNotesTab from "../ribbon/SimilarNotesTab";
import { useProcessedLocales } from "../type_widgets/options/components/LocaleSelector";
export default function MobileDetailMenu() {
+ const dropdownRef = useRef(null);
const { note, noteContext, parentComponent, ntxId, viewScope, hoistedNoteId } = useNoteContext();
const subContexts = noteContext?.getMainContext().getSubContexts() ?? [];
const isMainContext = noteContext?.isMainContext();
@@ -42,6 +44,7 @@ export default function MobileDetailMenu() {
{note ? (
@@ -70,7 +73,12 @@ export default function MobileDetailMenu() {
{subContexts.length < 2 && <>
parentComponent.triggerCommand("openNewNoteSplit", { ntxId })}
+ onClick={(e) => {
+ // We have to manually manage the hide because otherwise the old note context gets activated.
+ e.stopPropagation();
+ dropdownRef.current?.hide();
+ parentComponent.triggerCommand("openNewNoteSplit", { ntxId });
+ }}
icon="bx bx-dock-right"
>{t("create_pane_button.create_new_split")}
>}
@@ -223,7 +231,6 @@ function CodeNoteSwitcherModal({ note, modalShown, setModalShown }: { note: FNot
server.put(`notes/${note.noteId}/type`, { type, mime });
setModalShown(false);
}}
- // setModalShown={() => setModalShown(true)}
/>}
diff --git a/apps/client/src/widgets/note_tree.css b/apps/client/src/widgets/note_tree.css
index 57e3460ac2..dbcb66cbc1 100644
--- a/apps/client/src/widgets/note_tree.css
+++ b/apps/client/src/widgets/note_tree.css
@@ -1,4 +1,4 @@
-#left-pane .tree-wrapper {
+.tree-wrapper {
.note-indicator-icon.subtree-hidden-badge {
font-family: inherit !important;
margin-inline: 0.5em;
diff --git a/apps/client/src/widgets/ribbon/NoteActions.tsx b/apps/client/src/widgets/ribbon/NoteActions.tsx
index 51788085d2..daeab278cc 100644
--- a/apps/client/src/widgets/ribbon/NoteActions.tsx
+++ b/apps/client/src/widgets/ribbon/NoteActions.tsx
@@ -22,7 +22,7 @@ import MovePaneButton from "../buttons/move_pane_button";
import ActionButton from "../react/ActionButton";
import Dropdown from "../react/Dropdown";
import { FormDropdownDivider, FormDropdownSubmenu, FormListHeader, FormListItem, FormListToggleableItem } from "../react/FormList";
-import { useIsNoteReadOnly, useNoteContext, useNoteLabel, useNoteLabelBoolean, useNoteProperty, useTriliumEvent, useTriliumOption } from "../react/hooks";
+import { useIsNoteReadOnly, useNoteContext, useNoteLabel, useNoteLabelBoolean, useNoteProperty, useSyncedRef, useTriliumEvent, useTriliumOption } from "../react/hooks";
import { ParentComponent } from "../react/react_utils";
import { NoteTypeDropdownContent, useNoteBookmarkState, useShareState } from "./BasicPropertiesTab";
import NoteActionsCustom from "./NoteActionsCustom";
@@ -63,8 +63,13 @@ function RevisionsButton({ note }: { note: FNote }) {
type ItemToFocus = "basic-properties";
-export function NoteContextMenu({ note, noteContext, extraItems }: { note: FNote, noteContext?: NoteContext, extraItems?: ComponentChildren; }) {
- const dropdownRef = useRef(null);
+export function NoteContextMenu({ note, noteContext, extraItems, dropdownRef: externalDropdownRef }: {
+ note: FNote,
+ noteContext?: NoteContext,
+ extraItems?: ComponentChildren;
+ dropdownRef?: RefObject;
+}) {
+ const dropdownRef = useSyncedRef(externalDropdownRef, null);
const parentComponent = useContext(ParentComponent);
const noteType = useNoteProperty(note, "type") ?? "";
const [viewType] = useNoteLabel(note, "viewType");
diff --git a/apps/client/src/widgets/ribbon/NoteActionsCustom.css b/apps/client/src/widgets/ribbon/NoteActionsCustom.css
index e0ad0eb8fb..3c2a2000ce 100644
--- a/apps/client/src/widgets/ribbon/NoteActionsCustom.css
+++ b/apps/client/src/widgets/ribbon/NoteActionsCustom.css
@@ -1,4 +1,3 @@
body.mobile .note-actions-custom:not(:empty) {
margin-bottom: calc(var(--bs-dropdown-divider-margin-y) * 2);
- border-top: 1px solid var(--bs-dropdown-divider-bg);
}
diff --git a/apps/client/src/widgets/ribbon/NotePathsTab.tsx b/apps/client/src/widgets/ribbon/NotePathsTab.tsx
index 0b81ebe036..2ef9085331 100644
--- a/apps/client/src/widgets/ribbon/NotePathsTab.tsx
+++ b/apps/client/src/widgets/ribbon/NotePathsTab.tsx
@@ -1,7 +1,7 @@
import "./NotePathsTab.css";
import clsx from "clsx";
-import { useEffect, useMemo, useState } from "preact/hooks";
+import { useContext, useEffect, useMemo, useState } from "preact/hooks";
import FNote, { NotePathRecord } from "../../entities/fnote";
import { t } from "../../services/i18n";
@@ -9,7 +9,7 @@ import { NOTE_PATH_TITLE_SEPARATOR } from "../../services/tree";
import { useTriliumEvent } from "../react/hooks";
import LinkButton from "../react/LinkButton";
import NoteLink from "../react/NoteLink";
-import { joinElements } from "../react/react_utils";
+import { joinElements, ParentComponent } from "../react/react_utils";
import { TabContext } from "./ribbon-interface";
export default function NotePathsTab({ note, hoistedNoteId, notePath }: TabContext) {
@@ -21,6 +21,7 @@ export function NotePathsWidget({ sortedNotePaths, currentNotePath }: {
sortedNotePaths: NotePathRecord[] | undefined;
currentNotePath?: string | null | undefined;
}) {
+ const parentComponent = useContext(ParentComponent);
return (
<>
@@ -40,7 +41,7 @@ export function NotePathsWidget({ sortedNotePaths, currentNotePath }: {
parentComponent?.triggerCommand("cloneNoteIdsTo")}
/>
>
diff --git a/apps/client/src/widgets/type_widgets/options/appearance.tsx b/apps/client/src/widgets/type_widgets/options/appearance.tsx
index 3cff63ed66..94fc1f1fbd 100644
--- a/apps/client/src/widgets/type_widgets/options/appearance.tsx
+++ b/apps/client/src/widgets/type_widgets/options/appearance.tsx
@@ -388,10 +388,10 @@ function Performance() {
currentValue={shadowsEnabled} onChange={setShadowsEnabled}
/>
-
+ />}
{isElectron() && }
diff --git a/apps/client/src/widgets/type_widgets/text/mobile_editor_toolbar.tsx b/apps/client/src/widgets/type_widgets/text/mobile_editor_toolbar.tsx
index 86e7129ef6..2d40315525 100644
--- a/apps/client/src/widgets/type_widgets/text/mobile_editor_toolbar.tsx
+++ b/apps/client/src/widgets/type_widgets/text/mobile_editor_toolbar.tsx
@@ -1,8 +1,10 @@
-import { MutableRef, useCallback, useEffect, useRef, useState } from "preact/hooks";
-import { useNoteContext, useTriliumEvent } from "../../react/hooks";
import "./mobile_editor_toolbar.css";
-import { isIOS } from "../../../services/utils";
+
import { CKTextEditor, ClassicEditor } from "@triliumnext/ckeditor5";
+import { MutableRef, useCallback, useEffect, useRef, useState } from "preact/hooks";
+
+import { isIOS } from "../../../services/utils";
+import { useIsNoteReadOnly, useNoteContext, useNoteProperty, useTriliumEvent } from "../../react/hooks";
interface MobileEditorToolbarProps {
inPopupEditor?: boolean;
@@ -17,17 +19,13 @@ interface MobileEditorToolbarProps {
export default function MobileEditorToolbar({ inPopupEditor }: MobileEditorToolbarProps) {
const containerRef = useRef(null);
const { note, noteContext, ntxId } = useNoteContext();
- const [ shouldDisplay, setShouldDisplay ] = useState(false);
+ const noteType = useNoteProperty(note, "type");
+ const { isReadOnly } = useIsNoteReadOnly(note, noteContext);
+ const shouldDisplay = noteType === "text" && isReadOnly === false;
const [ dropdownActive, setDropdownActive ] = useState(false);
usePositioningOniOS(!inPopupEditor, containerRef);
- useEffect(() => {
- noteContext?.isReadOnly().then(isReadOnly => {
- setShouldDisplay(note?.type === "text" && !isReadOnly);
- });
- }, [ note ]);
-
// Attach the toolbar from the CKEditor.
useTriliumEvent("textEditorRefreshed", ({ ntxId: eventNtxId, editor }) => {
if (eventNtxId !== ntxId || !containerRef.current) return;
@@ -62,15 +60,15 @@ export default function MobileEditorToolbar({ inPopupEditor }: MobileEditorToolb
return (
- )
+ );
}
function usePositioningOniOS(enabled: boolean, wrapperRef: MutableRef) {
const adjustPosition = useCallback(() => {
if (!wrapperRef.current) return;
- let bottom = window.innerHeight - (window.visualViewport?.height || 0);
+ const bottom = window.innerHeight - (window.visualViewport?.height || 0);
wrapperRef.current.style.bottom = `${bottom}px`;
}, []);
diff --git a/package.json b/package.json
index 8015f90bf6..2d66b6b943 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,7 @@
"eslint-config-prettier": "10.1.8",
"eslint-plugin-playwright": "2.5.1",
"eslint-plugin-simple-import-sort": "12.1.1",
- "happy-dom": "20.4.0",
+ "happy-dom": "20.5.0",
"http-server": "14.1.1",
"jiti": "2.6.1",
"js-yaml": "4.1.1",
diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json
index d31e3a5ff1..af4b31a38a 100644
--- a/packages/ckeditor5/package.json
+++ b/packages/ckeditor5/package.json
@@ -16,7 +16,7 @@
"ckeditor5-premium-features": "47.4.0"
},
"devDependencies": {
- "@smithy/middleware-retry": "4.4.29",
+ "@smithy/middleware-retry": "4.4.30",
"@types/jquery": "3.5.33"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 68404cf8df..a62fc6eee1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -108,8 +108,8 @@ importers:
specifier: 12.1.1
version: 12.1.1(eslint@9.39.2(jiti@2.6.1))
happy-dom:
- specifier: 20.4.0
- version: 20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+ specifier: 20.5.0
+ version: 20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
http-server:
specifier: 14.1.1
version: 14.1.1
@@ -151,13 +151,13 @@ importers:
version: 4.5.4(@types/node@24.10.9)(rollup@4.52.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
apps/build-docs:
devDependencies:
'@redocly/cli':
- specifier: 2.15.0
- version: 2.15.0(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)
+ specifier: 2.15.1
+ version: 2.15.1(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)
archiver:
specifier: 7.0.1
version: 7.0.1
@@ -361,8 +361,8 @@ importers:
specifier: 13.0.1
version: 13.0.1(webpack@5.101.3(esbuild@0.27.2))
happy-dom:
- specifier: 20.4.0
- version: 20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+ specifier: 20.5.0
+ version: 20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
lightningcss:
specifier: 1.31.1
version: 1.31.1
@@ -887,7 +887,7 @@ importers:
version: 7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
packages/ckeditor5:
dependencies:
@@ -917,8 +917,8 @@ importers:
version: 47.4.0(bufferutil@4.0.9)(ckeditor5@47.4.0)(utf-8-validate@6.0.5)
devDependencies:
'@smithy/middleware-retry':
- specifier: 4.4.29
- version: 4.4.29
+ specifier: 4.4.30
+ version: 4.4.30
'@types/jquery':
specifier: 3.5.33
version: 3.5.33
@@ -978,7 +978,7 @@ importers:
version: 2.0.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio:
specifier: 9.23.3
version: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1038,7 +1038,7 @@ importers:
version: 2.0.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio:
specifier: 9.23.3
version: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1098,7 +1098,7 @@ importers:
version: 2.0.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio:
specifier: 9.23.3
version: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1165,7 +1165,7 @@ importers:
version: 2.0.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio:
specifier: 9.23.3
version: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1232,7 +1232,7 @@ importers:
version: 2.0.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio:
specifier: 9.23.3
version: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -3562,10 +3562,6 @@ packages:
resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
engines: {node: 20 || >=22}
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
'@isaacs/fs-minipass@4.0.1':
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
@@ -4245,10 +4241,6 @@ packages:
'@phosphor-icons/web@2.1.2':
resolution: {integrity: sha512-rPAR9o/bEcp4Cw4DEeZHXf+nlGCMNGkNDRizYHM47NLxz9vvEHp/Tt6FMK1NcWadzw/pFDPnRBGi/ofRya958A==}
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
'@playwright/test@1.58.1':
resolution: {integrity: sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==}
engines: {node: '>=18'}
@@ -4629,27 +4621,27 @@ packages:
'@redocly/ajv@8.17.2':
resolution: {integrity: sha512-rcbDZOfXAgGEJeJ30aWCVVJvxV9ooevb/m1/SFblO2qHs4cqTk178gx7T/vdslf57EA4lTofrwsq5K8rxK9g+g==}
- '@redocly/cli@2.15.0':
- resolution: {integrity: sha512-PjqCE1HDSHgHOrNxixeJSrumy8an2O4rcjXCIfdiHAjB1HOlMEtdgrz5OCx9f0lzcOXrgi61ThFNvO5jG56tUw==}
+ '@redocly/cli@2.15.1':
+ resolution: {integrity: sha512-wnzIxQxqhcg9HQUbjxD++cnRpCI8pUUFw2YV9XlFcvDp1EpPy6QokSnZZL3TbC1PLqzTE2XnUycawoTPv9hBuA==}
engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'}
hasBin: true
'@redocly/config@0.22.2':
resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==}
- '@redocly/config@0.41.2':
- resolution: {integrity: sha512-G6muhdTKcEV2TECBFzuT905p4a27OgUtwBqRVnMx1JebO6i8zlm6bPB2H3fD1Hl+MiUpk7Jx2kwGmLVgpz5nIg==}
+ '@redocly/config@0.41.4':
+ resolution: {integrity: sha512-LaRKXpHyK5GxmgG2n2e8xp2NyUa8qZls3WMAVg5hKO4b2d7X5uU5F2jvH6JUTVdRW/VfStQqan5DQ1uQz7MVzg==}
'@redocly/openapi-core@1.34.5':
resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==}
engines: {node: '>=18.17.0', npm: '>=9.5.0'}
- '@redocly/openapi-core@2.15.0':
- resolution: {integrity: sha512-q/2UM5tA9mgk4zaIDUkKOG9KBUqIdSIhp5DugHmFOszOE+WMiL23BIV40K79jNF9aSU3zF1p1c/Zu0UoBmBsZg==}
+ '@redocly/openapi-core@2.15.1':
+ resolution: {integrity: sha512-6OKY+ZgAnU2B1OoPQHXXWCXwNQQUn+8N7WfGMrpRZxorQsB9EcQs0rYofO4mquFzvmIgU2owf8cLaD771pv3BQ==}
engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'}
- '@redocly/respect-core@2.15.0':
- resolution: {integrity: sha512-0LFtQXNUE+e9OdGDLS+yt4RBx0JTGhM7UAaBC4tzLqPvhtbdWo/WB/WdasGIt4vMM9K47KivxPHmX13sSLEO2Q==}
+ '@redocly/respect-core@2.15.1':
+ resolution: {integrity: sha512-Qrbhv/TE0TkxNaoDv1hPtNcpMORQiSrU9R95ZtI6KevgUcuEK2GgmoXHTrtVdWdxnpqm8bESTxffcz7+etMjOQ==}
engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'}
'@replit/codemirror-indentation-markers@6.5.3':
@@ -5047,14 +5039,14 @@ packages:
resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==}
engines: {node: '>=18.0.0'}
- '@smithy/core@3.21.1':
- resolution: {integrity: sha512-NUH8R4O6FkN8HKMojzbGg/5pNjsfTjlMmeFclyPfPaXXUrbr5TzhWgbf7t92wfrpCHRgpjyz7ffASIS3wX28aA==}
- engines: {node: '>=18.0.0'}
-
'@smithy/core@3.22.0':
resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==}
engines: {node: '>=18.0.0'}
+ '@smithy/core@3.22.1':
+ resolution: {integrity: sha512-x3ie6Crr58MWrm4viHqqy2Du2rHYZjwu8BekasrQx4ca+Y24dzVAwq3yErdqIbc2G3I0kLQA13PQ+/rde+u65g==}
+ engines: {node: '>=18.0.0'}
+
'@smithy/credential-provider-imds@4.0.6':
resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==}
engines: {node: '>=18.0.0'}
@@ -5103,16 +5095,16 @@ packages:
resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-endpoint@4.4.11':
- resolution: {integrity: sha512-/WqsrycweGGfb9sSzME4CrsuayjJF6BueBmkKlcbeU5q18OhxRrvvKlmfw3tpDsK5ilx2XUJvoukwxHB0nHs/Q==}
- engines: {node: '>=18.0.0'}
-
'@smithy/middleware-endpoint@4.4.12':
resolution: {integrity: sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-retry@4.4.29':
- resolution: {integrity: sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==}
+ '@smithy/middleware-endpoint@4.4.13':
+ resolution: {integrity: sha512-x6vn0PjYmGdNuKh/juUJJewZh7MoQ46jYaJ2mvekF4EesMuFfrl4LaW/k97Zjf8PTCPQmPgMvwewg7eNoH9n5w==}
+ engines: {node: '>=18.0.0'}
+
+ '@smithy/middleware-retry@4.4.30':
+ resolution: {integrity: sha512-CBGyFvN0f8hlnqKH/jckRDz78Snrp345+PVk8Ux7pnkUCW97Iinse59lY78hBt04h1GZ6hjBN94BRwZy1xC8Bg==}
engines: {node: '>=18.0.0'}
'@smithy/middleware-serde@4.2.9':
@@ -5131,6 +5123,10 @@ packages:
resolution: {integrity: sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==}
engines: {node: '>=18.0.0'}
+ '@smithy/node-http-handler@4.4.9':
+ resolution: {integrity: sha512-KX5Wml5mF+luxm1szW4QDz32e3NObgJ4Fyw+irhph4I/2geXwUy4jkIMUs5ZPGflRBeR6BUkC2wqIab4Llgm3w==}
+ engines: {node: '>=18.0.0'}
+
'@smithy/property-provider@4.2.8':
resolution: {integrity: sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==}
engines: {node: '>=18.0.0'}
@@ -5159,14 +5155,14 @@ packages:
resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==}
engines: {node: '>=18.0.0'}
- '@smithy/smithy-client@4.10.12':
- resolution: {integrity: sha512-VKO/HKoQ5OrSHW6AJUmEnUKeXI1/5LfCwO9cwyao7CmLvGnZeM1i36Lyful3LK1XU7HwTVieTqO1y2C/6t3qtA==}
- engines: {node: '>=18.0.0'}
-
'@smithy/smithy-client@4.11.1':
resolution: {integrity: sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==}
engines: {node: '>=18.0.0'}
+ '@smithy/smithy-client@4.11.2':
+ resolution: {integrity: sha512-SCkGmFak/xC1n7hKRsUr6wOnBTJ3L22Qd4e8H1fQIuKTAjntwgU8lrdMe7uHdiT2mJAOWA/60qaW9tiMu69n1A==}
+ engines: {node: '>=18.0.0'}
+
'@smithy/types@4.12.0':
resolution: {integrity: sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==}
engines: {node: '>=18.0.0'}
@@ -5235,6 +5231,10 @@ packages:
resolution: {integrity: sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==}
engines: {node: '>=18.0.0'}
+ '@smithy/util-stream@4.5.11':
+ resolution: {integrity: sha512-lKmZ0S/3Qj2OF5H1+VzvDLb6kRxGzZHq6f3rAsoSu5cTLGsn3v3VQBA8czkNNXlLjoFEtVu3OQT2jEeOtOE2CA==}
+ engines: {node: '>=18.0.0'}
+
'@smithy/util-uri-escape@4.2.0':
resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==}
engines: {node: '>=18.0.0'}
@@ -8803,10 +8803,6 @@ packages:
foreach@2.0.6:
resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==}
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
form-data-encoder@4.1.0:
resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==}
engines: {node: '>= 18'}
@@ -9050,10 +9046,6 @@ packages:
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- glob@10.5.0:
- resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
- hasBin: true
-
glob@13.0.0:
resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==}
engines: {node: 20 || >=22}
@@ -9170,8 +9162,8 @@ packages:
engines: {node: '>=0.4.7'}
hasBin: true
- happy-dom@20.4.0:
- resolution: {integrity: sha512-RDeQm3dT9n0A5f/TszjUmNCLEuPnMGv3Tv4BmNINebz/h17PA6LMBcxJ5FrcqltNBMh9jA/8ufgDdBYUdBt+eg==}
+ happy-dom@20.5.0:
+ resolution: {integrity: sha512-VQe+Q5CYiGOgcCERXhcfNsbnrN92FDEKciMH/x6LppU9dd0j4aTjCTlqONFOIMcAm/5JxS3+utowbXV1OoFr+g==}
engines: {node: '>=20.0.0'}
has-bigints@1.1.0:
@@ -9961,9 +9953,6 @@ packages:
resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
engines: {node: '>= 0.4'}
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
-
jake@10.9.2:
resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
engines: {node: '>=10'}
@@ -11688,10 +11677,6 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
-
path-scurry@2.0.0:
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
engines: {node: 20 || >=22}
@@ -15293,7 +15278,7 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.821.0
'@aws-sdk/util-user-agent-node': 3.823.0
'@smithy/config-resolver': 4.4.6
- '@smithy/core': 3.21.1
+ '@smithy/core': 3.22.0
'@smithy/eventstream-serde-browser': 4.0.4
'@smithy/eventstream-serde-config-resolver': 4.1.2
'@smithy/eventstream-serde-node': 4.0.4
@@ -15301,14 +15286,14 @@ snapshots:
'@smithy/hash-node': 4.0.4
'@smithy/invalid-dependency': 4.0.4
'@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.4.11
- '@smithy/middleware-retry': 4.4.29
+ '@smithy/middleware-endpoint': 4.4.12
+ '@smithy/middleware-retry': 4.4.30
'@smithy/middleware-serde': 4.2.9
'@smithy/middleware-stack': 4.2.8
'@smithy/node-config-provider': 4.3.8
'@smithy/node-http-handler': 4.4.8
'@smithy/protocol-http': 5.3.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
'@smithy/url-parser': 4.2.8
'@smithy/util-base64': 4.3.0
@@ -15342,19 +15327,19 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.821.0
'@aws-sdk/util-user-agent-node': 3.823.0
'@smithy/config-resolver': 4.4.6
- '@smithy/core': 3.21.1
+ '@smithy/core': 3.22.0
'@smithy/fetch-http-handler': 5.3.9
'@smithy/hash-node': 4.0.4
'@smithy/invalid-dependency': 4.0.4
'@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.4.11
- '@smithy/middleware-retry': 4.4.29
+ '@smithy/middleware-endpoint': 4.4.12
+ '@smithy/middleware-retry': 4.4.30
'@smithy/middleware-serde': 4.2.9
'@smithy/middleware-stack': 4.2.8
'@smithy/node-config-provider': 4.3.8
'@smithy/node-http-handler': 4.4.8
'@smithy/protocol-http': 5.3.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
'@smithy/url-parser': 4.2.8
'@smithy/util-base64': 4.3.0
@@ -15374,12 +15359,12 @@ snapshots:
dependencies:
'@aws-sdk/types': 3.821.0
'@aws-sdk/xml-builder': 3.821.0
- '@smithy/core': 3.21.1
+ '@smithy/core': 3.22.0
'@smithy/node-config-provider': 4.3.8
'@smithy/property-provider': 4.2.8
'@smithy/protocol-http': 5.3.8
'@smithy/signature-v4': 5.1.2
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
'@smithy/util-base64': 4.3.0
'@smithy/util-body-length-browser': 4.2.0
@@ -15404,7 +15389,7 @@ snapshots:
'@smithy/node-http-handler': 4.4.8
'@smithy/property-provider': 4.2.8
'@smithy/protocol-http': 5.3.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
'@smithy/util-stream': 4.5.10
tslib: 2.8.1
@@ -15516,7 +15501,7 @@ snapshots:
'@aws-sdk/core': 3.823.0
'@aws-sdk/types': 3.821.0
'@aws-sdk/util-endpoints': 3.821.0
- '@smithy/core': 3.21.1
+ '@smithy/core': 3.22.0
'@smithy/protocol-http': 5.3.8
'@smithy/types': 4.12.0
tslib: 2.8.1
@@ -15536,19 +15521,19 @@ snapshots:
'@aws-sdk/util-user-agent-browser': 3.821.0
'@aws-sdk/util-user-agent-node': 3.823.0
'@smithy/config-resolver': 4.4.6
- '@smithy/core': 3.21.1
+ '@smithy/core': 3.22.0
'@smithy/fetch-http-handler': 5.3.9
'@smithy/hash-node': 4.0.4
'@smithy/invalid-dependency': 4.0.4
'@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.4.11
- '@smithy/middleware-retry': 4.4.29
+ '@smithy/middleware-endpoint': 4.4.12
+ '@smithy/middleware-retry': 4.4.30
'@smithy/middleware-serde': 4.2.9
'@smithy/middleware-stack': 4.2.8
'@smithy/node-config-provider': 4.3.8
'@smithy/node-http-handler': 4.4.8
'@smithy/protocol-http': 5.3.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
'@smithy/url-parser': 4.2.8
'@smithy/util-base64': 4.3.0
@@ -16011,8 +15996,6 @@ snapshots:
'@ckeditor/ckeditor5-core': 47.4.0
'@ckeditor/ckeditor5-utils': 47.4.0
ckeditor5: 47.4.0
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)':
dependencies:
@@ -16078,6 +16061,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.4.0
'@ckeditor/ckeditor5-watchdog': 47.4.0
es-toolkit: 1.39.5
+ transitivePeerDependencies:
+ - supports-color
'@ckeditor/ckeditor5-dev-build-tools@54.3.2(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.3)':
dependencies:
@@ -16230,8 +16215,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.4.0
ckeditor5: 47.4.0
es-toolkit: 1.39.5
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-editor-multi-root@47.4.0':
dependencies:
@@ -16254,8 +16237,6 @@ snapshots:
'@ckeditor/ckeditor5-table': 47.4.0
'@ckeditor/ckeditor5-utils': 47.4.0
ckeditor5: 47.4.0
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-emoji@47.4.0':
dependencies:
@@ -16281,8 +16262,6 @@ snapshots:
'@ckeditor/ckeditor5-core': 47.4.0
'@ckeditor/ckeditor5-engine': 47.4.0
'@ckeditor/ckeditor5-utils': 47.4.0
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-essentials@47.4.0':
dependencies:
@@ -16440,8 +16419,6 @@ snapshots:
'@ckeditor/ckeditor5-widget': 47.4.0
ckeditor5: 47.4.0
es-toolkit: 1.39.5
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-icons@47.4.0': {}
@@ -16743,8 +16720,6 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.4.0
'@ckeditor/ckeditor5-utils': 47.4.0
ckeditor5: 47.4.0
- transitivePeerDependencies:
- - supports-color
'@ckeditor/ckeditor5-restricted-editing@47.4.0':
dependencies:
@@ -18561,15 +18536,6 @@ snapshots:
dependencies:
'@isaacs/balanced-match': 4.0.1
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
-
'@isaacs/fs-minipass@4.0.1':
dependencies:
minipass: 7.1.2
@@ -19379,9 +19345,6 @@ snapshots:
'@phosphor-icons/web@2.1.2': {}
- '@pkgjs/parseargs@0.11.0':
- optional: true
-
'@playwright/test@1.58.1':
dependencies:
playwright: 1.58.1
@@ -19780,14 +19743,14 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- '@redocly/cli@2.15.0(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)':
+ '@redocly/cli@2.15.1(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)':
dependencies:
'@opentelemetry/exporter-trace-otlp-http': 0.202.0(@opentelemetry/api@1.9.0)
'@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.34.0
- '@redocly/openapi-core': 2.15.0
- '@redocly/respect-core': 2.15.0
+ '@redocly/openapi-core': 2.15.1
+ '@redocly/respect-core': 2.15.1
abort-controller: 3.0.0
ajv: '@redocly/ajv@8.17.1'
ajv-formats: 3.0.1(@redocly/ajv@8.17.1)
@@ -19798,6 +19761,7 @@ snapshots:
handlebars: 4.7.8
https-proxy-agent: 7.0.6
mobx: 6.15.0
+ picomatch: 4.0.3
pluralize: 8.0.0
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
@@ -19820,7 +19784,7 @@ snapshots:
'@redocly/config@0.22.2': {}
- '@redocly/config@0.41.2':
+ '@redocly/config@0.41.4':
dependencies:
json-schema-to-ts: 2.7.2
@@ -19838,10 +19802,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@redocly/openapi-core@2.15.0':
+ '@redocly/openapi-core@2.15.1':
dependencies:
'@redocly/ajv': 8.17.2
- '@redocly/config': 0.41.2
+ '@redocly/config': 0.41.4
ajv: '@redocly/ajv@8.17.2'
ajv-formats: 3.0.1(@redocly/ajv@8.17.2)
colorette: 1.4.0
@@ -19851,12 +19815,12 @@ snapshots:
pluralize: 8.0.0
yaml-ast-parser: 0.0.43
- '@redocly/respect-core@2.15.0':
+ '@redocly/respect-core@2.15.1':
dependencies:
'@faker-js/faker': 7.6.0
'@noble/hashes': 1.8.0
'@redocly/ajv': 8.17.1
- '@redocly/openapi-core': 2.15.0
+ '@redocly/openapi-core': 2.15.1
ajv: '@redocly/ajv@8.17.1'
better-ajv-errors: 1.2.0(@redocly/ajv@8.17.1)
colorette: 2.0.20
@@ -19864,6 +19828,7 @@ snapshots:
jsonpath-rfc9535: 1.3.0
openapi-sampler: 1.6.2
outdent: 0.8.0
+ picomatch: 4.0.3
'@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)':
dependencies:
@@ -20193,7 +20158,7 @@ snapshots:
'@smithy/util-middleware': 4.2.8
tslib: 2.8.1
- '@smithy/core@3.21.1':
+ '@smithy/core@3.22.0':
dependencies:
'@smithy/middleware-serde': 4.2.9
'@smithy/protocol-http': 5.3.8
@@ -20206,7 +20171,7 @@ snapshots:
'@smithy/uuid': 1.1.0
tslib: 2.8.1
- '@smithy/core@3.22.0':
+ '@smithy/core@3.22.1':
dependencies:
'@smithy/middleware-serde': 4.2.9
'@smithy/protocol-http': 5.3.8
@@ -20214,7 +20179,7 @@ snapshots:
'@smithy/util-base64': 4.3.0
'@smithy/util-body-length-browser': 4.2.0
'@smithy/util-middleware': 4.2.8
- '@smithy/util-stream': 4.5.10
+ '@smithy/util-stream': 4.5.11
'@smithy/util-utf8': 4.2.0
'@smithy/uuid': 1.1.0
tslib: 2.8.1
@@ -20291,17 +20256,6 @@ snapshots:
'@smithy/types': 4.12.0
tslib: 2.8.1
- '@smithy/middleware-endpoint@4.4.11':
- dependencies:
- '@smithy/core': 3.21.1
- '@smithy/middleware-serde': 4.2.9
- '@smithy/node-config-provider': 4.3.8
- '@smithy/shared-ini-file-loader': 4.4.3
- '@smithy/types': 4.12.0
- '@smithy/url-parser': 4.2.8
- '@smithy/util-middleware': 4.2.8
- tslib: 2.8.1
-
'@smithy/middleware-endpoint@4.4.12':
dependencies:
'@smithy/core': 3.22.0
@@ -20313,12 +20267,23 @@ snapshots:
'@smithy/util-middleware': 4.2.8
tslib: 2.8.1
- '@smithy/middleware-retry@4.4.29':
+ '@smithy/middleware-endpoint@4.4.13':
+ dependencies:
+ '@smithy/core': 3.22.1
+ '@smithy/middleware-serde': 4.2.9
+ '@smithy/node-config-provider': 4.3.8
+ '@smithy/shared-ini-file-loader': 4.4.3
+ '@smithy/types': 4.12.0
+ '@smithy/url-parser': 4.2.8
+ '@smithy/util-middleware': 4.2.8
+ tslib: 2.8.1
+
+ '@smithy/middleware-retry@4.4.30':
dependencies:
'@smithy/node-config-provider': 4.3.8
'@smithy/protocol-http': 5.3.8
'@smithy/service-error-classification': 4.2.8
- '@smithy/smithy-client': 4.11.1
+ '@smithy/smithy-client': 4.11.2
'@smithy/types': 4.12.0
'@smithy/util-middleware': 4.2.8
'@smithy/util-retry': 4.2.8
@@ -20351,6 +20316,14 @@ snapshots:
'@smithy/types': 4.12.0
tslib: 2.8.1
+ '@smithy/node-http-handler@4.4.9':
+ dependencies:
+ '@smithy/abort-controller': 4.2.8
+ '@smithy/protocol-http': 5.3.8
+ '@smithy/querystring-builder': 4.2.8
+ '@smithy/types': 4.12.0
+ tslib: 2.8.1
+
'@smithy/property-provider@4.2.8':
dependencies:
'@smithy/types': 4.12.0
@@ -20392,16 +20365,6 @@ snapshots:
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
- '@smithy/smithy-client@4.10.12':
- dependencies:
- '@smithy/core': 3.21.1
- '@smithy/middleware-endpoint': 4.4.11
- '@smithy/middleware-stack': 4.2.8
- '@smithy/protocol-http': 5.3.8
- '@smithy/types': 4.12.0
- '@smithy/util-stream': 4.5.10
- tslib: 2.8.1
-
'@smithy/smithy-client@4.11.1':
dependencies:
'@smithy/core': 3.22.0
@@ -20412,6 +20375,16 @@ snapshots:
'@smithy/util-stream': 4.5.10
tslib: 2.8.1
+ '@smithy/smithy-client@4.11.2':
+ dependencies:
+ '@smithy/core': 3.22.1
+ '@smithy/middleware-endpoint': 4.4.13
+ '@smithy/middleware-stack': 4.2.8
+ '@smithy/protocol-http': 5.3.8
+ '@smithy/types': 4.12.0
+ '@smithy/util-stream': 4.5.11
+ tslib: 2.8.1
+
'@smithy/types@4.12.0':
dependencies:
tslib: 2.8.1
@@ -20457,7 +20430,7 @@ snapshots:
'@smithy/util-defaults-mode-browser@4.0.22':
dependencies:
'@smithy/property-provider': 4.2.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
bowser: 2.11.0
tslib: 2.8.1
@@ -20468,7 +20441,7 @@ snapshots:
'@smithy/credential-provider-imds': 4.0.6
'@smithy/node-config-provider': 4.3.8
'@smithy/property-provider': 4.2.8
- '@smithy/smithy-client': 4.10.12
+ '@smithy/smithy-client': 4.11.1
'@smithy/types': 4.12.0
tslib: 2.8.1
@@ -20510,6 +20483,17 @@ snapshots:
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
+ '@smithy/util-stream@4.5.11':
+ dependencies:
+ '@smithy/fetch-http-handler': 5.3.9
+ '@smithy/node-http-handler': 4.4.9
+ '@smithy/types': 4.12.0
+ '@smithy/util-base64': 4.3.0
+ '@smithy/util-buffer-from': 4.2.0
+ '@smithy/util-hex-encoding': 4.2.0
+ '@smithy/util-utf8': 4.2.0
+ tslib: 2.8.1
+
'@smithy/util-uri-escape@4.2.0':
dependencies:
tslib: 2.8.1
@@ -21493,7 +21477,7 @@ snapshots:
'@vitest/browser-webdriverio@4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18)(webdriverio@9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))':
dependencies:
'@vitest/browser': 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18)
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
webdriverio: 9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
transitivePeerDependencies:
- bufferutil
@@ -21510,7 +21494,7 @@ snapshots:
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
transitivePeerDependencies:
- bufferutil
@@ -21530,7 +21514,7 @@ snapshots:
magicast: 0.5.1
obug: 2.1.1
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -21546,7 +21530,7 @@ snapshots:
obug: 2.1.1
std-env: 3.10.0
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
optionalDependencies:
'@vitest/browser': 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18)
@@ -21594,7 +21578,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)
'@vitest/utils@4.0.18':
dependencies:
@@ -22020,7 +22004,7 @@ snapshots:
archiver-utils@5.0.2:
dependencies:
- glob: 10.5.0
+ glob: 13.0.0
graceful-fs: 4.2.11
is-stream: 2.0.1
lazystream: 1.0.1
@@ -25124,11 +25108,6 @@ snapshots:
foreach@2.0.6: {}
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
-
form-data-encoder@4.1.0: {}
form-data@4.0.5:
@@ -25402,15 +25381,6 @@ snapshots:
glob-to-regexp@0.4.1: {}
- glob@10.5.0:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
glob@13.0.0:
dependencies:
minimatch: 10.1.1
@@ -25556,7 +25526,7 @@ snapshots:
optionalDependencies:
uglify-js: 3.19.3
- happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
+ happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
dependencies:
'@types/node': 24.10.9
'@types/whatwg-mimetype': 3.0.2
@@ -26390,12 +26360,6 @@ snapshots:
has-symbols: 1.1.0
set-function-name: 2.0.2
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
jake@10.9.2:
dependencies:
async: 3.2.6
@@ -28589,11 +28553,6 @@ snapshots:
path-parse@1.0.7: {}
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
path-scurry@2.0.0:
dependencies:
lru-cache: 11.2.4
@@ -32022,7 +31981,7 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.1
- vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1):
+ vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.9)(@vitest/browser-webdriverio@4.0.18)(@vitest/ui@4.0.18)(happy-dom@20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(jiti@2.6.1)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.1.3)(lightningcss@1.31.1)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
'@vitest/expect': 4.0.18
'@vitest/mocker': 4.0.18(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))
@@ -32049,7 +32008,7 @@ snapshots:
'@types/node': 24.10.9
'@vitest/browser-webdriverio': 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18)(webdriverio@9.23.3(bufferutil@4.0.9)(utf-8-validate@6.0.5))
'@vitest/ui': 4.0.18(vitest@4.0.18)
- happy-dom: 20.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+ happy-dom: 20.5.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
transitivePeerDependencies:
- jiti