@mediquo/medicore 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -63,7 +63,7 @@ function CardProgram({
|
|
|
63
63
|
"data-slot": "card-program",
|
|
64
64
|
"data-layout": "featured",
|
|
65
65
|
className: cn(
|
|
66
|
-
"@container relative min-w-0 rounded-xl bg-background shadow-s interactive hover-lift hover-
|
|
66
|
+
"@container relative min-w-0 rounded-xl bg-background shadow-s interactive hover-lift hover-zoom-media",
|
|
67
67
|
className
|
|
68
68
|
),
|
|
69
69
|
...props,
|
|
@@ -97,7 +97,7 @@ function CardProgram({
|
|
|
97
97
|
"data-slot": "card-program",
|
|
98
98
|
"data-layout": "grid",
|
|
99
99
|
className: cn(
|
|
100
|
-
"@container relative flex min-w-0 flex-col rounded-xl bg-background shadow-s interactive hover-lift hover-
|
|
100
|
+
"@container relative flex min-w-0 flex-col rounded-xl bg-background shadow-s interactive hover-lift hover-zoom-media",
|
|
101
101
|
className
|
|
102
102
|
),
|
|
103
103
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-program.js","sources":["../../../src/components/card-program/card-program.tsx"],"sourcesContent":["import type { useRender } from \"@base-ui/react/use-render\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { ArrowNarrowRightIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { Badge } from \"../badge\";\nimport { type CardHeadingLevel, CardLink } from \"../card\";\n\nexport type CardProgramLayout = \"grid\" | \"featured\";\n\nexport interface CardProgramProps\n extends Omit<ComponentProps<\"article\">, \"title\"> {\n /** \"Pérdida de peso\". The card's heading and the link's name. */\n title: ReactNode;\n /** One or two lines. Hidden in the compact (Mobile) card. */\n description?: ReactNode;\n /**\n * The live price of THIS clinic's page, es-ES format with a space: \"Desde 30 €\",\n * \"29,99 €\". Never another clinic's price.\n */\n price: ReactNode;\n /** \"Videoconsulta\". Shown after the price with a \"·\". Hidden in the compact card. */\n channel?: ReactNode;\n /** A real photo from mediQuo's image line: `<img src=\"…\" alt=\"\" />` if it adds nothing. */\n image?: ReactNode;\n /** \"Tratamiento destacado\": a brand Badge (on the image in Grid, above the title in Featured). */\n badge?: ReactNode;\n /** Featured only: a metric Badge next to `badge` (\"4,6/5 valoración\"). */\n metric?: ReactNode;\n /** The programme's page. The whole card is this link. */\n href?: string;\n /** Router link: `render={<Link to=\"…\" />}`. */\n render?: useRender.RenderProp;\n /** Featured only: the one action, a primary `Button` \"Reservar consulta\" (never \"Empezar tratamiento\"). */\n action?: ReactNode;\n /**\n * `grid` (default): the three-column grid; below 240px wide it becomes the compact\n * Mobile card (two-column grid on a phone) by itself. `featured`: the highlighted\n * programme, horizontal from 640px wide.\n */\n layout?: CardProgramLayout;\n /** Level of the title's heading. Default 3. */\n headingLevel?: CardHeadingLevel;\n}\n\nfunction ImageSlot({\n image,\n className,\n children,\n}: {\n image?: ReactNode;\n className?: string;\n children?: ReactNode;\n}): React.JSX.Element {\n return (\n <div\n className={cn(\n \"relative shrink-0 overflow-hidden bg-brand-subtle [&>img]:size-full [&>img]:object-cover\",\n className,\n )}\n >\n {image}\n {children}\n </div>\n );\n}\n\n/**\n * A specialised programme (Clínic). The whole card is the link to the programme's\n * page (a `CardLink` in the title); the arrow is decorative. One action.\n *\n * Figma `Layout=Mobile` is not a value: the `grid` card turns compact (no\n * description, no channel, no arrow) when its column is narrower than 240px.\n */\nexport function CardProgram({\n title,\n description,\n price,\n channel,\n image,\n badge,\n metric,\n href,\n render,\n action,\n layout = \"grid\",\n headingLevel = 3,\n className,\n ...props\n}: CardProgramProps): React.JSX.Element {\n const Heading = `h${headingLevel}` as const;\n const heading =\n href || render ? (\n <CardLink href={href} render={render}>\n {title}\n </CardLink>\n ) : (\n title\n );\n\n const priceRow = (\n <p className=\"flex min-w-0 flex-wrap items-baseline gap-1\">\n <span className=\"text-label-strong text-text-primary\">{price}</span>\n {channel && (\n <span\n className={cn(\n \"text-body-small text-text-secondary\",\n layout === \"grid\" && \"hidden @min-[240px]:inline\",\n )}\n >\n · {channel}\n </span>\n )}\n </p>\n );\n\n if (layout === \"featured\") {\n return (\n <article\n data-slot=\"card-program\"\n data-layout=\"featured\"\n className={cn(\n \"@container relative min-w-0 rounded-xl bg-background shadow-s interactive hover-lift hover-scale hover-zoom-media\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-col @min-[640px]:flex-row\">\n <ImageSlot\n image={image}\n className=\"h-40 rounded-t-xl @min-[640px]:h-auto @min-[640px]:min-h-60 @min-[640px]:w-1/2 @min-[640px]:rounded-tr-none @min-[640px]:rounded-l-xl\"\n />\n <div className=\"flex min-w-0 flex-1 flex-col justify-center gap-4 p-6 @min-[640px]:p-8\">\n {(badge || metric) && (\n <div className=\"flex flex-wrap gap-2\">\n {badge && <Badge variant=\"brand\">{badge}</Badge>}\n {metric && <Badge>{metric}</Badge>}\n </div>\n )}\n <Heading className=\"text-heading-h2 text-text-primary\">\n {heading}\n </Heading>\n {description && (\n <p className=\"text-body-small text-text-secondary\">\n {description}\n </p>\n )}\n <div className=\"flex flex-wrap items-center justify-between gap-4\">\n {priceRow}\n {action && <div className=\"relative z-10 flex\">{action}</div>}\n </div>\n </div>\n </div>\n </article>\n );\n }\n\n return (\n <article\n data-slot=\"card-program\"\n data-layout=\"grid\"\n className={cn(\n \"@container relative flex min-w-0 flex-col rounded-xl bg-background shadow-s interactive hover-lift hover-scale hover-zoom-media\",\n className,\n )}\n {...props}\n >\n <ImageSlot\n image={image}\n className=\"h-27.5 rounded-t-xl @min-[240px]:h-40\"\n >\n {badge && (\n <Badge\n variant=\"brand\"\n className=\"absolute top-3 left-3 hidden @min-[240px]:inline-flex\"\n >\n {badge}\n </Badge>\n )}\n </ImageSlot>\n <div className=\"flex flex-1 flex-col gap-2 p-3 @min-[240px]:p-4\">\n <Heading className=\"text-label-strong text-text-primary @min-[240px]:text-heading-h4\">\n {heading}\n </Heading>\n {description && (\n <p className=\"line-clamp-3 hidden text-body-small text-text-secondary @min-[240px]:block\">\n {description}\n </p>\n )}\n <div className=\"mt-auto flex items-center gap-2\">\n <div className=\"min-w-0 flex-1\">{priceRow}</div>\n <span\n aria-hidden\n className={cn(\n \"relative hidden size-7 shrink-0 items-center justify-center @min-[240px]:flex\",\n \"text-text-inverse interactive hover-triggered:text-text-primary\",\n )}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 28 28\"\n className=\"absolute inset-0 size-full overflow-visible\"\n >\n <circle\n cx=\"14\"\n cy=\"14\"\n r=\"13.5\"\n strokeWidth=\"1\"\n className={cn(\n \"fill-brand stroke-transparent\",\n \"transition-[fill,stroke] duration-(--duration-interactive) ease-out-soft\",\n \"hover-triggered:fill-transparent hover-triggered:stroke-text-primary\",\n )}\n />\n </svg>\n <ArrowNarrowRightIcon\n size=\"sm\"\n className=\"relative interactive motion-safe:hover-triggered:translate-x-0.5\"\n />\n </span>\n </div>\n </div>\n </article>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card-program.js","sources":["../../../src/components/card-program/card-program.tsx"],"sourcesContent":["import type { useRender } from \"@base-ui/react/use-render\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { ArrowNarrowRightIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { Badge } from \"../badge\";\nimport { type CardHeadingLevel, CardLink } from \"../card\";\n\nexport type CardProgramLayout = \"grid\" | \"featured\";\n\nexport interface CardProgramProps\n extends Omit<ComponentProps<\"article\">, \"title\"> {\n /** \"Pérdida de peso\". The card's heading and the link's name. */\n title: ReactNode;\n /** One or two lines. Hidden in the compact (Mobile) card. */\n description?: ReactNode;\n /**\n * The live price of THIS clinic's page, es-ES format with a space: \"Desde 30 €\",\n * \"29,99 €\". Never another clinic's price.\n */\n price: ReactNode;\n /** \"Videoconsulta\". Shown after the price with a \"·\". Hidden in the compact card. */\n channel?: ReactNode;\n /** A real photo from mediQuo's image line: `<img src=\"…\" alt=\"\" />` if it adds nothing. */\n image?: ReactNode;\n /** \"Tratamiento destacado\": a brand Badge (on the image in Grid, above the title in Featured). */\n badge?: ReactNode;\n /** Featured only: a metric Badge next to `badge` (\"4,6/5 valoración\"). */\n metric?: ReactNode;\n /** The programme's page. The whole card is this link. */\n href?: string;\n /** Router link: `render={<Link to=\"…\" />}`. */\n render?: useRender.RenderProp;\n /** Featured only: the one action, a primary `Button` \"Reservar consulta\" (never \"Empezar tratamiento\"). */\n action?: ReactNode;\n /**\n * `grid` (default): the three-column grid; below 240px wide it becomes the compact\n * Mobile card (two-column grid on a phone) by itself. `featured`: the highlighted\n * programme, horizontal from 640px wide.\n */\n layout?: CardProgramLayout;\n /** Level of the title's heading. Default 3. */\n headingLevel?: CardHeadingLevel;\n}\n\nfunction ImageSlot({\n image,\n className,\n children,\n}: {\n image?: ReactNode;\n className?: string;\n children?: ReactNode;\n}): React.JSX.Element {\n return (\n <div\n className={cn(\n \"relative shrink-0 overflow-hidden bg-brand-subtle [&>img]:size-full [&>img]:object-cover\",\n className,\n )}\n >\n {image}\n {children}\n </div>\n );\n}\n\n/**\n * A specialised programme (Clínic). The whole card is the link to the programme's\n * page (a `CardLink` in the title); the arrow is decorative. One action.\n *\n * Figma `Layout=Mobile` is not a value: the `grid` card turns compact (no\n * description, no channel, no arrow) when its column is narrower than 240px.\n */\nexport function CardProgram({\n title,\n description,\n price,\n channel,\n image,\n badge,\n metric,\n href,\n render,\n action,\n layout = \"grid\",\n headingLevel = 3,\n className,\n ...props\n}: CardProgramProps): React.JSX.Element {\n const Heading = `h${headingLevel}` as const;\n const heading =\n href || render ? (\n <CardLink href={href} render={render}>\n {title}\n </CardLink>\n ) : (\n title\n );\n\n const priceRow = (\n <p className=\"flex min-w-0 flex-wrap items-baseline gap-1\">\n <span className=\"text-label-strong text-text-primary\">{price}</span>\n {channel && (\n <span\n className={cn(\n \"text-body-small text-text-secondary\",\n layout === \"grid\" && \"hidden @min-[240px]:inline\",\n )}\n >\n · {channel}\n </span>\n )}\n </p>\n );\n\n if (layout === \"featured\") {\n return (\n <article\n data-slot=\"card-program\"\n data-layout=\"featured\"\n className={cn(\n \"@container relative min-w-0 rounded-xl bg-background shadow-s interactive hover-lift hover-zoom-media\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-col @min-[640px]:flex-row\">\n <ImageSlot\n image={image}\n className=\"h-40 rounded-t-xl @min-[640px]:h-auto @min-[640px]:min-h-60 @min-[640px]:w-1/2 @min-[640px]:rounded-tr-none @min-[640px]:rounded-l-xl\"\n />\n <div className=\"flex min-w-0 flex-1 flex-col justify-center gap-4 p-6 @min-[640px]:p-8\">\n {(badge || metric) && (\n <div className=\"flex flex-wrap gap-2\">\n {badge && <Badge variant=\"brand\">{badge}</Badge>}\n {metric && <Badge>{metric}</Badge>}\n </div>\n )}\n <Heading className=\"text-heading-h2 text-text-primary\">\n {heading}\n </Heading>\n {description && (\n <p className=\"text-body-small text-text-secondary\">\n {description}\n </p>\n )}\n <div className=\"flex flex-wrap items-center justify-between gap-4\">\n {priceRow}\n {action && <div className=\"relative z-10 flex\">{action}</div>}\n </div>\n </div>\n </div>\n </article>\n );\n }\n\n return (\n <article\n data-slot=\"card-program\"\n data-layout=\"grid\"\n className={cn(\n \"@container relative flex min-w-0 flex-col rounded-xl bg-background shadow-s interactive hover-lift hover-zoom-media\",\n className,\n )}\n {...props}\n >\n <ImageSlot\n image={image}\n className=\"h-27.5 rounded-t-xl @min-[240px]:h-40\"\n >\n {badge && (\n <Badge\n variant=\"brand\"\n className=\"absolute top-3 left-3 hidden @min-[240px]:inline-flex\"\n >\n {badge}\n </Badge>\n )}\n </ImageSlot>\n <div className=\"flex flex-1 flex-col gap-2 p-3 @min-[240px]:p-4\">\n <Heading className=\"text-label-strong text-text-primary @min-[240px]:text-heading-h4\">\n {heading}\n </Heading>\n {description && (\n <p className=\"line-clamp-3 hidden text-body-small text-text-secondary @min-[240px]:block\">\n {description}\n </p>\n )}\n <div className=\"mt-auto flex items-center gap-2\">\n <div className=\"min-w-0 flex-1\">{priceRow}</div>\n <span\n aria-hidden\n className={cn(\n \"relative hidden size-7 shrink-0 items-center justify-center @min-[240px]:flex\",\n \"text-text-inverse interactive hover-triggered:text-text-primary\",\n )}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 28 28\"\n className=\"absolute inset-0 size-full overflow-visible\"\n >\n <circle\n cx=\"14\"\n cy=\"14\"\n r=\"13.5\"\n strokeWidth=\"1\"\n className={cn(\n \"fill-brand stroke-transparent\",\n \"transition-[fill,stroke] duration-(--duration-interactive) ease-out-soft\",\n \"hover-triggered:fill-transparent hover-triggered:stroke-text-primary\",\n )}\n />\n </svg>\n <ArrowNarrowRightIcon\n size=\"sm\"\n className=\"relative interactive motion-safe:hover-triggered:translate-x-0.5\"\n />\n </span>\n </div>\n </div>\n </article>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
|
|
69
69
|
&:has([data-slot="card-link"]):hover {
|
|
70
70
|
translate: 0 -2px;
|
|
71
|
+
scale: 1.01;
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -156,11 +157,3 @@
|
|
|
156
157
|
);
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
|
|
160
|
-
@utility hover-scale {
|
|
161
|
-
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
|
|
162
|
-
&:has([data-slot="card-link"]):hover {
|
|
163
|
-
scale: 1.02;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|