@alfadocs/ui-kit 0.66.0 → 0.67.1

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 (153) hide show
  1. package/dist/_chunks/{agenda-card-Bl-SBiCh.js → agenda-card-BxSFkqgY.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-Bh1KfEOG.js → agenda-tray-T-BumlGZ.js} +2 -2
  3. package/dist/_chunks/{ai-consent-banner-Btzmk8OH.js → ai-consent-banner-Dxtx_WAh.js} +2 -2
  4. package/dist/_chunks/{ai-tools-rail-DAfaW8eA.js → ai-tools-rail-CInA_1-E.js} +57 -50
  5. package/dist/_chunks/{alia-sidebar-CN8pA6c-.js → alia-sidebar-Ckv0yCKi.js} +2 -2
  6. package/dist/_chunks/{anamnesis-card-qeLYRG79.js → anamnesis-card-N8pIKWuS.js} +2 -2
  7. package/dist/_chunks/{antenatal-schedule-timeline-BfzFjEyb.js → antenatal-schedule-timeline-35ebkcZT.js} +2 -2
  8. package/dist/_chunks/{appointment-tray-BQnJEora.js → appointment-tray-BMl89NPW.js} +4 -4
  9. package/dist/_chunks/{badge-zsf5i5bH.js → badge-CqGsX32l.js} +46 -42
  10. package/dist/_chunks/{bishop-score-DPN4Ched.js → bishop-score-CjsB9bM-.js} +2 -2
  11. package/dist/_chunks/{bmi-calculator-DuUneHuZ.js → bmi-calculator-n-823_1V.js} +2 -2
  12. package/dist/_chunks/{care-plan-card-D42WD4-T.js → care-plan-card-BwVUyUBb.js} +4 -4
  13. package/dist/_chunks/{care-plan-entry-card-BukNI7Uy.js → care-plan-entry-card-VzdQHcOL.js} +4 -4
  14. package/dist/_chunks/{clinical-note-card-BYo437dU.js → clinical-note-card-gtrxv6zn.js} +2 -2
  15. package/dist/_chunks/{color-picker-9tL7pz5y.js → color-picker-FXpItIaF.js} +198 -175
  16. package/dist/_chunks/{contact-profile-card-CCeJmjbd.js → contact-profile-card-7BMB85T6.js} +2 -2
  17. package/dist/_chunks/{cycle-calculator-D6LTmtQt.js → cycle-calculator-BF0ointe.js} +2 -2
  18. package/dist/_chunks/{dependent-selector-CRWgieHm.js → dependent-selector-DpzGtr_J.js} +2 -2
  19. package/dist/_chunks/{document-scanner-biBS_f6c.js → document-scanner-D2qehl3-.js} +53 -53
  20. package/dist/_chunks/{due-date-calculator-CIG194vq.js → due-date-calculator-DU9AEWNy.js} +3 -3
  21. package/dist/_chunks/{editable-currency-cell-renderer-f3d0Rhue.js → editable-currency-cell-renderer-D1ewvJKO.js} +875 -809
  22. package/dist/_chunks/{fetal-weight-Xf8-ZoDy.js → fetal-weight-BVSzOhuR.js} +2 -2
  23. package/dist/_chunks/{gestational-age-calculator-BGsZaWXW.js → gestational-age-calculator-DBlFdoiP.js} +3 -3
  24. package/dist/_chunks/{hcg-doubling-LH5i6oM7.js → hcg-doubling-if4Q8aSX.js} +2 -2
  25. package/dist/_chunks/{marketplace-app-shell-Cou6XnMJ.js → marketplace-app-shell-D4-T9Qzz.js} +3 -3
  26. package/dist/_chunks/{message-card-Bgcvfj6-.js → message-card-Bx4GmLvf.js} +9 -9
  27. package/dist/_chunks/{message-tray-saAVMeHP.js → message-tray-CVyJajVJ.js} +2 -2
  28. package/dist/_chunks/{operator-hero-CM8949Hd.js → operator-hero-f_KaRhw5.js} +2 -2
  29. package/dist/_chunks/{patient-search-Bw9ONucF.js → patient-search-DR9XUYRQ.js} +2 -2
  30. package/dist/_chunks/{patient-shell-Tgpv0HND.js → patient-shell-BfgufL_q.js} +2 -2
  31. package/dist/_chunks/{patient-summary-card-Bgso0p_l.js → patient-summary-card-hEmr4eTW.js} +4 -4
  32. package/dist/_chunks/{payment-request-card-DBz3hVDz.js → payment-request-card-CYE5vhZ0.js} +3 -3
  33. package/dist/_chunks/{periodontal-chart-card-AYyHtU9K.js → periodontal-chart-card-Dh3KgvYG.js} +2 -2
  34. package/dist/_chunks/{practice-results-CVAgY2RZ.js → practice-results-DND2SAt7.js} +2 -2
  35. package/dist/_chunks/{pregnancy-dating-f9aJbiAk.js → pregnancy-dating-QY-sqpvj.js} +3 -3
  36. package/dist/_chunks/{pregnancy-weight-gain-BMRBeA8V.js → pregnancy-weight-gain-DOJXXNYP.js} +2 -2
  37. package/dist/_chunks/rich-text-editor-DAeCXiQG.js +1973 -0
  38. package/dist/_chunks/{scroll-area-BWqCkEGz.js → scroll-area-5wNK0Cyz.js} +40 -30
  39. package/dist/_chunks/{sidebar-BFwbx74W.js → sidebar-DaB4ulxH.js} +351 -344
  40. package/dist/_chunks/{suggestion-chip-C4kxWUIs.js → suggestion-chip-Bk4PmYTg.js} +30 -30
  41. package/dist/_chunks/{tab-bar-Xetknddo.js → tab-bar-B1ovILzh.js} +2 -2
  42. package/dist/_chunks/{tag-CdA0s_VV.js → tag-BQXwuJq1.js} +41 -38
  43. package/dist/_chunks/{transaction-chip-BZCa6XDn.js → transaction-chip-DK84XCBU.js} +46 -33
  44. package/dist/_chunks/{workflow-map-Bt4Of5dT.js → workflow-map-JAZryZJr.js} +2 -2
  45. package/dist/agent-catalog.json +1 -1
  46. package/dist/components/agenda-card/index.js +1 -1
  47. package/dist/components/agenda-tray/index.js +1 -1
  48. package/dist/components/ai-consent-banner/index.js +1 -1
  49. package/dist/components/ai-tools-rail/index.js +1 -1
  50. package/dist/components/anamnesis-card/index.js +1 -1
  51. package/dist/components/appointment-card/index.js +1 -1
  52. package/dist/components/badge/index.js +1 -1
  53. package/dist/components/bishop-score/index.js +1 -1
  54. package/dist/components/bmi-calculator/index.js +1 -1
  55. package/dist/components/care-plan-card/index.js +1 -1
  56. package/dist/components/care-plan-entry-card/index.js +1 -1
  57. package/dist/components/clinical-note-card/index.js +1 -1
  58. package/dist/components/color-picker/index.js +1 -1
  59. package/dist/components/contact-profile-card/index.js +1 -1
  60. package/dist/components/cycle-calculator/index.js +1 -1
  61. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +16 -0
  62. package/dist/components/data-table/cell-renderers/tooth-cell-renderer.d.ts +12 -0
  63. package/dist/components/data-table/data-table.d.ts +1 -1
  64. package/dist/components/data-table/index.d.ts +2 -0
  65. package/dist/components/data-table/index.js +13 -12
  66. package/dist/components/data-table/toolbar.d.ts +5 -1
  67. package/dist/components/dependent-selector/index.js +1 -1
  68. package/dist/components/document-scanner/index.js +1 -1
  69. package/dist/components/due-date-calculator/index.js +2 -2
  70. package/dist/components/fetal-weight/index.js +1 -1
  71. package/dist/components/gestational-age-calculator/index.js +1 -1
  72. package/dist/components/hcg-doubling/index.js +1 -1
  73. package/dist/components/message-card/index.js +1 -1
  74. package/dist/components/message-tray/index.js +1 -1
  75. package/dist/components/operator-hero/index.js +1 -1
  76. package/dist/components/patient-search/index.js +1 -1
  77. package/dist/components/patient-summary-card/index.js +1 -1
  78. package/dist/components/payment-card/index.js +1 -1
  79. package/dist/components/periodontal-chart-card/index.js +1 -1
  80. package/dist/components/practice-results/index.js +1 -1
  81. package/dist/components/pregnancy-dating/index.js +1 -1
  82. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  83. package/dist/components/rich-text-editor/editor-toolbar.d.ts +25 -1
  84. package/dist/components/rich-text-editor/index.js +1 -1
  85. package/dist/components/rich-text-editor/rich-text-editor.d.ts +2 -0
  86. package/dist/components/scroll-area/index.js +1 -1
  87. package/dist/components/sidebar/index.js +1 -1
  88. package/dist/components/suggestion-chip/index.js +1 -1
  89. package/dist/components/tab-bar/index.js +1 -1
  90. package/dist/components/tag/index.js +1 -1
  91. package/dist/components/transaction-chip/index.js +1 -1
  92. package/dist/components/workflow/index.js +1 -1
  93. package/dist/i18n/locales/ar.d.ts +14 -1
  94. package/dist/i18n/locales/ar.js +16 -3
  95. package/dist/i18n/locales/de.d.ts +14 -1
  96. package/dist/i18n/locales/de.js +16 -3
  97. package/dist/i18n/locales/el.d.ts +14 -1
  98. package/dist/i18n/locales/el.js +16 -3
  99. package/dist/i18n/locales/en.d.ts +14 -1
  100. package/dist/i18n/locales/en.js +16 -3
  101. package/dist/i18n/locales/es.d.ts +14 -1
  102. package/dist/i18n/locales/es.js +16 -3
  103. package/dist/i18n/locales/fr.d.ts +14 -1
  104. package/dist/i18n/locales/fr.js +16 -3
  105. package/dist/i18n/locales/hi.d.ts +14 -1
  106. package/dist/i18n/locales/hi.js +16 -3
  107. package/dist/i18n/locales/it.d.ts +14 -1
  108. package/dist/i18n/locales/it.js +16 -3
  109. package/dist/i18n/locales/ja.d.ts +14 -1
  110. package/dist/i18n/locales/ja.js +16 -3
  111. package/dist/i18n/locales/nl.d.ts +14 -1
  112. package/dist/i18n/locales/nl.js +14 -3
  113. package/dist/i18n/locales/pl.d.ts +14 -1
  114. package/dist/i18n/locales/pl.js +16 -3
  115. package/dist/i18n/locales/pt.d.ts +14 -1
  116. package/dist/i18n/locales/pt.js +16 -3
  117. package/dist/i18n/locales/ro.d.ts +14 -1
  118. package/dist/i18n/locales/ro.js +16 -3
  119. package/dist/i18n/locales/ru.d.ts +14 -1
  120. package/dist/i18n/locales/ru.js +16 -3
  121. package/dist/i18n/locales/sq.d.ts +14 -1
  122. package/dist/i18n/locales/sq.js +16 -3
  123. package/dist/i18n/locales/sv.d.ts +14 -1
  124. package/dist/i18n/locales/sv.js +14 -3
  125. package/dist/i18n/locales/tr.d.ts +14 -1
  126. package/dist/i18n/locales/tr.js +16 -3
  127. package/dist/i18n/locales/zh.d.ts +14 -1
  128. package/dist/i18n/locales/zh.js +14 -3
  129. package/dist/index.js +508 -507
  130. package/dist/locales/ar.json +16 -3
  131. package/dist/locales/de.json +16 -3
  132. package/dist/locales/el.json +16 -3
  133. package/dist/locales/en.json +16 -3
  134. package/dist/locales/es.json +16 -3
  135. package/dist/locales/fr.json +16 -3
  136. package/dist/locales/hi.json +16 -3
  137. package/dist/locales/it.json +16 -3
  138. package/dist/locales/ja.json +16 -3
  139. package/dist/locales/nl.json +16 -3
  140. package/dist/locales/pl.json +16 -3
  141. package/dist/locales/pt.json +16 -3
  142. package/dist/locales/ro.json +16 -3
  143. package/dist/locales/ru.json +16 -3
  144. package/dist/locales/sq.json +16 -3
  145. package/dist/locales/sv.json +16 -3
  146. package/dist/locales/tr.json +16 -3
  147. package/dist/locales/zh.json +16 -3
  148. package/dist/patterns/alia-assistant/index.js +1 -1
  149. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  150. package/dist/patterns/patient-shell/index.js +1 -1
  151. package/dist/tokens.css +6 -3
  152. package/package.json +1 -1
  153. package/dist/_chunks/rich-text-editor-B5XQNxe8.js +0 -1586
@@ -23,9 +23,9 @@ const Q = q(
23
23
  {
24
24
  variants: {
25
25
  intent: {
26
- default: "ds:bg-muted/20 ds:text-foreground ds:border-transparent ds:hover:bg-accent/10",
27
- suggestion: "ds:bg-[color:var(--primary)]/10 ds:text-foreground ds:border-transparent ds:hover:bg-[color:var(--primary)]/15",
28
- followup: "ds:bg-muted/30 ds:text-foreground ds:border-transparent ds:hover:bg-muted/40"
26
+ default: "ds:bg-muted/20 ds:text-foreground ds:border-[color:var(--border)] ds:hover:bg-accent/10",
27
+ suggestion: "ds:bg-[color:var(--primary)]/10 ds:text-foreground ds:border-[color:var(--foreground)] ds:hover:bg-[color:var(--primary)]/15",
28
+ followup: "ds:bg-muted/30 ds:text-foreground ds:border-[color:var(--border)] ds:hover:bg-muted/40"
29
29
  },
30
30
  // Weight, family, tracking, line-height all come from `.type-label` on the base.
31
31
  // Size variants override --type-label-size to shift the ramp step.
@@ -38,34 +38,34 @@ const Q = q(
38
38
  defaultVariants: { intent: "default", size: "md" }
39
39
  }
40
40
  ), F = B(null), W = V(({ label: k, className: I, children: A, ...C }, g) => {
41
- const { t: p, i18n: a } = J(), v = a.dir() === "rtl", [n, m] = T([]), [i, d] = T(null), l = j(/* @__PURE__ */ new Map()), x = f((t) => {
41
+ const { t: p, i18n: d } = J(), v = d.dir() === "rtl", [o, m] = T([]), [i, a] = T(null), l = j(/* @__PURE__ */ new Map()), x = f((t) => {
42
42
  m((r) => r.includes(t) ? r : [...r, t]);
43
43
  }, []), z = f((t) => {
44
44
  m((r) => r.filter((u) => u !== t)), l.current.delete(t);
45
- }, []), o = f((t) => d(t), []);
45
+ }, []), n = f((t) => a(t), []);
46
46
  G(() => {
47
- !i && n.length > 0 && d(n[0]), i && !n.includes(i) && d(n[0] ?? null);
48
- }, [i, n]);
47
+ !i && o.length > 0 && a(o[0]), i && !o.includes(i) && a(o[0] ?? null);
48
+ }, [i, o]);
49
49
  const e = f(
50
50
  (t, r) => {
51
- const u = n.indexOf(t);
51
+ const u = o.indexOf(t);
52
52
  if (u === -1) return;
53
53
  let c = u;
54
- r === "next" && (c = (u + 1) % n.length), r === "prev" && (c = (u - 1 + n.length) % n.length), r === "first" && (c = 0), r === "last" && (c = n.length - 1);
55
- const b = n[c];
56
- d(b);
54
+ r === "next" && (c = (u + 1) % o.length), r === "prev" && (c = (u - 1 + o.length) % o.length), r === "first" && (c = 0), r === "last" && (c = o.length - 1);
55
+ const b = o[c];
56
+ a(b);
57
57
  const w = l.current.get(b);
58
58
  w == null || w.focus();
59
59
  },
60
- [n]
60
+ [o]
61
61
  ), h = f(
62
62
  (t, r) => {
63
63
  r ? l.current.set(t, r) : l.current.delete(t);
64
64
  },
65
65
  []
66
66
  ), N = U(
67
- () => ({ register: x, unregister: z, focusedId: i, setFocus: o, onArrowMove: e, isRTL: v }),
68
- [x, z, i, o, e, v]
67
+ () => ({ register: x, unregister: z, focusedId: i, setFocus: n, onArrowMove: e, isRTL: v }),
68
+ [x, z, i, n, e, v]
69
69
  );
70
70
  return /* @__PURE__ */ y(E.Provider, { value: h, children: /* @__PURE__ */ y(F.Provider, { value: N, children: /* @__PURE__ */ y(
71
71
  "div",
@@ -92,28 +92,28 @@ const E = B(null), X = V(
92
92
  startIcon: C,
93
93
  children: g,
94
94
  onSelect: p,
95
- onRemove: a,
95
+ onRemove: d,
96
96
  keepOnSelect: v = !1,
97
- className: n,
97
+ className: o,
98
98
  disabled: m,
99
99
  onKeyDown: i,
100
- onFocus: d,
100
+ onFocus: a,
101
101
  onClick: l,
102
102
  ...x
103
103
  }, z) => {
104
- const o = O(), e = L(F), h = L(E), [N, t] = T(!1), r = j(null), u = (s) => {
105
- r.current = s, h == null || h(o, s);
104
+ const n = O(), e = L(F), h = L(E), [N, t] = T(!1), r = j(null), u = (s) => {
105
+ r.current = s, h == null || h(n, s);
106
106
  }, c = j(e);
107
107
  c.current = e, G(() => {
108
108
  const s = c.current;
109
109
  if (s)
110
- return s.register(o), () => s.unregister(o);
111
- }, [o]);
112
- const b = e ? e.focusedId === o : !0, w = e ? b ? 0 : -1 : 0, M = typeof A == "string" ? A : typeof g == "string" ? g : "", R = f(() => {
113
- p == null || p(M), a ? a() : v || t(!0);
114
- }, [p, M, a, v]), D = f(() => {
115
- a ? a() : t(!0);
116
- }, [a]);
110
+ return s.register(n), () => s.unregister(n);
111
+ }, [n]);
112
+ const b = e ? e.focusedId === n : !0, w = e ? b ? 0 : -1 : 0, M = typeof A == "string" ? A : typeof g == "string" ? g : "", R = f(() => {
113
+ p == null || p(M), d ? d() : v || t(!0);
114
+ }, [p, M, d, v]), D = f(() => {
115
+ d ? d() : t(!0);
116
+ }, [d]);
117
117
  return S(
118
118
  z,
119
119
  () => ({
@@ -135,14 +135,14 @@ const E = B(null), X = V(
135
135
  onKeyDown: (s) => {
136
136
  if (i == null || i(s), !e) return;
137
137
  const H = e.isRTL ? "ArrowLeft" : "ArrowRight", P = e.isRTL ? "ArrowRight" : "ArrowLeft";
138
- s.key === H || s.key === "ArrowDown" ? (s.preventDefault(), e.onArrowMove(o, "next")) : s.key === P || s.key === "ArrowUp" ? (s.preventDefault(), e.onArrowMove(o, "prev")) : s.key === "Home" ? (s.preventDefault(), e.onArrowMove(o, "first")) : s.key === "End" && (s.preventDefault(), e.onArrowMove(o, "last"));
138
+ s.key === H || s.key === "ArrowDown" ? (s.preventDefault(), e.onArrowMove(n, "next")) : s.key === P || s.key === "ArrowUp" ? (s.preventDefault(), e.onArrowMove(n, "prev")) : s.key === "Home" ? (s.preventDefault(), e.onArrowMove(n, "first")) : s.key === "End" && (s.preventDefault(), e.onArrowMove(n, "last"));
139
139
  },
140
140
  onFocus: (s) => {
141
- d == null || d(s), e && !b && e.setFocus(o);
141
+ a == null || a(s), e && !b && e.setFocus(n);
142
142
  },
143
143
  "data-component": "suggestion-chip",
144
144
  "data-component-id": x.id,
145
- className: Q({ intent: k, size: I, className: n }),
145
+ className: Q({ intent: k, size: I, className: o }),
146
146
  ...x,
147
147
  children: [
148
148
  C ? /* @__PURE__ */ y(
@@ -164,4 +164,4 @@ export {
164
164
  X as S,
165
165
  W as a
166
166
  };
167
- //# sourceMappingURL=suggestion-chip-C4kxWUIs.js.map
167
+ //# sourceMappingURL=suggestion-chip-Bk4PmYTg.js.map
@@ -1,7 +1,7 @@
1
1
  import { jsx as a, jsxs as u, Fragment as b } from "react/jsx-runtime";
2
2
  import { forwardRef as h, Fragment as x } from "react";
3
3
  import { c as o } from "./index-D2ZczOXr.js";
4
- import { B as C } from "./badge-zsf5i5bH.js";
4
+ import { B as C } from "./badge-CqGsX32l.js";
5
5
  function w(r) {
6
6
  return r > 99 ? "99+" : String(r);
7
7
  }
@@ -102,4 +102,4 @@ j.displayName = "TabBar";
102
102
  export {
103
103
  j as T
104
104
  };
105
- //# sourceMappingURL=tab-bar-Xetknddo.js.map
105
+ //# sourceMappingURL=tab-bar-B1ovILzh.js.map
@@ -1,9 +1,9 @@
1
- import { jsx as r, jsxs as f } from "react/jsx-runtime";
2
- import { forwardRef as q, useRef as F, useState as E, useEffect as G } from "react";
1
+ import { jsx as e, jsxs as f } from "react/jsx-runtime";
2
+ import { forwardRef as X, useRef as q, useState as E, useEffect as F } from "react";
3
3
  import { c as B } from "./index-D2ZczOXr.js";
4
- import { useTranslation as H } from "react-i18next";
4
+ import { useTranslation as G } from "react-i18next";
5
5
  import { T as v } from "./tooltip-DvmfrNvB.js";
6
- import { X as J } from "./x-CCcI3eJp.js";
6
+ import { X as H } from "./x-CCcI3eJp.js";
7
7
  const V = B(
8
8
  [
9
9
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
@@ -26,7 +26,10 @@ const V = B(
26
26
  brand: ""
27
27
  },
28
28
  fill: {
29
- solid: "",
29
+ // Solid chips carry a subtle, theme-aware border (a low-opacity
30
+ // foreground mix) so they read as a defined chip on any surface, not a
31
+ // floating fill — works across every colour variant, light and dark.
32
+ solid: "ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]",
30
33
  outline: "ds:border ds:border-[color:var(--border)] ds:bg-transparent"
31
34
  },
32
35
  size: {
@@ -43,7 +46,7 @@ const V = B(
43
46
  {
44
47
  fill: "solid",
45
48
  variant: "neutral",
46
- className: "ds:bg-muted/20 ds:text-muted-foreground"
49
+ className: "ds:bg-muted/20 ds:text-muted-foreground ds:border-[color:var(--border)]"
47
50
  },
48
51
  {
49
52
  fill: "solid",
@@ -74,7 +77,7 @@ const V = B(
74
77
  {
75
78
  fill: "outline",
76
79
  variant: "neutral",
77
- className: "ds:border-muted ds:text-muted-foreground"
80
+ className: "ds:border-[color:var(--border)] ds:text-muted-foreground"
78
81
  },
79
82
  {
80
83
  fill: "outline",
@@ -108,7 +111,7 @@ const V = B(
108
111
  size: "md"
109
112
  }
110
113
  }
111
- ), L = B(
114
+ ), J = B(
112
115
  [
113
116
  "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0 ds:rounded-full",
114
117
  // Negative end margin keeps the button flush with the pill edge
@@ -129,48 +132,48 @@ const V = B(
129
132
  },
130
133
  defaultVariants: { size: "md" }
131
134
  }
132
- ), M = q(
135
+ ), L = X(
133
136
  ({
134
137
  label: o,
135
138
  variant: g = "neutral",
136
139
  fill: p = "solid",
137
- size: a = "md",
140
+ size: t = "md",
138
141
  leading: m,
139
- onRemove: t,
142
+ onRemove: a,
140
143
  onClick: b,
141
- disabled: e = !1,
144
+ disabled: r = !1,
142
145
  maxInlineSize: n = "none",
143
146
  className: h
144
147
  }, i) => {
145
- const { t: w } = H(), y = F(null), [D, C] = E(!1), [O, R] = E("");
146
- G(() => {
148
+ const { t: w } = G(), y = q(null), [D, C] = E(!1), [O, R] = E("");
149
+ F(() => {
147
150
  const s = y.current;
148
151
  if (!s || n === "none") return;
149
152
  const z = () => C(s.scrollWidth > s.clientWidth), j = new ResizeObserver(z);
150
153
  return j.observe(s), z(), () => j.disconnect();
151
154
  }, [n]);
152
155
  const W = (s) => {
153
- (s.key === "Backspace" || s.key === "Delete") && t && !e && (s.preventDefault(), x(), setTimeout(t, 100));
156
+ (s.key === "Backspace" || s.key === "Delete") && a && !r && (s.preventDefault(), x(), setTimeout(a, 100));
154
157
  }, x = () => {
155
158
  R(w("tag.removed", { label: o }));
156
159
  }, K = () => {
157
- !e && t && (x(), setTimeout(t, 100));
158
- }, d = !!t, N = !!b && !d, T = V({
160
+ !r && a && (x(), setTimeout(a, 100));
161
+ }, d = !!a, N = !!b && !d, T = V({
159
162
  variant: g,
160
163
  fill: p,
161
- size: a,
164
+ size: t,
162
165
  className: [
163
- N && !e ? "ds:hover:brightness-90 ds:cursor-pointer" : "",
166
+ N && !r ? "ds:hover:brightness-90 ds:cursor-pointer" : "",
164
167
  h ?? ""
165
168
  ].filter(Boolean).join(" ")
166
- }), l = m ? /* @__PURE__ */ r(
169
+ }), l = m ? /* @__PURE__ */ e(
167
170
  "span",
168
171
  {
169
172
  "aria-hidden": "true",
170
173
  className: "ds:shrink-0 ds:inline-flex ds:items-center ds:[&>svg]:size-3.5",
171
174
  children: m
172
175
  }
173
- ) : null, c = /* @__PURE__ */ r(
176
+ ) : null, c = /* @__PURE__ */ e(
174
177
  "span",
175
178
  {
176
179
  ref: y,
@@ -178,16 +181,16 @@ const V = B(
178
181
  style: n !== "none" ? { maxInlineSize: n } : void 0,
179
182
  children: o
180
183
  }
181
- ), A = /* @__PURE__ */ r("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: O }), X = d ? /* @__PURE__ */ r(
184
+ ), _ = /* @__PURE__ */ e("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: O }), A = d ? /* @__PURE__ */ e(
182
185
  "button",
183
186
  {
184
187
  type: "button",
185
188
  "aria-label": w("tag.remove", { label: o }),
186
189
  onClick: K,
187
- disabled: e,
190
+ disabled: r,
188
191
  tabIndex: -1,
189
- className: L({ size: a }),
190
- children: /* @__PURE__ */ r(J, { "aria-hidden": "true" })
192
+ className: J({ size: t }),
193
+ children: /* @__PURE__ */ e(H, { "aria-hidden": "true" })
191
194
  }
192
195
  ) : null, u = n !== "none" && D;
193
196
  if (N) {
@@ -196,8 +199,8 @@ const V = B(
196
199
  {
197
200
  ref: i,
198
201
  type: "button",
199
- onClick: e ? void 0 : b,
200
- disabled: e,
202
+ onClick: r ? void 0 : b,
203
+ disabled: r,
201
204
  "data-component": "tag",
202
205
  className: T,
203
206
  children: [
@@ -206,7 +209,7 @@ const V = B(
206
209
  ]
207
210
  }
208
211
  );
209
- return u ? /* @__PURE__ */ r(v, { label: o, children: s }) : s;
212
+ return u ? /* @__PURE__ */ e(v, { label: o, children: s }) : s;
210
213
  }
211
214
  if (d) {
212
215
  const s = (
@@ -217,39 +220,39 @@ const V = B(
217
220
  ref: i,
218
221
  role: "group",
219
222
  "aria-label": o,
220
- tabIndex: e ? -1 : 0,
221
- "aria-disabled": e || void 0,
223
+ tabIndex: r ? -1 : 0,
224
+ "aria-disabled": r || void 0,
222
225
  onKeyDown: W,
223
226
  "data-component": "tag",
224
227
  className: T,
225
228
  children: [
226
- A,
229
+ _,
227
230
  l,
228
231
  c,
229
- X
232
+ A
230
233
  ]
231
234
  }
232
235
  )
233
236
  );
234
- return u ? /* @__PURE__ */ r(v, { label: o, children: s }) : s;
237
+ return u ? /* @__PURE__ */ e(v, { label: o, children: s }) : s;
235
238
  }
236
239
  const k = /* @__PURE__ */ f(
237
240
  "span",
238
241
  {
239
242
  ref: i,
240
243
  "data-component": "tag",
241
- className: V({ variant: g, fill: p, size: a, className: h }),
244
+ className: V({ variant: g, fill: p, size: t, className: h }),
242
245
  children: [
243
246
  l,
244
247
  c
245
248
  ]
246
249
  }
247
250
  );
248
- return u ? /* @__PURE__ */ r(v, { label: o, children: k }) : k;
251
+ return u ? /* @__PURE__ */ e(v, { label: o, children: k }) : k;
249
252
  }
250
253
  );
251
- M.displayName = "Tag";
254
+ L.displayName = "Tag";
252
255
  export {
253
- M as T
256
+ L as T
254
257
  };
255
- //# sourceMappingURL=tag-CdA0s_VV.js.map
258
+ //# sourceMappingURL=tag-BQXwuJq1.js.map
@@ -65,15 +65,15 @@ const L = [
65
65
  // Text uses the deeper `*-foreground` token (matching Badge / Tag) so
66
66
  // small chip text clears WCAG AA (4.5:1) against the 10% tinted
67
67
  // background. The surface and border use the lighter alias.
68
- debt: "ds:bg-destructive/10 ds:text-[color:var(--error-foreground)] ds:border-destructive/20",
69
- credit: "ds:bg-success/10 ds:text-[color:var(--success-foreground)] ds:border-success/20",
68
+ debt: "ds:bg-destructive/10 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]",
69
+ credit: "ds:bg-success/10 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]",
70
70
  // The orange "to-invoice" tint has no kit-wide semantic alias — see
71
71
  // src/tokens/index.css §Transaction-chip-scoped tokens. The component
72
72
  // owns the alias because the customer-anchored "Da fatturare" orange
73
73
  // is distinct from `--warning` (yellow) and from `--destructive`.
74
- "to-invoice": "ds:bg-transaction-chip-to-invoice/10 ds:text-[color:var(--transaction-chip-to-invoice-foreground)] ds:border-transaction-chip-to-invoice/20",
75
- "to-deliver": "ds:bg-info/10 ds:text-[color:var(--info-foreground)] ds:border-info/20",
76
- settled: "ds:bg-muted/30 ds:text-muted-foreground ds:border-muted/40"
74
+ "to-invoice": "ds:bg-transaction-chip-to-invoice/10 ds:text-[color:var(--transaction-chip-to-invoice-foreground)] ds:border-[color:var(--transaction-chip-to-invoice-foreground)]",
75
+ "to-deliver": "ds:bg-info/10 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]",
76
+ settled: "ds:bg-muted/30 ds:text-muted-foreground ds:border-[color:var(--border)]"
77
77
  },
78
78
  size: {
79
79
  // Heights tuned for table-cell density (sm), default app surfaces (md),
@@ -101,39 +101,42 @@ const L = [
101
101
  { state: "settled", class: "ds:font-medium" }
102
102
  ]
103
103
  }
104
- ), j = c(
105
- "ds:shrink-0 ds:[&>svg]:block ds:rtl:[&>svg]:-scale-x-100",
106
- {
107
- variants: {
108
- size: {
109
- sm: "ds:[&>svg]:size-3",
110
- md: "ds:[&>svg]:size-3.5",
111
- lg: "ds:[&>svg]:size-4"
112
- }
104
+ ), j = c("ds:shrink-0 ds:[&>svg]:block", {
105
+ variants: {
106
+ size: {
107
+ sm: "ds:[&>svg]:size-3",
108
+ md: "ds:[&>svg]:size-3.5",
109
+ lg: "ds:[&>svg]:size-4"
113
110
  },
114
- defaultVariants: { size: "md" }
115
- }
116
- ), G = T(
111
+ // Only the direction-encoded debt/credit arrows flip in RTL; the
112
+ // non-directional glyphs (FileText, CalendarClock, Check) must not mirror.
113
+ directional: {
114
+ true: "ds:rtl:[&>svg]:-scale-x-100",
115
+ false: ""
116
+ }
117
+ },
118
+ defaultVariants: { size: "md", directional: !1 }
119
+ }), G = T(
117
120
  ({
118
121
  state: e,
119
- amount: m,
120
- currency: t = D,
121
- locale: v,
122
- size: r = "md",
123
- showLabel: f = !1,
124
- className: p,
125
- "aria-label": u,
122
+ amount: v,
123
+ currency: r = D,
124
+ locale: f,
125
+ size: t = "md",
126
+ showLabel: m = !1,
127
+ className: u,
128
+ "aria-label": p,
126
129
  ...g
127
130
  }, b) => {
128
- const { t: o, i18n: h } = C(), a = v ?? h.language ?? "en", x = F[e], i = M[e], n = Math.abs(m), y = new Intl.NumberFormat(a, {
131
+ const { t: o, i18n: h } = C(), a = f ?? h.language ?? "en", x = F[e], i = M[e], n = Math.abs(v), y = new Intl.NumberFormat(a, {
129
132
  style: "currency",
130
- currency: t,
133
+ currency: r,
131
134
  signDisplay: "never"
132
135
  }).format(n), d = o(`financial.state.${S[e]}`), w = new Intl.NumberFormat(a, {
133
136
  style: "currency",
134
- currency: t,
137
+ currency: r,
135
138
  signDisplay: e === "debt" ? "always" : "auto"
136
- }).format(n * V[e]), z = u ?? o("financial.aria.label", {
139
+ }).format(n * V[e]), z = p ?? o("financial.aria.label", {
137
140
  state: d,
138
141
  amount: w
139
142
  });
@@ -147,14 +150,24 @@ const L = [
147
150
  "data-state": e,
148
151
  className: U({
149
152
  state: e,
150
- size: r,
153
+ size: t,
151
154
  bold: e !== "settled",
152
- className: p
155
+ className: u
153
156
  }),
154
157
  ...g,
155
158
  children: [
156
- /* @__PURE__ */ s("span", { "aria-hidden": "true", className: j({ size: r }), children: /* @__PURE__ */ s(x, {}) }),
157
- f && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: "type-eyebrow", children: d }),
159
+ /* @__PURE__ */ s(
160
+ "span",
161
+ {
162
+ "aria-hidden": "true",
163
+ className: j({
164
+ size: t,
165
+ directional: e === "debt" || e === "credit"
166
+ }),
167
+ children: /* @__PURE__ */ s(x, {})
168
+ }
169
+ ),
170
+ m && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: "type-eyebrow", children: d }),
158
171
  i && /* @__PURE__ */ s(
159
172
  "span",
160
173
  {
@@ -182,4 +195,4 @@ export {
182
195
  G as T,
183
196
  R as a
184
197
  };
185
- //# sourceMappingURL=transaction-chip-BZCa6XDn.js.map
198
+ //# sourceMappingURL=transaction-chip-DK84XCBU.js.map
@@ -3,7 +3,7 @@ import { forwardRef as H, useMemo as q, useRef as z, useCallback as F, useState
3
3
  import { c as D } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as M } from "react-i18next";
5
5
  import { C } from "./card-DPmk26CL.js";
6
- import { B as ye } from "./badge-zsf5i5bH.js";
6
+ import { B as ye } from "./badge-CqGsX32l.js";
7
7
  import { a as Z } from "./key-value-pair-BrgbMfbF.js";
8
8
  import { T as xe } from "./timestamp-BV2lC-wV.js";
9
9
  import { I as S } from "./icon-button-LqoiKcUN.js";
@@ -1354,4 +1354,4 @@ export {
1354
1354
  ee as r,
1355
1355
  L as w
1356
1356
  };
1357
- //# sourceMappingURL=workflow-map-Bt4Of5dT.js.map
1357
+ //# sourceMappingURL=workflow-map-JAZryZJr.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.66.0",
3
+ "packageVersion": "0.67.1",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -1,4 +1,4 @@
1
- import { A as e } from "../../_chunks/agenda-card-Bl-SBiCh.js";
1
+ import { A as e } from "../../_chunks/agenda-card-BxSFkqgY.js";
2
2
  import { a as d } from "../../_chunks/agenda-card.agent-B_R47-c9.js";
3
3
  import { i as g } from "../../_chunks/is-safe-url-DkETxeHz.js";
4
4
  export {
@@ -1,4 +1,4 @@
1
- import { A as r, a as g } from "../../_chunks/agenda-tray-Bh1KfEOG.js";
1
+ import { A as r, a as g } from "../../_chunks/agenda-tray-T-BumlGZ.js";
2
2
  export {
3
3
  r as AgendaTray,
4
4
  g as agendaTrayAgent
@@ -1,4 +1,4 @@
1
- import { A as e, a as o } from "../../_chunks/ai-consent-banner-Btzmk8OH.js";
1
+ import { A as e, a as o } from "../../_chunks/ai-consent-banner-Dxtx_WAh.js";
2
2
  export {
3
3
  e as AiConsentBanner,
4
4
  o as aiConsentBannerAgent
@@ -1,4 +1,4 @@
1
- import { A as i, a as l } from "../../_chunks/ai-tools-rail-DAfaW8eA.js";
1
+ import { A as i, a as l } from "../../_chunks/ai-tools-rail-CInA_1-E.js";
2
2
  export {
3
3
  i as AiToolsRail,
4
4
  l as aiToolsRailAgent
@@ -1,4 +1,4 @@
1
- import { A as s } from "../../_chunks/anamnesis-card-qeLYRG79.js";
1
+ import { A as s } from "../../_chunks/anamnesis-card-N8pIKWuS.js";
2
2
  export {
3
3
  s as AnamnesisCard
4
4
  };
@@ -1,4 +1,4 @@
1
- import { A as n, a as p, b as e, c as o } from "../../_chunks/appointment-tray-BQnJEora.js";
1
+ import { A as n, a as p, b as e, c as o } from "../../_chunks/appointment-tray-BMl89NPW.js";
2
2
  import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
3
  export {
4
4
  n as AppointmentCard,
@@ -1,4 +1,4 @@
1
- import { B as o } from "../../_chunks/badge-zsf5i5bH.js";
1
+ import { B as o } from "../../_chunks/badge-CqGsX32l.js";
2
2
  export {
3
3
  o as Badge
4
4
  };
@@ -1,4 +1,4 @@
1
- import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-DPN4Ched.js";
1
+ import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-CjsB9bM-.js";
2
2
  export {
3
3
  O as BISHOP_COMPONENTS,
4
4
  S as BISHOP_MAX_SCORE,
@@ -1,4 +1,4 @@
1
- import { B as m } from "../../_chunks/bmi-calculator-DuUneHuZ.js";
1
+ import { B as m } from "../../_chunks/bmi-calculator-n-823_1V.js";
2
2
  import { b as e, a as t, c as r, d as T, e as c, f as i, i as b, k as n, l as f } from "../../_chunks/bmi-BxD-tFzU.js";
3
3
  export {
4
4
  m as BmiCalculator,
@@ -1,4 +1,4 @@
1
- import { C as e, c as C } from "../../_chunks/care-plan-card-D42WD4-T.js";
1
+ import { C as e, c as C } from "../../_chunks/care-plan-card-BwVUyUBb.js";
2
2
  export {
3
3
  e as CarePlanCard,
4
4
  C as carePlanCardAgent
@@ -1,4 +1,4 @@
1
- import { C as n, c as e } from "../../_chunks/care-plan-entry-card-BukNI7Uy.js";
1
+ import { C as n, c as e } from "../../_chunks/care-plan-entry-card-VzdQHcOL.js";
2
2
  export {
3
3
  n as CarePlanEntryCard,
4
4
  e as carePlanEntryCardAgent
@@ -1,4 +1,4 @@
1
- import { C as e, c as i } from "../../_chunks/clinical-note-card-BYo437dU.js";
1
+ import { C as e, c as i } from "../../_chunks/clinical-note-card-gtrxv6zn.js";
2
2
  export {
3
3
  e as ClinicalNoteCard,
4
4
  i as clinicalNoteCardAgent
@@ -1,4 +1,4 @@
1
- import { A as E, B as P, C as o } from "../../_chunks/color-picker-9tL7pz5y.js";
1
+ import { A as E, B as P, C as o } from "../../_chunks/color-picker-FXpItIaF.js";
2
2
  export {
3
3
  E as APPOINTMENT_PALETTE,
4
4
  P as BRAND_PALETTE,
@@ -1,4 +1,4 @@
1
- import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-CCeJmjbd.js";
1
+ import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-7BMB85T6.js";
2
2
  export {
3
3
  _ as CONTACT_PROFILE_CARD_ROW_ICONS,
4
4
  O as CONTACT_PROFILE_CARD_ROW_KEYS,
@@ -1,4 +1,4 @@
1
- import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-D6LTmtQt.js";
1
+ import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-BF0ointe.js";
2
2
  export {
3
3
  e as CycleCalculator,
4
4
  l as LUTEAL_PHASE_DAYS,
@@ -18,6 +18,22 @@ export interface ActionDef<TData = unknown> {
18
18
  }
19
19
  export interface ActionsCellRendererParams<TData = unknown> {
20
20
  actions: ActionDef<TData>[];
21
+ /** Intent of the inline buttons / the collapsed trigger (default `ghost`). */
22
+ intent?: 'ghost' | 'outline';
23
+ /**
24
+ * Render the inline buttons as a connected `IconButtonGroup` (a segmented
25
+ * control) rather than a loose row. Requires `label` for the group name.
26
+ */
27
+ group?: boolean;
28
+ /** Accessible name for the group and the collapsed overflow trigger. */
29
+ label?: string;
30
+ /**
31
+ * Collapse the actions into a single "…" overflow menu instead of inline
32
+ * buttons. Pass a getter to flip it at runtime — call
33
+ * `api.refreshCells({ force: true })` after the underlying value changes so
34
+ * the cells re-read it (this preserves column state, unlike rebuilding defs).
35
+ */
36
+ collapsed?: boolean | (() => boolean);
21
37
  }
22
38
  export declare function ActionsCellRenderer<TData = unknown>(props: CustomCellRendererProps<TData> & ActionsCellRendererParams<TData>): import("react/jsx-runtime").JSX.Element | null;
23
39
  //# sourceMappingURL=actions-cell-renderer.d.ts.map
@@ -0,0 +1,12 @@
1
+ import type { CustomCellRendererProps } from 'ag-grid-react';
2
+ export interface ToothCellRendererParams {
3
+ /** Max inline size of the chip before its label truncates (with a tooltip). */
4
+ maxInlineSize?: string;
5
+ }
6
+ /**
7
+ * Renders an array of tooth ids (FDI notation) as a single outlined Tag — the
8
+ * teeth comma-separated and prefixed with a tooth glyph, so dentition reads at
9
+ * a glance instead of as bare numbers.
10
+ */
11
+ export declare function ToothCellRenderer(props: CustomCellRendererProps<unknown, string[]> & ToothCellRendererParams): import("react/jsx-runtime").JSX.Element | null;
12
+ //# sourceMappingURL=tooth-cell-renderer.d.ts.map
@@ -78,7 +78,7 @@ export declare const DataTable: (<TData = unknown>(props: DataTableProps<TData>
78
78
  label?: string;
79
79
  } & import("react").RefAttributes<HTMLButtonElement>>;
80
80
  ColumnToggle: {
81
- ({ label }: import("./toolbar").ColumnToggleProps): import("react/jsx-runtime").JSX.Element;
81
+ ({ label, icon, footer }: import("./toolbar").ColumnToggleProps): import("react/jsx-runtime").JSX.Element;
82
82
  displayName: string;
83
83
  };
84
84
  BulkAction: import("react").ForwardRefExoticComponent<import("./toolbar").BulkActionProps & import("react").RefAttributes<HTMLButtonElement>>;