diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 5e5810f49..182bddebf 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -31,6 +31,7 @@ body:
label: Version
description: What version of Homarr are you running?
options:
+ - 1.15.0
- 1.14.0
- 1.13.1
- 1.13.0
diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json
index a70e5cc62..3832475f1 100644
--- a/apps/nextjs/package.json
+++ b/apps/nextjs/package.json
@@ -56,25 +56,25 @@
"@mantine/tiptap": "^7.17.4",
"@million/lint": "1.0.14",
"@tabler/icons-react": "^3.31.0",
- "@tanstack/react-query": "^5.72.1",
- "@tanstack/react-query-devtools": "^5.72.1",
- "@tanstack/react-query-next-experimental": "^5.72.1",
- "@trpc/client": "^11.0.4",
- "@trpc/next": "^11.0.4",
- "@trpc/react-query": "^11.0.4",
- "@trpc/server": "^11.0.4",
+ "@tanstack/react-query": "^5.72.2",
+ "@tanstack/react-query-devtools": "^5.72.2",
+ "@tanstack/react-query-next-experimental": "^5.72.2",
+ "@trpc/client": "^11.1.0",
+ "@trpc/next": "^11.1.0",
+ "@trpc/react-query": "^11.1.0",
+ "@trpc/server": "^11.1.0",
"@xterm/addon-canvas": "^0.7.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/xterm": "^5.5.0",
"chroma-js": "^3.1.2",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
- "dotenv": "^16.4.7",
+ "dotenv": "^16.5.0",
"flag-icons": "^7.3.2",
"glob": "^11.0.1",
"jotai": "^2.12.2",
"mantine-react-table": "2.0.0-beta.9",
- "next": "15.2.5",
+ "next": "15.3.0",
"postcss-preset-mantine": "^1.17.0",
"prismjs": "^1.30.0",
"react": "19.1.0",
@@ -83,7 +83,7 @@
"react-simple-code-editor": "^0.14.1",
"sass": "^1.86.3",
"superjson": "2.2.2",
- "swagger-ui-react": "^5.20.7",
+ "swagger-ui-react": "^5.20.8",
"use-deep-compare-effect": "^1.8.1",
"zod": "^3.24.2"
},
@@ -94,7 +94,7 @@
"@types/chroma-js": "3.1.1",
"@types/node": "^22.14.0",
"@types/prismjs": "^1.26.5",
- "@types/react": "19.1.0",
+ "@types/react": "19.1.1",
"@types/react-dom": "19.1.2",
"@types/swagger-ui-react": "^5.18.0",
"concurrently": "^9.1.2",
diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
index 45436b476..5be662f0f 100644
--- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
+++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
@@ -25,9 +25,11 @@ import { useEditMode } from "@homarr/boards/edit-mode";
import { revalidatePathActionAsync } from "@homarr/common/client";
import { env } from "@homarr/common/env";
import { useConfirmModal, useModalAction } from "@homarr/modals";
+import { AppSelectModal } from "@homarr/modals-collection";
import { showErrorNotification, showSuccessNotification } from "@homarr/notifications";
import { useI18n, useScopedI18n } from "@homarr/translation/client";
+import { useItemActions } from "~/components/board/items/item-actions";
import { ItemSelectModal } from "~/components/board/items/item-select-modal";
import { useBoardPermissions } from "~/components/board/permissions/client";
import { useCategoryActions } from "~/components/board/sections/category/category-actions";
@@ -62,8 +64,10 @@ export const BoardContentHeaderActions = () => {
const AddMenu = () => {
const { openModal: openCategoryEditModal } = useModalAction(CategoryEditModal);
const { openModal: openItemSelectModal } = useModalAction(ItemSelectModal);
+ const { openModal: openAppSelectModal } = useModalAction(AppSelectModal);
const { addCategoryToEnd } = useCategoryActions();
const { addDynamicSection } = useDynamicSectionActions();
+ const { createItem } = useItemActions();
const t = useI18n();
const handleAddCategory = useCallback(
@@ -90,6 +94,17 @@ const AddMenu = () => {
openItemSelectModal();
}, [openItemSelectModal]);
+ const handleSelectApp = useCallback(() => {
+ openAppSelectModal({
+ onSelect: (appId) => {
+ createItem({
+ kind: "app",
+ options: { appId },
+ });
+ },
+ });
+ }, [openAppSelectModal, createItem]);
+
return (