@alfadocs/ui-kit-debug 1.68.0 → 1.70.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-D6K7Jgc2.js +832 -0
  36. package/dist/_chunks/workflow-webhook-action-D6K7Jgc2.js.map +1 -0
  37. package/dist/agent-catalog.json +110 -1
  38. package/dist/agent-i18n/en.json +10 -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 +67 -0
  57. package/dist/i18n/locales/ar.d.ts.map +1 -1
  58. package/dist/i18n/locales/ar.js +67 -0
  59. package/dist/i18n/locales/ar.js.map +1 -1
  60. package/dist/i18n/locales/de.d.ts +67 -0
  61. package/dist/i18n/locales/de.d.ts.map +1 -1
  62. package/dist/i18n/locales/de.js +67 -0
  63. package/dist/i18n/locales/de.js.map +1 -1
  64. package/dist/i18n/locales/el.d.ts +67 -0
  65. package/dist/i18n/locales/el.d.ts.map +1 -1
  66. package/dist/i18n/locales/el.js +67 -0
  67. package/dist/i18n/locales/el.js.map +1 -1
  68. package/dist/i18n/locales/en.d.ts +67 -0
  69. package/dist/i18n/locales/en.d.ts.map +1 -1
  70. package/dist/i18n/locales/en.js +67 -0
  71. package/dist/i18n/locales/en.js.map +1 -1
  72. package/dist/i18n/locales/es.d.ts +67 -0
  73. package/dist/i18n/locales/es.d.ts.map +1 -1
  74. package/dist/i18n/locales/es.js +67 -0
  75. package/dist/i18n/locales/es.js.map +1 -1
  76. package/dist/i18n/locales/fr.d.ts +67 -0
  77. package/dist/i18n/locales/fr.d.ts.map +1 -1
  78. package/dist/i18n/locales/fr.js +67 -0
  79. package/dist/i18n/locales/fr.js.map +1 -1
  80. package/dist/i18n/locales/hi.d.ts +67 -0
  81. package/dist/i18n/locales/hi.d.ts.map +1 -1
  82. package/dist/i18n/locales/hi.js +67 -0
  83. package/dist/i18n/locales/hi.js.map +1 -1
  84. package/dist/i18n/locales/it.d.ts +67 -0
  85. package/dist/i18n/locales/it.d.ts.map +1 -1
  86. package/dist/i18n/locales/it.js +67 -0
  87. package/dist/i18n/locales/it.js.map +1 -1
  88. package/dist/i18n/locales/ja.d.ts +67 -0
  89. package/dist/i18n/locales/ja.d.ts.map +1 -1
  90. package/dist/i18n/locales/ja.js +67 -0
  91. package/dist/i18n/locales/ja.js.map +1 -1
  92. package/dist/i18n/locales/nl.d.ts +67 -0
  93. package/dist/i18n/locales/nl.d.ts.map +1 -1
  94. package/dist/i18n/locales/nl.js +67 -0
  95. package/dist/i18n/locales/nl.js.map +1 -1
  96. package/dist/i18n/locales/pl.d.ts +67 -0
  97. package/dist/i18n/locales/pl.d.ts.map +1 -1
  98. package/dist/i18n/locales/pl.js +67 -0
  99. package/dist/i18n/locales/pl.js.map +1 -1
  100. package/dist/i18n/locales/pt.d.ts +67 -0
  101. package/dist/i18n/locales/pt.d.ts.map +1 -1
  102. package/dist/i18n/locales/pt.js +67 -0
  103. package/dist/i18n/locales/pt.js.map +1 -1
  104. package/dist/i18n/locales/ro.d.ts +67 -0
  105. package/dist/i18n/locales/ro.d.ts.map +1 -1
  106. package/dist/i18n/locales/ro.js +67 -0
  107. package/dist/i18n/locales/ro.js.map +1 -1
  108. package/dist/i18n/locales/ru.d.ts +67 -0
  109. package/dist/i18n/locales/ru.d.ts.map +1 -1
  110. package/dist/i18n/locales/ru.js +67 -0
  111. package/dist/i18n/locales/ru.js.map +1 -1
  112. package/dist/i18n/locales/sq.d.ts +67 -0
  113. package/dist/i18n/locales/sq.d.ts.map +1 -1
  114. package/dist/i18n/locales/sq.js +67 -0
  115. package/dist/i18n/locales/sq.js.map +1 -1
  116. package/dist/i18n/locales/sv.d.ts +67 -0
  117. package/dist/i18n/locales/sv.d.ts.map +1 -1
  118. package/dist/i18n/locales/sv.js +67 -0
  119. package/dist/i18n/locales/sv.js.map +1 -1
  120. package/dist/i18n/locales/tr.d.ts +67 -0
  121. package/dist/i18n/locales/tr.d.ts.map +1 -1
  122. package/dist/i18n/locales/tr.js +67 -0
  123. package/dist/i18n/locales/tr.js.map +1 -1
  124. package/dist/i18n/locales/zh.d.ts +67 -0
  125. package/dist/i18n/locales/zh.d.ts.map +1 -1
  126. package/dist/i18n/locales/zh.js +67 -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 +67 -0
  131. package/dist/locales/de.json +67 -0
  132. package/dist/locales/el.json +67 -0
  133. package/dist/locales/en.json +67 -0
  134. package/dist/locales/es.json +67 -0
  135. package/dist/locales/fr.json +67 -0
  136. package/dist/locales/hi.json +67 -0
  137. package/dist/locales/it.json +67 -0
  138. package/dist/locales/ja.json +67 -0
  139. package/dist/locales/nl.json +67 -0
  140. package/dist/locales/pl.json +67 -0
  141. package/dist/locales/pt.json +67 -0
  142. package/dist/locales/ro.json +67 -0
  143. package/dist/locales/ru.json +67 -0
  144. package/dist/locales/sq.json +67 -0
  145. package/dist/locales/sv.json +67 -0
  146. package/dist/locales/tr.json +67 -0
  147. package/dist/locales/zh.json +67 -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 +119 -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfadocs/ui-kit-debug",
3
- "version": "1.68.0",
3
+ "version": "1.70.0",
4
4
  "type": "module",
5
5
  "description": "AlfaDocs shared design system — tokens, components, patterns, and translations for platform, booking, and alfascribe. (debug build — identical runtime to @alfadocs/ui-kit, ships source maps for symbolication).",
6
6
  "license": "BUSL-1.1",
@@ -890,6 +890,10 @@
890
890
  "types": "./dist/patterns/signed-out-frame/index.d.ts",
891
891
  "import": "./dist/patterns/signed-out-frame/index.js"
892
892
  },
893
+ "./patterns/workflow-webhook-action": {
894
+ "types": "./dist/patterns/workflow-webhook-action/index.d.ts",
895
+ "import": "./dist/patterns/workflow-webhook-action/index.js"
896
+ },
893
897
  "./patient-summary-card": {
894
898
  "types": "./dist/components/patient-summary-card/index.d.ts",
895
899
  "import": "./dist/components/patient-summary-card/index.js"
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block-vwEv1jEa.js","sources":["../../src/components/_shared/code-block.tsx"],"sourcesContent":["/**\n * Shared fenced-code-block renderer for the chat markdown path.\n *\n * `splitCodeFences` slices a markdown string into plain-text and fenced-code\n * segments so `ChatMessage` / `StreamingText` can keep their existing inline\n * tokenizers for the text runs and render `<CodeBlock>` for the code runs.\n * It tolerates an UNTERMINATED trailing fence — the streaming case, where the\n * closing ``` has not arrived yet — so a prompt renders as a code block as it\n * streams in.\n *\n * `CodeBlock` renders the code in a scrollable monospace surface with a Copy\n * affordance (clipboard + a brief \"Copied\" confirmation, graceful no-op when\n * the clipboard API is unavailable). No `dangerouslySetInnerHTML`.\n */\nimport { forwardRef, useCallback, useState, type HTMLAttributes } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Check, Copy } from 'lucide-react';\nimport { IconButton } from '../button';\n\n/* ------------------------------------------------------------------ */\n/* splitCodeFences */\n/* ------------------------------------------------------------------ */\n\nexport type MarkdownSegment =\n | { type: 'text'; value: string }\n | { type: 'code'; lang?: string; value: string };\n\n/**\n * Split markdown into text + fenced-code segments. Matches an opening\n * ` ```lang\\n `, lazy content, then either a closing ` \\n``` ` on its own line\n * or end-of-input (the unterminated streaming case).\n */\nexport function splitCodeFences(input: string): MarkdownSegment[] {\n const segments: MarkdownSegment[] = [];\n // `\\n?` before the closing fence so an EMPTY block (```ts\\n```) closes\n // correctly rather than swallowing its own closing backticks as content.\n const fence = /```([^\\n`]*)\\n([\\s\\S]*?)(?:\\n?```|$)/g;\n let last = 0;\n let m: RegExpExecArray | null;\n while ((m = fence.exec(input)) !== null) {\n if (m.index > last) {\n segments.push({ type: 'text', value: input.slice(last, m.index) });\n }\n segments.push({\n type: 'code',\n lang: m[1].trim() || undefined,\n value: m[2],\n });\n last = fence.lastIndex;\n }\n if (last < input.length) {\n segments.push({ type: 'text', value: input.slice(last) });\n }\n return segments;\n}\n\n/* ------------------------------------------------------------------ */\n/* CodeBlock */\n/* ------------------------------------------------------------------ */\n\nconst codeBlockVariants = cva(\n [\n 'ds:my-[var(--spacing-sm)] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[color:var(--border)]',\n 'ds:bg-[var(--muted)]',\n ].join(' '),\n);\n\nexport interface CodeBlockProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children'\n> {\n /** Raw code text. */\n code: string;\n /** Optional info string after the opening fence (e.g. `ts`, `bash`). */\n language?: string;\n /** Render the Copy affordance. Default `true`. */\n showCopy?: boolean;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, showCopy = true, className, ...rest }, ref) => {\n const { t } = useTranslation('ui');\n const [copied, setCopied] = useState(false);\n\n const canCopy =\n showCopy &&\n typeof navigator !== 'undefined' &&\n typeof navigator.clipboard?.writeText === 'function';\n\n const handleCopy = useCallback(() => {\n navigator.clipboard\n ?.writeText(code)\n .then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n })\n .catch(() => {\n // Clipboard blocked (insecure context / permissions) — graceful no-op.\n });\n }, [code]);\n\n return (\n <div\n ref={ref}\n data-component=\"code-block\"\n className={[codeBlockVariants(), className].filter(Boolean).join(' ')}\n {...rest}\n >\n {language || canCopy ? (\n <div\n className={[\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]',\n 'ds:border-b ds:border-[color:var(--border)]',\n 'ds:bg-[color-mix(in_srgb,var(--muted-foreground)_8%,transparent)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-xs)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n ].join(' ')}\n >\n <span\n dir=\"ltr\"\n className=\"type-meta ds:text-[color:var(--muted-foreground)]\"\n >\n {language ?? ''}\n </span>\n {canCopy ? (\n <IconButton\n icon={copied ? <Check /> : <Copy />}\n aria-label={\n copied ? t('codeBlock.copied') : t('codeBlock.copy')\n }\n intent=\"ghost\"\n size=\"sm\"\n onClick={handleCopy}\n />\n ) : null}\n </div>\n ) : null}\n {/* eslint-disable jsx-a11y/no-noninteractive-tabindex --\n the scrollable <pre> must be keyboard-focusable so keyboard users\n can scroll the overflow (axe scrollable-region-focusable); the\n browser default focus ring satisfies WCAG 2.4.7. */}\n <pre\n tabIndex={0}\n className=\"ds:m-0 ds:overflow-x-auto ds:p-[var(--spacing-md)]\"\n >\n <code\n dir=\"ltr\"\n className={[\n 'ds:font-[family-name:var(--font-mono)]',\n 'ds:text-[length:var(--font-size-sm)] ds:leading-relaxed',\n 'ds:text-[color:var(--foreground)]',\n 'ds:whitespace-pre',\n ].join(' ')}\n >\n {code}\n </code>\n </pre>\n {/* eslint-enable jsx-a11y/no-noninteractive-tabindex */}\n {/* Polite status so AT confirms the copy without moving focus. */}\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {copied ? t('codeBlock.copied') : ''}\n </span>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = 'CodeBlock';\n"],"names":["splitCodeFences","input","segments","fence","last","m","codeBlockVariants","cva","CodeBlock","forwardRef","code","language","showCopy","className","rest","ref","t","useTranslation","copied","setCopied","useState","canCopy","_a","handleCopy","useCallback","jsxs","jsx","IconButton","Check","Copy"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"description-list-Q8640NHu.js","sources":["../../src/components/description-list/description-list.tsx"],"sourcesContent":["import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useMemo,\n useState,\n type CSSProperties,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Copy, Check } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\n\n/* ------------------------------------------------------------------ */\n/* labelWidth → label / value track resolver */\n/* */\n/* The `inline` / `responsive` layouts render a two- or three-column */\n/* grid (icon? · label · value · copy?). The label column's width is */\n/* parameterised so consumers can pick the right behaviour for the */\n/* surrounding container: */\n/* */\n/* - `auto` (default): label sizes to its intrinsic content; the */\n/* value column takes the remainder. Long labels wrap word-by-word */\n/* in narrow contexts instead of being squeezed into a 1fr column */\n/* that can collapse below the longest word. */\n/* - `fixed`: legacy ⅓ / ⅔ ratio (label `minmax(0,1fr)`, value */\n/* `minmax(0,2fr)`). Use for wide forms where consistent alignment */\n/* across rows is more important than fitting the longest label. */\n/* - any CSS length / track size (`'8rem'`, `'min-content'`, …): */\n/* forces the label column to that width. */\n/* */\n/* The resolved values are surfaced as `--description-list-label-track` */\n/* and `--description-list-value-track` on the root `<dl>` so each Row */\n/* can compose them with the icon / copy auto columns it needs. */\n/* ------------------------------------------------------------------ */\n\ntype LabelWidthPreset = 'auto' | 'fixed';\nexport type DescriptionListLabelWidth = LabelWidthPreset | (string & {});\n\nfunction resolveLabelTrack(labelWidth: DescriptionListLabelWidth): string {\n // `auto` uses `fit-content(50%)` rather than the bare `auto` keyword.\n // CSS `auto` resolves to `minmax(min-content, max-content)`, which can't\n // shrink the term column below the dt's max-content in a narrow container\n // (the failure mode booking-website hit with long Italian medical labels\n // in a 320 px Carousel slide). `fit-content(50%)` clamps to\n // `max(min-content, min(50%-of-container, max-content))`:\n // - in narrow containers it caps at 50 % of the row width, leaving the\n // other half for the detail column; the dt wraps at word boundaries\n // via `overflow-wrap: break-word`.\n // - in wide containers it expands to the dt's max-content, so short\n // labels don't stretch unnecessarily.\n if (labelWidth === 'auto') return 'fit-content(50%)';\n if (labelWidth === 'fixed') return 'minmax(0,1fr)';\n return labelWidth;\n}\n\nfunction resolveValueTrack(labelWidth: DescriptionListLabelWidth): string {\n return labelWidth === 'fixed' ? 'minmax(0,2fr)' : 'minmax(0,1fr)';\n}\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface DescriptionListContextShape {\n layout: 'inline' | 'stacked' | 'responsive';\n density: 'default' | 'compact';\n divider: 'none' | 'between' | 'bordered';\n /**\n * True when at least one direct child Row was rendered with a\n * non-null `icon` prop. Every Row in the list then reserves a\n * leading icon column (rendering a `size-4` empty placeholder\n * when this row has no icon) so the grid's `auto` column resolves\n * to the same width across all rows and sibling Rows align.\n */\n hasIcons: boolean;\n}\n\nconst DescriptionListContext = createContext<DescriptionListContextShape>({\n layout: 'inline',\n density: 'default',\n divider: 'none',\n hasIcons: false,\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — root <dl> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListVariants = cva('ds:flex ds:flex-col', {\n variants: {\n layout: {\n inline: '',\n stacked: '',\n responsive: '',\n },\n density: {\n default: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n divider: {\n none: '',\n between: '',\n bordered: '',\n },\n },\n defaultVariants: {\n layout: 'inline',\n density: 'default',\n divider: 'none',\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — row <div> */\n/* */\n/* The grid template is selected per (layout × hasIcons × copyable). */\n/* Inline / responsive (above sm) layouts use a 2-, 3-, or 4-column */\n/* grid. Stacked layouts use flex-col when there are no icons, and a */\n/* 2- or 3-column grid when icons are present (so the icon can sit at */\n/* the leading edge of the dt/dd stack without breaking the dl/dt/dd */\n/* parent-child relationship the HTML5 spec requires). */\n/* */\n/* The icon column is `auto` — it resolves to the icon wrapper's */\n/* intrinsic box (`size-4` = 1rem), which matches the empty placeholder */\n/* rendered on rows without an icon. That keeps sibling rows aligned */\n/* even when only some rows carry an icon. */\n/* */\n/* The copy IconButton is pinned to the trailing column via */\n/* `[&>button]:col-start-N` so it does not wrap to an unrelated cell */\n/* when the row also contains multiple `<dd>` siblings. */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListRowVariants = cva('', {\n variants: {\n layout: {\n inline: '',\n stacked: '',\n responsive: '',\n },\n divider: {\n none: '',\n between:\n 'ds:[&:not(:last-child)]:border-b ds:[&:not(:last-child)]:border-[color:var(--border)] ds:[&:not(:last-child)]:pb-[var(--spacing-md)]',\n bordered:\n 'ds:border ds:border-[color:var(--border)] ds:rounded-[var(--radius-sm)] ds:p-[var(--spacing-sm)]',\n },\n copyable: {\n true: '',\n false: '',\n },\n hasIcons: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n /* ----- inline / no icons ----- */\n {\n layout: 'inline',\n hasIcons: false,\n copyable: false,\n className:\n 'ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-baseline',\n },\n {\n layout: 'inline',\n hasIcons: false,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>button]:col-start-3 ds:[&>button]:self-start',\n },\n /* ----- inline / with icons -----\n `items-baseline` aligns Term (`type-label` 14 px / 1.4 lh) and\n Detail (`type-body` 16 px / 1.6 lh) by their text baselines so\n their cap-heights line up — without it Detail's larger\n line-box pushed plain-text values visibly below the label.\n Per-cell overrides keep the icon at row-top (with the\n `mt-[5px]` cap-height nudge intact) and the copy button at\n row-start too. Chip cells (Badges / Tags inside the Detail\n column) baseline-align via their internal text baseline; the\n shift is sub-pixel and the chip rows remain visually anchored\n with the row's label. */\n {\n layout: 'inline',\n hasIcons: true,\n copyable: false,\n className:\n 'ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>[data-dl-icon-slot]]:self-start',\n },\n {\n layout: 'inline',\n hasIcons: true,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>[data-dl-icon-slot]]:self-start ds:[&>button]:col-start-4 ds:[&>button]:self-start',\n },\n /* ----- stacked / no icons / no copyable ----- */\n {\n layout: 'stacked',\n hasIcons: false,\n copyable: false,\n className: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n },\n /* ----- stacked / no icons / copyable — 2-col grid so the copy\n button sits in a trailing column instead of below dd ----- */\n {\n layout: 'stacked',\n hasIcons: false,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[minmax(0,1fr)_auto] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>button]:col-start-2 ds:[&>button]:row-span-full',\n },\n /* ----- stacked / with icons — explicit grid so dt/dd remain\n direct children of the row div while the icon sits at the\n leading edge of the column-2 stack. `labelWidth` does not\n apply here (single content column). ----- */\n {\n layout: 'stacked',\n hasIcons: true,\n copyable: false,\n className:\n 'ds:grid ds:grid-cols-[auto_minmax(0,1fr)] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>dt]:col-start-2 ds:[&>dd]:col-start-2 ds:[&>[data-dl-icon-slot]]:row-span-full',\n },\n {\n layout: 'stacked',\n hasIcons: true,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>dt]:col-start-2 ds:[&>dd]:col-start-2 ds:[&>[data-dl-icon-slot]]:row-span-full ds:[&>button]:col-start-3 ds:[&>button]:row-span-full',\n },\n /* ----- responsive / no icons (inline above sm, stacked below) ----- */\n {\n layout: 'responsive',\n hasIcons: false,\n copyable: false,\n className:\n 'ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-baseline ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]',\n },\n {\n layout: 'responsive',\n hasIcons: false,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>button]:col-start-3 ds:[&>button]:self-start ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]',\n },\n /* ----- responsive / with icons ----- */\n {\n layout: 'responsive',\n hasIcons: true,\n copyable: false,\n className:\n 'ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>[data-dl-icon-slot]]:self-start ds:max-sm:grid-cols-[auto_minmax(0,1fr)] ds:max-sm:gap-x-[var(--spacing-sm)] ds:max-sm:gap-y-[var(--spacing-xs)] ds:max-sm:[&>dt]:col-start-2 ds:max-sm:[&>dd]:col-start-2 ds:max-sm:[&>[data-dl-icon-slot]]:row-span-full',\n },\n {\n layout: 'responsive',\n hasIcons: true,\n copyable: true,\n className:\n 'ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-baseline ds:[&>[data-dl-icon-slot]]:self-start ds:[&>button]:col-start-4 ds:[&>button]:self-start ds:max-sm:grid-cols-[auto_minmax(0,1fr)_auto] ds:max-sm:gap-x-[var(--spacing-sm)] ds:max-sm:gap-y-[var(--spacing-xs)] ds:max-sm:[&>dt]:col-start-2 ds:max-sm:[&>dd]:col-start-2 ds:max-sm:[&>[data-dl-icon-slot]]:row-span-full ds:max-sm:[&>button]:col-start-3 ds:max-sm:[&>button]:row-span-full',\n },\n ],\n defaultVariants: {\n layout: 'inline',\n divider: 'none',\n copyable: false,\n hasIcons: false,\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface DescriptionListProps extends React.HTMLAttributes<HTMLDListElement> {\n layout?: 'inline' | 'stacked' | 'responsive';\n density?: 'default' | 'compact';\n divider?: 'none' | 'between' | 'bordered';\n /**\n * Width of the term column in `inline` and `responsive` layouts.\n *\n * - `'auto'` (default): the term column sizes to its intrinsic content\n * per row, so labels wrap at word boundaries in narrow contexts (carousel\n * cards, sidebar panels) and the detail column takes the remaining inline\n * space. **Sibling rows do NOT share column widths under this preset** —\n * each row's columns size to its own content. Use this when intrinsic\n * per-row sizing matters more than vertical alignment of values.\n * - `'fixed'`: ⅓ / ⅔ split — term column is `minmax(0, 1fr)` and detail\n * column is `minmax(0, 2fr)`. Sibling rows share the same proportional\n * widths, so values align vertically across rows. Use this when shared\n * value-column alignment matters (the typical use case for a list of\n * contact rows, profile fields, or any tabular-feeling metadata).\n * - any CSS track size (`'8rem'`, `'min-content'`, `'40%'`, …): pins the\n * term column to that width and lets the detail column take the rest.\n *\n * Ignored when `layout=\"stacked\"` (single content column).\n */\n labelWidth?: DescriptionListLabelWidth;\n}\n\nexport interface DescriptionListRowProps extends React.HTMLAttributes<HTMLDivElement> {\n /** When true, shows a copy-to-clipboard button using KeyValuePair's established mechanism */\n copyable?: boolean;\n /** Text written to the clipboard when copyable=true */\n copyText?: string;\n /** Label used in the copy button's aria-label: \"Copy {copyLabel}\". Falls back to copyText. */\n copyLabel?: string;\n /**\n * Optional decorative icon rendered at the leading edge of the row.\n * Pass a `lucide-react` icon (or any single React element) for visual\n * consistency. The wrapper applies `aria-hidden=\"true\"` and paints\n * the icon with `var(--description-list-icon-color)` (defaults to\n * `--muted-foreground`); consumers can recolour the slot via that\n * token without forking the component.\n *\n * When any row in the list passes an `icon`, every row reserves a\n * leading icon column so values align across siblings — including\n * rows that did not pass an icon.\n *\n * Type is `ReactElement` (not the broader `ReactNode`) so the intent\n * is clear at the call site: this slot is for a single SVG/icon,\n * not arbitrary fragments, strings, or numbers.\n */\n icon?: React.ReactElement | null;\n}\n\nexport type DescriptionListTermProps = React.HTMLAttributes<HTMLElement>;\n\nexport interface DescriptionListDetailProps extends React.HTMLAttributes<HTMLElement> {\n /** Right-aligns numeric values via text-end */\n numeric?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root — <dl> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRoot = forwardRef<HTMLDListElement, DescriptionListProps>(\n (\n {\n layout = 'inline',\n density = 'default',\n divider = 'none',\n labelWidth = 'auto',\n className,\n children,\n style,\n ...props\n },\n ref,\n ) => {\n // Detect whether any direct child Row carries a non-null `icon` prop.\n // `Children.toArray` flattens nested arrays from `.map()` calls; fragments\n // (`<>…</>`) and deeper wrappers (HOCs, custom containers) are NOT\n // unwrapped. Consumers who hit that edge case can force the icon column\n // by passing `icon={<></>}` on at least one direct-child Row.\n const hasIcons = useMemo(\n () =>\n Children.toArray(children).some(\n (child) =>\n isValidElement(child) &&\n (child.props as { icon?: unknown }).icon != null,\n ),\n [children],\n );\n\n // Inline style — permitted per 23-constraints §Runtime-computed dimensions\n // (CSS custom property setter; the grid-template-columns rule that\n // consumes these variables lives in CVA on each Row).\n const gridStyle = useMemo<CSSProperties>(\n () =>\n ({\n ...style,\n '--description-list-label-track': resolveLabelTrack(labelWidth),\n '--description-list-value-track': resolveValueTrack(labelWidth),\n }) as CSSProperties,\n [style, labelWidth],\n );\n\n return (\n <DescriptionListContext.Provider\n value={{ layout, density, divider, hasIcons }}\n >\n <dl\n ref={ref}\n className={descriptionListVariants({\n layout,\n density,\n divider,\n className,\n })}\n data-component=\"description-list\"\n data-label-width={\n labelWidth === 'auto' || labelWidth === 'fixed'\n ? labelWidth\n : 'custom'\n }\n // eslint-disable-next-line react/forbid-dom-props -- 23-constraints §Runtime-computed dimensions: labelWidth resolves to a CSS track size set on `--description-list-label-track`. The grid-template-columns rule that consumes the variable lives in CVA on each Row.\n style={gridStyle}\n {...props}\n >\n {children}\n </dl>\n </DescriptionListContext.Provider>\n );\n },\n);\nDescriptionListRoot.displayName = 'DescriptionList';\n\n/* ------------------------------------------------------------------ */\n/* Row — <div> that groups a <dt> with its <dd>(s) */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRow = forwardRef<HTMLDivElement, DescriptionListRowProps>(\n (\n {\n copyable = false,\n copyText,\n copyLabel,\n icon,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { layout, divider, hasIcons } = useContext(DescriptionListContext);\n const { t } = useTranslation('ui');\n const [copied, setCopied] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n\n const handleCopy = useCallback(async () => {\n if (!copyText) {\n if (import.meta.env.DEV) {\n console.warn(\n 'DescriptionList.Row: copyable=true but no copyText provided. Copy is a no-op.',\n );\n }\n return;\n }\n try {\n await navigator.clipboard.writeText(copyText);\n setCopied(true);\n setAnnouncement(t('keyValuePair.copied'));\n setTimeout(() => {\n setCopied(false);\n setAnnouncement('');\n }, 2000);\n } catch {\n setAnnouncement(t('keyValuePair.notAvailable'));\n setTimeout(() => setAnnouncement(''), 3000);\n }\n }, [copyText, t]);\n\n const ariaLabel = t('keyValuePair.copy', {\n label: copyLabel ?? copyText ?? '',\n });\n\n return (\n <div\n ref={ref}\n className={descriptionListRowVariants({\n layout,\n divider,\n copyable,\n hasIcons,\n className,\n })}\n {...props}\n >\n {/* Icon slot — rendered on every row when the list has any icons\n so column-1 width is consistent across siblings. The wrapper\n is `size-4` regardless of whether it contains an SVG, so the\n grid's `auto` column resolves to the same 1rem width for\n both icon-bearing and icon-less rows. `aria-hidden` keeps SR\n announcements as \"term: definition\" without an interstitial\n icon role. */}\n {hasIcons && (\n <span\n data-dl-icon-slot\n aria-hidden=\"true\"\n // Cap-height alignment for the icon vs the label's first\n // line. The previous `mt-0.5` (2 px) left the icon\n // visibly above the label — `type-label` at 14 px /\n // 1.4 lh has its cap-height roughly 5 px below the row\n // top, so a 16 px icon centred at row+10 was painting\n // above the label's letter tops. `mt-[5px]` lands the\n // icon's visible glyph (after lucide's internal ~2 px\n // padding) right on the label cap-height.\n // `align-self` defers to the parent grid's\n // `items-start` so the icon stays anchored to the row's\n // first line — multi-line values (badge chips, wrapped\n // text) don't drag the icon down.\n className=\"ds:inline-flex ds:size-4 ds:shrink-0 ds:mt-[5px] ds:items-center ds:justify-center ds:[&_svg]:size-4 ds:text-[color:var(--description-list-icon-color)]\"\n >\n {icon}\n </span>\n )}\n {children}\n {copyable && (\n <IconButton\n icon={copied ? <Check /> : <Copy />}\n size=\"sm\"\n aria-label={ariaLabel}\n onClick={handleCopy}\n intent=\"ghost\"\n className=\"ds:self-start\"\n />\n )}\n {copyable && (\n <span role=\"status\" className=\"ds:sr-only\">\n {announcement}\n </span>\n )}\n </div>\n );\n },\n);\nDescriptionListRow.displayName = 'DescriptionList.Row';\n\n/* ------------------------------------------------------------------ */\n/* CVA — term <dt> */\n/* ------------------------------------------------------------------ */\n\n// Term / Detail use `overflow-wrap: break-word` (not `anywhere`) so natural-\n// language content wraps at word boundaries first. `anywhere` introduces a\n// soft-wrap opportunity at every character boundary, which combines with\n// `minmax(0, …)` grid tracks to break Italian / German labels mid-word in\n// narrow contexts (carousel cards, sidebar panels). `break-word` still breaks\n// genuinely unbreakable strings — URLs, hashes, long IDs — at the column\n// edge, so transaction IDs and email addresses don't push the layout wider.\nconst descriptionListTermVariants = cva(\n 'type-label ds:text-[color:var(--muted-foreground)] ds:text-start ds:[overflow-wrap:break-word] ds:[word-break:normal]',\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — detail <dd> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListDetailVariants = cva(\n 'type-body ds:text-[color:var(--foreground)] ds:m-0 ds:[overflow-wrap:break-word] ds:[word-break:normal]',\n {\n variants: {\n numeric: {\n true: 'ds:text-end',\n false: 'ds:text-start',\n },\n },\n defaultVariants: {\n numeric: false,\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Term — <dt> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListTerm = forwardRef<HTMLElement, DescriptionListTermProps>(\n ({ className, ...props }, ref) => (\n <dt\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListTermVariants({ className })}\n {...props}\n />\n ),\n);\nDescriptionListTerm.displayName = 'DescriptionList.Term';\n\n/* ------------------------------------------------------------------ */\n/* Detail — <dd> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListDetail = forwardRef<\n HTMLElement,\n DescriptionListDetailProps\n>(({ numeric = false, className, ...props }, ref) => (\n <dd\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListDetailVariants({ numeric, className })}\n {...props}\n />\n));\nDescriptionListDetail.displayName = 'DescriptionList.Detail';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const DescriptionList = Object.assign(DescriptionListRoot, {\n Row: DescriptionListRow,\n Term: DescriptionListTerm,\n Detail: DescriptionListDetail,\n});\n"],"names":["resolveLabelTrack","labelWidth","resolveValueTrack","DescriptionListContext","createContext","descriptionListVariants","cva","descriptionListRowVariants","DescriptionListRoot","forwardRef","layout","density","divider","className","children","style","props","ref","hasIcons","useMemo","Children","child","isValidElement","gridStyle","jsx","DescriptionListRow","copyable","copyText","copyLabel","icon","useContext","t","useTranslation","copied","setCopied","useState","announcement","setAnnouncement","handleCopy","useCallback","ariaLabel","jsxs","IconButton","Check","Copy","descriptionListTermVariants","descriptionListDetailVariants","DescriptionListTerm","DescriptionListDetail","numeric","DescriptionList"],"mappings":"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"}