@alfadocs/ui-kit 0.31.4 → 0.31.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/_chunks/{agenda-card-UJA6Arbs.js → agenda-card-DtGlQde1.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-1fAxNOMz.js → agenda-tray-CXmlwt2K.js} +2 -2
  3. package/dist/_chunks/{badge-CptERaHx.js → badge-B9Cr6iEB.js} +30 -21
  4. package/dist/_chunks/{benefit-card-CLPNpiQE.js → benefit-card-B86DH-PE.js} +14 -10
  5. package/dist/_chunks/{card-DKTMLVrw.js → card-CNri9ssR.js} +43 -37
  6. package/dist/_chunks/{contact-card-DYbp--s-.js → contact-card-Dos7Tley.js} +2 -2
  7. package/dist/_chunks/{editable-currency-cell-renderer-BpicmolK.js → editable-currency-cell-renderer-YvTwkFrD.js} +2 -2
  8. package/dist/_chunks/key-value-pair-CYE7NSpM.js +134 -0
  9. package/dist/_chunks/message-circle-C23eicgb.js +20 -0
  10. package/dist/_chunks/operator-hero-BsjE-kJF.js +171 -0
  11. package/dist/_chunks/{patient-search-hFiYbqcl.js → patient-search-CSDru7QW.js} +2 -2
  12. package/dist/_chunks/practice-profile-card-C2_2ZH_G.js +297 -0
  13. package/dist/_chunks/{practice-results-dOlljaAK.js → practice-results-VqbCUO1b.js} +225 -269
  14. package/dist/_chunks/{reviews-panel-yanuBZs-.js → reviews-panel-Cjys8G8K.js} +2 -2
  15. package/dist/_chunks/shield-check-BhHyReu8.js +52 -0
  16. package/dist/_chunks/{timeline-D0Wo7v_o.js → timeline-BZC7qGdy.js} +2 -2
  17. package/dist/_chunks/{workflow-map-BSvQS3be.js → workflow-map-DfpjDZHK.js} +93 -107
  18. package/dist/agent-catalog.json +55 -1
  19. package/dist/components/agenda-card/index.js +1 -1
  20. package/dist/components/agenda-tray/index.js +1 -1
  21. package/dist/components/badge/badge.d.ts +1 -1
  22. package/dist/components/badge/index.js +1 -1
  23. package/dist/components/benefit-card/index.js +1 -1
  24. package/dist/components/card/index.js +1 -1
  25. package/dist/components/contact-card/index.js +1 -1
  26. package/dist/components/data-table/index.js +1 -1
  27. package/dist/components/index.d.ts +2 -0
  28. package/dist/components/key-value-pair/index.d.ts +2 -2
  29. package/dist/components/key-value-pair/index.js +3 -2
  30. package/dist/components/key-value-pair/key-value-pair.d.ts +10 -0
  31. package/dist/components/operator-hero/index.d.ts +4 -0
  32. package/dist/components/operator-hero/index.js +6 -0
  33. package/dist/components/operator-hero/operator-hero.agent.d.ts +4 -0
  34. package/dist/components/operator-hero/operator-hero.d.ts +64 -0
  35. package/dist/components/patient-search/index.js +1 -1
  36. package/dist/components/practice-profile-card/index.d.ts +4 -0
  37. package/dist/components/practice-profile-card/index.js +8 -0
  38. package/dist/components/practice-profile-card/practice-profile-card.agent.d.ts +4 -0
  39. package/dist/components/practice-profile-card/practice-profile-card.d.ts +115 -0
  40. package/dist/components/practice-results/index.js +1 -1
  41. package/dist/components/reviews-panel/index.js +1 -1
  42. package/dist/components/timeline/index.js +1 -1
  43. package/dist/components/workflow/index.js +1 -1
  44. package/dist/i18n/locales/ar.d.ts +23 -0
  45. package/dist/i18n/locales/ar.js +23 -0
  46. package/dist/i18n/locales/de.d.ts +23 -0
  47. package/dist/i18n/locales/de.js +23 -0
  48. package/dist/i18n/locales/el.d.ts +23 -0
  49. package/dist/i18n/locales/el.js +23 -0
  50. package/dist/i18n/locales/en.d.ts +23 -0
  51. package/dist/i18n/locales/en.js +23 -0
  52. package/dist/i18n/locales/es.d.ts +23 -0
  53. package/dist/i18n/locales/es.js +23 -0
  54. package/dist/i18n/locales/fr.d.ts +23 -0
  55. package/dist/i18n/locales/fr.js +23 -0
  56. package/dist/i18n/locales/hi.d.ts +23 -0
  57. package/dist/i18n/locales/hi.js +23 -0
  58. package/dist/i18n/locales/it.d.ts +23 -0
  59. package/dist/i18n/locales/it.js +23 -0
  60. package/dist/i18n/locales/ja.d.ts +23 -0
  61. package/dist/i18n/locales/ja.js +23 -0
  62. package/dist/i18n/locales/nl.d.ts +23 -0
  63. package/dist/i18n/locales/nl.js +23 -0
  64. package/dist/i18n/locales/pl.d.ts +23 -0
  65. package/dist/i18n/locales/pl.js +23 -0
  66. package/dist/i18n/locales/pt.d.ts +23 -0
  67. package/dist/i18n/locales/pt.js +23 -0
  68. package/dist/i18n/locales/ro.d.ts +23 -0
  69. package/dist/i18n/locales/ro.js +23 -0
  70. package/dist/i18n/locales/ru.d.ts +23 -0
  71. package/dist/i18n/locales/ru.js +23 -0
  72. package/dist/i18n/locales/sq.d.ts +23 -0
  73. package/dist/i18n/locales/sq.js +23 -0
  74. package/dist/i18n/locales/sv.d.ts +23 -0
  75. package/dist/i18n/locales/sv.js +23 -0
  76. package/dist/i18n/locales/tr.d.ts +23 -0
  77. package/dist/i18n/locales/tr.js +23 -0
  78. package/dist/i18n/locales/zh.d.ts +23 -0
  79. package/dist/i18n/locales/zh.js +23 -0
  80. package/dist/index.js +400 -391
  81. package/dist/locales/ar.json +23 -0
  82. package/dist/locales/de.json +23 -0
  83. package/dist/locales/el.json +23 -0
  84. package/dist/locales/en.json +23 -0
  85. package/dist/locales/es.json +23 -0
  86. package/dist/locales/fr.json +23 -0
  87. package/dist/locales/hi.json +23 -0
  88. package/dist/locales/it.json +23 -0
  89. package/dist/locales/ja.json +23 -0
  90. package/dist/locales/nl.json +23 -0
  91. package/dist/locales/pl.json +23 -0
  92. package/dist/locales/pt.json +23 -0
  93. package/dist/locales/ro.json +23 -0
  94. package/dist/locales/ru.json +23 -0
  95. package/dist/locales/sq.json +23 -0
  96. package/dist/locales/sv.json +23 -0
  97. package/dist/locales/tr.json +23 -0
  98. package/dist/locales/zh.json +23 -0
  99. package/dist/tokens.css +1 -1
  100. package/package.json +9 -1
  101. package/dist/_chunks/key-value-pair-C8DaR3Xs.js +0 -98
@@ -3,7 +3,7 @@ import { forwardRef as v } from "react";
3
3
  import { c as h } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as b } from "react-i18next";
5
5
  import { A as x } from "./avatar-BNQNhoyL.js";
6
- import { B as y } from "./badge-CptERaHx.js";
6
+ import { B as y } from "./badge-B9Cr6iEB.js";
7
7
  import { C as N } from "./chevron-right-BrpYejk0.js";
8
8
  const C = h(
9
9
  [
@@ -138,4 +138,4 @@ export {
138
138
  T as A,
139
139
  w as i
140
140
  };
141
- //# sourceMappingURL=agenda-card-UJA6Arbs.js.map
141
+ //# sourceMappingURL=agenda-card-DtGlQde1.js.map
@@ -5,7 +5,7 @@ import { useTranslation as j } from "react-i18next";
5
5
  import { I as _ } from "./icon-button-CKEOrN37.js";
6
6
  import { S as E } from "./skeleton-CZbwyJAA.js";
7
7
  import { E as P } from "./empty-state-BLy7tigq.js";
8
- import { A as H } from "./agenda-card-UJA6Arbs.js";
8
+ import { A as H } from "./agenda-card-DtGlQde1.js";
9
9
  import { u as K } from "./registry-nPAVE19X.js";
10
10
  import { c as L } from "./createLucideIcon-CrFbzy84.js";
11
11
  import { P as V } from "./plus-CYKNmfuA.js";
@@ -178,4 +178,4 @@ export {
178
178
  G as A,
179
179
  D as a
180
180
  };
181
- //# sourceMappingURL=agenda-tray-1fAxNOMz.js.map
181
+ //# sourceMappingURL=agenda-tray-CXmlwt2K.js.map
@@ -1,9 +1,9 @@
1
- import { jsxs as u, jsx as e, Fragment as x } from "react/jsx-runtime";
1
+ import { jsxs as l, jsx as e, Fragment as x } from "react/jsx-runtime";
2
2
  import { forwardRef as w } from "react";
3
- import { c as r } from "./index-D2ZczOXr.js";
3
+ import { c as a } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as h } from "react-i18next";
5
5
  import { T as y } from "./tooltip-DvmfrNvB.js";
6
- const z = r(
6
+ const z = a(
7
7
  [
8
8
  "ds:inline-flex ds:items-center ds:gap-1",
9
9
  // Typography comes from the eyebrow role: Medium 500 + uppercase + expanded tracking.
@@ -23,7 +23,12 @@ const z = r(
23
23
  info: "ds:bg-info/15 ds:text-[var(--info-foreground)]",
24
24
  success: "ds:bg-success/15 ds:text-[var(--success-foreground)]",
25
25
  warning: "ds:bg-warning/15 ds:text-[var(--warning-foreground)]",
26
- error: "ds:bg-destructive/15 ds:text-[var(--error-foreground)]"
26
+ error: "ds:bg-destructive/15 ds:text-[var(--error-foreground)]",
27
+ // Solid-fill brand variants — no border, foreground paired with the
28
+ // semantic token. Use for trust-signal chips in hero contexts where
29
+ // a tonal `info` / `neutral` would blend into the brand backdrop.
30
+ brand: "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]",
31
+ accent: "ds:bg-[var(--accent)] ds:text-[var(--accent-foreground)]"
27
32
  },
28
33
  size: {
29
34
  sm: "ds:h-4 ds:ps-1 ds:pe-1 ds:[--type-eyebrow-size:var(--font-size-2xs)]",
@@ -41,7 +46,7 @@ const z = r(
41
46
  shape: "pill"
42
47
  }
43
48
  }
44
- ), N = r(
49
+ ), N = a(
45
50
  "ds:text-[length:var(--font-size-dot)] ds:leading-none ds:shrink-0",
46
51
  {
47
52
  variants: {
@@ -50,12 +55,16 @@ const z = r(
50
55
  info: "ds:text-info",
51
56
  success: "ds:text-success",
52
57
  warning: "ds:text-warning",
53
- error: "ds:text-destructive"
58
+ error: "ds:text-destructive",
59
+ // Solid-fill variants: dot draws in the paired foreground tone so
60
+ // it stays visible against the saturated primary/accent fill.
61
+ brand: "ds:text-[var(--primary-foreground)]",
62
+ accent: "ds:text-[var(--accent-foreground)]"
54
63
  }
55
64
  },
56
65
  defaultVariants: { variant: "neutral" }
57
66
  }
58
- ), V = r("ds:shrink-0 ds:[&>svg]:block", {
67
+ ), V = a("ds:shrink-0 ds:[&>svg]:block", {
59
68
  variants: {
60
69
  size: {
61
70
  // Icons shrink with the compact Badge scale: sm badge is 16 px tall, so
@@ -70,39 +79,39 @@ const z = r(
70
79
  ({
71
80
  variant: t = "neutral",
72
81
  size: n = "md",
73
- shape: f = "pill",
82
+ shape: u = "pill",
74
83
  leading: d,
75
- withDot: c = !1,
84
+ withDot: g = !1,
76
85
  truncate: i = !1,
77
- className: g,
86
+ className: f,
78
87
  children: s,
79
88
  "aria-label": o,
80
89
  ...p
81
- }, m) => {
82
- const { t: v } = h(), a = !s && !!o, b = typeof s == "number", l = /* @__PURE__ */ u(
90
+ }, v) => {
91
+ const { t: m } = h(), r = !s && !!o, b = typeof s == "number", c = /* @__PURE__ */ l(
83
92
  "span",
84
93
  {
85
- ref: m,
86
- className: z({ variant: t, size: n, shape: f, className: g }),
94
+ ref: v,
95
+ className: z({ variant: t, size: n, shape: u, className: f }),
87
96
  "data-component": "badge",
88
- role: a ? "img" : void 0,
89
- "aria-label": a ? o : void 0,
97
+ role: r ? "img" : void 0,
98
+ "aria-label": r ? o : void 0,
90
99
  ...p,
91
100
  children: [
92
- c && /* @__PURE__ */ e("span", { "aria-hidden": "true", className: N({ variant: t }), children: "●" }),
101
+ g && /* @__PURE__ */ e("span", { "aria-hidden": "true", className: N({ variant: t }), children: "●" }),
93
102
  d && /* @__PURE__ */ e("span", { "aria-hidden": "true", className: V({ size: n }), children: d }),
94
- !a && (b ? /* @__PURE__ */ u(x, { children: [
103
+ !r && (b ? /* @__PURE__ */ l(x, { children: [
95
104
  /* @__PURE__ */ e("span", { "aria-hidden": "true", children: s }),
96
- /* @__PURE__ */ e("span", { className: "ds:sr-only", children: v("badge.notifications", { count: s }) })
105
+ /* @__PURE__ */ e("span", { className: "ds:sr-only", children: m("badge.notifications", { count: s }) })
97
106
  ] }) : i ? /* @__PURE__ */ e("span", { className: "ds:max-w-[var(--badge-truncate-max-width)] ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap", children: s }) : s)
98
107
  ]
99
108
  }
100
109
  );
101
- return i && typeof s == "string" ? /* @__PURE__ */ e(y, { label: s, children: l }) : l;
110
+ return i && typeof s == "string" ? /* @__PURE__ */ e(y, { label: s, children: c }) : c;
102
111
  }
103
112
  );
104
113
  j.displayName = "Badge";
105
114
  export {
106
115
  j as B
107
116
  };
108
- //# sourceMappingURL=badge-CptERaHx.js.map
117
+ //# sourceMappingURL=badge-B9Cr6iEB.js.map
@@ -39,8 +39,12 @@ const _ = [
39
39
  // emit a `--card-border` outline; light/dark themes use the
40
40
  // soft 14% / 32% values (subtle but present) while accessible
41
41
  // bumps to 50% black / 50% white for the strict-AA edge weight.
42
- elevated: "ds:shadow-[var(--shadow-card)] ds:border ds:border-[color:var(--card-border)]",
43
- outlined: "ds:border ds:border-[color:var(--card-border)]"
42
+ //
43
+ // 0.31.5: accessible theme also bumps border-width 1px → 2px —
44
+ // matches Card.elevated and PublicFooter compact. The thicker
45
+ // line reads as a deliberate boundary rather than a hairline.
46
+ elevated: "ds:shadow-[var(--shadow-card)] ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2",
47
+ outlined: "ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2"
44
48
  }
45
49
  },
46
50
  defaultVariants: { variant: "elevated" }
@@ -142,7 +146,7 @@ function S(a, o) {
142
146
  return a !== "auto" ? a : o ? _[o.index % _.length] : "primary";
143
147
  }
144
148
  const p = b(
145
- ({ columns: a = 3, children: o, className: c, ...n }, l) => {
149
+ ({ columns: a = 3, children: o, className: c, ...d }, l) => {
146
150
  const i = w.toArray(o);
147
151
  return /* @__PURE__ */ r(
148
152
  "div",
@@ -150,8 +154,8 @@ const p = b(
150
154
  ref: l,
151
155
  "data-component": "benefit-card-row",
152
156
  className: C({ columns: a, className: c }),
153
- ...n,
154
- children: i.map((d, t) => /* @__PURE__ */ r(m.Provider, { value: { index: t }, children: d }, t))
157
+ ...d,
158
+ children: i.map((n, t) => /* @__PURE__ */ r(m.Provider, { value: { index: t }, children: n }, t))
155
159
  }
156
160
  );
157
161
  }
@@ -162,10 +166,10 @@ const x = b(
162
166
  step: a,
163
167
  icon: o,
164
168
  title: c,
165
- cta: n,
169
+ cta: d,
166
170
  variant: l = "elevated",
167
171
  accent: i = "auto",
168
- children: d,
172
+ children: n,
169
173
  className: t,
170
174
  ...u
171
175
  }, f) => {
@@ -212,8 +216,8 @@ const x = b(
212
216
  ) : null
213
217
  ] }),
214
218
  /* @__PURE__ */ r("h3", { className: "type-title-card ds:text-[var(--foreground)]", children: c }),
215
- d ? /* @__PURE__ */ r("div", { className: "type-body ds:text-[var(--muted-foreground)] ds:flex-1", children: d }) : null,
216
- n ? /* @__PURE__ */ r("div", { className: "ds:mt-[var(--spacing-xs)]", children: n }) : null
219
+ n ? /* @__PURE__ */ r("div", { className: "type-body ds:text-[var(--muted-foreground)] ds:flex-1", children: n }) : null,
220
+ d ? /* @__PURE__ */ r("div", { className: "ds:mt-[var(--spacing-xs)]", children: d }) : null
217
221
  ] })
218
222
  ]
219
223
  }
@@ -227,4 +231,4 @@ const H = Object.assign(x, {
227
231
  export {
228
232
  H as B
229
233
  };
230
- //# sourceMappingURL=benefit-card-CLPNpiQE.js.map
234
+ //# sourceMappingURL=benefit-card-B86DH-PE.js.map
@@ -1,8 +1,8 @@
1
1
  import { jsx as d } from "react/jsx-runtime";
2
- import { forwardRef as t, useId as B, useState as k, useCallback as v, useContext as I, createContext as _ } from "react";
2
+ import { forwardRef as t, useId as B, useState as _, useCallback as v, useContext as k, createContext as I } from "react";
3
3
  import { Slot as F } from "@radix-ui/react-slot";
4
4
  import { c as M } from "./index-D2ZczOXr.js";
5
- const u = _({
5
+ const u = I({
6
6
  headerId: "",
7
7
  interactive: !1,
8
8
  registerHeader: () => {
@@ -15,10 +15,16 @@ const u = _({
15
15
  ].join(" "),
16
16
  {
17
17
  variants: {
18
+ // 0.31.5: accessible-theme bumps the border from 1px → 2px so
19
+ // the boundary reads at the strict-AA / AAA contrast bar — at
20
+ // 1px the `--card-border` (#00000080 light / #ffffff52 dark)
21
+ // clears 3:1 luminance but reads as a hairline on tall cards.
22
+ // Light + dark keep 1px. Forced-colours users get `border-2 +
23
+ // CanvasText` as a parallel safety net.
18
24
  variant: {
19
- default: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--card-border)]",
20
- outlined: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--border)]",
21
- elevated: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--card-border)] ds:shadow-[var(--shadow-card)]"
25
+ default: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2",
26
+ outlined: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--border)] ds:[.theme-accessible_&]:border-2",
27
+ elevated: "ds:bg-[var(--card)] ds:border ds:border-[color:var(--card-border)] ds:shadow-[var(--shadow-card)] ds:[.theme-accessible_&]:border-2"
22
28
  },
23
29
  interactive: {
24
30
  true: [
@@ -47,9 +53,9 @@ const u = _({
47
53
  }
48
54
  ), m = t(
49
55
  ({
50
- variant: r = "default",
56
+ variant: a = "default",
51
57
  interactive: e = !1,
52
- stretch: a = !1,
58
+ stretch: r = !1,
53
59
  asChild: i = !1,
54
60
  className: l,
55
61
  children: n,
@@ -57,7 +63,7 @@ const u = _({
57
63
  onKeyDown: c,
58
64
  ...C
59
65
  }, x) => {
60
- const f = B(), [w, y] = k(!1), N = v(() => y(!0), []), j = e ? {
66
+ const f = B(), [w, y] = _(!1), N = v(() => y(!0), []), j = e ? {
61
67
  ...i ? {} : { role: "button", tabIndex: 0 },
62
68
  onKeyDown: (o) => {
63
69
  e && (o.key === "Enter" || o.key === " ") && (o.preventDefault(), o.currentTarget.click()), c == null || c(o);
@@ -75,9 +81,9 @@ const u = _({
75
81
  "aria-labelledby": w ? f : void 0,
76
82
  "data-component": "card",
77
83
  className: R({
78
- variant: r,
84
+ variant: a,
79
85
  interactive: e ?? !1,
80
- stretch: a ?? !1,
86
+ stretch: r ?? !1,
81
87
  className: l
82
88
  }),
83
89
  ...j,
@@ -90,13 +96,13 @@ const u = _({
90
96
  }
91
97
  );
92
98
  m.displayName = "Card";
93
- const p = t(
94
- ({ className: r, ...e }, a) => {
95
- const { headerId: i, registerHeader: l } = I(u), n = v(
99
+ const b = t(
100
+ ({ className: a, ...e }, r) => {
101
+ const { headerId: i, registerHeader: l } = k(u), n = v(
96
102
  (s) => {
97
- s && l(), typeof a == "function" ? a(s) : a && (a.current = s);
103
+ s && l(), typeof r == "function" ? r(s) : r && (r.current = s);
98
104
  },
99
- [a, l]
105
+ [r, l]
100
106
  );
101
107
  return /* @__PURE__ */ d(
102
108
  "div",
@@ -114,60 +120,60 @@ const p = t(
114
120
  // chopped natural-language labels mid-character inside narrow
115
121
  // contexts (DescriptionList rows in a Carousel slide).
116
122
  "ds:[&>*]:break-normal ds:[&>*]:[overflow-wrap:break-word]",
117
- r
123
+ a
118
124
  ].filter(Boolean).join(" "),
119
125
  ...e
120
126
  }
121
127
  );
122
128
  }
123
129
  );
124
- p.displayName = "Card.Header";
125
- const b = t(
126
- ({ className: r, ...e }, a) => /* @__PURE__ */ d(
130
+ b.displayName = "Card.Header";
131
+ const p = t(
132
+ ({ className: a, ...e }, r) => /* @__PURE__ */ d(
127
133
  "div",
128
134
  {
129
- ref: a,
135
+ ref: r,
130
136
  className: [
131
137
  "ds:overflow-hidden ds:[&_img]:w-full ds:[&_img]:h-auto ds:[&_img]:[object-fit:cover] ds:[&_video]:w-full",
132
- r
138
+ a
133
139
  ].filter(Boolean).join(" "),
134
140
  ...e
135
141
  }
136
142
  )
137
143
  );
138
- b.displayName = "Card.Media";
139
- const g = t(
140
- ({ className: r, ...e }, a) => /* @__PURE__ */ d(
144
+ p.displayName = "Card.Media";
145
+ const h = t(
146
+ ({ className: a, ...e }, r) => /* @__PURE__ */ d(
141
147
  "div",
142
148
  {
143
- ref: a,
144
- className: ["ds:p-[var(--spacing-md)] ds:flex-1 ds:text-start", r].filter(Boolean).join(" "),
149
+ ref: r,
150
+ className: ["ds:p-[var(--spacing-md)] ds:flex-1 ds:text-start", a].filter(Boolean).join(" "),
145
151
  ...e
146
152
  }
147
153
  )
148
154
  );
149
- g.displayName = "Card.Body";
150
- const h = t(
151
- ({ className: r, ...e }, a) => /* @__PURE__ */ d(
155
+ h.displayName = "Card.Body";
156
+ const g = t(
157
+ ({ className: a, ...e }, r) => /* @__PURE__ */ d(
152
158
  "div",
153
159
  {
154
- ref: a,
160
+ ref: r,
155
161
  className: [
156
162
  "ds:flex ds:items-center ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)] ds:pt-0",
157
- r
163
+ a
158
164
  ].filter(Boolean).join(" "),
159
165
  ...e
160
166
  }
161
167
  )
162
168
  );
163
- h.displayName = "Card.Footer";
169
+ g.displayName = "Card.Footer";
164
170
  const O = Object.assign(m, {
165
- Header: p,
166
- Media: b,
167
- Body: g,
168
- Footer: h
171
+ Header: b,
172
+ Media: p,
173
+ Body: h,
174
+ Footer: g
169
175
  });
170
176
  export {
171
177
  O as C
172
178
  };
173
- //# sourceMappingURL=card-DKTMLVrw.js.map
179
+ //# sourceMappingURL=card-CNri9ssR.js.map
@@ -1,7 +1,7 @@
1
1
  import { jsxs as t, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as i, Fragment as b } from "react";
3
3
  import { useTranslation as k } from "react-i18next";
4
- import { C as o } from "./card-DKTMLVrw.js";
4
+ import { C as o } from "./card-CNri9ssR.js";
5
5
  import { L as p } from "./link-DrD_cRUg.js";
6
6
  import { M as v } from "./map-pin-B8STOPMJ.js";
7
7
  function L(s) {
@@ -118,4 +118,4 @@ const M = Object.assign(f, {
118
118
  export {
119
119
  M as C
120
120
  };
121
- //# sourceMappingURL=contact-card-DYbp--s-.js.map
121
+ //# sourceMappingURL=contact-card-Dos7Tley.js.map
@@ -30,7 +30,7 @@ import { D as ze } from "./date-range-picker-D4dgDlLU.js";
30
30
  import { M as Ot } from "./multi-select-DOLO3K_z.js";
31
31
  import { A as Ae } from "./autocomplete-DIgdhCGJ.js";
32
32
  import { N as ee } from "./number-input-Dj5L3pXK.js";
33
- import { B as Mt } from "./badge-CptERaHx.js";
33
+ import { B as Mt } from "./badge-B9Cr6iEB.js";
34
34
  import { A as Pe } from "./avatar-BNQNhoyL.js";
35
35
  import { T as jt } from "./tooltip-DvmfrNvB.js";
36
36
  import { T as he } from "./timestamp-BV2lC-wV.js";
@@ -2332,4 +2332,4 @@ export {
2332
2332
  Be as q,
2333
2333
  xn as u
2334
2334
  };
2335
- //# sourceMappingURL=editable-currency-cell-renderer-BpicmolK.js.map
2335
+ //# sourceMappingURL=editable-currency-cell-renderer-YvTwkFrD.js.map
@@ -0,0 +1,134 @@
1
+ import { jsx as a, jsxs as i, Fragment as f } from "react/jsx-runtime";
2
+ import { forwardRef as g, useState as y, useCallback as z } from "react";
3
+ import { c as P } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as I } from "react-i18next";
5
+ import { I as K } from "./icon-button-CKEOrN37.js";
6
+ import { C as T } from "./check-DPdL_Sm7.js";
7
+ import { C as j } from "./copy-B00HK7tj.js";
8
+ const B = P("ds:flex", {
9
+ variants: {
10
+ layout: {
11
+ horizontal: "ds:flex-row ds:items-center ds:gap-[var(--spacing-sm)]",
12
+ vertical: "ds:flex-col ds:gap-[var(--spacing-xs)]"
13
+ },
14
+ /** Internal — flips the root to a horizontal flex when an icon
15
+ is present so the icon can sit at the leading edge of both
16
+ horizontal and vertical inner stacks. `items-start` keeps the
17
+ icon anchored to the label row even when the value wraps. */
18
+ hasIcon: {
19
+ true: "ds:flex-row ds:items-start ds:gap-[var(--spacing-sm)]",
20
+ false: ""
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ layout: "horizontal",
25
+ hasIcon: !1
26
+ }
27
+ }), _ = g(
28
+ ({
29
+ label: t,
30
+ value: s,
31
+ layout: e = "horizontal",
32
+ mono: r = !1,
33
+ copyable: l = !1,
34
+ copyText: v,
35
+ icon: d,
36
+ className: h,
37
+ ...x
38
+ }, k) => {
39
+ const { t: o } = I(), [C, p] = y(!1), [N, n] = y(""), c = v ?? (typeof s == "string" ? s : void 0), w = z(async () => {
40
+ if (c)
41
+ try {
42
+ await navigator.clipboard.writeText(c), p(!0), n(o("keyValuePair.copied")), setTimeout(() => {
43
+ p(!1), n("");
44
+ }, 2e3);
45
+ } catch {
46
+ n(o("keyValuePair.notAvailable")), setTimeout(() => n(""), 3e3);
47
+ }
48
+ }, [c, o]), V = [
49
+ "type-body ds:text-foreground ds:min-w-0 ds:shrink ds:[unicode-bidi:isolate]",
50
+ r ? "ds:font-[family-name:var(--font-mono)]" : ""
51
+ ].filter(Boolean).join(" "), m = d != null, b = e === "horizontal" ? "ds:flex ds:flex-row ds:items-start ds:gap-[var(--spacing-sm)] ds:min-w-0 ds:flex-1" : "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-0 ds:flex-1", u = /* @__PURE__ */ i(f, { children: [
52
+ /* @__PURE__ */ i("span", { className: "type-label ds:text-muted-foreground ds:shrink-0", children: [
53
+ t,
54
+ /* @__PURE__ */ a("span", { className: "ds:sr-only", children: ": " })
55
+ ] }),
56
+ /* @__PURE__ */ a("span", { className: V, children: s }),
57
+ l && /* @__PURE__ */ a(
58
+ K,
59
+ {
60
+ icon: C ? /* @__PURE__ */ a(T, {}) : /* @__PURE__ */ a(j, {}),
61
+ size: "sm",
62
+ "aria-label": o("keyValuePair.copy", { label: t }),
63
+ onClick: w,
64
+ intent: "ghost",
65
+ className: e === "horizontal" ? "ds:ms-auto ds:shrink-0" : "ds:self-start"
66
+ }
67
+ )
68
+ ] });
69
+ return /* @__PURE__ */ i(
70
+ "div",
71
+ {
72
+ ref: k,
73
+ className: B({ layout: e, hasIcon: m, className: h }),
74
+ "data-component": "key-value-pair",
75
+ ...x,
76
+ children: [
77
+ m ? /* @__PURE__ */ i(f, { children: [
78
+ /* @__PURE__ */ a(
79
+ "span",
80
+ {
81
+ "aria-hidden": "true",
82
+ className: "ds:inline-flex ds:shrink-0 ds:mt-0.5 ds:text-[color:var(--key-value-pair-icon-color)] ds:[&_svg]:size-4",
83
+ children: d
84
+ }
85
+ ),
86
+ /* @__PURE__ */ a("div", { className: b, children: u })
87
+ ] }) : u,
88
+ /* @__PURE__ */ a("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: N })
89
+ ]
90
+ }
91
+ );
92
+ }
93
+ );
94
+ _.displayName = "KeyValuePair";
95
+ const A = {
96
+ sm: "ds:gap-y-[var(--spacing-sm)]",
97
+ md: "ds:gap-y-[var(--spacing-md)]",
98
+ lg: "ds:gap-y-[var(--spacing-lg)]"
99
+ }, L = g(
100
+ ({ children: t, className: s, rowGap: e = "md", ...r }, l) => /* @__PURE__ */ a(
101
+ "div",
102
+ {
103
+ ref: l,
104
+ "data-component": "key-value-list",
105
+ className: [
106
+ "ds:grid ds:grid-cols-[auto_auto_minmax(0,1fr)]",
107
+ "ds:gap-x-[var(--spacing-md)]",
108
+ A[e],
109
+ // Each direct `data-component="key-value-pair"` child becomes
110
+ // a subgrid row spanning all three columns. The KVP's own
111
+ // flex layout still works inside the cell (icon shrinks-0,
112
+ // label shrinks-0, value flexes) — subgrid just aligns the
113
+ // boundaries between siblings.
114
+ 'ds:[&>[data-component="key-value-pair"]]:grid',
115
+ 'ds:[&>[data-component="key-value-pair"]]:grid-cols-subgrid',
116
+ 'ds:[&>[data-component="key-value-pair"]]:col-span-3',
117
+ 'ds:[&>[data-component="key-value-pair"]]:items-baseline',
118
+ // Reset the per-row flex gap so the subgrid columns own the
119
+ // spacing. Without this the KVP's intra-row `gap-sm` would
120
+ // double the parent's `gap-x-md`.
121
+ 'ds:[&>[data-component="key-value-pair"]]:gap-0',
122
+ s
123
+ ].filter(Boolean).join(" "),
124
+ ...r,
125
+ children: t
126
+ }
127
+ )
128
+ );
129
+ L.displayName = "KeyValueList";
130
+ export {
131
+ L as K,
132
+ _ as a
133
+ };
134
+ //# sourceMappingURL=key-value-pair-CYE7NSpM.js.map
@@ -0,0 +1,20 @@
1
+ import { c as e } from "./createLucideIcon-CrFbzy84.js";
2
+ /**
3
+ * @license lucide-react v1.8.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const c = [
9
+ [
10
+ "path",
11
+ {
12
+ d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
13
+ key: "1sd12s"
14
+ }
15
+ ]
16
+ ], a = e("message-circle", c);
17
+ export {
18
+ a as M
19
+ };
20
+ //# sourceMappingURL=message-circle-C23eicgb.js.map