diff --git a/package-lock.json b/package-lock.json index fef9044fed8..3aa43279fa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,18 @@ { "name": "care_fe", - "version": "2.10.0", + "version": "2.13.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "care_fe", - "version": "2.10.0", + "version": "2.13.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@fontsource/figtree": "^5.1.1", "@headlessui/react": "^2.2.0", - "@hookform/resolvers": "^3.10.0", + "@hookform/resolvers": "^4.0.0", "@originjs/vite-plugin-federation": "^1.3.7", "@radix-ui/react-alert-dialog": "^1.1.2", "@radix-ui/react-avatar": "^1.1.2", @@ -35,7 +35,7 @@ "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.5", "@radix-ui/react-tooltip": "^1.1.6", - "@sentry/browser": "^8.51.0", + "@sentry/browser": "^9.0.0", "@tanstack/react-query": "^5.64.1", "@tanstack/react-query-devtools": "^5.64.2", "@vitejs/plugin-react": "^4.3.4", @@ -58,7 +58,7 @@ "input-otp": "^1.4.2", "jspdf": "^2.5.2", "libphonenumber-js": "^1.11.18", - "lucide-react": "^0.474.0", + "lucide-react": "^0.475.0", "markdown-it": "^14.1.0", "next-themes": "^0.4.3", "postcss-loader": "^8.1.1", @@ -144,8 +144,8 @@ "optionalDependencies": { "@esbuild/linux-arm64": "latest", "@esbuild/linux-x64": "latest", - "@rollup/rollup-linux-arm64-gnu": "4.34.4", - "@rollup/rollup-linux-x64-gnu": "4.34.4" + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6" } }, "node_modules/@actions/core": { @@ -3920,9 +3920,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", + "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", "dev": true, "license": "MIT", "engines": { @@ -4042,9 +4042,9 @@ } }, "node_modules/@hookform/resolvers": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", - "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-4.0.0.tgz", + "integrity": "sha512-93ZueVlTaeMF0pRbrLbcnzrxeb2mGA/xyO3RgfrsKs5OCtcfjoWcdjBJm+N7096Jfg/JYlGPjuyQCgqVEodSTg==", "license": "MIT", "peerDependencies": { "react-hook-form": "^7.0.0" @@ -5877,9 +5877,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.4.tgz", - "integrity": "sha512-7CwSJW+sEhM9sESEk+pEREF2JL0BmyCro8UyTq0Kyh0nu1v0QPNY3yfLPFKChzVoUmaKj8zbdgBxUhBRR+xGxg==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", + "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", "cpu": [ "arm64" ], @@ -5955,9 +5955,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.4.tgz", - "integrity": "sha512-JGejzEfVzqc/XNiCKZj14eb6s5w8DdWlnQ5tWUbs99kkdvfq9btxxVX97AaxiUX7xJTKFA0LwoS0KU8C2faZRg==", + "version": "4.34.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", + "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", "cpu": [ "x64" ], @@ -6020,53 +6020,53 @@ ] }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.54.0.tgz", - "integrity": "sha512-DKWCqb4YQosKn6aD45fhKyzhkdG7N6goGFDeyTaJFREJDFVDXiNDsYZu30nJ6BxMM7uQIaARhPAC5BXfoED3pQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-9.0.1.tgz", + "integrity": "sha512-/2karfYpQFtnkFrWxQgi/DuOf83OGhIdJcEmRDYDZKvj3mGHQ6n7fzIFD8fc0hPupBA/xi2kHVu7DX7scx5Fbw==", "license": "MIT", "dependencies": { - "@sentry/core": "8.54.0" + "@sentry/core": "9.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.54.0.tgz", - "integrity": "sha512-nQqRacOXoElpE0L0ADxUUII0I3A94niqG9Z4Fmsw6057QvyrV/LvTiMQBop6r5qLjwMqK+T33iR4/NQI5RhsXQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-9.0.1.tgz", + "integrity": "sha512-U43WMmhTXx9+wtXaJRnfoFfHz2Zv9fIEWDinYZQ03yGhjnAj3033Ca+mH+wMM0SQjF0KhGLG8Os4B/OGoQzB2g==", "license": "MIT", "dependencies": { - "@sentry/core": "8.54.0" + "@sentry/core": "9.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.54.0.tgz", - "integrity": "sha512-8xuBe06IaYIGJec53wUC12tY2q4z2Z0RPS2s1sLtbA00EvK1YDGuXp96IDD+HB9mnDMrQ/jW5f97g9TvPsPQUg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-9.0.1.tgz", + "integrity": "sha512-QzHClQWOgTEjOiBaCoQMytTSyZUKo/F2SYnzeWF30qNHtOKZSXEUugOeF3Ph0wc47NdH/4qPjYZgbNEYARf2qw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.54.0", - "@sentry/core": "8.54.0" + "@sentry-internal/browser-utils": "9.0.1", + "@sentry/core": "9.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.54.0.tgz", - "integrity": "sha512-K/On3OAUBeq/TV2n+1EvObKC+WMV9npVXpVyJqCCyn8HYMm8FUGzuxeajzm0mlW4wDTPCQor6mK9/IgOquUzCw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-9.0.1.tgz", + "integrity": "sha512-7PBCkqNZQjbAunQmfSRkMKqviQ+jOqB/dy0nvL/T7EaahoD7VzVCGAbL29cLkPmpP3a9dzYk7ALrUqKLApwhRg==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.54.0", - "@sentry/core": "8.54.0" + "@sentry-internal/replay": "9.0.1", + "@sentry/core": "9.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry-internal/tracing": { @@ -6099,28 +6099,28 @@ } }, "node_modules/@sentry/browser": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.54.0.tgz", - "integrity": "sha512-BgUtvxFHin0fS0CmJVKTLXXZcke0Av729IVfi+2fJ4COX8HO7/HAP02RKaSQGmL2HmvWYTfNZ7529AnUtrM4Rg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-9.0.1.tgz", + "integrity": "sha512-alI1r1NyIARjzEm5493QuOPhiT2W1gelGDV30B1oL5cKo1arjqRLHp8Ny5odlTnyDTFC4EIx5Z69J+iyhW0CvQ==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.54.0", - "@sentry-internal/feedback": "8.54.0", - "@sentry-internal/replay": "8.54.0", - "@sentry-internal/replay-canvas": "8.54.0", - "@sentry/core": "8.54.0" + "@sentry-internal/browser-utils": "9.0.1", + "@sentry-internal/feedback": "9.0.1", + "@sentry-internal/replay": "9.0.1", + "@sentry-internal/replay-canvas": "9.0.1", + "@sentry/core": "9.0.1" }, "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry/core": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.54.0.tgz", - "integrity": "sha512-03bWf+D1j28unOocY/5FDB6bUHtYlm6m6ollVejhg45ZmK9iPjdtxNWbrLsjT1WRym0Tjzowu+A3p+eebYEv0Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.0.1.tgz", + "integrity": "sha512-RQ3B3NfF+BdmQz1c+vj4OBO+kxvxSsYMcmCDxSEZ7YrS/6Er1kMy0fwfxmdZJMdM1LlzXmO0XWF2g1IO9CzKyQ==", "license": "MIT", "engines": { - "node": ">=14.18" + "node": ">=18" } }, "node_modules/@sentry/integrations": { @@ -6748,17 +6748,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", - "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", + "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/type-utils": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/type-utils": "8.24.0", + "@typescript-eslint/utils": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6778,9 +6778,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -6792,13 +6792,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -6836,16 +6836,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", - "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", + "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4" }, "engines": { @@ -6861,9 +6861,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -6875,14 +6875,14 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -6902,13 +6902,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -6946,14 +6946,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", + "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6964,9 +6964,9 @@ } }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -6978,13 +6978,13 @@ } }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -7009,14 +7009,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", - "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", + "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/typescript-estree": "8.24.0", + "@typescript-eslint/utils": "8.24.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -7033,9 +7033,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -7047,14 +7047,14 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7074,13 +7074,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -7161,16 +7161,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", + "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" + "@typescript-eslint/scope-manager": "8.24.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/typescript-estree": "8.24.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7185,9 +7185,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", + "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", "dev": true, "license": "MIT", "engines": { @@ -7199,14 +7199,14 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", + "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", + "@typescript-eslint/types": "8.24.0", + "@typescript-eslint/visitor-keys": "8.24.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7226,13 +7226,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", + "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/types": "8.24.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -8971,9 +8971,9 @@ } }, "node_modules/cypress-split": { - "version": "1.24.8", - "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.24.8.tgz", - "integrity": "sha512-gxsZg7Se3iy6eQuYP0w6munfRFBWP81OKc3WWTKQoxxafFWEp9gu173Nx3zoAEDUIEeYxUS1kwmZ7q5hhMN9og==", + "version": "1.24.10", + "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.24.10.tgz", + "integrity": "sha512-8OPOWmOznR/+0sczoKnfDvLYN19u5jnbHYHBLI56ay55OE8WRSSJ64V8Lp/zTY+2+vGuLoplR1vyiApKGKFTPA==", "dev": true, "license": "MIT", "dependencies": { @@ -8982,7 +8982,7 @@ "console.table": "^0.10.0", "debug": "^4.3.4", "fast-shuffle": "^6.1.0", - "find-cypress-specs": "1.46.2", + "find-cypress-specs": "1.47.3", "globby": "^11.1.0", "humanize-duration": "^3.28.0" }, @@ -10134,18 +10134,18 @@ } }, "node_modules/eslint": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "version": "9.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.0.tgz", + "integrity": "sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.11.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", + "@eslint/js": "9.20.0", "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -10368,6 +10368,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", + "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -10833,9 +10846,9 @@ } }, "node_modules/find-cypress-specs": { - "version": "1.46.2", - "resolved": "https://registry.npmjs.org/find-cypress-specs/-/find-cypress-specs-1.46.2.tgz", - "integrity": "sha512-eXvGQMftYDTbQflVX6TzJj7hA0ypO5+FfUrnMdRf1+yCu5xVY5wPv721AWp/xPBOpQXwx5jdoZRH9m95U/1c7A==", + "version": "1.47.3", + "resolved": "https://registry.npmjs.org/find-cypress-specs/-/find-cypress-specs-1.47.3.tgz", + "integrity": "sha512-IBC4VcjbRgesJKty9iBmp+V/RFoN609tfb/mO2vV6L3ZTaVLiHX+n2ubSPPjA5tYD4AS3O2GKKetvaTaVxDMFw==", "dev": true, "license": "MIT", "dependencies": { @@ -10843,7 +10856,7 @@ "arg": "^5.0.1", "console.table": "^0.10.0", "debug": "^4.3.3", - "find-test-names": "1.28.30", + "find-test-names": "1.29.4", "globby": "^11.1.0", "minimatch": "^3.0.4", "pluralize": "^8.0.0", @@ -10884,9 +10897,9 @@ } }, "node_modules/find-test-names": { - "version": "1.28.30", - "resolved": "https://registry.npmjs.org/find-test-names/-/find-test-names-1.28.30.tgz", - "integrity": "sha512-b5PLJ5WnskdaYHBf+38FN/4TKh5lqwrltITkqxuARsN2bW6civrhqOXbVA+4727YNowYLt/jtIC9Dsn7eJSP6A==", + "version": "1.29.4", + "resolved": "https://registry.npmjs.org/find-test-names/-/find-test-names-1.29.4.tgz", + "integrity": "sha512-dpZsHkCyTQKlR6qzid09f/CQ4zGtdRwjMYHlTrmXx3qlzhrxRvxE7lRSFuaiqP0e+rbUcLy6juB6Bq9ohrnEMg==", "dev": true, "license": "MIT", "dependencies": { @@ -13716,9 +13729,9 @@ } }, "node_modules/lucide-react": { - "version": "0.474.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", - "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", + "version": "0.475.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.475.0.tgz", + "integrity": "sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -13779,9 +13792,9 @@ } }, "node_modules/marked": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", - "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", + "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", "dev": true, "license": "MIT", "bin": { @@ -14803,9 +14816,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "funding": [ { "type": "opencollective", @@ -15161,9 +15174,9 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.0.tgz", + "integrity": "sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==", "dev": true, "license": "MIT", "bin": { @@ -16957,9 +16970,9 @@ "license": "MIT" }, "node_modules/snyk": { - "version": "1.1295.2", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1295.2.tgz", - "integrity": "sha512-Unl6HD/XF2DfDEj4pySiQF5bUkc6yS/tljtO9LHgjJjfj4CRGZdNs2HmtfEJHsnda3pqBEUO71L7PXhgouzYGw==", + "version": "1.1295.3", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1295.3.tgz", + "integrity": "sha512-PFPetFXVMx5kt49WraLbr1Lw36jikktxQeOjaK3y/0Bjgm1e1rRjTsKYI83lINhkxUuSRBf9MCm8QUcOEYZiaw==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", diff --git a/package.json b/package.json index fde4e593d50..ce9575a1b39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "care_fe", - "version": "2.10.0", + "version": "2.13.0", "description": "Care is a Digital Public Good enabling TeleICU & Decentralised Administration of Healthcare Capacity across States.", "private": true, "repository": { @@ -51,7 +51,7 @@ "dependencies": { "@fontsource/figtree": "^5.1.1", "@headlessui/react": "^2.2.0", - "@hookform/resolvers": "^3.10.0", + "@hookform/resolvers": "^4.0.0", "@originjs/vite-plugin-federation": "^1.3.7", "@radix-ui/react-alert-dialog": "^1.1.2", "@radix-ui/react-avatar": "^1.1.2", @@ -74,7 +74,7 @@ "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.5", "@radix-ui/react-tooltip": "^1.1.6", - "@sentry/browser": "^8.51.0", + "@sentry/browser": "^9.0.0", "@tanstack/react-query": "^5.64.1", "@tanstack/react-query-devtools": "^5.64.2", "@vitejs/plugin-react": "^4.3.4", @@ -97,7 +97,7 @@ "input-otp": "^1.4.2", "jspdf": "^2.5.2", "libphonenumber-js": "^1.11.18", - "lucide-react": "^0.474.0", + "lucide-react": "^0.475.0", "markdown-it": "^14.1.0", "next-themes": "^0.4.3", "postcss-loader": "^8.1.1", @@ -180,8 +180,8 @@ "optionalDependencies": { "@esbuild/linux-arm64": "latest", "@esbuild/linux-x64": "latest", - "@rollup/rollup-linux-arm64-gnu": "4.34.4", - "@rollup/rollup-linux-x64-gnu": "4.34.4" + "@rollup/rollup-linux-arm64-gnu": "4.34.6", + "@rollup/rollup-linux-x64-gnu": "4.34.6" }, "browserslist": { "production": [ diff --git a/public/locale/en.json b/public/locale/en.json index 320be41f71e..9218f99bd28 100644 --- a/public/locale/en.json +++ b/public/locale/en.json @@ -885,6 +885,7 @@ "encounter_notes__failed_send_message": "Failed to send message", "encounter_notes__new": "New", "encounter_notes__no_discussions": "No discussions yet", + "encounter_notes__no_unused_threads": "Please enter a custom title for thread", "encounter_notes__select_create_thread": "Select or create a thread to start messaging", "encounter_notes__start_conversation": "Start the Conversation", "encounter_notes__start_new_discussion": "Start New Discussion", @@ -1013,6 +1014,7 @@ "facility_updated_successfully": "Facility updated successfully", "failed_to_create_appointment": "Failed to create an appointment", "failed_to_link_abha_number": "Failed to link ABHA Number. Please try again later.", + "failed_to_send_message": "Failed to send message", "false": "False", "fast_track_testing_reason": "Fast track testing reason", "features": "Features", @@ -1110,6 +1112,7 @@ "hide_notes": "Hide notes", "high": "High", "history": "History", + "home": "Home", "home_facility": "Home Facility", "home_facility_cleared_success": "Home Facility cleared successfully", "home_facility_updated_error": "Error while updating Home Facility", @@ -1323,6 +1326,7 @@ "medicines_administered": "Medicine(s) administered", "medicines_administered_error": "Error administering medicine(s)", "member_id_required": "Member Id is required", + "messages": "Messages", "method": "Method", "middleware_hostname": "Middleware Hostname", "middleware_hostname_example": "e.g. example.ohc.network", @@ -1533,6 +1537,7 @@ "page_not_found": "Page Not Found", "pain": "Pain", "pain_chart_description": "Mark region and intensity of pain", + "participants": "Participants", "passport_number": "Passport Number", "password": "Password", "password_length_validation": "Use at least 8 characters", @@ -1575,6 +1580,7 @@ "patient_details": "Patient Details", "patient_details_incomplete": "Patient Details Incomplete", "patient_face": "Patient Face", + "patient_files": "Patient Files", "patient_information": "Patient Information", "patient_name": "Patient Name", "patient_name_uhid": "Patient Name/UHID", @@ -2116,6 +2122,7 @@ "third_party_software_licenses": "Third Party Software Licenses", "this_action_is_irreversible": "This action is irreversible. Once a file is archived it cannot be unarchived.", "this_file_has_been_archived": "This file has been archived and cannot be unarchived.", + "thread_already_exists": "Thread with this title already exists", "time": "Time", "time_slot": "Time Slot", "title": "Title", @@ -2228,6 +2235,7 @@ "update_preset_position_to_current": "Update preset's position to camera's current position", "update_record": "Update Record", "update_record_for_asset": "Update record for asset", + "update_request": "Update Request", "update_role": "Update Role", "update_shift_request": "Update Shift Request", "update_status": "Update Status", diff --git a/src/CAREUI/icons/Index.tsx b/src/CAREUI/icons/Index.tsx index ca8c315a194..59919021f8c 100644 --- a/src/CAREUI/icons/Index.tsx +++ b/src/CAREUI/icons/Index.tsx @@ -22,7 +22,7 @@ const IconIndex: React.FC = () => { return (
- + { name="otp" type="text" value={otp} + autoComplete="one-time-code" onChange={(e) => { setOtp(e.target.value); setOtpValidationError(""); diff --git a/src/components/Common/Breadcrumbs.tsx b/src/components/Common/Breadcrumbs.tsx deleted file mode 100644 index 72951c5a98e..00000000000 --- a/src/components/Common/Breadcrumbs.tsx +++ /dev/null @@ -1,174 +0,0 @@ -import { Link, usePath } from "raviger"; -import { useState } from "react"; - -import CareIcon from "@/CAREUI/icons/CareIcon"; - -import { - Breadcrumb, - BreadcrumbItem, - BreadcrumbList, -} from "@/components/ui/breadcrumb"; -import { Button } from "@/components/ui/button"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; - -import useAppHistory from "@/hooks/useAppHistory"; - -import { classNames } from "@/Utils/utils"; - -const MENU_TAGS: { [key: string]: string } = { - facility: "Facilities", - patients: "Patients", - assets: "Assets", - shifting: "Shiftings", - resource: "Resources", - users: "Users", - notice_board: "Notice Board", -}; - -const capitalize = (string: string) => - string - .replace(/[_-]/g, " ") - .split(" ") - .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) - .join(" "); - -interface BreadcrumbsProps { - replacements?: { - [key: string]: { - name?: string; - uri?: string; - style?: string; - hide?: boolean; - }; - }; - className?: string; - hideBack?: boolean; - backUrl?: string; - onBackClick?: () => boolean | void; -} - -export default function Breadcrumbs({ - replacements = {}, - className = "", - hideBack = false, - backUrl, - onBackClick, -}: BreadcrumbsProps) { - const { goBack } = useAppHistory(); - const path = usePath(); - const [showFullPath, setShowFullPath] = useState(false); - - const crumbs = path - ?.slice(1) - .split("/") - .filter((field) => replacements[field]?.hide !== true) - .map((field, i) => ({ - name: replacements[field]?.name || MENU_TAGS[field] || capitalize(field), - uri: - replacements[field]?.uri || - path - .split("/") - .slice(0, i + 2) - .join("/"), - style: replacements[field]?.style || "", - })); - - const renderCrumb = (crumb: any, index: number) => { - const isLastItem = index === crumbs!.length - 1; - return ( - -
- {!isLastItem ? ( - - ) : ( - {crumb.name} - )} -
-
- ); - }; - - return ( - - - - ); -} diff --git a/src/components/Common/Page.tsx b/src/components/Common/Page.tsx index 24b797d245f..b9079c5089e 100644 --- a/src/components/Common/Page.tsx +++ b/src/components/Common/Page.tsx @@ -33,7 +33,7 @@ export default function Page(props: PageProps) { let padding = ""; if (!props.noImplicitPadding) { - if (!props.hideBack || props.componentRight) padding = "py-0 md:px-6"; + if (props.componentRight) padding = "py-0 md:px-6"; else padding = "px-6 py-0"; } @@ -43,13 +43,8 @@ export default function Page(props: PageProps) { diff --git a/src/components/Common/PageTitle.tsx b/src/components/Common/PageTitle.tsx index cee87a8c5fb..c374124934d 100644 --- a/src/components/Common/PageTitle.tsx +++ b/src/components/Common/PageTitle.tsx @@ -1,46 +1,26 @@ import { ReactNode, useEffect, useRef } from "react"; -import Breadcrumbs from "@/components/Common/Breadcrumbs"; -import PageHeadTitle from "@/components/Common/PageHeadTitle"; +import { cn } from "@/lib/utils"; -import { classNames } from "@/Utils/utils"; +import PageHeadTitle from "@/components/Common/PageHeadTitle"; export interface PageTitleProps { title: string; className?: string; componentRight?: ReactNode; - breadcrumbs?: boolean; - crumbsReplacements?: { - [key: string]: { - name?: string; - uri?: string; - style?: string; - hide?: boolean; - }; - }; focusOnLoad?: boolean; isInsidePage?: boolean; changePageMetadata?: boolean; - // New props for Breadcrumbs - hideBack?: boolean; - backUrl?: string; hideTitleOnPage?: boolean; - onBackClick?: () => boolean | void; } export default function PageTitle({ title, className = "", componentRight = <>, - breadcrumbs = true, - crumbsReplacements = {}, focusOnLoad = false, isInsidePage = false, changePageMetadata = true, - // New props passed to Breadcrumbs - hideBack = false, - backUrl, - onBackClick, hideTitleOnPage, }: PageTitleProps) { const divRef = useRef(); @@ -54,23 +34,12 @@ export default function PageTitle({ return (
-
- {breadcrumbs && ( - - )} -
{changePageMetadata && }
- +
-
+
+ + ; - const { data: facilityData } = useQuery({ - queryKey: ["facility", facilityId], - queryFn: query(routes.getAnyFacility, { - pathParams: { id: String(facilityId) }, - }), - enabled: !!facilityId, - }); - const { data: patientData } = useQuery({ queryKey: ["patient", related_patient], queryFn: query(routes.patient.getPatient, { @@ -167,17 +159,7 @@ export default function ResourceCreate(props: ResourceProps) { } return ( - +
diff --git a/src/components/Resource/ResourceDetails.tsx b/src/components/Resource/ResourceDetails.tsx index f684596c13a..182cd9ab514 100644 --- a/src/components/Resource/ResourceDetails.tsx +++ b/src/components/Resource/ResourceDetails.tsx @@ -123,11 +123,7 @@ export default function ResourceDetails({ } return ( - +
{/* Action Buttons */}
diff --git a/src/components/Resource/ResourceDetailsUpdate.tsx b/src/components/Resource/ResourceDetailsUpdate.tsx index 475fdd3da5c..e589a83c166 100644 --- a/src/components/Resource/ResourceDetailsUpdate.tsx +++ b/src/components/Resource/ResourceDetailsUpdate.tsx @@ -206,11 +206,7 @@ export const ResourceDetailsUpdate = (props: resourceProps) => { } return ( - +
diff --git a/src/components/Resource/ResourceList.tsx b/src/components/Resource/ResourceList.tsx index 96bab782705..7a6c460e900 100644 --- a/src/components/Resource/ResourceList.tsx +++ b/src/components/Resource/ResourceList.tsx @@ -103,16 +103,7 @@ export default function ResourceList({ facilityId }: { facilityId: string }) { const resources = queryResources?.results || []; return ( - +
@@ -167,7 +158,7 @@ export default function ResourceList({ facilityId }: { facilityId: string }) {
-
+
-
+
- + -
+
- + {currentStatuses.map((statusOption) => ( { const levels: Organization[] = []; - if (org) levels.push(org); + if (org && org.org_type === "govt") levels.push(org); setSelectedLevels(levels); }, [org, organizationId]); diff --git a/src/components/Users/UserHome.tsx b/src/components/Users/UserHome.tsx index c53aa40200a..3a78ed253ec 100644 --- a/src/components/Users/UserHome.tsx +++ b/src/components/Users/UserHome.tsx @@ -38,7 +38,6 @@ export default function UserHome(props: UserHomeProps) { if (!username) { username = authUser.username; } - const loggedInUser = username === authUser.username; const { data: userData, @@ -86,24 +85,11 @@ export default function UserHome(props: UserHomeProps) { ? `/facility/${props.facilityId}/users/${username}` : `/users/${username}`; - const usernameCrumb = { - [username]: { name: loggedInUser ? "Profile" : username }, - }; - - const hideUsersCrumb = { users: { hide: true } }; - - const crumbsReplacements = { - ...usernameCrumb, - ...(!props.facilityId && hideUsersCrumb), - }; - return ( <> { diff --git a/src/components/ui/date-field.tsx b/src/components/ui/date-field.tsx index daeff36be5f..b82ad00c9fc 100644 --- a/src/components/ui/date-field.tsx +++ b/src/components/ui/date-field.tsx @@ -45,20 +45,25 @@ export default function DateField({ const newDay = e.target.value; setDay(newDay); + // Check if change is from spinner (stepUp/stepDown) vs keyboard input + const isFromSpinner = + e.nativeEvent instanceof InputEvent && + (e.nativeEvent as InputEvent).inputType === "insertReplacementText"; + if ( - newDay.length === 2 && + (isFromSpinner || newDay.length === 2) && parseInt(newDay) >= 1 && parseInt(newDay) <= 31 ) { - if (isValidDate(year, month, newDay) && onChange) { + const modifiedDay = isFromSpinner ? newDay.padStart(2, "0") : newDay; + if (isValidDate(year, month, modifiedDay) && onChange) { const updatedDate = new Date( parseInt(year), parseInt(month) - 1, - parseInt(newDay), + parseInt(modifiedDay), ); onChange(updatedDate); } - document.getElementById(`${id}-month-input`)?.focus(); } }; @@ -66,21 +71,27 @@ export default function DateField({ const newMonth = e.target.value; setMonth(newMonth); + // Check if change is from spinner (stepUp/stepDown) vs keyboard input + const isFromSpinner = + e.nativeEvent instanceof InputEvent && + (e.nativeEvent as InputEvent).inputType === "insertReplacementText"; + if ( - newMonth.length === 2 && + (isFromSpinner || newMonth.length === 2) && parseInt(newMonth) >= 1 && parseInt(newMonth) <= 12 ) { - if (isValidDate(year, newMonth, day) && onChange) { + const modifiedMonth = isFromSpinner + ? newMonth.padStart(2, "0") + : newMonth; + if (isValidDate(year, modifiedMonth, day) && onChange) { const updatedDate = new Date( parseInt(year), - parseInt(newMonth) - 1, + parseInt(modifiedMonth) - 1, parseInt(day), ); onChange(updatedDate); } - - document.getElementById(`${id}-year-input`)?.focus(); } }; @@ -100,6 +111,38 @@ export default function DateField({ } }; + // Handle day blur to pad single digit values + const handleDayBlur = () => { + if (day.length === 1 && parseInt(day) >= 1 && parseInt(day) <= 9) { + const paddedDay = day.padStart(2, "0"); + setDay(paddedDay); + if (isValidDate(year, month, paddedDay) && onChange) { + const updatedDate = new Date( + parseInt(year), + parseInt(month) - 1, + parseInt(paddedDay), + ); + onChange(updatedDate); + } + } + }; + + // Handle month blur to pad single digit values + const handleMonthBlur = () => { + if (month.length === 1 && parseInt(month) >= 1) { + const paddedMonth = month.padStart(2, "0"); + setMonth(paddedMonth); + if (isValidDate(year, paddedMonth, day) && onChange) { + const updatedDate = new Date( + parseInt(year), + parseInt(paddedMonth) - 1, + parseInt(day), + ); + onChange(updatedDate); + } + } + }; + return (
@@ -109,6 +152,7 @@ export default function DateField({ placeholder="DD" value={day} onChange={handleDayChange} + onBlur={handleDayBlur} min={1} max={31} id={`${id}-day-input`} @@ -124,6 +168,7 @@ export default function DateField({ placeholder="MM" value={month} onChange={handleMonthChange} + onBlur={handleMonthBlur} min={1} max={12} id={`${id}-month-input`} @@ -140,6 +185,7 @@ export default function DateField({ value={year} onChange={handleYearChange} min={1900} + max={new Date().getFullYear()} id={`${id}-year-input`} data-cy={`${id}-year-input`} disabled={disabled} diff --git a/src/pages/Appointments/AppointmentDetail.tsx b/src/pages/Appointments/AppointmentDetail.tsx index 5c0624c1c2e..d83295d6a73 100644 --- a/src/pages/Appointments/AppointmentDetail.tsx +++ b/src/pages/Appointments/AppointmentDetail.tsx @@ -57,7 +57,6 @@ import { stringifyGeoOrganization, } from "@/Utils/utils"; import { AppointmentTokenCard } from "@/pages/Appointments/components/AppointmentTokenCard"; -import { formatAppointmentSlotTime } from "@/pages/Appointments/utils"; import { FacilityData } from "@/types/facility/facility"; import { Appointment, @@ -135,17 +134,9 @@ export default function AppointmentDetail(props: Props) { } const { patient } = appointment; - const appointmentDate = formatAppointmentSlotTime(appointment); return ( - +
+
diff --git a/src/pages/Encounters/EncounterShow.tsx b/src/pages/Encounters/EncounterShow.tsx index 506b3e4867a..020bd8f636d 100644 --- a/src/pages/Encounters/EncounterShow.tsx +++ b/src/pages/Encounters/EncounterShow.tsx @@ -100,21 +100,7 @@ export const EncounterShow = (props: Props) => { return (