= ({ className, ...props }) => (
-> = ({ className, children, ...props }) => (
+ React.ComponentPropsWithoutRef & {
+ customClose?: React.JSX.Element;
+ preventAutoFocus?: boolean;
+ }
+> = ({ className, children, customClose, preventAutoFocus, ...props }) => (
e.preventDefault() : props.onOpenAutoFocus
+ }
+ onCloseAutoFocus={
+ preventAutoFocus ? (e) => e.preventDefault() : props.onOpenAutoFocus
+ }
{...props}
>
{children}
-
-
- Close
+
+ {customClose || (
+ <>
+
+ Close
+ >
+ )}
);
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
const DialogHeader = ({
diff --git a/packages/ui/src/shadcn/tooltip.tsx b/packages/ui/src/shadcn/tooltip.tsx
index 1ab8c1f..606b9ef 100644
--- a/packages/ui/src/shadcn/tooltip.tsx
+++ b/packages/ui/src/shadcn/tooltip.tsx
@@ -6,8 +6,18 @@ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
import { cn } from '../lib/utils';
-const TooltipProvider = TooltipPrimitive.Provider;
-
+function TooltipProvider({
+ delayDuration = 0,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ );
+}
const Tooltip = TooltipPrimitive.Root;
const TooltipTrigger = TooltipPrimitive.Trigger;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1837337..80b71bd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -83,6 +83,9 @@ importers:
'@radix-ui/react-icons':
specifier: ^1.3.2
version: 1.3.2(react@19.1.0)
+ '@radix-ui/react-visually-hidden':
+ specifier: ^1.2.3
+ version: 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@supabase/ssr':
specifier: ^0.6.1
version: 0.6.1(@supabase/supabase-js@2.49.4)
@@ -13116,7 +13119,7 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.0.3
+ '@types/node': 22.15.32
merge-stream: 2.0.0
supports-color: 8.1.1
diff --git a/public/assets/card-image.png b/public/assets/card-image.png
new file mode 100644
index 0000000..9c47887
Binary files /dev/null and b/public/assets/card-image.png differ
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 2d18232..280e9f7 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -17,6 +17,7 @@
"imageInputLabel": "Click here to upload an image",
"cancel": "Cancel",
"clear": "Clear",
+ "close": "Close",
"notFound": "Not Found",
"backToHomePage": "Back to Home Page",
"goBack": "Go Back",
@@ -59,6 +60,10 @@
"shoppingCart": "Shopping cart",
"search": "Search{{end}}",
"myActions": "My actions",
+ "healthPackageComparison": {
+ "label": "Health package comparison",
+ "description": "Alljärgnevalt on antud eelinfo (sugu, vanus ja kehamassiindeksi) põhjal tehtud personalne terviseauditi valik. Tabelis on võimalik soovitatud terviseuuringute paketile lisada üksikuid uuringuid juurde."
+ },
"routes": {
"home": "Home",
"overview": "Overview",
diff --git a/public/locales/en/marketing.json b/public/locales/en/marketing.json
index a214fc2..a89e086 100644
--- a/public/locales/en/marketing.json
+++ b/public/locales/en/marketing.json
@@ -36,5 +36,9 @@
"contactErrorDescription": "An error occurred while sending your message. Please try again later",
"footerDescription": "Here you can add a description about your company or product",
"copyright": "© Copyright {{year}} {{product}}. All Rights Reserved.",
- "heroSubtitle": "A simple, convenient, and quick overview of your health condition"
-}
+ "heroSubtitle": "A simple, convenient, and quick overview of your health condition",
+ "selectPackage": "Select package",
+ "selectThisPackage": "Select this package",
+ "comparePackages": "Compare packages",
+ "notInterestedInAudit": "Currently not interested in a health audit"
+}
\ No newline at end of file
diff --git a/public/locales/en/product.json b/public/locales/en/product.json
new file mode 100644
index 0000000..e2aaf81
--- /dev/null
+++ b/public/locales/en/product.json
@@ -0,0 +1,43 @@
+{
+ "standard": {
+ "label": "Standard",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "standardPlus": {
+ "label": "Standard +",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "premium": {
+ "label": "Premium",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "nrOfAnalyses": "{{nr}} analyses",
+ "clinicalBloodDraw": {
+ "label": "Kliiniline vereanalüüs",
+ "description": "Pending"
+ },
+ "crp": {
+ "label": "C-reaktiivne valk (CRP)",
+ "description": "Pending"
+ },
+ "ferritin": {
+ "label": "Ferritiin",
+ "description": "Pending"
+ },
+ "vitaminD": {
+ "label": "D-vitamiin",
+ "description": "Pending"
+ },
+ "glucose": {
+ "label": "Glükoos",
+ "description": "Pending"
+ },
+ "alat": {
+ "label": "Alaniini aminotransferaas",
+ "description": "Pending"
+ },
+ "ast": {
+ "label": "Aspartaadi aminotransferaas",
+ "description": "Pending"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/et/common.json b/public/locales/et/common.json
index a224ca7..75443a0 100644
--- a/public/locales/et/common.json
+++ b/public/locales/et/common.json
@@ -17,6 +17,7 @@
"imageInputLabel": "Click here to upload an image",
"cancel": "Cancel",
"clear": "Clear",
+ "close": "Sulge",
"notFound": "Not Found",
"backToHomePage": "Back to Home Page",
"goBack": "Tagasi",
@@ -59,6 +60,10 @@
"shoppingCart": "Ostukorv",
"search": "Otsi{{end}}",
"myActions": "Minu toimingud",
+ "healthPackageComparison": {
+ "label": "Tervisepakketide võrdlus",
+ "description": "Alljärgnevalt on antud eelinfo (sugu, vanus ja kehamassiindeksi) põhjal tehtud personalne terviseauditi valik. Tabelis on võimalik soovitatud terviseuuringute paketile lisada üksikuid uuringuid juurde."
+ },
"routes": {
"home": "Home",
"overview": "Ülevaade",
diff --git a/public/locales/et/marketing.json b/public/locales/et/marketing.json
index a214fc2..4faec68 100644
--- a/public/locales/et/marketing.json
+++ b/public/locales/et/marketing.json
@@ -36,5 +36,9 @@
"contactErrorDescription": "An error occurred while sending your message. Please try again later",
"footerDescription": "Here you can add a description about your company or product",
"copyright": "© Copyright {{year}} {{product}}. All Rights Reserved.",
- "heroSubtitle": "A simple, convenient, and quick overview of your health condition"
-}
+ "heroSubtitle": "Lihtne, mugav ja kiire ülevaade oma tervisest",
+ "selectPackage": "Vali pakett",
+ "selectThisPackage": "Vali see pakett",
+ "comparePackages": "Võrdle pakette",
+ "notInterestedInAudit": "Ei soovi hetkel terviseauditit"
+}
\ No newline at end of file
diff --git a/public/locales/et/product.json b/public/locales/et/product.json
new file mode 100644
index 0000000..01876f9
--- /dev/null
+++ b/public/locales/et/product.json
@@ -0,0 +1,43 @@
+{
+ "standard": {
+ "label": "Standard",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "standardPlus": {
+ "label": "Standard +",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "premium": {
+ "label": "Premium",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "nrOfAnalyses": "{{nr}} analüüsi",
+ "clinicalBloodDraw": {
+ "label": "Kliiniline vereanalüüs",
+ "description": "Pending"
+ },
+ "crp": {
+ "label": "C-reaktiivne valk (CRP)",
+ "description": "Pending"
+ },
+ "ferritin": {
+ "label": "Ferritiin",
+ "description": "Pending"
+ },
+ "vitaminD": {
+ "label": "D-vitamiin",
+ "description": "Pending"
+ },
+ "glucose": {
+ "label": "Glükoos",
+ "description": "Pending"
+ },
+ "alat": {
+ "label": "Alaniini aminotransferaas",
+ "description": "Pending"
+ },
+ "ast": {
+ "label": "Aspartaadi aminotransferaas",
+ "description": "Pending"
+ }
+}
\ No newline at end of file
diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json
index 8003930..6428f91 100644
--- a/public/locales/ru/common.json
+++ b/public/locales/ru/common.json
@@ -17,6 +17,7 @@
"imageInputLabel": "Click here to upload an image",
"cancel": "Cancel",
"clear": "Clear",
+ "close": "Close",
"notFound": "Not Found",
"backToHomePage": "Back to Home Page",
"goBack": "Go Back",
@@ -59,6 +60,10 @@
"shoppingCart": "Shopping cart",
"search": "Search{{end}}",
"myActions": "My actions",
+ "healthPackageComparison": {
+ "label": "Health package comparison",
+ "description": "Alljärgnevalt on antud eelinfo (sugu, vanus ja kehamassiindeksi) põhjal tehtud personalne terviseauditi valik. Tabelis on võimalik soovitatud terviseuuringute paketile lisada üksikuid uuringuid juurde."
+ },
"routes": {
"home": "Home",
"overview": "Overview",
diff --git a/public/locales/ru/marketing.json b/public/locales/ru/marketing.json
index a214fc2..a89e086 100644
--- a/public/locales/ru/marketing.json
+++ b/public/locales/ru/marketing.json
@@ -36,5 +36,9 @@
"contactErrorDescription": "An error occurred while sending your message. Please try again later",
"footerDescription": "Here you can add a description about your company or product",
"copyright": "© Copyright {{year}} {{product}}. All Rights Reserved.",
- "heroSubtitle": "A simple, convenient, and quick overview of your health condition"
-}
+ "heroSubtitle": "A simple, convenient, and quick overview of your health condition",
+ "selectPackage": "Select package",
+ "selectThisPackage": "Select this package",
+ "comparePackages": "Compare packages",
+ "notInterestedInAudit": "Currently not interested in a health audit"
+}
\ No newline at end of file
diff --git a/public/locales/ru/product.json b/public/locales/ru/product.json
new file mode 100644
index 0000000..e2aaf81
--- /dev/null
+++ b/public/locales/ru/product.json
@@ -0,0 +1,43 @@
+{
+ "standard": {
+ "label": "Standard",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "standardPlus": {
+ "label": "Standard +",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "premium": {
+ "label": "Premium",
+ "description": "Sobib, kui soovid lisaks peamistele tervisenäitajatele ülevaadet, kas organismis on olulisemaid vitamiine ja mineraalaineid piisavalt."
+ },
+ "nrOfAnalyses": "{{nr}} analyses",
+ "clinicalBloodDraw": {
+ "label": "Kliiniline vereanalüüs",
+ "description": "Pending"
+ },
+ "crp": {
+ "label": "C-reaktiivne valk (CRP)",
+ "description": "Pending"
+ },
+ "ferritin": {
+ "label": "Ferritiin",
+ "description": "Pending"
+ },
+ "vitaminD": {
+ "label": "D-vitamiin",
+ "description": "Pending"
+ },
+ "glucose": {
+ "label": "Glükoos",
+ "description": "Pending"
+ },
+ "alat": {
+ "label": "Alaniini aminotransferaas",
+ "description": "Pending"
+ },
+ "ast": {
+ "label": "Aspartaadi aminotransferaas",
+ "description": "Pending"
+ }
+}
\ No newline at end of file
diff --git a/styles/theme.css b/styles/theme.css
index 80b4abf..2b766a7 100644
--- a/styles/theme.css
+++ b/styles/theme.css
@@ -52,6 +52,9 @@
--cyan: hsla(189, 94%, 43%, 1);
--color-cyan: var(--cyan);
+ --purple: hsla(292, 84%, 61%, 1);
+ --color-purple: var(--purple);
+
/* text colors */
--color-text-foreground: var(--foreground);
--color-text-primary: var(--primary);