@alfadocs/ui-kit-debug 1.68.0 → 1.69.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.
Files changed (160) hide show
  1. package/dist/_chunks/{alia-sidebar-B06ZSOaF.js → alia-sidebar-DEMMoefU.js} +3 -3
  2. package/dist/_chunks/{alia-sidebar-B06ZSOaF.js.map → alia-sidebar-DEMMoefU.js.map} +1 -1
  3. package/dist/_chunks/{anamnesis-card-CsUBOG32.js → anamnesis-card-Bey9qQu4.js} +2 -2
  4. package/dist/_chunks/{anamnesis-card-CsUBOG32.js.map → anamnesis-card-Bey9qQu4.js.map} +1 -1
  5. package/dist/_chunks/{anamnesis-summary-rows-CNK0fIJk.js → anamnesis-summary-rows-rNwSrNWZ.js} +2 -2
  6. package/dist/_chunks/{anamnesis-summary-rows-CNK0fIJk.js.map → anamnesis-summary-rows-rNwSrNWZ.js.map} +1 -1
  7. package/dist/_chunks/{appointment-peek-D5XCfYKu.js → appointment-peek-CpcqB8oO.js} +2 -2
  8. package/dist/_chunks/{appointment-peek-D5XCfYKu.js.map → appointment-peek-CpcqB8oO.js.map} +1 -1
  9. package/dist/_chunks/{calendar-workspace-CYK1M83j.js → calendar-workspace-Ct8_454k.js} +3 -3
  10. package/dist/_chunks/{calendar-workspace-CYK1M83j.js.map → calendar-workspace-Ct8_454k.js.map} +1 -1
  11. package/dist/_chunks/{chat-message-Be-9vIIQ.js → chat-message-C2VXQMoB.js} +2 -2
  12. package/dist/_chunks/{chat-message-Be-9vIIQ.js.map → chat-message-C2VXQMoB.js.map} +1 -1
  13. package/dist/_chunks/{code-block-vwEv1jEa.js → code-block-RSKdF3E-.js} +35 -35
  14. package/dist/_chunks/code-block-RSKdF3E-.js.map +1 -0
  15. package/dist/_chunks/{connection-status--wYsgreh.js → connection-status-BOZC5QU5.js} +2 -2
  16. package/dist/_chunks/{connection-status--wYsgreh.js.map → connection-status-BOZC5QU5.js.map} +1 -1
  17. package/dist/_chunks/{description-list-Q8640NHu.js → description-list-DQQ2OA_t.js} +68 -66
  18. package/dist/_chunks/description-list-DQQ2OA_t.js.map +1 -0
  19. package/dist/_chunks/{optical-prescription-ulXnDbBe.js → optical-prescription-D5c7FBlT.js} +2 -2
  20. package/dist/_chunks/{optical-prescription-ulXnDbBe.js.map → optical-prescription-D5c7FBlT.js.map} +1 -1
  21. package/dist/_chunks/{patient-details-C4Dyo7Ck.js → patient-details-qWOsn1MX.js} +3 -3
  22. package/dist/_chunks/{patient-details-C4Dyo7Ck.js.map → patient-details-qWOsn1MX.js.map} +1 -1
  23. package/dist/_chunks/{patient-field-row-DROvUkFu.js → patient-field-row-CAl5ydtX.js} +2 -2
  24. package/dist/_chunks/{patient-field-row-DROvUkFu.js.map → patient-field-row-CAl5ydtX.js.map} +1 -1
  25. package/dist/_chunks/{patient-summary-card-CAimxbuI.js → patient-summary-card-BhuRh9AE.js} +2 -2
  26. package/dist/_chunks/{patient-summary-card-CAimxbuI.js.map → patient-summary-card-BhuRh9AE.js.map} +1 -1
  27. package/dist/_chunks/{payment-request-card-0DjQgVgX.js → payment-request-card-bysjRZrP.js} +2 -2
  28. package/dist/_chunks/{payment-request-card-0DjQgVgX.js.map → payment-request-card-bysjRZrP.js.map} +1 -1
  29. package/dist/_chunks/{reviews-panel-CosDZyow.js → reviews-panel-sbsVmmCA.js} +2 -2
  30. package/dist/_chunks/{reviews-panel-CosDZyow.js.map → reviews-panel-sbsVmmCA.js.map} +1 -1
  31. package/dist/_chunks/{streaming-text-zFViGexf.js → streaming-text-DbqKTsmj.js} +2 -2
  32. package/dist/_chunks/{streaming-text-zFViGexf.js.map → streaming-text-DbqKTsmj.js.map} +1 -1
  33. package/dist/_chunks/{use-appointment-details-read-CUGfE0hV.js → use-appointment-details-read-1gjZuup4.js} +3 -3
  34. package/dist/_chunks/{use-appointment-details-read-CUGfE0hV.js.map → use-appointment-details-read-1gjZuup4.js.map} +1 -1
  35. package/dist/_chunks/workflow-webhook-action-Ct8tFYi7.js +691 -0
  36. package/dist/_chunks/workflow-webhook-action-Ct8tFYi7.js.map +1 -0
  37. package/dist/agent-catalog.json +100 -1
  38. package/dist/agent-i18n/en.json +9 -0
  39. package/dist/components/_shared/code-block.d.ts +6 -0
  40. package/dist/components/_shared/code-block.d.ts.map +1 -1
  41. package/dist/components/anamnesis-card/index.js +1 -1
  42. package/dist/components/appointment-details-panel/index.js +1 -1
  43. package/dist/components/appointment-peek/index.js +1 -1
  44. package/dist/components/chat-message/index.js +1 -1
  45. package/dist/components/connection-status/index.js +1 -1
  46. package/dist/components/description-list/description-list.d.ts.map +1 -1
  47. package/dist/components/description-list/index.js +1 -1
  48. package/dist/components/index.d.ts +1 -0
  49. package/dist/components/index.d.ts.map +1 -1
  50. package/dist/components/optical-prescription/index.js +1 -1
  51. package/dist/components/patient-details/index.js +1 -1
  52. package/dist/components/patient-summary-card/index.js +1 -1
  53. package/dist/components/payment-card/index.js +1 -1
  54. package/dist/components/reviews-panel/index.js +1 -1
  55. package/dist/components/streaming-text/index.js +1 -1
  56. package/dist/i18n/locales/ar.d.ts +55 -0
  57. package/dist/i18n/locales/ar.d.ts.map +1 -1
  58. package/dist/i18n/locales/ar.js +55 -0
  59. package/dist/i18n/locales/ar.js.map +1 -1
  60. package/dist/i18n/locales/de.d.ts +55 -0
  61. package/dist/i18n/locales/de.d.ts.map +1 -1
  62. package/dist/i18n/locales/de.js +55 -0
  63. package/dist/i18n/locales/de.js.map +1 -1
  64. package/dist/i18n/locales/el.d.ts +55 -0
  65. package/dist/i18n/locales/el.d.ts.map +1 -1
  66. package/dist/i18n/locales/el.js +55 -0
  67. package/dist/i18n/locales/el.js.map +1 -1
  68. package/dist/i18n/locales/en.d.ts +55 -0
  69. package/dist/i18n/locales/en.d.ts.map +1 -1
  70. package/dist/i18n/locales/en.js +55 -0
  71. package/dist/i18n/locales/en.js.map +1 -1
  72. package/dist/i18n/locales/es.d.ts +55 -0
  73. package/dist/i18n/locales/es.d.ts.map +1 -1
  74. package/dist/i18n/locales/es.js +55 -0
  75. package/dist/i18n/locales/es.js.map +1 -1
  76. package/dist/i18n/locales/fr.d.ts +55 -0
  77. package/dist/i18n/locales/fr.d.ts.map +1 -1
  78. package/dist/i18n/locales/fr.js +55 -0
  79. package/dist/i18n/locales/fr.js.map +1 -1
  80. package/dist/i18n/locales/hi.d.ts +55 -0
  81. package/dist/i18n/locales/hi.d.ts.map +1 -1
  82. package/dist/i18n/locales/hi.js +55 -0
  83. package/dist/i18n/locales/hi.js.map +1 -1
  84. package/dist/i18n/locales/it.d.ts +55 -0
  85. package/dist/i18n/locales/it.d.ts.map +1 -1
  86. package/dist/i18n/locales/it.js +55 -0
  87. package/dist/i18n/locales/it.js.map +1 -1
  88. package/dist/i18n/locales/ja.d.ts +55 -0
  89. package/dist/i18n/locales/ja.d.ts.map +1 -1
  90. package/dist/i18n/locales/ja.js +55 -0
  91. package/dist/i18n/locales/ja.js.map +1 -1
  92. package/dist/i18n/locales/nl.d.ts +55 -0
  93. package/dist/i18n/locales/nl.d.ts.map +1 -1
  94. package/dist/i18n/locales/nl.js +55 -0
  95. package/dist/i18n/locales/nl.js.map +1 -1
  96. package/dist/i18n/locales/pl.d.ts +55 -0
  97. package/dist/i18n/locales/pl.d.ts.map +1 -1
  98. package/dist/i18n/locales/pl.js +55 -0
  99. package/dist/i18n/locales/pl.js.map +1 -1
  100. package/dist/i18n/locales/pt.d.ts +55 -0
  101. package/dist/i18n/locales/pt.d.ts.map +1 -1
  102. package/dist/i18n/locales/pt.js +55 -0
  103. package/dist/i18n/locales/pt.js.map +1 -1
  104. package/dist/i18n/locales/ro.d.ts +55 -0
  105. package/dist/i18n/locales/ro.d.ts.map +1 -1
  106. package/dist/i18n/locales/ro.js +55 -0
  107. package/dist/i18n/locales/ro.js.map +1 -1
  108. package/dist/i18n/locales/ru.d.ts +55 -0
  109. package/dist/i18n/locales/ru.d.ts.map +1 -1
  110. package/dist/i18n/locales/ru.js +55 -0
  111. package/dist/i18n/locales/ru.js.map +1 -1
  112. package/dist/i18n/locales/sq.d.ts +55 -0
  113. package/dist/i18n/locales/sq.d.ts.map +1 -1
  114. package/dist/i18n/locales/sq.js +55 -0
  115. package/dist/i18n/locales/sq.js.map +1 -1
  116. package/dist/i18n/locales/sv.d.ts +55 -0
  117. package/dist/i18n/locales/sv.d.ts.map +1 -1
  118. package/dist/i18n/locales/sv.js +55 -0
  119. package/dist/i18n/locales/sv.js.map +1 -1
  120. package/dist/i18n/locales/tr.d.ts +55 -0
  121. package/dist/i18n/locales/tr.d.ts.map +1 -1
  122. package/dist/i18n/locales/tr.js +55 -0
  123. package/dist/i18n/locales/tr.js.map +1 -1
  124. package/dist/i18n/locales/zh.d.ts +55 -0
  125. package/dist/i18n/locales/zh.d.ts.map +1 -1
  126. package/dist/i18n/locales/zh.js +55 -0
  127. package/dist/i18n/locales/zh.js.map +1 -1
  128. package/dist/index.js +120 -117
  129. package/dist/index.js.map +1 -1
  130. package/dist/locales/ar.json +55 -0
  131. package/dist/locales/de.json +55 -0
  132. package/dist/locales/el.json +55 -0
  133. package/dist/locales/en.json +55 -0
  134. package/dist/locales/es.json +55 -0
  135. package/dist/locales/fr.json +55 -0
  136. package/dist/locales/hi.json +55 -0
  137. package/dist/locales/it.json +55 -0
  138. package/dist/locales/ja.json +55 -0
  139. package/dist/locales/nl.json +55 -0
  140. package/dist/locales/pl.json +55 -0
  141. package/dist/locales/pt.json +55 -0
  142. package/dist/locales/ro.json +55 -0
  143. package/dist/locales/ru.json +55 -0
  144. package/dist/locales/sq.json +55 -0
  145. package/dist/locales/sv.json +55 -0
  146. package/dist/locales/tr.json +55 -0
  147. package/dist/locales/zh.json +55 -0
  148. package/dist/patterns/alia-assistant/index.js +1 -1
  149. package/dist/patterns/anamnesis/index.js +1 -1
  150. package/dist/patterns/calendar/index.js +1 -1
  151. package/dist/patterns/workflow-webhook-action/index.d.ts +3 -0
  152. package/dist/patterns/workflow-webhook-action/index.d.ts.map +1 -0
  153. package/dist/patterns/workflow-webhook-action/index.js +6 -0
  154. package/dist/patterns/workflow-webhook-action/index.js.map +1 -0
  155. package/dist/patterns/workflow-webhook-action/workflow-webhook-action.d.ts +93 -0
  156. package/dist/patterns/workflow-webhook-action/workflow-webhook-action.d.ts.map +1 -0
  157. package/dist/tokens.css +1 -1
  158. package/package.json +5 -1
  159. package/dist/_chunks/code-block-vwEv1jEa.js.map +0 -1
  160. package/dist/_chunks/description-list-Q8640NHu.js.map +0 -1
@@ -3,7 +3,7 @@ import { forwardRef as P, isValidElement as D } from "react";
3
3
  import { c as V } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as y } from "react-i18next";
5
5
  import { A as z } from "./avatar-BPiPL7ND.js";
6
- import { D as l } from "./description-list-Q8640NHu.js";
6
+ import { D as l } from "./description-list-DQQ2OA_t.js";
7
7
  import { H as E } from "./hover-card-CTNhQXWS.js";
8
8
  import { a as H } from "./workflow-status-Dc_CyEz5.js";
9
9
  import { C as I } from "./clock-Drd4Wtis.js";
@@ -120,4 +120,4 @@ T.displayName = "AppointmentPeek";
120
120
  export {
121
121
  T as A
122
122
  };
123
- //# sourceMappingURL=appointment-peek-D5XCfYKu.js.map
123
+ //# sourceMappingURL=appointment-peek-CpcqB8oO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appointment-peek-D5XCfYKu.js","sources":["../../src/components/appointment-peek/appointment-peek.tsx"],"sourcesContent":["import {\n forwardRef,\n isValidElement,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { Armchair, Clock, EyeOff, Video } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { Avatar } from '../avatar';\nimport { DescriptionList } from '../description-list';\nimport { HoverCard } from '../hover-card';\nimport { WorkflowStatusDisplay } from '../workflow-status';\nimport {\n appointmentStateWorkflow,\n type AppointmentState,\n} from '../_shared/entity-card';\n\n/* -------------------------------------------------------------------- */\n/* AppointmentPeek */\n/* */\n/* The body of a calendar hover card: who, when, where, and the status */\n/* in the kit's one status face. Renders inside `HoverCard.Content`; its */\n/* name is a `HoverCard.Heading`, so the card takes its accessible name */\n/* from the patient without the host wiring it. */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-sm)]',\n);\n\nexport interface AppointmentPeekDetail {\n /** Leading glyph, decorative. */\n icon?: ReactNode;\n /** The term, already translated: \"Care\", \"Operator\". */\n label: string;\n value: ReactNode;\n}\n\nexport interface AppointmentPeekProps extends HTMLAttributes<HTMLDivElement> {\n /** Patient name, or the event title for an appointment with no patient. */\n name: string;\n /** Photo for the avatar; initials are drawn from `name` without one. */\n avatarSrc?: string;\n /** Host-formatted time range, e.g. \"09:30–11:00\". */\n time: string;\n /** Chair or room, already translated. With `telehealth`, the visit type. */\n location?: string;\n /** Swaps the chair glyph for a video camera. */\n telehealth?: boolean;\n /**\n * Appointment status, shown through `WorkflowStatusDisplay`. Leave it out\n * when the host has none recorded: no status is not the same as\n * confirmed, so the card shows no status face at all.\n */\n status?: AppointmentState;\n /**\n * Override the status caption, e.g. \"Arrived · waiting 12 min\". Still shown\n * under `privacy`, so keep it free of patient data. Ignored without\n * `status`.\n */\n statusLabel?: string;\n /** Extra rows after time and location: care, operator. */\n details?: AppointmentPeekDetail[];\n /** Event suffix fallback when appointment metadata is absent. Hidden in privacy. */\n treatment?: string;\n /** Indicator chips (Badges): booked online, anamnesis. Never status. */\n flags?: ReactNode;\n /**\n * Masks the name and drops everything personal: avatar, details and\n * flags. Time, place and status stay; they\n * are not patient data.\n */\n privacy?: boolean;\n}\n\nexport const AppointmentPeek = forwardRef<HTMLDivElement, AppointmentPeekProps>(\n (\n {\n name,\n avatarSrc,\n time,\n location,\n telehealth = false,\n status,\n statusLabel,\n details,\n treatment,\n flags,\n privacy = false,\n className,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation('ui');\n const workflow = status ? appointmentStateWorkflow(status) : null;\n const StatusIcon = workflow?.Icon;\n\n const LocationIcon = telehealth ? Video : Armchair;\n const showClinical = !privacy;\n\n const rows: {\n icon: ReactElement | null;\n label: string;\n value: ReactNode;\n }[] = [\n { icon: <Clock />, label: t('appointmentPeek.time'), value: time },\n ...(location\n ? [\n {\n icon: <LocationIcon />,\n label: t('appointmentPeek.location'),\n value: location,\n },\n ]\n : []),\n ...(showClinical && treatment\n ? [\n {\n icon: null,\n label: t('calendarWorkspace.details.care'),\n value: treatment,\n },\n ]\n : []),\n ...(showClinical && details\n ? details.map((detail) => ({\n icon: isValidElement(detail.icon) ? detail.icon : null,\n label: detail.label,\n value: detail.value,\n }))\n : []),\n ];\n\n return (\n <div\n ref={ref}\n data-component=\"appointment-peek\"\n data-status={status}\n className={rootVariants({ className })}\n {...props}\n >\n {/* Avatar, name and the indicator chips together, every fact on its\n own row below, status last: the same identity block as\n PatientDetails. */}\n <div className=\"ds:flex ds:min-w-0 ds:items-start ds:gap-[var(--spacing-sm)]\">\n {privacy ? null : (\n <Avatar\n size=\"sm\"\n name={name}\n src={avatarSrc}\n aria-hidden=\"true\"\n className=\"ds:shrink-0\"\n />\n )}\n <div className=\"ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n <HoverCard.Heading className=\"ds:min-w-0\">\n {privacy ? (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <EyeOff\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:shrink-0\"\n />\n {t('appointmentPeek.hiddenName')}\n </span>\n ) : (\n name\n )}\n </HoverCard.Heading>\n {showClinical && flags ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {flags}\n </div>\n ) : null}\n </div>\n </div>\n\n <DescriptionList\n layout=\"inline\"\n density=\"compact\"\n divider=\"none\"\n // Label icons in the accent, as in PatientDetails.\n className=\"ds:[--description-list-icon-color:var(--accent)]\"\n >\n {rows.map((row, index) => (\n <DescriptionList.Row key={index} icon={row.icon}>\n <DescriptionList.Term>{row.label}</DescriptionList.Term>\n <DescriptionList.Detail>{row.value}</DescriptionList.Detail>\n </DescriptionList.Row>\n ))}\n </DescriptionList>\n\n {/* The kit's one status face: the same display the details panel,\n AppointmentCard and the history use, so a status never reads\n differently on the grid. Last, so the card reads who, what, then\n where it stands. Nothing at all when none is recorded. */}\n {status && workflow && StatusIcon ? (\n <div data-slot=\"workflow\">\n <WorkflowStatusDisplay\n size=\"sm\"\n value={status}\n option={{\n value: status,\n label: statusLabel ?? t(`appointmentCard.state.${status}`),\n icon: <StatusIcon aria-hidden=\"true\" />,\n tone: workflow.tone,\n }}\n />\n </div>\n ) : null}\n </div>\n );\n },\n);\nAppointmentPeek.displayName = 'AppointmentPeek';\n"],"names":["rootVariants","cva","AppointmentPeek","forwardRef","name","avatarSrc","time","location","telehealth","status","statusLabel","details","treatment","flags","privacy","className","props","ref","t","useTranslation","workflow","appointmentStateWorkflow","StatusIcon","LocationIcon","Video","Armchair","showClinical","rows","jsx","Clock","detail","isValidElement","jsxs","Avatar","HoverCard","EyeOff","DescriptionList","row","index","WorkflowStatusDisplay"],"mappings":"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"}
1
+ {"version":3,"file":"appointment-peek-CpcqB8oO.js","sources":["../../src/components/appointment-peek/appointment-peek.tsx"],"sourcesContent":["import {\n forwardRef,\n isValidElement,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { Armchair, Clock, EyeOff, Video } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { Avatar } from '../avatar';\nimport { DescriptionList } from '../description-list';\nimport { HoverCard } from '../hover-card';\nimport { WorkflowStatusDisplay } from '../workflow-status';\nimport {\n appointmentStateWorkflow,\n type AppointmentState,\n} from '../_shared/entity-card';\n\n/* -------------------------------------------------------------------- */\n/* AppointmentPeek */\n/* */\n/* The body of a calendar hover card: who, when, where, and the status */\n/* in the kit's one status face. Renders inside `HoverCard.Content`; its */\n/* name is a `HoverCard.Heading`, so the card takes its accessible name */\n/* from the patient without the host wiring it. */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-sm)]',\n);\n\nexport interface AppointmentPeekDetail {\n /** Leading glyph, decorative. */\n icon?: ReactNode;\n /** The term, already translated: \"Care\", \"Operator\". */\n label: string;\n value: ReactNode;\n}\n\nexport interface AppointmentPeekProps extends HTMLAttributes<HTMLDivElement> {\n /** Patient name, or the event title for an appointment with no patient. */\n name: string;\n /** Photo for the avatar; initials are drawn from `name` without one. */\n avatarSrc?: string;\n /** Host-formatted time range, e.g. \"09:30–11:00\". */\n time: string;\n /** Chair or room, already translated. With `telehealth`, the visit type. */\n location?: string;\n /** Swaps the chair glyph for a video camera. */\n telehealth?: boolean;\n /**\n * Appointment status, shown through `WorkflowStatusDisplay`. Leave it out\n * when the host has none recorded: no status is not the same as\n * confirmed, so the card shows no status face at all.\n */\n status?: AppointmentState;\n /**\n * Override the status caption, e.g. \"Arrived · waiting 12 min\". Still shown\n * under `privacy`, so keep it free of patient data. Ignored without\n * `status`.\n */\n statusLabel?: string;\n /** Extra rows after time and location: care, operator. */\n details?: AppointmentPeekDetail[];\n /** Event suffix fallback when appointment metadata is absent. Hidden in privacy. */\n treatment?: string;\n /** Indicator chips (Badges): booked online, anamnesis. Never status. */\n flags?: ReactNode;\n /**\n * Masks the name and drops everything personal: avatar, details and\n * flags. Time, place and status stay; they\n * are not patient data.\n */\n privacy?: boolean;\n}\n\nexport const AppointmentPeek = forwardRef<HTMLDivElement, AppointmentPeekProps>(\n (\n {\n name,\n avatarSrc,\n time,\n location,\n telehealth = false,\n status,\n statusLabel,\n details,\n treatment,\n flags,\n privacy = false,\n className,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation('ui');\n const workflow = status ? appointmentStateWorkflow(status) : null;\n const StatusIcon = workflow?.Icon;\n\n const LocationIcon = telehealth ? Video : Armchair;\n const showClinical = !privacy;\n\n const rows: {\n icon: ReactElement | null;\n label: string;\n value: ReactNode;\n }[] = [\n { icon: <Clock />, label: t('appointmentPeek.time'), value: time },\n ...(location\n ? [\n {\n icon: <LocationIcon />,\n label: t('appointmentPeek.location'),\n value: location,\n },\n ]\n : []),\n ...(showClinical && treatment\n ? [\n {\n icon: null,\n label: t('calendarWorkspace.details.care'),\n value: treatment,\n },\n ]\n : []),\n ...(showClinical && details\n ? details.map((detail) => ({\n icon: isValidElement(detail.icon) ? detail.icon : null,\n label: detail.label,\n value: detail.value,\n }))\n : []),\n ];\n\n return (\n <div\n ref={ref}\n data-component=\"appointment-peek\"\n data-status={status}\n className={rootVariants({ className })}\n {...props}\n >\n {/* Avatar, name and the indicator chips together, every fact on its\n own row below, status last: the same identity block as\n PatientDetails. */}\n <div className=\"ds:flex ds:min-w-0 ds:items-start ds:gap-[var(--spacing-sm)]\">\n {privacy ? null : (\n <Avatar\n size=\"sm\"\n name={name}\n src={avatarSrc}\n aria-hidden=\"true\"\n className=\"ds:shrink-0\"\n />\n )}\n <div className=\"ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n <HoverCard.Heading className=\"ds:min-w-0\">\n {privacy ? (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <EyeOff\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:shrink-0\"\n />\n {t('appointmentPeek.hiddenName')}\n </span>\n ) : (\n name\n )}\n </HoverCard.Heading>\n {showClinical && flags ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {flags}\n </div>\n ) : null}\n </div>\n </div>\n\n <DescriptionList\n layout=\"inline\"\n density=\"compact\"\n divider=\"none\"\n // Label icons in the accent, as in PatientDetails.\n className=\"ds:[--description-list-icon-color:var(--accent)]\"\n >\n {rows.map((row, index) => (\n <DescriptionList.Row key={index} icon={row.icon}>\n <DescriptionList.Term>{row.label}</DescriptionList.Term>\n <DescriptionList.Detail>{row.value}</DescriptionList.Detail>\n </DescriptionList.Row>\n ))}\n </DescriptionList>\n\n {/* The kit's one status face: the same display the details panel,\n AppointmentCard and the history use, so a status never reads\n differently on the grid. Last, so the card reads who, what, then\n where it stands. Nothing at all when none is recorded. */}\n {status && workflow && StatusIcon ? (\n <div data-slot=\"workflow\">\n <WorkflowStatusDisplay\n size=\"sm\"\n value={status}\n option={{\n value: status,\n label: statusLabel ?? t(`appointmentCard.state.${status}`),\n icon: <StatusIcon aria-hidden=\"true\" />,\n tone: workflow.tone,\n }}\n />\n </div>\n ) : null}\n </div>\n );\n },\n);\nAppointmentPeek.displayName = 'AppointmentPeek';\n"],"names":["rootVariants","cva","AppointmentPeek","forwardRef","name","avatarSrc","time","location","telehealth","status","statusLabel","details","treatment","flags","privacy","className","props","ref","t","useTranslation","workflow","appointmentStateWorkflow","StatusIcon","LocationIcon","Video","Armchair","showClinical","rows","jsx","Clock","detail","isValidElement","jsxs","Avatar","HoverCard","EyeOff","DescriptionList","row","index","WorkflowStatusDisplay"],"mappings":"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"}
@@ -10,7 +10,7 @@ import { S as $t, C as di } from "./skeleton-tTWJpvAq.js";
10
10
  import { G as qa, h as Er, c as co, A as lo, C as li } from "./color-picker-AcaWuKah.js";
11
11
  import { s as uo, S as po } from "./signature-status-chip-pIoQjvH8.js";
12
12
  import { b as ho } from "./appointment-workflow-status-DMjuIK90.js";
13
- import { b as ja, f as fn, c as mo, d as go, e as vo, A as ui, u as fo, g as bo, D as pi, M as ko, C as Or, h as Io, i as Co, R as hi, j as No, k as yo, l as Na, I as xo, s as So } from "./use-appointment-details-read-CUGfE0hV.js";
13
+ import { b as ja, f as fn, c as mo, d as go, e as vo, A as ui, u as fo, g as bo, D as pi, M as ko, C as Or, h as Io, i as Co, R as hi, j as No, k as yo, l as Na, I as xo, s as So } from "./use-appointment-details-read-1gjZuup4.js";
14
14
  import { A as Rr, a as mi } from "./entity-card-fpm-KUKc.js";
15
15
  import { S as xs } from "./stethoscope-sZXGC43m.js";
16
16
  import { T as Do, P as wo, E as gi, S as To } from "./task-editor-BomyxGoZ.js";
@@ -87,7 +87,7 @@ import { C as ps } from "./card-BA4Ig_kn.js";
87
87
  import { K as Jo } from "./kbd-Bx7eQv9f.js";
88
88
  import { R as Zo } from "./resource-chip-DB5jDwUO.js";
89
89
  import { S as Qo, a as ec, E as tc } from "./calendar-event-card-DXAYWH6k.js";
90
- import { A as nc } from "./appointment-peek-D5XCfYKu.js";
90
+ import { A as nc } from "./appointment-peek-CpcqB8oO.js";
91
91
  import { H as Qa } from "./hover-card-CTNhQXWS.js";
92
92
  import { S as Ti } from "./square-check-big-dj0o8yA3.js";
93
93
  import { P as $r } from "./printer-rkK0T1gi.js";
@@ -10590,4 +10590,4 @@ export {
10590
10590
  Dh as r,
10591
10591
  zt as u
10592
10592
  };
10593
- //# sourceMappingURL=calendar-workspace-CYK1M83j.js.map
10593
+ //# sourceMappingURL=calendar-workspace-Ct8_454k.js.map