@alfadocs/ui-kit 0.84.1 → 0.86.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 (126) hide show
  1. package/dist/_chunks/{ai-consent-banner-DUhr1yNj.js → ai-consent-banner-BXD7W6FI.js} +2 -2
  2. package/dist/_chunks/{alert-KJbsPYkI.js → alert-Cxaqd-QO.js} +12 -12
  3. package/dist/_chunks/{audio-recorder-Cc3KuL9y.js → audio-recorder-BjnB7V8n.js} +2 -2
  4. package/dist/_chunks/{booking-CLmeXtGv.js → booking-BvCu2XWY.js} +2 -2
  5. package/dist/_chunks/{document-preview-nwfulDEs.js → document-preview-DXl9migE.js} +2 -2
  6. package/dist/_chunks/{document-scanner-B6h1Ir56.js → document-scanner-cS_ispQs.js} +3 -3
  7. package/dist/_chunks/{entity-summary--vP698Jn.js → entity-summary-BILN4wEG.js} +2 -2
  8. package/dist/_chunks/{field-value-DHG6gEKS.js → field-value-BRVbZJej.js} +133 -144
  9. package/dist/_chunks/{file-manager-DLJlinIO.js → file-manager-B9LZzT5E.js} +129 -129
  10. package/dist/_chunks/{file-upload-DENvuhfs.js → file-upload-CwxdqkMK.js} +134 -146
  11. package/dist/_chunks/{freemium-paywall-CmV642PA.js → freemium-paywall-Dr2342_S.js} +2 -2
  12. package/dist/_chunks/info-tip-Bxk3w6UM.js +166 -0
  13. package/dist/_chunks/{marketplace-app-shell-Br2yebEK.js → marketplace-app-shell-Chcj4q4z.js} +2 -2
  14. package/dist/_chunks/message-square-Bye4ATvx.js +20 -0
  15. package/dist/_chunks/{notes-panel-Cvdp818a.js → notes-panel-BLjlYBt-.js} +2 -2
  16. package/dist/_chunks/{patient-details-COvYWp2e.js → patient-details-B9LCdyWW.js} +2 -2
  17. package/dist/_chunks/{patient-search-BaUJ_Y-N.js → patient-search-vtRTSdf6.js} +2 -2
  18. package/dist/_chunks/{patient-summary-card-D6kgdTNn.js → patient-summary-card-vn1H4xWj.js} +2 -2
  19. package/dist/_chunks/{patient-table-BHzmUbzu.js → patient-table-B6AKMTm3.js} +182 -196
  20. package/dist/_chunks/{payment-form-DL9xk9BA.js → payment-form-BoGxEmGn.js} +2 -2
  21. package/dist/_chunks/{payment-request-card-d-RmzsUd.js → payment-request-card-CygO1anM.js} +72 -70
  22. package/dist/_chunks/{pdf-viewer-DF3VMaPo.js → pdf-viewer-CcOuR2wj.js} +2 -2
  23. package/dist/_chunks/{practice-results-BCr7jMt1.js → practice-results-yKbwIxqa.js} +2 -2
  24. package/dist/_chunks/{radiograph-panel.agent-CxF9pVxd.js → radiograph-panel.agent-M9XD4ze4.js} +2 -2
  25. package/dist/_chunks/{rich-text-editor-CCWjNkbx.js → rich-text-editor-RRkBN_WB.js} +2 -2
  26. package/dist/_chunks/{session-countdown-C8AsE072.js → session-countdown-Bc70VXN1.js} +58 -48
  27. package/dist/_chunks/{sign-document-Bfk0WpWV.js → sign-document-DI561d1C.js} +2 -2
  28. package/dist/_chunks/{signature-request-CEOrCDyk.js → signature-request-D_6jgDZd.js} +60 -77
  29. package/dist/_chunks/{task-tray-Br3vc0O1.js → task-tray-CLIqIXUZ.js} +58 -70
  30. package/dist/_chunks/{toast.agent-uV8CeAy6.js → toast.agent-Iw2jWdce.js} +2 -2
  31. package/dist/_chunks/{warning-stack-BlG_Ujy3.js → warning-stack-CAHQ0xxS.js} +2 -2
  32. package/dist/_chunks/{workflow-map-C643Q43h.js → workflow-map-SIfAhmWz.js} +2 -2
  33. package/dist/agent-catalog.json +45 -1
  34. package/dist/agent-i18n/en.json +9 -0
  35. package/dist/components/ai-consent-banner/index.js +1 -1
  36. package/dist/components/alert/index.js +1 -1
  37. package/dist/components/audio-recorder/index.js +1 -1
  38. package/dist/components/booking/index.js +1 -1
  39. package/dist/components/document-preview/index.js +1 -1
  40. package/dist/components/document-scanner/index.js +1 -1
  41. package/dist/components/entity-summary/index.js +1 -1
  42. package/dist/components/file-manager/index.js +1 -1
  43. package/dist/components/file-upload/index.js +1 -1
  44. package/dist/components/freemium-paywall/index.js +1 -1
  45. package/dist/components/index.d.ts +1 -0
  46. package/dist/components/info-tip/index.d.ts +4 -0
  47. package/dist/components/info-tip/index.js +6 -0
  48. package/dist/components/info-tip/info-tip.agent.d.ts +4 -0
  49. package/dist/components/info-tip/info-tip.d.ts +42 -0
  50. package/dist/components/notes-panel/index.js +1 -1
  51. package/dist/components/patient-details/index.js +1 -1
  52. package/dist/components/patient-search/index.js +1 -1
  53. package/dist/components/patient-summary-card/index.js +1 -1
  54. package/dist/components/patient-table/index.js +1 -1
  55. package/dist/components/payment-card/index.js +1 -1
  56. package/dist/components/payment-form/index.js +1 -1
  57. package/dist/components/pdf-viewer/index.js +1 -1
  58. package/dist/components/practice-results/index.js +1 -1
  59. package/dist/components/radiograph-panel/index.js +1 -1
  60. package/dist/components/rich-text-editor/index.js +1 -1
  61. package/dist/components/session-countdown/index.js +1 -1
  62. package/dist/components/sign-document/index.js +1 -1
  63. package/dist/components/task-tray/index.js +1 -1
  64. package/dist/components/toast/index.js +1 -1
  65. package/dist/components/warning-stack/index.js +1 -1
  66. package/dist/components/workflow/index.js +1 -1
  67. package/dist/i18n/locales/ar.d.ts +3 -0
  68. package/dist/i18n/locales/ar.js +3 -0
  69. package/dist/i18n/locales/de.d.ts +3 -0
  70. package/dist/i18n/locales/de.js +3 -0
  71. package/dist/i18n/locales/el.d.ts +3 -0
  72. package/dist/i18n/locales/el.js +3 -0
  73. package/dist/i18n/locales/en.d.ts +3 -0
  74. package/dist/i18n/locales/en.js +3 -0
  75. package/dist/i18n/locales/es.d.ts +3 -0
  76. package/dist/i18n/locales/es.js +3 -0
  77. package/dist/i18n/locales/fr.d.ts +3 -0
  78. package/dist/i18n/locales/fr.js +3 -0
  79. package/dist/i18n/locales/hi.d.ts +3 -0
  80. package/dist/i18n/locales/hi.js +3 -0
  81. package/dist/i18n/locales/it.d.ts +3 -0
  82. package/dist/i18n/locales/it.js +3 -0
  83. package/dist/i18n/locales/ja.d.ts +3 -0
  84. package/dist/i18n/locales/ja.js +3 -0
  85. package/dist/i18n/locales/nl.d.ts +3 -0
  86. package/dist/i18n/locales/nl.js +3 -0
  87. package/dist/i18n/locales/pl.d.ts +3 -0
  88. package/dist/i18n/locales/pl.js +3 -0
  89. package/dist/i18n/locales/pt.d.ts +3 -0
  90. package/dist/i18n/locales/pt.js +3 -0
  91. package/dist/i18n/locales/ro.d.ts +3 -0
  92. package/dist/i18n/locales/ro.js +3 -0
  93. package/dist/i18n/locales/ru.d.ts +3 -0
  94. package/dist/i18n/locales/ru.js +3 -0
  95. package/dist/i18n/locales/sq.d.ts +3 -0
  96. package/dist/i18n/locales/sq.js +3 -0
  97. package/dist/i18n/locales/sv.d.ts +3 -0
  98. package/dist/i18n/locales/sv.js +3 -0
  99. package/dist/i18n/locales/tr.d.ts +3 -0
  100. package/dist/i18n/locales/tr.js +3 -0
  101. package/dist/i18n/locales/zh.d.ts +3 -0
  102. package/dist/i18n/locales/zh.js +3 -0
  103. package/dist/index.js +715 -723
  104. package/dist/locales/ar.json +3 -0
  105. package/dist/locales/de.json +3 -0
  106. package/dist/locales/el.json +3 -0
  107. package/dist/locales/en.json +3 -0
  108. package/dist/locales/es.json +3 -0
  109. package/dist/locales/fr.json +3 -0
  110. package/dist/locales/hi.json +3 -0
  111. package/dist/locales/it.json +3 -0
  112. package/dist/locales/ja.json +3 -0
  113. package/dist/locales/nl.json +3 -0
  114. package/dist/locales/pl.json +3 -0
  115. package/dist/locales/pt.json +3 -0
  116. package/dist/locales/ro.json +3 -0
  117. package/dist/locales/ru.json +3 -0
  118. package/dist/locales/sq.json +3 -0
  119. package/dist/locales/sv.json +3 -0
  120. package/dist/locales/tr.json +3 -0
  121. package/dist/locales/zh.json +3 -0
  122. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  123. package/dist/patterns/signature-request/index.js +1 -1
  124. package/dist/tokens.css +1 -1
  125. package/package.json +9 -3
  126. package/dist/_chunks/circle-x-W8Enq3i4.js +0 -16
@@ -1,27 +1,15 @@
1
- import { jsx as t, jsxs as y } from "react/jsx-runtime";
2
- import { forwardRef as K, useRef as N, useMemo as E, useImperativeHandle as P } from "react";
3
- import { c as B } from "./index-D2ZczOXr.js";
4
- import { useTranslation as H } from "react-i18next";
5
- import { I as L } from "./icon-button-C_kbcd7I.js";
6
- import { S as A } from "./skeleton-CZbwyJAA.js";
7
- import { E as V } from "./empty-state-CrLsi0XI.js";
8
- import { T as F } from "./task-card-BUgK6yZT.js";
9
- import { u as G } from "./registry-DvAUVLHh.js";
10
- import { c as J } from "./createLucideIcon-DhHxpK9K.js";
1
+ import { jsx as t, jsxs as v } from "react/jsx-runtime";
2
+ import { forwardRef as B, useRef as N, useMemo as E, useImperativeHandle as P } from "react";
3
+ import { c as H } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as M } from "react-i18next";
5
+ import { I as A } from "./icon-button-C_kbcd7I.js";
6
+ import { S as V } from "./skeleton-CZbwyJAA.js";
7
+ import { E as F } from "./empty-state-CrLsi0XI.js";
8
+ import { T as G } from "./task-card-BUgK6yZT.js";
9
+ import { u as J } from "./registry-DvAUVLHh.js";
10
+ import { S as L } from "./square-check-big-dj0o8yA3.js";
11
11
  import { P as Q } from "./plus-DzMQ_c6b.js";
12
- /**
13
- * @license lucide-react v1.22.0 - ISC
14
- *
15
- * This source code is licensed under the ISC license.
16
- * See the LICENSE file in the root directory of this source tree.
17
- */
18
- const U = [
19
- ["path", { d: "M13 5h8", key: "a7qcls" }],
20
- ["path", { d: "M13 12h8", key: "h98zly" }],
21
- ["path", { d: "M13 19h8", key: "c3s6r1" }],
22
- ["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
23
- ["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
24
- ], W = J("list-todo", U), X = {
12
+ const U = {
25
13
  id: "task-tray",
26
14
  capabilities: ["select_single", "dismiss"],
27
15
  state: {
@@ -94,7 +82,7 @@ const U = [
94
82
  description: "Stable task id emitted on each rendered TaskCard inside the tray."
95
83
  }
96
84
  }
97
- }, Y = B(
85
+ }, W = H(
98
86
  [
99
87
  "ds:flex ds:flex-col",
100
88
  "ds:rounded-[var(--radius-md)] ds:shadow-[var(--shadow-card)]",
@@ -113,38 +101,38 @@ const U = [
113
101
  size: "sm"
114
102
  }
115
103
  }
116
- ), Z = K(
104
+ ), X = B(
117
105
  ({
118
106
  id: s,
119
107
  items: a,
120
- title: j,
121
- size: v = "sm",
122
- onOpenTask: r,
108
+ title: S,
109
+ size: g = "sm",
110
+ onOpenTask: i,
123
111
  onToggleDone: n,
124
112
  onDismissTask: c,
125
- onAddTask: g,
126
- addLabel: T,
113
+ onAddTask: h,
114
+ addLabel: j,
127
115
  loading: m = !1,
128
- emptyTitle: q,
129
- emptyDescription: I,
130
- emptyAction: R,
116
+ emptyTitle: T,
117
+ emptyDescription: R,
118
+ emptyAction: q,
131
119
  viewAllLabel: k,
132
120
  onViewAll: b,
133
121
  renderItemActions: u,
134
122
  scrollable: f = !1,
135
- className: S,
136
- ..._
137
- }, z) => {
138
- const { t: l } = H(), h = j ?? l("taskTray.title", "Tasks"), C = T ?? l("taskTray.add", "Add task"), x = !m && a.length === 0;
123
+ className: C,
124
+ ...I
125
+ }, _) => {
126
+ const { t: l } = M(), y = S ?? l("taskTray.title", "Tasks"), z = j ?? l("taskTray.add", "Add task"), x = !m && a.length === 0;
139
127
  let p;
140
- m ? p = /* @__PURE__ */ t("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [0, 1, 2].map((e) => /* @__PURE__ */ t(A, { variant: "rectangular", height: "2.5rem" }, e)) }) : x ? p = /* @__PURE__ */ t("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ t(
141
- V,
128
+ m ? p = /* @__PURE__ */ t("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [0, 1, 2].map((e) => /* @__PURE__ */ t(V, { variant: "rectangular", height: "2.5rem" }, e)) }) : x ? p = /* @__PURE__ */ t("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ t(
129
+ F,
142
130
  {
143
131
  variant: "first-use",
144
132
  size: "sm",
145
- title: q ?? l("taskTray.empty.title", "No tasks yet"),
146
- description: I ?? l("taskTray.empty.description", "New tasks will appear here."),
147
- primaryAction: R
133
+ title: T ?? l("taskTray.empty.title", "No tasks yet"),
134
+ description: R ?? l("taskTray.empty.description", "New tasks will appear here."),
135
+ primaryAction: q
148
136
  }
149
137
  ) }) : p = /* @__PURE__ */ t(
150
138
  "ul",
@@ -159,13 +147,13 @@ const U = [
159
147
  f ? "ds:overflow-y-auto" : ""
160
148
  ].filter(Boolean).join(" "),
161
149
  tabIndex: f ? 0 : void 0,
162
- "aria-label": f ? h : void 0,
150
+ "aria-label": f ? y : void 0,
163
151
  children: a.map((e) => /* @__PURE__ */ t(
164
- F,
152
+ G,
165
153
  {
166
154
  item: e,
167
- size: v,
168
- onActivate: r,
155
+ size: g,
156
+ onActivate: i,
169
157
  actions: u == null ? void 0 : u(e),
170
158
  "data-task-id": e.id
171
159
  },
@@ -175,50 +163,50 @@ const U = [
175
163
  );
176
164
  const d = N(a);
177
165
  d.current = a;
178
- const M = E(
166
+ const K = E(
179
167
  () => ({
180
168
  getItems: () => d.current.map((e) => ({
181
169
  id: e.id,
182
170
  status: e.status ?? "open"
183
171
  })),
184
172
  selectItem: (e) => {
185
- const i = d.current.find((o) => o.id === e);
186
- i && (r == null || r(i));
173
+ const r = d.current.find((o) => o.id === e);
174
+ r && (i == null || i(r));
187
175
  },
188
176
  toggleDone: (e) => {
189
- const i = d.current.find((o) => o.id === e);
190
- i && (n == null || n(i));
177
+ const r = d.current.find((o) => o.id === e);
178
+ r && (n == null || n(r));
191
179
  },
192
180
  dismiss: (e) => {
193
- const i = d.current.find((o) => o.id === e);
194
- i && (c == null || c(i));
181
+ const r = d.current.find((o) => o.id === e);
182
+ r && (c == null || c(r));
195
183
  }
196
184
  }),
197
- [r, n, c]
185
+ [i, n, c]
198
186
  ), w = N(null);
199
- return P(z, () => w.current, []), G(X, M, s), /* @__PURE__ */ y(
187
+ return P(_, () => w.current, []), J(U, K, s), /* @__PURE__ */ v(
200
188
  "section",
201
189
  {
202
190
  ref: w,
203
- "aria-label": h,
191
+ "aria-label": y,
204
192
  "data-component": "task-tray",
205
193
  "data-component-id": s,
206
- className: Y({ size: v, className: S }),
207
- ..._,
194
+ className: W({ size: g, className: C }),
195
+ ...I,
208
196
  children: [
209
- /* @__PURE__ */ y("header", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [
210
- /* @__PURE__ */ y("h3", { className: "ds:m-0 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-card", children: [
211
- /* @__PURE__ */ t(W, { "aria-hidden": "true", className: "ds:size-4" }),
212
- h
197
+ /* @__PURE__ */ v("header", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [
198
+ /* @__PURE__ */ v("h3", { className: "ds:m-0 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-card", children: [
199
+ /* @__PURE__ */ t(L, { "aria-hidden": "true", className: "ds:size-4" }),
200
+ y
213
201
  ] }),
214
- g ? /* @__PURE__ */ t(
215
- L,
202
+ h ? /* @__PURE__ */ t(
203
+ A,
216
204
  {
217
205
  icon: /* @__PURE__ */ t(Q, {}),
218
206
  intent: "outline",
219
207
  size: "sm",
220
- "aria-label": C,
221
- onClick: g
208
+ "aria-label": z,
209
+ onClick: h
222
210
  }
223
211
  ) : null
224
212
  ] }),
@@ -243,9 +231,9 @@ const U = [
243
231
  );
244
232
  }
245
233
  );
246
- Z.displayName = "TaskTray";
234
+ X.displayName = "TaskTray";
247
235
  export {
248
- Z as T,
249
- X as t
236
+ X as T,
237
+ U as t
250
238
  };
251
- //# sourceMappingURL=task-tray-Br3vc0O1.js.map
239
+ //# sourceMappingURL=task-tray-CLIqIXUZ.js.map
@@ -3,7 +3,7 @@ import s, { useState as Ot, useRef as Zt, useEffect as jt } from "react";
3
3
  import te from "react-dom";
4
4
  import { useTranslation as ee } from "react-i18next";
5
5
  import { I as ae } from "./icon-button-C_kbcd7I.js";
6
- import { C as se } from "./circle-x-W8Enq3i4.js";
6
+ import { C as se } from "./circle-alert-rGDZ73Wh.js";
7
7
  import { T as oe } from "./triangle-alert-CBnO6nq_.js";
8
8
  import { C as ne } from "./circle-check-BN6rz4NV.js";
9
9
  import { I as re } from "./info-CGn22peZ.js";
@@ -1002,4 +1002,4 @@ export {
1002
1002
  Ze as e,
1003
1003
  aa as t
1004
1004
  };
1005
- //# sourceMappingURL=toast.agent-uV8CeAy6.js.map
1005
+ //# sourceMappingURL=toast.agent-Iw2jWdce.js.map
@@ -3,7 +3,7 @@ import { forwardRef as cn, useId as P, useState as y, useEffect as f, useMemo as
3
3
  import { c as dn } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ln } from "react-i18next";
5
5
  import { u as un } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
6
- import { A as C } from "./alert-KJbsPYkI.js";
6
+ import { A as C } from "./alert-Cxaqd-QO.js";
7
7
  import { B as fn } from "./button-CPGiR_bH.js";
8
8
  import { I as mn } from "./icon-button-C_kbcd7I.js";
9
9
  import { X as gn } from "./x-B5YnXwCz.js";
@@ -265,4 +265,4 @@ Nn.displayName = "WarningStack";
265
265
  export {
266
266
  Nn as W
267
267
  };
268
- //# sourceMappingURL=warning-stack-BlG_Ujy3.js.map
268
+ //# sourceMappingURL=warning-stack-CAHQ0xxS.js.map
@@ -12,7 +12,7 @@ import { c as D } from "./createLucideIcon-DhHxpK9K.js";
12
12
  import { T as ae } from "./trash-2-uumy3fy1.js";
13
13
  import { C as Ne } from "./circle-j7oZoouK.js";
14
14
  import { u as Ce } from "./registry-DvAUVLHh.js";
15
- import { A as $ } from "./alert-KJbsPYkI.js";
15
+ import { A as $ } from "./alert-Cxaqd-QO.js";
16
16
  import { B as _e } from "./button-CPGiR_bH.js";
17
17
  import { D as N } from "./dropdown-menu-DU-Hrf33.js";
18
18
  import { E } from "./empty-state-CrLsi0XI.js";
@@ -1353,4 +1353,4 @@ export {
1353
1353
  ee as r,
1354
1354
  L as w
1355
1355
  };
1356
- //# sourceMappingURL=workflow-map-C643Q43h.js.map
1356
+ //# sourceMappingURL=workflow-map-SIfAhmWz.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.84.1",
3
+ "packageVersion": "0.86.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -5585,6 +5585,50 @@
5585
5585
  }
5586
5586
  }
5587
5587
  },
5588
+ {
5589
+ "kind": "component",
5590
+ "id": "info-tip",
5591
+ "capabilities": [
5592
+ "open",
5593
+ "close"
5594
+ ],
5595
+ "state": [
5596
+ {
5597
+ "name": "isOpen",
5598
+ "type": "boolean",
5599
+ "description": "True when the info tip card is currently open.",
5600
+ "descriptionKey": "ui.agent.infoTip.state.isOpen"
5601
+ }
5602
+ ],
5603
+ "actions": [
5604
+ {
5605
+ "name": "open",
5606
+ "safety": "read",
5607
+ "idempotent": true,
5608
+ "description": "Open the info tip card.",
5609
+ "descriptionKey": "ui.agent.infoTip.actions.open"
5610
+ },
5611
+ {
5612
+ "name": "close",
5613
+ "safety": "read",
5614
+ "idempotent": true,
5615
+ "description": "Close the info tip card.",
5616
+ "descriptionKey": "ui.agent.infoTip.actions.close"
5617
+ }
5618
+ ],
5619
+ "domHooks": {
5620
+ "root": {
5621
+ "attr": "data-component",
5622
+ "value": "info-tip",
5623
+ "description": "Marks the InfoTip trigger button."
5624
+ },
5625
+ "instanceId": {
5626
+ "attr": "data-component-id",
5627
+ "sourceProp": "id",
5628
+ "description": "Sourced from the id prop on InfoTip."
5629
+ }
5630
+ }
5631
+ },
5588
5632
  {
5589
5633
  "kind": "component",
5590
5634
  "id": "kbd",
@@ -585,6 +585,15 @@
585
585
  "reset": "Reset the crop to the centred default for the current aspect."
586
586
  }
587
587
  },
588
+ "infoTip": {
589
+ "state": {
590
+ "isOpen": "True when the info tip card is currently open."
591
+ },
592
+ "actions": {
593
+ "open": "Open the info tip card.",
594
+ "close": "Close the info tip card."
595
+ }
596
+ },
588
597
  "list": {
589
598
  "state": {
590
599
  "selection": "Ids of currently-selected list items. Empty array when none selected or list is presentational."
@@ -1,4 +1,4 @@
1
- import { A as e, a as o } from "../../_chunks/ai-consent-banner-DUhr1yNj.js";
1
+ import { A as e, a as o } from "../../_chunks/ai-consent-banner-BXD7W6FI.js";
2
2
  export {
3
3
  e as AiConsentBanner,
4
4
  o as aiConsentBannerAgent
@@ -1,4 +1,4 @@
1
- import { A as o } from "../../_chunks/alert-KJbsPYkI.js";
1
+ import { A as o } from "../../_chunks/alert-Cxaqd-QO.js";
2
2
  export {
3
3
  o as Alert
4
4
  };
@@ -1,4 +1,4 @@
1
- import { A as r, a } from "../../_chunks/audio-recorder-Cc3KuL9y.js";
1
+ import { A as r, a } from "../../_chunks/audio-recorder-BjnB7V8n.js";
2
2
  export {
3
3
  r as AudioRecorder,
4
4
  a as audioRecorderAgent
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-CLmeXtGv.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-BvCu2XWY.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/document-preview-nwfulDEs.js";
1
+ import { D as r, d as t } from "../../_chunks/document-preview-DXl9migE.js";
2
2
  export {
3
3
  r as DocumentPreview,
4
4
  t as documentPreviewAgent
@@ -1,4 +1,4 @@
1
- import { D as a, d as c } from "../../_chunks/document-scanner-B6h1Ir56.js";
1
+ import { D as a, d as c } from "../../_chunks/document-scanner-cS_ispQs.js";
2
2
  export {
3
3
  a as DocumentScanner,
4
4
  c as documentScannerAgent
@@ -1,4 +1,4 @@
1
- import { E as t } from "../../_chunks/entity-summary--vP698Jn.js";
1
+ import { E as t } from "../../_chunks/entity-summary-BILN4wEG.js";
2
2
  export {
3
3
  t as EntitySummary
4
4
  };
@@ -1,4 +1,4 @@
1
- import { F as r, f } from "../../_chunks/file-manager-DLJlinIO.js";
1
+ import { F as r, f } from "../../_chunks/file-manager-B9LZzT5E.js";
2
2
  export {
3
3
  r as FileManager,
4
4
  f as fileManagerAgent
@@ -1,4 +1,4 @@
1
- import { F as e, b as s, f as t } from "../../_chunks/file-upload-DENvuhfs.js";
1
+ import { F as e, b as s, f as t } from "../../_chunks/file-upload-CwxdqkMK.js";
2
2
  export {
3
3
  e as FileUpload,
4
4
  s as browseButtonVariants,
@@ -1,4 +1,4 @@
1
- import { F as m, f as l } from "../../_chunks/freemium-paywall-CmV642PA.js";
1
+ import { F as m, f as l } from "../../_chunks/freemium-paywall-Dr2342_S.js";
2
2
  export {
3
3
  m as FreemiumPaywall,
4
4
  l as freemiumPaywallAgent
@@ -117,6 +117,7 @@ export * from './appointment-timeline';
117
117
  export * from './dialog';
118
118
  export * from './dropdown-menu';
119
119
  export * from './finished-terminal';
120
+ export * from './info-tip';
120
121
  export * from './live-region';
121
122
  export * from './matrix-rain';
122
123
  export * from './message-card';
@@ -0,0 +1,4 @@
1
+ export { InfoTip } from './info-tip';
2
+ export type { InfoTipProps, InfoTipHandle } from './info-tip';
3
+ export { infoTipAgent } from './info-tip.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { I as f, i as n } from "../../_chunks/info-tip-Bxk3w6UM.js";
2
+ export {
3
+ f as InfoTip,
4
+ n as infoTipAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { InfoTipHandle } from './info-tip';
3
+ export declare const infoTipAgent: AgentAdapter<InfoTipHandle>;
4
+ //# sourceMappingURL=info-tip.agent.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface InfoTipHandle {
3
+ getIsOpen: () => boolean;
4
+ open: () => void;
5
+ close: () => void;
6
+ }
7
+ export interface InfoTipProps {
8
+ /** Body of the tip — explanatory text shown in the floating card. */
9
+ content: ReactNode;
10
+ /** Optional heading rendered above the body. */
11
+ heading?: ReactNode;
12
+ /**
13
+ * Trigger diameter. Also maps the floating card width:
14
+ * `sm` → `--popover-size-sm`, `md` → `--popover-size-md`.
15
+ */
16
+ size?: 'sm' | 'md';
17
+ /** Logical side the card opens on. Default `'top'`. */
18
+ side?: 'start' | 'top' | 'end' | 'bottom';
19
+ /** Alignment along the side axis. Default `'center'`. */
20
+ align?: 'start' | 'center' | 'end';
21
+ /**
22
+ * Accessible name for the trigger. Defaults to the translated
23
+ * "More information" chrome string.
24
+ */
25
+ 'aria-label'?: string;
26
+ /**
27
+ * Opaque instance id — emitted as `data-component-id` on the trigger and
28
+ * used to register the instance with the host agent registry.
29
+ */
30
+ id?: string;
31
+ /** Extra classes merged onto the trigger button. */
32
+ className?: string;
33
+ }
34
+ /**
35
+ * InfoTip — a deliberate, branded "more information" affordance: a small
36
+ * circular trigger that reveals an explanatory card on hover **and** click
37
+ * (click also serves touch devices). Composes the kit Popover in
38
+ * `openOn="hover-or-click"` mode — hover intent, keyboard focus, Escape and
39
+ * focus-return are all handled by the Popover/Radix layer.
40
+ */
41
+ export declare const InfoTip: import("react").ForwardRefExoticComponent<InfoTipProps & import("react").RefAttributes<HTMLButtonElement>>;
42
+ //# sourceMappingURL=info-tip.d.ts.map
@@ -1,4 +1,4 @@
1
- import { N as a } from "../../_chunks/notes-panel-Cvdp818a.js";
1
+ import { N as a } from "../../_chunks/notes-panel-BLjlYBt-.js";
2
2
  export {
3
3
  a as NotesPanel
4
4
  };
@@ -1,4 +1,4 @@
1
- import { P as e, p as i } from "../../_chunks/patient-details-COvYWp2e.js";
1
+ import { P as e, p as i } from "../../_chunks/patient-details-B9LCdyWW.js";
2
2
  export {
3
3
  e as PatientDetails,
4
4
  i as patientDetailsAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as r } from "../../_chunks/patient-search-BaUJ_Y-N.js";
1
+ import { P as t, p as r } from "../../_chunks/patient-search-vtRTSdf6.js";
2
2
  export {
3
3
  t as PatientSearch,
4
4
  r as patientSearchAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as m } from "../../_chunks/patient-summary-card-D6kgdTNn.js";
1
+ import { P as t, p as m } from "../../_chunks/patient-summary-card-vn1H4xWj.js";
2
2
  export {
3
3
  t as PatientSummaryCard,
4
4
  m as patientSummaryCardAgent
@@ -1,4 +1,4 @@
1
- import { B as s, C as l, N as t, P as n, a as C, b as i, g as o, u } from "../../_chunks/patient-table-BHzmUbzu.js";
1
+ import { B as s, C as l, N as t, P as n, a as C, b as i, g as o, u } from "../../_chunks/patient-table-B6AKMTm3.js";
2
2
  export {
3
3
  s as BalanceBadgeCell,
4
4
  l as CarePlanStatusCell,
@@ -1,4 +1,4 @@
1
- import { P as t, a as n, p as r, b as s } from "../../_chunks/payment-request-card-d-RmzsUd.js";
1
+ import { P as t, a as n, p as r, b as s } from "../../_chunks/payment-request-card-CygO1anM.js";
2
2
  export {
3
3
  t as PaymentCard,
4
4
  n as PaymentRequestCard,
@@ -1,4 +1,4 @@
1
- import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-DL9xk9BA.js";
1
+ import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-BoGxEmGn.js";
2
2
  export {
3
3
  r as PaymentForm,
4
4
  s as formatPaymentAmount,
@@ -1,4 +1,4 @@
1
- import { P as p, p as a } from "../../_chunks/pdf-viewer-DF3VMaPo.js";
1
+ import { P as p, p as a } from "../../_chunks/pdf-viewer-CcOuR2wj.js";
2
2
  export {
3
3
  p as PDFViewer,
4
4
  a as pdfViewerAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as a } from "../../_chunks/practice-results-BCr7jMt1.js";
1
+ import { P as t, p as a } from "../../_chunks/practice-results-yKbwIxqa.js";
2
2
  export {
3
3
  t as PracticeResults,
4
4
  a as practiceResultsAgent
@@ -1,4 +1,4 @@
1
- import { R as o, I as e, r as n } from "../../_chunks/radiograph-panel.agent-CxF9pVxd.js";
1
+ import { R as o, I as e, r as n } from "../../_chunks/radiograph-panel.agent-M9XD4ze4.js";
2
2
  export {
3
3
  o as RadiographPanel,
4
4
  e as RadiographPanelIcon,
@@ -1,4 +1,4 @@
1
- import { R as a, r as e, w as i } from "../../_chunks/rich-text-editor-CCWjNkbx.js";
1
+ import { R as a, r as e, w as i } from "../../_chunks/rich-text-editor-RRkBN_WB.js";
2
2
  export {
3
3
  a as RichTextEditor,
4
4
  e as richTextEditorAgent,
@@ -1,4 +1,4 @@
1
- import { S as n, s as e } from "../../_chunks/session-countdown-C8AsE072.js";
1
+ import { S as n, s as e } from "../../_chunks/session-countdown-Bc70VXN1.js";
2
2
  export {
3
3
  n as SessionCountdown,
4
4
  e as sessionCountdownAgent
@@ -1,4 +1,4 @@
1
- import { S as o, s } from "../../_chunks/sign-document-Bfk0WpWV.js";
1
+ import { S as o, s } from "../../_chunks/sign-document-DI561d1C.js";
2
2
  export {
3
3
  o as SignDocument,
4
4
  s as signDocumentAgent
@@ -1,4 +1,4 @@
1
- import { T as s, t } from "../../_chunks/task-tray-Br3vc0O1.js";
1
+ import { T as s, t } from "../../_chunks/task-tray-CLIqIXUZ.js";
2
2
  export {
3
3
  s as TaskTray,
4
4
  t as taskTrayAgent
@@ -1,4 +1,4 @@
1
- import { T as s, t as o, a as e, b as r, c as n, d as c, e as g } from "../../_chunks/toast.agent-uV8CeAy6.js";
1
+ import { T as s, t as o, a as e, b as r, c as n, d as c, e as g } from "../../_chunks/toast.agent-Iw2jWdce.js";
2
2
  export {
3
3
  s as Toaster,
4
4
  o as toastAgent,
@@ -1,4 +1,4 @@
1
- import { W as n } from "../../_chunks/warning-stack-BlG_Ujy3.js";
1
+ import { W as n } from "../../_chunks/warning-stack-CAHQ0xxS.js";
2
2
  export {
3
3
  n as WarningStack
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-C643Q43h.js";
1
+ import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-SIfAhmWz.js";
2
2
  export {
3
3
  r as CORE_PATIENT_FIELDS,
4
4
  e as WorkflowCard,
@@ -6,6 +6,9 @@
6
6
  * Domain: AlfaDocs dental practice management software.
7
7
  */
8
8
  export declare const arUi: {
9
+ readonly infoTip: {
10
+ readonly triggerLabel: "مزيد من المعلومات";
11
+ };
9
12
  readonly opticalPrescription: {
10
13
  readonly ariaLabel: "وصفة النظارات";
11
14
  readonly metaLabel: "تفاصيل الوصفة";
@@ -1,4 +1,7 @@
1
1
  const e = {
2
+ infoTip: {
3
+ triggerLabel: "مزيد من المعلومات"
4
+ },
2
5
  opticalPrescription: {
3
6
  ariaLabel: "وصفة النظارات",
4
7
  metaLabel: "تفاصيل الوصفة",
@@ -6,6 +6,9 @@
6
6
  * for AlfaDocs terminology consistency.
7
7
  */
8
8
  export declare const deUi: {
9
+ readonly infoTip: {
10
+ readonly triggerLabel: "Weitere Informationen";
11
+ };
9
12
  readonly opticalPrescription: {
10
13
  readonly ariaLabel: "Brillenrezept";
11
14
  readonly metaLabel: "Rezeptdetails";
@@ -1,4 +1,7 @@
1
1
  const e = {
2
+ infoTip: {
3
+ triggerLabel: "Weitere Informationen"
4
+ },
2
5
  opticalPrescription: {
3
6
  ariaLabel: "Brillenrezept",
4
7
  metaLabel: "Rezeptdetails",