@alfadocs/ui-kit 0.31.4 → 0.31.6

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.
Files changed (101) hide show
  1. package/dist/_chunks/{agenda-card-UJA6Arbs.js → agenda-card-DtGlQde1.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-1fAxNOMz.js → agenda-tray-CXmlwt2K.js} +2 -2
  3. package/dist/_chunks/{badge-CptERaHx.js → badge-B9Cr6iEB.js} +30 -21
  4. package/dist/_chunks/{benefit-card-CLPNpiQE.js → benefit-card-B86DH-PE.js} +14 -10
  5. package/dist/_chunks/{card-DKTMLVrw.js → card-CNri9ssR.js} +43 -37
  6. package/dist/_chunks/{contact-card-DYbp--s-.js → contact-card-Dos7Tley.js} +2 -2
  7. package/dist/_chunks/{editable-currency-cell-renderer-BpicmolK.js → editable-currency-cell-renderer-YvTwkFrD.js} +2 -2
  8. package/dist/_chunks/key-value-pair-CYE7NSpM.js +134 -0
  9. package/dist/_chunks/message-circle-C23eicgb.js +20 -0
  10. package/dist/_chunks/operator-hero-BsjE-kJF.js +171 -0
  11. package/dist/_chunks/{patient-search-hFiYbqcl.js → patient-search-CSDru7QW.js} +2 -2
  12. package/dist/_chunks/practice-profile-card-C2_2ZH_G.js +297 -0
  13. package/dist/_chunks/{practice-results-dOlljaAK.js → practice-results-VqbCUO1b.js} +225 -269
  14. package/dist/_chunks/{reviews-panel-yanuBZs-.js → reviews-panel-Cjys8G8K.js} +2 -2
  15. package/dist/_chunks/shield-check-BhHyReu8.js +52 -0
  16. package/dist/_chunks/{timeline-D0Wo7v_o.js → timeline-BZC7qGdy.js} +2 -2
  17. package/dist/_chunks/{workflow-map-BSvQS3be.js → workflow-map-DfpjDZHK.js} +93 -107
  18. package/dist/agent-catalog.json +55 -1
  19. package/dist/components/agenda-card/index.js +1 -1
  20. package/dist/components/agenda-tray/index.js +1 -1
  21. package/dist/components/badge/badge.d.ts +1 -1
  22. package/dist/components/badge/index.js +1 -1
  23. package/dist/components/benefit-card/index.js +1 -1
  24. package/dist/components/card/index.js +1 -1
  25. package/dist/components/contact-card/index.js +1 -1
  26. package/dist/components/data-table/index.js +1 -1
  27. package/dist/components/index.d.ts +2 -0
  28. package/dist/components/key-value-pair/index.d.ts +2 -2
  29. package/dist/components/key-value-pair/index.js +3 -2
  30. package/dist/components/key-value-pair/key-value-pair.d.ts +10 -0
  31. package/dist/components/operator-hero/index.d.ts +4 -0
  32. package/dist/components/operator-hero/index.js +6 -0
  33. package/dist/components/operator-hero/operator-hero.agent.d.ts +4 -0
  34. package/dist/components/operator-hero/operator-hero.d.ts +64 -0
  35. package/dist/components/patient-search/index.js +1 -1
  36. package/dist/components/practice-profile-card/index.d.ts +4 -0
  37. package/dist/components/practice-profile-card/index.js +8 -0
  38. package/dist/components/practice-profile-card/practice-profile-card.agent.d.ts +4 -0
  39. package/dist/components/practice-profile-card/practice-profile-card.d.ts +115 -0
  40. package/dist/components/practice-results/index.js +1 -1
  41. package/dist/components/reviews-panel/index.js +1 -1
  42. package/dist/components/timeline/index.js +1 -1
  43. package/dist/components/workflow/index.js +1 -1
  44. package/dist/i18n/locales/ar.d.ts +23 -0
  45. package/dist/i18n/locales/ar.js +23 -0
  46. package/dist/i18n/locales/de.d.ts +23 -0
  47. package/dist/i18n/locales/de.js +23 -0
  48. package/dist/i18n/locales/el.d.ts +23 -0
  49. package/dist/i18n/locales/el.js +23 -0
  50. package/dist/i18n/locales/en.d.ts +23 -0
  51. package/dist/i18n/locales/en.js +23 -0
  52. package/dist/i18n/locales/es.d.ts +23 -0
  53. package/dist/i18n/locales/es.js +23 -0
  54. package/dist/i18n/locales/fr.d.ts +23 -0
  55. package/dist/i18n/locales/fr.js +23 -0
  56. package/dist/i18n/locales/hi.d.ts +23 -0
  57. package/dist/i18n/locales/hi.js +23 -0
  58. package/dist/i18n/locales/it.d.ts +23 -0
  59. package/dist/i18n/locales/it.js +23 -0
  60. package/dist/i18n/locales/ja.d.ts +23 -0
  61. package/dist/i18n/locales/ja.js +23 -0
  62. package/dist/i18n/locales/nl.d.ts +23 -0
  63. package/dist/i18n/locales/nl.js +23 -0
  64. package/dist/i18n/locales/pl.d.ts +23 -0
  65. package/dist/i18n/locales/pl.js +23 -0
  66. package/dist/i18n/locales/pt.d.ts +23 -0
  67. package/dist/i18n/locales/pt.js +23 -0
  68. package/dist/i18n/locales/ro.d.ts +23 -0
  69. package/dist/i18n/locales/ro.js +23 -0
  70. package/dist/i18n/locales/ru.d.ts +23 -0
  71. package/dist/i18n/locales/ru.js +23 -0
  72. package/dist/i18n/locales/sq.d.ts +23 -0
  73. package/dist/i18n/locales/sq.js +23 -0
  74. package/dist/i18n/locales/sv.d.ts +23 -0
  75. package/dist/i18n/locales/sv.js +23 -0
  76. package/dist/i18n/locales/tr.d.ts +23 -0
  77. package/dist/i18n/locales/tr.js +23 -0
  78. package/dist/i18n/locales/zh.d.ts +23 -0
  79. package/dist/i18n/locales/zh.js +23 -0
  80. package/dist/index.js +400 -391
  81. package/dist/locales/ar.json +23 -0
  82. package/dist/locales/de.json +23 -0
  83. package/dist/locales/el.json +23 -0
  84. package/dist/locales/en.json +23 -0
  85. package/dist/locales/es.json +23 -0
  86. package/dist/locales/fr.json +23 -0
  87. package/dist/locales/hi.json +23 -0
  88. package/dist/locales/it.json +23 -0
  89. package/dist/locales/ja.json +23 -0
  90. package/dist/locales/nl.json +23 -0
  91. package/dist/locales/pl.json +23 -0
  92. package/dist/locales/pt.json +23 -0
  93. package/dist/locales/ro.json +23 -0
  94. package/dist/locales/ru.json +23 -0
  95. package/dist/locales/sq.json +23 -0
  96. package/dist/locales/sv.json +23 -0
  97. package/dist/locales/tr.json +23 -0
  98. package/dist/locales/zh.json +23 -0
  99. package/dist/tokens.css +1 -1
  100. package/package.json +9 -1
  101. package/dist/_chunks/key-value-pair-C8DaR3Xs.js +0 -98
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.31.4",
3
+ "packageVersion": "0.31.6",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -2276,6 +2276,33 @@
2276
2276
  }
2277
2277
  }
2278
2278
  },
2279
+ {
2280
+ "kind": "component",
2281
+ "id": "operator-hero",
2282
+ "capabilities": [
2283
+ "view_change"
2284
+ ],
2285
+ "state": [
2286
+ {
2287
+ "name": "name",
2288
+ "type": "string",
2289
+ "description": "Operator display name currently rendered."
2290
+ }
2291
+ ],
2292
+ "actions": [],
2293
+ "domHooks": {
2294
+ "root": {
2295
+ "attr": "data-component",
2296
+ "value": "operator-hero",
2297
+ "description": "Marks the OperatorHero root region."
2298
+ },
2299
+ "instanceId": {
2300
+ "attr": "data-component-id",
2301
+ "sourceProp": "id",
2302
+ "description": "Sourced from the id prop."
2303
+ }
2304
+ }
2305
+ },
2279
2306
  {
2280
2307
  "kind": "component",
2281
2308
  "id": "otp-input",
@@ -2637,6 +2664,33 @@
2637
2664
  }
2638
2665
  }
2639
2666
  },
2667
+ {
2668
+ "kind": "component",
2669
+ "id": "practice-profile-card",
2670
+ "capabilities": [
2671
+ "view_change"
2672
+ ],
2673
+ "state": [
2674
+ {
2675
+ "name": "profession",
2676
+ "type": "string",
2677
+ "description": "Profession string the card is currently rendering — undefined when the consumer omitted it."
2678
+ }
2679
+ ],
2680
+ "actions": [],
2681
+ "domHooks": {
2682
+ "root": {
2683
+ "attr": "data-component",
2684
+ "value": "practice-profile-card",
2685
+ "description": "Marks the PracticeProfileCard root region."
2686
+ },
2687
+ "instanceId": {
2688
+ "attr": "data-component-id",
2689
+ "sourceProp": "id",
2690
+ "description": "Sourced from the id prop."
2691
+ }
2692
+ }
2693
+ },
2640
2694
  {
2641
2695
  "kind": "component",
2642
2696
  "id": "practice-results",
@@ -1,4 +1,4 @@
1
- import { A as r, i as d } from "../../_chunks/agenda-card-UJA6Arbs.js";
1
+ import { A as r, i as d } from "../../_chunks/agenda-card-DtGlQde1.js";
2
2
  import { a as n } from "../../_chunks/agenda-card.agent-B_R47-c9.js";
3
3
  export {
4
4
  r as AgendaCard,
@@ -1,4 +1,4 @@
1
- import { A as r, a as g } from "../../_chunks/agenda-tray-1fAxNOMz.js";
1
+ import { A as r, a as g } from "../../_chunks/agenda-tray-CXmlwt2K.js";
2
2
  export {
3
3
  r as AgendaTray,
4
4
  g as agendaTrayAgent
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "error" | "neutral" | "info" | "success" | "warning" | null | undefined;
4
+ variant?: "error" | "neutral" | "info" | "success" | "warning" | "brand" | "accent" | null | undefined;
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  shape?: "pill" | "rectangular" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -1,4 +1,4 @@
1
- import { B as o } from "../../_chunks/badge-CptERaHx.js";
1
+ import { B as o } from "../../_chunks/badge-B9Cr6iEB.js";
2
2
  export {
3
3
  o as Badge
4
4
  };
@@ -1,4 +1,4 @@
1
- import { B as a } from "../../_chunks/benefit-card-CLPNpiQE.js";
1
+ import { B as a } from "../../_chunks/benefit-card-B86DH-PE.js";
2
2
  export {
3
3
  a as BenefitCard
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C as o } from "../../_chunks/card-DKTMLVrw.js";
1
+ import { C as o } from "../../_chunks/card-CNri9ssR.js";
2
2
  export {
3
3
  o as Card
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C as r } from "../../_chunks/contact-card-DYbp--s-.js";
1
+ import { C as r } from "../../_chunks/contact-card-Dos7Tley.js";
2
2
  export {
3
3
  r as ContactCard
4
4
  };
@@ -1,4 +1,4 @@
1
- import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-BpicmolK.js";
1
+ import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-YvTwkFrD.js";
2
2
  export {
3
3
  l as ActionsCellRenderer,
4
4
  r as BalanceCellRenderer,
@@ -117,7 +117,9 @@ export * from './transcript-panel';
117
117
  export * from './typing-indicator';
118
118
  export * from './booking';
119
119
  export * from './calendar';
120
+ export * from './operator-hero';
120
121
  export * from './patient-search';
122
+ export * from './practice-profile-card';
121
123
  export * from './practice-results';
122
124
  export * from './payment-form';
123
125
  export * from './pdf-viewer';
@@ -1,3 +1,3 @@
1
- export { KeyValuePair } from './key-value-pair';
2
- export type { KeyValuePairProps } from './key-value-pair';
1
+ export { KeyValuePair, KeyValueList } from './key-value-pair';
2
+ export type { KeyValuePairProps, KeyValueListProps } from './key-value-pair';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
- import { K as r } from "../../_chunks/key-value-pair-C8DaR3Xs.js";
1
+ import { K as r, a as s } from "../../_chunks/key-value-pair-CYE7NSpM.js";
2
2
  export {
3
- r as KeyValuePair
3
+ r as KeyValueList,
4
+ s as KeyValuePair
4
5
  };
5
6
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
+ import { type HTMLAttributes } from 'react';
1
2
  import { type VariantProps } from 'class-variance-authority';
2
3
  declare const keyValuePairVariants: (props?: ({
3
4
  layout?: "horizontal" | "vertical" | null | undefined;
@@ -35,5 +36,14 @@ export interface KeyValuePairProps extends React.HTMLAttributes<HTMLDivElement>,
35
36
  icon?: React.ReactElement | null;
36
37
  }
37
38
  export declare const KeyValuePair: import("react").ForwardRefExoticComponent<KeyValuePairProps & import("react").RefAttributes<HTMLDivElement>>;
39
+ export interface KeyValueListProps extends HTMLAttributes<HTMLDivElement> {
40
+ /**
41
+ * Gap between rows. Maps to spacing tokens — defaults to `md`.
42
+ * Smaller gaps suit dense settings panels; larger gaps suit
43
+ * profile cards.
44
+ */
45
+ rowGap?: 'sm' | 'md' | 'lg';
46
+ }
47
+ export declare const KeyValueList: import("react").ForwardRefExoticComponent<KeyValueListProps & import("react").RefAttributes<HTMLDivElement>>;
38
48
  export {};
39
49
  //# sourceMappingURL=key-value-pair.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { OperatorHero } from './operator-hero';
2
+ export type { OperatorHeroProps, OperatorHeroBadge, OperatorHeroRating, OperatorHeroHandle, OperatorHeroDensity, } from './operator-hero';
3
+ export { operatorHeroAgent } from './operator-hero.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { O as e, o as a } from "../../_chunks/operator-hero-BsjE-kJF.js";
2
+ export {
3
+ e as OperatorHero,
4
+ a as operatorHeroAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { OperatorHeroHandle } from './operator-hero';
3
+ export declare const operatorHeroAgent: AgentAdapter<OperatorHeroHandle>;
4
+ //# sourceMappingURL=operator-hero.agent.d.ts.map
@@ -0,0 +1,64 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ declare const rootVariants: (props?: ({
4
+ density?: "compact" | "comfortable" | null | undefined;
5
+ surface?: "flat" | "elevated" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface OperatorHeroBadge {
8
+ /** Display key — i18n is up to the consumer. */
9
+ key: string;
10
+ /** Display label. */
11
+ label: string;
12
+ /** Badge variant — falls back to `neutral`. */
13
+ variant?: 'neutral' | 'info' | 'success' | 'warning' | 'error';
14
+ }
15
+ export interface OperatorHeroRating {
16
+ /** Mean rating, 0–5. */
17
+ value: number;
18
+ /** Total number of reviews. */
19
+ count: number;
20
+ }
21
+ export interface OperatorHeroHandle {
22
+ getName: () => string;
23
+ }
24
+ export interface OperatorHeroProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children'> {
25
+ /** Operator's display name. Rendered as the H1 heading. */
26
+ name: string;
27
+ /** Specialty / tagline subtitle (e.g. "Dermatologa · 12 anni di esperienza"). */
28
+ tagline?: string;
29
+ /**
30
+ * Optional photo / avatar URL. The kit always renders an `<Avatar>` —
31
+ * when `imageUrl` is missing the avatar falls back to initials.
32
+ */
33
+ imageUrl?: string;
34
+ /** Rating summary — when present, renders a Rating + numeric breakdown line. */
35
+ rating?: OperatorHeroRating;
36
+ /**
37
+ * Optional badge row beneath the rating. Use sparingly — 1–3 chips
38
+ * suit the hero's density; longer lists belong in `<PracticeProfileCard>`.
39
+ */
40
+ badges?: OperatorHeroBadge[];
41
+ /**
42
+ * Rendered at the inline-end of the heading row (right side on LTR).
43
+ * Use for a "Book with this operator" `<Button>` or a "Back to
44
+ * practice" link.
45
+ */
46
+ actionSlot?: ReactNode;
47
+ /**
48
+ * `comfortable` (default) — matches the practice hero's visual
49
+ * weight minus the cover strip. `compact` halves the vertical
50
+ * padding for embedded surfaces.
51
+ */
52
+ density?: 'comfortable' | 'compact';
53
+ /**
54
+ * `elevated` (default) wraps in `<Card variant="elevated">`. `flat`
55
+ * drops the Card — use inside another card / sheet.
56
+ */
57
+ surface?: 'flat' | 'elevated';
58
+ 'aria-label'?: string;
59
+ id?: string;
60
+ }
61
+ export declare const OperatorHero: import("react").ForwardRefExoticComponent<OperatorHeroProps & import("react").RefAttributes<HTMLDivElement>>;
62
+ export type OperatorHeroDensity = NonNullable<VariantProps<typeof rootVariants>['density']>;
63
+ export {};
64
+ //# sourceMappingURL=operator-hero.d.ts.map
@@ -1,4 +1,4 @@
1
- import { P as t, p as r } from "../../_chunks/patient-search-hFiYbqcl.js";
1
+ import { P as t, p as r } from "../../_chunks/patient-search-CSDru7QW.js";
2
2
  export {
3
3
  t as PatientSearch,
4
4
  r as patientSearchAgent
@@ -0,0 +1,4 @@
1
+ export { PracticeProfileCard, PRACTICE_PROFILE_CARD_ROW_KEYS, PRACTICE_PROFILE_CARD_ROW_ICONS, } from './practice-profile-card';
2
+ export type { PracticeProfileCardProps, PracticeProfileCardAddress, PracticeProfileCardHandle, PracticeProfileCardSurface, } from './practice-profile-card';
3
+ export { practiceProfileCardAgent } from './practice-profile-card.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { P as r, a as P, b as R, p as _ } from "../../_chunks/practice-profile-card-C2_2ZH_G.js";
2
+ export {
3
+ r as PRACTICE_PROFILE_CARD_ROW_ICONS,
4
+ P as PRACTICE_PROFILE_CARD_ROW_KEYS,
5
+ R as PracticeProfileCard,
6
+ _ as practiceProfileCardAgent
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { PracticeProfileCardHandle } from './practice-profile-card';
3
+ export declare const practiceProfileCardAgent: AgentAdapter<PracticeProfileCardHandle>;
4
+ //# sourceMappingURL=practice-profile-card.agent.d.ts.map
@@ -0,0 +1,115 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { ExternalLink, type LucideIcon } from 'lucide-react';
4
+ declare const rootVariants: (props?: ({
5
+ surface?: "flat" | "elevated" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface PracticeProfileCardAddress {
8
+ /** Display text — already formatted by the consumer (street, postcode, city). */
9
+ line: string;
10
+ /** Optional lat/lng — drives the static-map link + the embedded thumbnail. */
11
+ lat?: number;
12
+ lng?: number;
13
+ }
14
+ export interface PracticeProfileCardHandle {
15
+ /** Resolved consumer-supplied data — useful for agent introspection. */
16
+ getProfession: () => string | undefined;
17
+ }
18
+ export interface PracticeProfileCardProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children' | 'children'> {
19
+ /**
20
+ * Override the localised "Profilo" / "Profile" heading. Most
21
+ * consumers leave this unset.
22
+ */
23
+ heading?: string;
24
+ /**
25
+ * Free-text intro paragraph rendered above the data rows (e.g.
26
+ * the practice's `bookingDescription` field). When omitted, the
27
+ * card jumps straight into the data rows.
28
+ */
29
+ description?: string;
30
+ /** Street + postcode + city, with optional lat/lng for the map link. */
31
+ address?: PracticeProfileCardAddress;
32
+ /** Phone number, displayed as-is. Compiled into a `tel:` link. */
33
+ phone?: string;
34
+ /**
35
+ * WhatsApp number — digits only (no `+`, no spaces). Compiled into
36
+ * a `https://wa.me/<number>` link with an optional pre-filled message.
37
+ */
38
+ whatsappNumber?: string;
39
+ /** Optional pre-filled WhatsApp message. Consumer-localised. */
40
+ whatsappMessage?: string;
41
+ /** Public-facing email. Compiled into a `mailto:` link. */
42
+ email?: string;
43
+ /** Practice website (already an absolute URL with protocol). */
44
+ website?: string;
45
+ /**
46
+ * ISO 639-1 language codes the practice speaks. Rendered as
47
+ * `<Badge variant="neutral">` chips — the consumer can pass display
48
+ * labels via `languageLabels` to override the kit's default (uppercase
49
+ * ISO code).
50
+ */
51
+ languages?: string[];
52
+ /**
53
+ * Map from ISO code → display label (e.g. `{ it: 'Italiano' }`).
54
+ * When omitted or a code is missing, the kit falls back to the
55
+ * uppercase code.
56
+ */
57
+ languageLabels?: Record<string, string>;
58
+ /**
59
+ * Insurance / convention strings (consumer-supplied, free text).
60
+ * Rendered as `<Badge variant="info">` chips.
61
+ */
62
+ insurances?: string[];
63
+ /**
64
+ * First-visit price in the smallest currency unit (cents / centesimi).
65
+ * Formatted via `Intl.NumberFormat`. Omit when the consumer doesn't
66
+ * want to show the price.
67
+ */
68
+ firstVisitPriceCents?: number;
69
+ /** ISO-4217 currency code for the price formatter. Defaults to `EUR`. */
70
+ currencyCode?: string;
71
+ /** Profession line — single value or already-joined comma list. */
72
+ profession?: string;
73
+ /** Show the "expert for anxious patients" row when true. */
74
+ specializedInFearPatients?: boolean;
75
+ /**
76
+ * Fires when the patient clicks the phone link. The kit emits a
77
+ * `track('practice_profile_card_phone_click')` event before
78
+ * invoking this — gate consumer-side analytics on the same event
79
+ * to avoid duplicate fires.
80
+ */
81
+ onPhoneClick?: () => void;
82
+ /** Fires when the patient clicks the WhatsApp link. */
83
+ onWhatsAppClick?: () => void;
84
+ /** Fires when the patient clicks the static-map link. */
85
+ onMapClick?: () => void;
86
+ /** Fires when the patient clicks the email mailto link. */
87
+ onEmailClick?: () => void;
88
+ /**
89
+ * Rendered above the heading — e.g. a `<Avatar>` for the operator
90
+ * variant, or a coloured chip strip. Optional.
91
+ */
92
+ headerSlot?: ReactNode;
93
+ /**
94
+ * Rendered at the end of the card body, below the rows. Use for
95
+ * a "Book now" `<Button>` or a "View full profile" link.
96
+ */
97
+ footerSlot?: ReactNode;
98
+ /**
99
+ * `'flat'` (default) renders the card without elevation — content
100
+ * sits naked on the page. `'elevated'` wraps in `<Card variant="elevated">`
101
+ * for a defined surface. Most use cases want elevated; flat is for
102
+ * pages that already provide the card chrome.
103
+ */
104
+ surface?: 'flat' | 'elevated';
105
+ /** Override the default region aria-label. */
106
+ 'aria-label'?: string;
107
+ /** Agent-readiness consumer id, surfaced as `data-component-id`. */
108
+ id?: string;
109
+ }
110
+ export declare const PracticeProfileCard: import("react").ForwardRefExoticComponent<PracticeProfileCardProps & import("react").RefAttributes<HTMLDivElement>>;
111
+ export declare const PRACTICE_PROFILE_CARD_ROW_KEYS: readonly ["address", "phone", "whatsapp", "email", "website", "languages", "insurances", "firstVisitPrice", "expertForAnxiousPatients", "profession"];
112
+ export declare const PRACTICE_PROFILE_CARD_ROW_ICONS: Record<(typeof PRACTICE_PROFILE_CARD_ROW_KEYS)[number], LucideIcon>;
113
+ export type PracticeProfileCardSurface = NonNullable<VariantProps<typeof rootVariants>['surface']>;
114
+ export { ExternalLink };
115
+ //# sourceMappingURL=practice-profile-card.d.ts.map
@@ -1,4 +1,4 @@
1
- import { P as t, p as a } from "../../_chunks/practice-results-dOlljaAK.js";
1
+ import { P as t, p as a } from "../../_chunks/practice-results-VqbCUO1b.js";
2
2
  export {
3
3
  t as PracticeResults,
4
4
  a as practiceResultsAgent
@@ -1,4 +1,4 @@
1
- import { R as r, r as s } from "../../_chunks/reviews-panel-yanuBZs-.js";
1
+ import { R as r, r as s } from "../../_chunks/reviews-panel-Cjys8G8K.js";
2
2
  export {
3
3
  r as ReviewsPanel,
4
4
  s as reviewsPanelAgent
@@ -1,4 +1,4 @@
1
- import { T as t, t as m } from "../../_chunks/timeline-D0Wo7v_o.js";
1
+ import { T as t, t as m } from "../../_chunks/timeline-BZC7qGdy.js";
2
2
  export {
3
3
  t as Timeline,
4
4
  m as timelineAgent
@@ -1,4 +1,4 @@
1
- import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-BSvQS3be.js";
1
+ import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-DfpjDZHK.js";
2
2
  export {
3
3
  r as CORE_PATIENT_FIELDS,
4
4
  e as WorkflowCard,
@@ -1188,6 +1188,29 @@ export declare const arUi: {
1188
1188
  };
1189
1189
  };
1190
1190
  };
1191
+ readonly practiceProfileCard: {
1192
+ readonly heading: "Profile";
1193
+ readonly openInGoogleMaps: "Open in Google Maps";
1194
+ readonly label: {
1195
+ readonly address: "Practice address";
1196
+ readonly phone: "Phone";
1197
+ readonly whatsapp: "WhatsApp";
1198
+ readonly email: "Email";
1199
+ readonly website: "Website";
1200
+ readonly languages: "Languages spoken";
1201
+ readonly insurances: "Insurance / partnership";
1202
+ readonly firstVisitPrice: "First visit cost";
1203
+ readonly expertForAnxiousPatients: "Expert with anxious patients";
1204
+ readonly profession: "Profession";
1205
+ };
1206
+ readonly value: {
1207
+ readonly yesShort: "Yes";
1208
+ };
1209
+ };
1210
+ readonly operatorHero: {
1211
+ readonly regionLabel: "Operator profile";
1212
+ readonly ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews";
1213
+ };
1191
1214
  readonly reviewsPanel: {
1192
1215
  readonly regionLabel: "تقييمات المرضى";
1193
1216
  readonly title: "تقييمات المرضى";
@@ -1171,6 +1171,29 @@ const e = {
1171
1171
  }
1172
1172
  }
1173
1173
  },
1174
+ practiceProfileCard: {
1175
+ heading: "Profile",
1176
+ openInGoogleMaps: "Open in Google Maps",
1177
+ label: {
1178
+ address: "Practice address",
1179
+ phone: "Phone",
1180
+ whatsapp: "WhatsApp",
1181
+ email: "Email",
1182
+ website: "Website",
1183
+ languages: "Languages spoken",
1184
+ insurances: "Insurance / partnership",
1185
+ firstVisitPrice: "First visit cost",
1186
+ expertForAnxiousPatients: "Expert with anxious patients",
1187
+ profession: "Profession"
1188
+ },
1189
+ value: {
1190
+ yesShort: "Yes"
1191
+ }
1192
+ },
1193
+ operatorHero: {
1194
+ regionLabel: "Operator profile",
1195
+ ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews"
1196
+ },
1174
1197
  reviewsPanel: {
1175
1198
  regionLabel: "تقييمات المرضى",
1176
1199
  title: "تقييمات المرضى",
@@ -1188,6 +1188,29 @@ export declare const deUi: {
1188
1188
  };
1189
1189
  };
1190
1190
  };
1191
+ readonly practiceProfileCard: {
1192
+ readonly heading: "Profile";
1193
+ readonly openInGoogleMaps: "Open in Google Maps";
1194
+ readonly label: {
1195
+ readonly address: "Practice address";
1196
+ readonly phone: "Phone";
1197
+ readonly whatsapp: "WhatsApp";
1198
+ readonly email: "Email";
1199
+ readonly website: "Website";
1200
+ readonly languages: "Languages spoken";
1201
+ readonly insurances: "Insurance / partnership";
1202
+ readonly firstVisitPrice: "First visit cost";
1203
+ readonly expertForAnxiousPatients: "Expert with anxious patients";
1204
+ readonly profession: "Profession";
1205
+ };
1206
+ readonly value: {
1207
+ readonly yesShort: "Yes";
1208
+ };
1209
+ };
1210
+ readonly operatorHero: {
1211
+ readonly regionLabel: "Operator profile";
1212
+ readonly ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews";
1213
+ };
1191
1214
  readonly reviewsPanel: {
1192
1215
  readonly regionLabel: "Patientenbewertungen";
1193
1216
  readonly title: "Patientenbewertungen";
@@ -1170,6 +1170,29 @@ const e = {
1170
1170
  }
1171
1171
  }
1172
1172
  },
1173
+ practiceProfileCard: {
1174
+ heading: "Profile",
1175
+ openInGoogleMaps: "Open in Google Maps",
1176
+ label: {
1177
+ address: "Practice address",
1178
+ phone: "Phone",
1179
+ whatsapp: "WhatsApp",
1180
+ email: "Email",
1181
+ website: "Website",
1182
+ languages: "Languages spoken",
1183
+ insurances: "Insurance / partnership",
1184
+ firstVisitPrice: "First visit cost",
1185
+ expertForAnxiousPatients: "Expert with anxious patients",
1186
+ profession: "Profession"
1187
+ },
1188
+ value: {
1189
+ yesShort: "Yes"
1190
+ }
1191
+ },
1192
+ operatorHero: {
1193
+ regionLabel: "Operator profile",
1194
+ ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews"
1195
+ },
1173
1196
  reviewsPanel: {
1174
1197
  regionLabel: "Patientenbewertungen",
1175
1198
  title: "Patientenbewertungen",
@@ -1185,6 +1185,29 @@ export declare const elUi: {
1185
1185
  };
1186
1186
  };
1187
1187
  };
1188
+ readonly practiceProfileCard: {
1189
+ readonly heading: "Profile";
1190
+ readonly openInGoogleMaps: "Open in Google Maps";
1191
+ readonly label: {
1192
+ readonly address: "Practice address";
1193
+ readonly phone: "Phone";
1194
+ readonly whatsapp: "WhatsApp";
1195
+ readonly email: "Email";
1196
+ readonly website: "Website";
1197
+ readonly languages: "Languages spoken";
1198
+ readonly insurances: "Insurance / partnership";
1199
+ readonly firstVisitPrice: "First visit cost";
1200
+ readonly expertForAnxiousPatients: "Expert with anxious patients";
1201
+ readonly profession: "Profession";
1202
+ };
1203
+ readonly value: {
1204
+ readonly yesShort: "Yes";
1205
+ };
1206
+ };
1207
+ readonly operatorHero: {
1208
+ readonly regionLabel: "Operator profile";
1209
+ readonly ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews";
1210
+ };
1188
1211
  readonly reviewsPanel: {
1189
1212
  readonly regionLabel: "Κριτικές ασθενών";
1190
1213
  readonly title: "Κριτικές ασθενών";
@@ -1171,6 +1171,29 @@ const e = {
1171
1171
  }
1172
1172
  }
1173
1173
  },
1174
+ practiceProfileCard: {
1175
+ heading: "Profile",
1176
+ openInGoogleMaps: "Open in Google Maps",
1177
+ label: {
1178
+ address: "Practice address",
1179
+ phone: "Phone",
1180
+ whatsapp: "WhatsApp",
1181
+ email: "Email",
1182
+ website: "Website",
1183
+ languages: "Languages spoken",
1184
+ insurances: "Insurance / partnership",
1185
+ firstVisitPrice: "First visit cost",
1186
+ expertForAnxiousPatients: "Expert with anxious patients",
1187
+ profession: "Profession"
1188
+ },
1189
+ value: {
1190
+ yesShort: "Yes"
1191
+ }
1192
+ },
1193
+ operatorHero: {
1194
+ regionLabel: "Operator profile",
1195
+ ratingLabel: "{{value}} out of 5 stars, based on {{count}} reviews"
1196
+ },
1174
1197
  reviewsPanel: {
1175
1198
  regionLabel: "Κριτικές ασθενών",
1176
1199
  title: "Κριτικές ασθενών",