diff --git a/.github/actions/build-server/action.yml b/.github/actions/build-server/action.yml index faa3c0752..b92b3875f 100644 --- a/.github/actions/build-server/action.yml +++ b/.github/actions/build-server/action.yml @@ -12,7 +12,7 @@ runs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: "pnpm" - name: Install dependencies shell: bash diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 62e04d48d..503e13909 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -74,7 +74,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v6 with: - node-version: '22' + node-version: '24' cache: 'pnpm' # Install Node.js dependencies for the TypeScript script diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index ec4aeda0e..f9174fb42 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -30,7 +30,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: "pnpm" - run: pnpm install --frozen-lockfile diff --git a/.github/workflows/main-docker.yml b/.github/workflows/main-docker.yml index 407272a99..f020a04a1 100644 --- a/.github/workflows/main-docker.yml +++ b/.github/workflows/main-docker.yml @@ -46,7 +46,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: "pnpm" - name: Install npm dependencies @@ -86,12 +86,12 @@ jobs: - name: Upload Playwright trace if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: Playwright trace (${{ matrix.dockerfile }}) path: test-output/playwright/output - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v5 if: ${{ !cancelled() }} with: name: Playwright report (${{ matrix.dockerfile }}) @@ -146,7 +146,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Install dependencies @@ -209,7 +209,7 @@ jobs: touch "/tmp/digests/${digest#sha256:}" - name: Upload digest - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: digests-${{ env.PLATFORM_PAIR }}-${{ matrix.dockerfile }} path: /tmp/digests/* @@ -223,7 +223,7 @@ jobs: - build steps: - name: Download digests - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: path: /tmp/digests pattern: digests-* diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0d0205f32..ddce68d42 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -52,7 +52,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile @@ -89,7 +89,7 @@ jobs: name: Nightly Build - name: Publish artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 if: ${{ github.event_name == 'pull_request' }} with: name: TriliumNotes ${{ matrix.os.name }} ${{ matrix.arch }} diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 886b46d61..a33d24283 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -24,7 +24,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Install dependencies @@ -35,7 +35,7 @@ jobs: - name: Upload test report if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: e2e report path: apps/server-e2e/test-output diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ee30040d..3d48cb80d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,7 +50,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile @@ -73,7 +73,7 @@ jobs: GPG_SIGNING_KEY: ${{ secrets.GPG_SIGN_KEY }} - name: Upload the artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: release-desktop-${{ matrix.os.name }}-${{ matrix.arch }} path: apps/desktop/upload/*.* @@ -100,7 +100,7 @@ jobs: arch: ${{ matrix.arch }} - name: Upload the artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: release-server-linux-${{ matrix.arch }} path: upload/*.* @@ -120,7 +120,7 @@ jobs: docs/Release Notes - name: Download all artifacts - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: merge-multiple: true pattern: release-* diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index fe94c987a..7a87cc192 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -30,7 +30,7 @@ jobs: - name: Set up node & dependencies uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: "pnpm" - name: Install dependencies diff --git a/_regroup/package.json b/_regroup/package.json index 4cec178aa..0b2a759a9 100644 --- a/_regroup/package.json +++ b/_regroup/package.json @@ -37,9 +37,9 @@ "devDependencies": { "@playwright/test": "1.56.1", "@stylistic/eslint-plugin": "5.5.0", - "@types/express": "5.0.3", - "@types/node": "22.18.12", - "@types/yargs": "17.0.33", + "@types/express": "5.0.5", + "@types/node": "24.9.1", + "@types/yargs": "17.0.34", "@vitest/coverage-v8": "3.2.4", "eslint": "9.38.0", "eslint-plugin-simple-import-sort": "12.1.1", diff --git a/apps/client/package.json b/apps/client/package.json index c2490ebfd..6bc7f10f2 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -1,6 +1,6 @@ { "name": "@triliumnext/client", - "version": "0.99.2", + "version": "0.99.3", "description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)", "private": true, "license": "AGPL-3.0-only", @@ -54,12 +54,12 @@ "leaflet-gpx": "2.2.0", "mark.js": "8.11.1", "marked": "16.4.1", - "mermaid": "11.12.0", - "mind-elixir": "5.3.3", + "mermaid": "11.12.1", + "mind-elixir": "5.3.4", "normalize.css": "8.0.1", "panzoom": "9.4.3", "preact": "10.27.2", - "react-i18next": "16.1.2", + "react-i18next": "16.2.1", "reveal.js": "5.2.1", "svg-pan-zoom": "3.6.2", "tabulator-tables": "6.3.1", @@ -74,9 +74,9 @@ "@types/leaflet-gpx": "1.3.8", "@types/mark.js": "8.11.12", "@types/reveal.js": "5.2.1", - "@types/tabulator-tables": "6.2.11", + "@types/tabulator-tables": "6.3.0", "copy-webpack-plugin": "13.0.1", - "happy-dom": "20.0.7", + "happy-dom": "20.0.8", "script-loader": "0.7.2", "vite-plugin-static-copy": "3.1.4" } diff --git a/apps/client/src/components/app_context.ts b/apps/client/src/components/app_context.ts index ce33d1447..5727032e6 100644 --- a/apps/client/src/components/app_context.ts +++ b/apps/client/src/components/app_context.ts @@ -218,12 +218,12 @@ export type CommandMappings = { /** Works only in the electron context menu. */ replaceMisspelling: CommandData; - importMarkdownInline: CommandData; showPasswordNotSet: CommandData; showProtectedSessionPasswordDialog: CommandData; showUploadAttachmentsDialog: CommandData & { noteId: string }; showIncludeNoteDialog: CommandData & { textTypeWidget: EditableTextTypeWidget }; showAddLinkDialog: CommandData & { textTypeWidget: EditableTextTypeWidget, text: string }; + showPasteMarkdownDialog: CommandData & { textTypeWidget: EditableTextTypeWidget }; closeProtectedSessionPasswordDialog: CommandData; copyImageReferenceToClipboard: CommandData; copyImageToClipboard: CommandData; diff --git a/apps/client/src/layouts/layout_commons.tsx b/apps/client/src/layouts/layout_commons.tsx index 610f31dda..26f8ea232 100644 --- a/apps/client/src/layouts/layout_commons.tsx +++ b/apps/client/src/layouts/layout_commons.tsx @@ -29,8 +29,9 @@ import PromotedAttributesWidget from "../widgets/promoted_attributes.js"; import NoteDetailWidget from "../widgets/note_detail.js"; import CallToActionDialog from "../widgets/dialogs/call_to_action.jsx"; import NoteTitleWidget from "../widgets/note_title.jsx"; -import { PopupEditorFormattingToolbar } from "../widgets/ribbon/FormattingToolbar.js"; +import FormattingToolbar from "../widgets/ribbon/FormattingToolbar.js"; import NoteList from "../widgets/collections/NoteList.jsx"; +import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx"; export function applyModals(rootContainer: RootContainer) { rootContainer @@ -63,7 +64,7 @@ export function applyModals(rootContainer: RootContainer) { .cssBlock(".title-row > * { margin: 5px; }") .child() .child()) - .child() + .child() .child(new PromotedAttributesWidget()) .child(new NoteDetailWidget()) .child()) diff --git a/apps/client/src/layouts/mobile_layout.tsx b/apps/client/src/layouts/mobile_layout.tsx index b952c2d0b..2bae994b6 100644 --- a/apps/client/src/layouts/mobile_layout.tsx +++ b/apps/client/src/layouts/mobile_layout.tsx @@ -24,6 +24,9 @@ import CloseZenModeButton from "../widgets/close_zen_button.js"; import NoteWrapperWidget from "../widgets/note_wrapper.js"; import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js"; import NoteList from "../widgets/collections/NoteList.jsx"; +import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx"; +import SearchDefinitionTab from "../widgets/ribbon/SearchDefinitionTab.jsx"; +import SearchResult from "../widgets/search_result.jsx"; const MOBILE_CSS = `