@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
@@ -1,6 +1,6 @@
1
- import { jsx as e, jsxs as V } from "react/jsx-runtime";
2
- import { forwardRef as c, useMemo as x, Children as C, isValidElement as T, useContext as R, useState as b, useCallback as j, createContext as P } from "react";
3
- import { c as m } from "./index-D2ZczOXr.js";
1
+ import { jsx as e, jsxs as y } from "react/jsx-runtime";
2
+ import { forwardRef as n, useMemo as x, Children as C, isValidElement as T, useContext as R, useState as b, useCallback as j, createContext as P } from "react";
3
+ import { c as p } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as z } from "react-i18next";
5
5
  import { I as A } from "./icon-button-C_1TgRiK.js";
6
6
  import { C as S } from "./check-DrFSN__t.js";
@@ -11,12 +11,12 @@ function E(s) {
11
11
  function M(s) {
12
12
  return s === "fixed" ? "minmax(0,2fr)" : "minmax(0,1fr)";
13
13
  }
14
- const y = P({
14
+ const k = P({
15
15
  layout: "inline",
16
16
  density: "default",
17
17
  divider: "none",
18
18
  hasIcons: !1
19
- }), O = m("ds:flex ds:flex-col", {
19
+ }), O = p("ds:flex ds:flex-col", {
20
20
  variants: {
21
21
  layout: {
22
22
  inline: "",
@@ -38,7 +38,7 @@ const y = P({
38
38
  density: "default",
39
39
  divider: "none"
40
40
  }
41
- }), q = m("", {
41
+ }), q = p("", {
42
42
  variants: {
43
43
  layout: {
44
44
  inline: "",
@@ -71,7 +71,7 @@ const y = P({
71
71
  layout: "inline",
72
72
  hasIcons: !1,
73
73
  copyable: !0,
74
- className: "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"
74
+ className: "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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]:self-start"
75
75
  },
76
76
  /* ----- inline / with icons -----
77
77
  `items-baseline` aligns Term (`type-label` 14 px / 1.4 lh) and
@@ -94,7 +94,7 @@ const y = P({
94
94
  layout: "inline",
95
95
  hasIcons: !0,
96
96
  copyable: !0,
97
- className: "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"
97
+ className: "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:[&>[data-dl-copy-slot]]:col-start-4 ds:[&>[data-dl-copy-slot]]:self-start"
98
98
  },
99
99
  /* ----- stacked / no icons / no copyable ----- */
100
100
  {
@@ -109,7 +109,7 @@ const y = P({
109
109
  layout: "stacked",
110
110
  hasIcons: !1,
111
111
  copyable: !0,
112
- className: "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"
112
+ className: "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:[&>[data-dl-copy-slot]]:col-start-2 ds:[&>[data-dl-copy-slot]]:row-span-full"
113
113
  },
114
114
  /* ----- stacked / with icons — explicit grid so dt/dd remain
115
115
  direct children of the row div while the icon sits at the
@@ -125,7 +125,7 @@ const y = P({
125
125
  layout: "stacked",
126
126
  hasIcons: !0,
127
127
  copyable: !0,
128
- className: "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"
128
+ className: "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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]:row-span-full"
129
129
  },
130
130
  /* ----- responsive / no icons (inline above sm, stacked below) ----- */
131
131
  {
@@ -138,7 +138,7 @@ const y = P({
138
138
  layout: "responsive",
139
139
  hasIcons: !1,
140
140
  copyable: !0,
141
- className: "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)]"
141
+ className: "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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]:self-start ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]"
142
142
  },
143
143
  /* ----- responsive / with icons ----- */
144
144
  {
@@ -151,7 +151,7 @@ const y = P({
151
151
  layout: "responsive",
152
152
  hasIcons: !0,
153
153
  copyable: !0,
154
- className: "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"
154
+ className: "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:[&>[data-dl-copy-slot]]:col-start-4 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-3 ds:max-sm:[&>[data-dl-copy-slot]]:row-span-full"
155
155
  }
156
156
  ],
157
157
  defaultVariants: {
@@ -160,34 +160,34 @@ const y = P({
160
160
  copyable: !1,
161
161
  hasIcons: !1
162
162
  }
163
- }), k = c(
163
+ }), w = n(
164
164
  ({
165
165
  layout: s = "inline",
166
166
  density: a = "default",
167
- divider: r = "none",
167
+ divider: d = "none",
168
168
  labelWidth: t = "auto",
169
- className: p,
169
+ className: m,
170
170
  children: o,
171
- style: d,
171
+ style: l,
172
172
  ...u
173
173
  }, f) => {
174
174
  const v = x(
175
175
  () => C.toArray(o).some(
176
- (i) => T(i) && i.props.icon != null
176
+ (r) => T(r) && r.props.icon != null
177
177
  ),
178
178
  [o]
179
- ), l = x(
179
+ ), i = x(
180
180
  () => ({
181
- ...d,
181
+ ...l,
182
182
  "--description-list-label-track": E(t),
183
183
  "--description-list-value-track": M(t)
184
184
  }),
185
- [d, t]
185
+ [l, t]
186
186
  );
187
187
  return /* @__PURE__ */ e(
188
- y.Provider,
188
+ k.Provider,
189
189
  {
190
- value: { layout: s, density: a, divider: r, hasIcons: v },
190
+ value: { layout: s, density: a, divider: d, hasIcons: v },
191
191
  children: /* @__PURE__ */ e(
192
192
  "dl",
193
193
  {
@@ -195,12 +195,12 @@ const y = P({
195
195
  className: O({
196
196
  layout: s,
197
197
  density: a,
198
- divider: r,
199
- className: p
198
+ divider: d,
199
+ className: m
200
200
  }),
201
201
  "data-component": "description-list",
202
202
  "data-label-width": t === "auto" || t === "fixed" ? t : "custom",
203
- style: l,
203
+ style: i,
204
204
  ...u,
205
205
  children: o
206
206
  }
@@ -209,30 +209,30 @@ const y = P({
209
209
  );
210
210
  }
211
211
  );
212
- k.displayName = "DescriptionList";
213
- const w = c(
212
+ w.displayName = "DescriptionList";
213
+ const N = n(
214
214
  ({
215
215
  copyable: s = !1,
216
216
  copyText: a,
217
- copyLabel: r,
217
+ copyLabel: d,
218
218
  icon: t,
219
- className: p,
219
+ className: m,
220
220
  children: o,
221
- ...d
221
+ ...l
222
222
  }, u) => {
223
- const { layout: f, divider: v, hasIcons: l } = R(y), { t: i } = z("ui"), [h, g] = b(!1), [I, n] = b(""), L = j(async () => {
223
+ const { layout: f, divider: v, hasIcons: i } = R(k), { t: r } = z("ui"), [I, g] = b(!1), [L, c] = b(""), D = j(async () => {
224
224
  if (a)
225
225
  try {
226
- await navigator.clipboard.writeText(a), g(!0), n(i("keyValuePair.copied")), setTimeout(() => {
227
- g(!1), n("");
226
+ await navigator.clipboard.writeText(a), g(!0), c(r("keyValuePair.copied")), setTimeout(() => {
227
+ g(!1), c("");
228
228
  }, 2e3);
229
229
  } catch {
230
- n(i("keyValuePair.notAvailable")), setTimeout(() => n(""), 3e3);
230
+ c(r("keyValuePair.notAvailable")), setTimeout(() => c(""), 3e3);
231
231
  }
232
- }, [a, i]), D = i("keyValuePair.copy", {
233
- label: r ?? a ?? ""
232
+ }, [a, r]), V = r("keyValuePair.copy", {
233
+ label: d ?? a ?? ""
234
234
  });
235
- return /* @__PURE__ */ V(
235
+ return /* @__PURE__ */ y(
236
236
  "div",
237
237
  {
238
238
  ref: u,
@@ -240,12 +240,12 @@ const w = c(
240
240
  layout: f,
241
241
  divider: v,
242
242
  copyable: s,
243
- hasIcons: l,
244
- className: p
243
+ hasIcons: i,
244
+ className: m
245
245
  }),
246
- ...d,
246
+ ...l,
247
247
  children: [
248
- l && /* @__PURE__ */ e(
248
+ i && /* @__PURE__ */ e(
249
249
  "span",
250
250
  {
251
251
  "data-dl-icon-slot": !0,
@@ -255,27 +255,29 @@ const w = c(
255
255
  }
256
256
  ),
257
257
  o,
258
- s && /* @__PURE__ */ e(
259
- A,
260
- {
261
- icon: h ? /* @__PURE__ */ e(S, {}) : /* @__PURE__ */ e(B, {}),
262
- size: "sm",
263
- "aria-label": D,
264
- onClick: L,
265
- intent: "ghost",
266
- className: "ds:self-start"
267
- }
268
- ),
269
- s && /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: I })
258
+ s && /* @__PURE__ */ y("dd", { "data-dl-copy-slot": !0, className: "ds:m-0 ds:flex", children: [
259
+ /* @__PURE__ */ e(
260
+ A,
261
+ {
262
+ icon: I ? /* @__PURE__ */ e(S, {}) : /* @__PURE__ */ e(B, {}),
263
+ size: "sm",
264
+ "aria-label": V,
265
+ onClick: D,
266
+ intent: "ghost",
267
+ className: "ds:self-start"
268
+ }
269
+ ),
270
+ /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: L })
271
+ ] })
270
272
  ]
271
273
  }
272
274
  );
273
275
  }
274
276
  );
275
- w.displayName = "DescriptionList.Row";
276
- const F = m(
277
+ N.displayName = "DescriptionList.Row";
278
+ const F = p(
277
279
  "type-label ds:text-[color:var(--muted-foreground)] ds:text-start ds:[overflow-wrap:break-word] ds:[word-break:normal]"
278
- ), G = m(
280
+ ), G = p(
279
281
  "type-body ds:text-[color:var(--foreground)] ds:m-0 ds:[overflow-wrap:break-word] ds:[word-break:normal]",
280
282
  {
281
283
  variants: {
@@ -288,32 +290,32 @@ const F = m(
288
290
  numeric: !1
289
291
  }
290
292
  }
291
- ), _ = c(
292
- ({ className: s, ...a }, r) => /* @__PURE__ */ e(
293
+ ), _ = n(
294
+ ({ className: s, ...a }, d) => /* @__PURE__ */ e(
293
295
  "dt",
294
296
  {
295
- ref: r,
297
+ ref: d,
296
298
  className: F({ className: s }),
297
299
  ...a
298
300
  }
299
301
  )
300
302
  );
301
303
  _.displayName = "DescriptionList.Term";
302
- const N = c(({ numeric: s = !1, className: a, ...r }, t) => /* @__PURE__ */ e(
304
+ const h = n(({ numeric: s = !1, className: a, ...d }, t) => /* @__PURE__ */ e(
303
305
  "dd",
304
306
  {
305
307
  ref: t,
306
308
  className: G({ numeric: s, className: a }),
307
- ...r
309
+ ...d
308
310
  }
309
311
  ));
310
- N.displayName = "DescriptionList.Detail";
311
- const Z = Object.assign(k, {
312
- Row: w,
312
+ h.displayName = "DescriptionList.Detail";
313
+ const Z = Object.assign(w, {
314
+ Row: N,
313
315
  Term: _,
314
- Detail: N
316
+ Detail: h
315
317
  });
316
318
  export {
317
319
  Z as D
318
320
  };
319
- //# sourceMappingURL=description-list-Q8640NHu.js.map
321
+ //# sourceMappingURL=description-list-DQQ2OA_t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description-list-DQQ2OA_t.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 sits in its own `<dd data-dl-copy-slot>`, pinned */\n/* to the trailing column via `[&>[data-dl-copy-slot]]:col-start-N` so */\n/* it does not wrap to an unrelated cell when the row also contains */\n/* 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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-4 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-2 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-3 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-4 ds:[&>[data-dl-copy-slot]]: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:[&>[data-dl-copy-slot]]:col-start-3 ds:max-sm:[&>[data-dl-copy-slot]]: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 {/* A `<dl>` group may hold only `<dt>` and `<dd>`: the copy button\n and its announcement sit in a `<dd>` of their own, which the\n row's grid places in the trailing column. */}\n {copyable && (\n <dd data-dl-copy-slot className=\"ds:m-0 ds:flex\">\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 <span role=\"status\" className=\"ds:sr-only\">\n {announcement}\n </span>\n </dd>\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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"}
@@ -6,7 +6,7 @@ import { u as Ue } from "./registry-DvAUVLHh.js";
6
6
  import { N as ae } from "./number-input-CVwI1ltI.js";
7
7
  import { S as ye } from "./select-4S-eYZUf.js";
8
8
  import { T as Je } from "./text-area-COMVJ1yE.js";
9
- import { D as v } from "./description-list-Q8640NHu.js";
9
+ import { D as v } from "./description-list-DQQ2OA_t.js";
10
10
  import { a as Qe } from "./format-number-DdzqwMs1.js";
11
11
  const be = {
12
12
  enum: ["od", "os"],
@@ -1273,4 +1273,4 @@ export {
1273
1273
  gt as y,
1274
1274
  _e as z
1275
1275
  };
1276
- //# sourceMappingURL=optical-prescription-ulXnDbBe.js.map
1276
+ //# sourceMappingURL=optical-prescription-D5c7FBlT.js.map