@alfadocs/ui-kit 0.50.1 → 0.52.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 (152) hide show
  1. package/dist/_chunks/{agenda-card-BaSfVfrL.js → agenda-card-Bl-SBiCh.js} +55 -45
  2. package/dist/_chunks/agenda-tray-DA6qj8BL.js +203 -0
  3. package/dist/_chunks/{ai-consent-banner-F2md5JD3.js → ai-consent-banner-DBKV27je.js} +2 -2
  4. package/dist/_chunks/ai-tools-rail-7tC3GT4h.js +340 -0
  5. package/dist/_chunks/{alert-CUTxnym2.js → alert-_mUKLmwA.js} +54 -44
  6. package/dist/_chunks/{audio-recorder-DVJXV7_k.js → audio-recorder-D6OVfNiZ.js} +2 -2
  7. package/dist/_chunks/{booking-DljH0JkS.js → booking-BUV9fspj.js} +2 -2
  8. package/dist/_chunks/{document-scanner-Cxqvq7GR.js → document-scanner-biBS_f6c.js} +2 -2
  9. package/dist/_chunks/dropdown-menu-DwwPovMZ.js +354 -0
  10. package/dist/_chunks/{editable-currency-cell-renderer-Bh48OHRv.js → editable-currency-cell-renderer-D5C5tCfu.js} +3 -3
  11. package/dist/_chunks/{freemium-paywall-BWaLWje-.js → freemium-paywall-gHGA44dW.js} +2 -2
  12. package/dist/_chunks/{header-settings-Bx0Biimh.js → header-settings-D5Z2B_Yz.js} +3 -3
  13. package/dist/_chunks/{logo-yituK7sE.js → logo-1FuSGx0n.js} +2 -1
  14. package/dist/_chunks/marketplace-app-shell-C4OYAC22.js +513 -0
  15. package/dist/_chunks/maximize-2-Cm9OUQ2m.js +17 -0
  16. package/dist/_chunks/{patient-search-BJOmTmDA.js → patient-search-CArmRKeg.js} +3 -3
  17. package/dist/_chunks/patient-shell-Coarf346.js +162 -0
  18. package/dist/_chunks/{payment-form-xmeCkxas.js → payment-form-DJ9vnzrT.js} +2 -2
  19. package/dist/_chunks/{pdf-viewer-q1D3Uion.js → pdf-viewer-4odMFuFW.js} +2 -2
  20. package/dist/_chunks/{practice-results-Cq1y8JFD.js → practice-results-CtfciF2v.js} +3 -3
  21. package/dist/_chunks/{pregnancy-dating-DT_244bG.js → pregnancy-dating-BA37LSkF.js} +15 -15
  22. package/dist/_chunks/{privacy-lock-BmX_gkvt.js → privacy-lock-BN3L-alb.js} +2 -2
  23. package/dist/_chunks/{public-footer.agent-okt8ZRc5.js → public-footer.agent-CfXuW1x6.js} +2 -2
  24. package/dist/_chunks/{recaptcha-widget-CFYyLSEX.js → recaptcha-widget-BCNHsgqt.js} +2 -2
  25. package/dist/_chunks/{sidebar-h78cTNLh.js → sidebar-DPEHzxLZ.js} +397 -346
  26. package/dist/_chunks/{sign-document-CZkAf28g.js → sign-document-Bzld9jVM.js} +2 -2
  27. package/dist/_chunks/{sign-in-with-alfadocs-button-CuYn_kKP.js → sign-in-with-alfadocs-button-BpAjVmsI.js} +2 -2
  28. package/dist/_chunks/{task-card-CPyQ5AXC.js → task-card-BwY9jaV1.js} +48 -42
  29. package/dist/_chunks/task-tray-Cb_hK4yb.js +234 -0
  30. package/dist/_chunks/{theme-toggle-ClATnY4Q.js → theme-toggle-DAW7uC0B.js} +3 -3
  31. package/dist/_chunks/use-edge-resize-ZnGG7gyO.js +139 -0
  32. package/dist/_chunks/use-theme-CAuo6EYT.js +159 -0
  33. package/dist/_chunks/{warning-stack-CXfoAT-_.js → warning-stack-Cv4fr5zo.js} +2 -2
  34. package/dist/_chunks/{workflow-map-DzX_LI4y.js → workflow-map-BJDUNYlX.js} +3 -3
  35. package/dist/agent-catalog.json +1 -1
  36. package/dist/brand/product-lockup/product-lockup.d.ts +47 -12
  37. package/dist/components/agenda-card/agenda-card.d.ts +19 -2
  38. package/dist/components/agenda-card/index.js +1 -1
  39. package/dist/components/agenda-tray/agenda-tray.d.ts +24 -1
  40. package/dist/components/agenda-tray/index.js +1 -1
  41. package/dist/components/ai-consent-banner/index.js +1 -1
  42. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +8 -0
  43. package/dist/components/ai-tools-rail/index.js +1 -1
  44. package/dist/components/alert/index.js +1 -1
  45. package/dist/components/audio-recorder/index.js +1 -1
  46. package/dist/components/booking/index.js +1 -1
  47. package/dist/components/button-group/button-group.d.ts +1 -1
  48. package/dist/components/checkbox-group/checkbox-group.d.ts +1 -1
  49. package/dist/components/data-table/index.js +1 -1
  50. package/dist/components/document-scanner/index.js +1 -1
  51. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -0
  52. package/dist/components/dropdown-menu/index.js +1 -1
  53. package/dist/components/form-field/form-field.d.ts +1 -1
  54. package/dist/components/freemium-paywall/index.js +1 -1
  55. package/dist/components/header-settings/index.js +1 -1
  56. package/dist/components/icon-button-group/icon-button-group.d.ts +15 -15
  57. package/dist/components/key-value-pair/key-value-pair.d.ts +1 -1
  58. package/dist/components/logo/index.js +1 -1
  59. package/dist/components/patient-search/index.js +1 -1
  60. package/dist/components/payment-form/index.js +1 -1
  61. package/dist/components/pdf-viewer/index.js +1 -1
  62. package/dist/components/practice-results/index.js +1 -1
  63. package/dist/components/pregnancy-dating/index.js +1 -1
  64. package/dist/components/privacy-lock/index.js +1 -1
  65. package/dist/components/public-footer/index.js +1 -1
  66. package/dist/components/radio-group/radio-group.d.ts +1 -1
  67. package/dist/components/recaptcha-widget/index.js +1 -1
  68. package/dist/components/separator/separator.d.ts +1 -1
  69. package/dist/components/sidebar/index.js +1 -1
  70. package/dist/components/sidebar/sidebar.d.ts +8 -0
  71. package/dist/components/sign-document/index.js +1 -1
  72. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  73. package/dist/components/tabs/tabs.d.ts +2 -2
  74. package/dist/components/task-card/index.js +1 -1
  75. package/dist/components/task-card/task-card.d.ts +15 -1
  76. package/dist/components/task-tray/index.js +1 -1
  77. package/dist/components/task-tray/task-tray.d.ts +24 -1
  78. package/dist/components/theme-toggle/index.js +1 -1
  79. package/dist/components/warning-stack/index.js +1 -1
  80. package/dist/components/workflow/index.js +1 -1
  81. package/dist/components/workflow/workflow-map.d.ts +1 -1
  82. package/dist/hooks/index.d.ts +1 -0
  83. package/dist/hooks/index.js +12 -10
  84. package/dist/hooks/use-edge-resize.d.ts +78 -0
  85. package/dist/i18n/locales/ar.d.ts +4 -0
  86. package/dist/i18n/locales/ar.js +7 -3
  87. package/dist/i18n/locales/de.d.ts +4 -0
  88. package/dist/i18n/locales/de.js +7 -3
  89. package/dist/i18n/locales/el.d.ts +4 -0
  90. package/dist/i18n/locales/el.js +7 -3
  91. package/dist/i18n/locales/en.d.ts +4 -0
  92. package/dist/i18n/locales/en.js +7 -3
  93. package/dist/i18n/locales/es.d.ts +4 -0
  94. package/dist/i18n/locales/es.js +7 -3
  95. package/dist/i18n/locales/fr.d.ts +4 -0
  96. package/dist/i18n/locales/fr.js +7 -3
  97. package/dist/i18n/locales/hi.d.ts +4 -0
  98. package/dist/i18n/locales/hi.js +7 -3
  99. package/dist/i18n/locales/it.d.ts +4 -0
  100. package/dist/i18n/locales/it.js +7 -3
  101. package/dist/i18n/locales/ja.d.ts +4 -0
  102. package/dist/i18n/locales/ja.js +7 -3
  103. package/dist/i18n/locales/nl.d.ts +4 -0
  104. package/dist/i18n/locales/nl.js +7 -3
  105. package/dist/i18n/locales/pl.d.ts +4 -0
  106. package/dist/i18n/locales/pl.js +7 -3
  107. package/dist/i18n/locales/pt.d.ts +4 -0
  108. package/dist/i18n/locales/pt.js +7 -3
  109. package/dist/i18n/locales/ro.d.ts +4 -0
  110. package/dist/i18n/locales/ro.js +7 -3
  111. package/dist/i18n/locales/ru.d.ts +4 -0
  112. package/dist/i18n/locales/ru.js +7 -3
  113. package/dist/i18n/locales/sq.d.ts +4 -0
  114. package/dist/i18n/locales/sq.js +7 -3
  115. package/dist/i18n/locales/sv.d.ts +4 -0
  116. package/dist/i18n/locales/sv.js +7 -3
  117. package/dist/i18n/locales/tr.d.ts +4 -0
  118. package/dist/i18n/locales/tr.js +7 -3
  119. package/dist/i18n/locales/zh.d.ts +4 -0
  120. package/dist/i18n/locales/zh.js +7 -3
  121. package/dist/index.js +31 -31
  122. package/dist/locales/ar.json +7 -3
  123. package/dist/locales/de.json +7 -3
  124. package/dist/locales/el.json +7 -3
  125. package/dist/locales/en.json +7 -3
  126. package/dist/locales/es.json +7 -3
  127. package/dist/locales/fr.json +7 -3
  128. package/dist/locales/hi.json +7 -3
  129. package/dist/locales/it.json +7 -3
  130. package/dist/locales/ja.json +7 -3
  131. package/dist/locales/nl.json +7 -3
  132. package/dist/locales/pl.json +7 -3
  133. package/dist/locales/pt.json +7 -3
  134. package/dist/locales/ro.json +7 -3
  135. package/dist/locales/ru.json +7 -3
  136. package/dist/locales/sq.json +7 -3
  137. package/dist/locales/sv.json +7 -3
  138. package/dist/locales/tr.json +7 -3
  139. package/dist/locales/zh.json +7 -3
  140. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  141. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +8 -6
  142. package/dist/patterns/patient-shell/index.js +1 -1
  143. package/dist/tokens.css +1 -1
  144. package/package.json +1 -1
  145. package/dist/_chunks/agenda-tray-DQayYmQ0.js +0 -165
  146. package/dist/_chunks/ai-tools-rail-CYLWrRmm.js +0 -280
  147. package/dist/_chunks/circle-arrow-up-CC_85SuH.js +0 -16
  148. package/dist/_chunks/dropdown-menu-CUEXqKis.js +0 -299
  149. package/dist/_chunks/marketplace-app-shell-UKSLx9K_.js +0 -428
  150. package/dist/_chunks/patient-shell-DUmhXnFq.js +0 -174
  151. package/dist/_chunks/task-tray-B8jFv5FV.js +0 -196
  152. package/dist/_chunks/use-theme-C2dHKUAN.js +0 -145
@@ -0,0 +1,340 @@
1
+ import { jsxs as z, jsx as p } from "react/jsx-runtime";
2
+ import { forwardRef as Q, useRef as v, useState as ee, useMemo as A, useCallback as B, useEffect as se, useImperativeHandle as ae } from "react";
3
+ import { c as m } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as ie } from "react-i18next";
5
+ import { I as ne } from "./icon-button-CKEOrN37.js";
6
+ import { S as te } from "./scroll-area-BWqCkEGz.js";
7
+ import { a as oe } from "./tooltip-DvmfrNvB.js";
8
+ import { u as re } from "./use-controllable-state-BiY4xTzM.js";
9
+ import { u as le } from "./use-edge-resize-ZnGG7gyO.js";
10
+ import { u as H } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
11
+ import { u as de } from "./registry-nPAVE19X.js";
12
+ const ce = {
13
+ id: "ai-tools-rail",
14
+ capabilities: ["open", "close", "select_single"],
15
+ state: {
16
+ activeToolId: {
17
+ type: "string | null",
18
+ descriptionKey: "ui.aiToolsRail.agent.state.activeToolId",
19
+ description: "Id of the tool whose panel is currently open, or null when the rail is collapsed to its strip. No panel content is ever exposed.",
20
+ read: (n) => n.getActiveToolId()
21
+ }
22
+ },
23
+ actions: {
24
+ open: {
25
+ safety: "read",
26
+ argsType: "{ id: string }",
27
+ descriptionKey: "ui.aiToolsRail.agent.actions.open",
28
+ description: "Open the given tool's panel.",
29
+ invoke: (n, s) => {
30
+ n.open(s.id);
31
+ }
32
+ },
33
+ close: {
34
+ safety: "read",
35
+ descriptionKey: "ui.aiToolsRail.agent.actions.close",
36
+ description: "Collapse the rail to its strip (no active tool).",
37
+ invoke: (n) => {
38
+ n.close();
39
+ }
40
+ },
41
+ select_tool: {
42
+ safety: "read",
43
+ argsType: "{ id: string | null }",
44
+ descriptionKey: "ui.aiToolsRail.agent.actions.selectTool",
45
+ description: "Set the active tool by id (opens its panel), or pass null to collapse.",
46
+ invoke: (n, s) => {
47
+ n.setActiveTool(s.id);
48
+ }
49
+ }
50
+ },
51
+ domHooks: {
52
+ root: {
53
+ attr: "data-component",
54
+ value: "ai-tools-rail",
55
+ description: "Marks the AiToolsRail wrapper."
56
+ },
57
+ instanceId: {
58
+ attr: "data-component-id",
59
+ sourceProp: "id",
60
+ description: "Sourced from the id prop. Required to address a specific rail from the agent."
61
+ },
62
+ item: {
63
+ attr: "data-tool-id",
64
+ description: "Stable tool id emitted on each strip IconButton. The active icon also carries data-active set to its id."
65
+ }
66
+ }
67
+ }, ue = "ds:[inline-size:3rem]", fe = "ds:[inline-size:var(--ai-tools-rail-panel-inline-size,22rem)]", F = "--ai-tools-rail-panel-inline-size", pe = 288, ve = 640, ge = 352, me = m(
68
+ ["ds:flex ds:shrink-0 ds:h-full", "ds:bg-[var(--background)]"].join(" "),
69
+ {
70
+ variants: {
71
+ side: {
72
+ // Strip docks inline-end; the panel mounts inline-start of it
73
+ // (flex-row, panel rendered first). Shadow faces the main area.
74
+ end: "ds:flex-row ds:shadow-[var(--shadow-chrome-start)]",
75
+ // Strip docks inline-start; the panel mounts inline-end of it.
76
+ start: "ds:flex-row-reverse ds:shadow-[var(--shadow-chrome-end)]"
77
+ }
78
+ },
79
+ defaultVariants: { side: "end" }
80
+ }
81
+ ), be = m(
82
+ [
83
+ "ds:flex ds:shrink-0 ds:flex-col ds:items-center",
84
+ "ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]",
85
+ "ds:gap-[var(--spacing-xs)]",
86
+ ue
87
+ ].join(" ")
88
+ ), he = m(
89
+ [
90
+ "ds:relative ds:flex ds:min-h-0 ds:flex-col ds:h-full",
91
+ "ds:bg-[var(--background)]",
92
+ fe,
93
+ // Defensive: the panel doesn't animate its width today, but if a
94
+ // consumer adds a transition on the var, suppress it mid-drag.
95
+ "ds:data-[resizing]:transition-none"
96
+ ].join(" ")
97
+ ), ye = m(
98
+ [
99
+ "ds:absolute ds:[inset-block:0] ds:z-[1] ds:select-none ds:touch-none",
100
+ "ds:[inline-size:var(--resizable-handle-size)] ds:cursor-col-resize",
101
+ "ds:bg-[var(--border)]",
102
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
103
+ "ds:hover:bg-[var(--accent)] ds:data-[resizing]:bg-[var(--accent)]",
104
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
105
+ "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
106
+ "ds:forced-colors:focus-visible:outline-[CanvasText]",
107
+ "ds:before:absolute ds:before:content-['']",
108
+ "ds:before:[block-size:100%]",
109
+ "ds:before:[inline-size:var(--min-target-size)]",
110
+ "ds:before:[inset-block:0]",
111
+ "ds:before:[inset-inline:calc(0px_-_(var(--min-target-size)_-_var(--resizable-handle-size))_/_2)]"
112
+ ],
113
+ {
114
+ variants: {
115
+ edge: {
116
+ "inline-start": "ds:start-0",
117
+ "inline-end": "ds:end-0"
118
+ }
119
+ },
120
+ defaultVariants: { edge: "inline-start" }
121
+ }
122
+ ), xe = m(
123
+ [
124
+ "ds:absolute ds:-top-[var(--spacing-xs)] ds:-end-[var(--spacing-xs)]",
125
+ "ds:inline-flex ds:items-center ds:justify-center",
126
+ "ds:min-w-[calc(var(--spacing-md)+var(--spacing-xs))]",
127
+ "ds:h-[calc(var(--spacing-md)+var(--spacing-xs))]",
128
+ "ds:ps-[calc(var(--spacing-xs)/1.5)] ds:pe-[calc(var(--spacing-xs)/1.5)]",
129
+ "ds:rounded-[var(--radius-full)]",
130
+ "ds:bg-[color:var(--destructive)] ds:text-[color:var(--destructive-foreground)]",
131
+ "ds:text-[length:var(--font-size-xs)] ds:font-semibold ds:leading-none",
132
+ "ds:pointer-events-none ds:select-none",
133
+ "ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]"
134
+ ].join(" ")
135
+ );
136
+ function Re(n, s) {
137
+ return n > 99 ? s : String(n);
138
+ }
139
+ const Te = Q(
140
+ ({
141
+ id: n,
142
+ tools: s,
143
+ activeToolId: M,
144
+ defaultActiveToolId: U = null,
145
+ onActiveToolChange: W,
146
+ side: x = "end",
147
+ railLabel: Z,
148
+ resizablePanel: b = !1,
149
+ className: O
150
+ }, q) => {
151
+ var P;
152
+ const { t: g } = ie(), [X, l] = re({
153
+ value: M,
154
+ defaultValue: U,
155
+ onChange: W
156
+ }), c = X ?? null, R = v([]), h = v(null), [T, k] = ee(0), f = v(!1), w = v(!1), u = A(
157
+ () => s.findIndex((e) => e.id === c),
158
+ [s, c]
159
+ ), d = u >= 0 ? s[u] : null, Y = A(
160
+ () => s.findIndex((e) => !e.disabled),
161
+ [s]
162
+ ), y = u >= 0 ? u : T >= 0 && !((P = s[T]) != null && P.disabled) ? T : Y, $ = B(
163
+ (e, a) => {
164
+ const i = s.find((r) => r.id === e);
165
+ !i || i.disabled || (f.current = a, l(c === e ? null : e));
166
+ },
167
+ [s, c, l]
168
+ ), G = B(
169
+ (e) => {
170
+ var D, K, j;
171
+ const a = s.length;
172
+ if (a === 0) return;
173
+ let i = null;
174
+ if (e.key === "ArrowDown" ? i = (y + 1) % a : e.key === "ArrowUp" ? i = (y - 1 + a) % a : e.key === "Home" ? i = 0 : e.key === "End" && (i = a - 1), i === null) return;
175
+ const r = e.key === "ArrowUp" || e.key === "End";
176
+ let t = i, o = 0;
177
+ for (; o < a && ((D = s[t]) != null && D.disabled); )
178
+ t = r ? (t - 1 + a) % a : (t + 1) % a, o += 1;
179
+ (K = s[t]) != null && K.disabled || (e.preventDefault(), k(t), (j = R.current[t]) == null || j.focus());
180
+ },
181
+ [s, y]
182
+ ), E = v(null);
183
+ se(() => {
184
+ const e = E.current;
185
+ if (!e) return;
186
+ const a = (i) => {
187
+ if (i.key !== "Escape" || u < 0) return;
188
+ i.preventDefault();
189
+ const r = u;
190
+ l(null), k(r), requestAnimationFrame(() => {
191
+ var t;
192
+ (t = R.current[r]) == null || t.focus();
193
+ });
194
+ };
195
+ return e.addEventListener("keydown", a), () => e.removeEventListener("keydown", a);
196
+ }, [u, l]), H(() => {
197
+ var e;
198
+ d && f.current && ((e = h.current) == null || e.focus()), f.current = !1;
199
+ }, [d]);
200
+ const _ = x === "end" ? "inline-start" : "inline-end", { separatorProps: N, isResizing: S, isResized: C } = le({
201
+ edge: _,
202
+ targetRef: h,
203
+ cssProperty: F,
204
+ minSize: pe,
205
+ maxSize: ve,
206
+ defaultSize: ge,
207
+ disabled: !b
208
+ }), L = N["aria-valuenow"];
209
+ H(() => {
210
+ var e;
211
+ !b || !C || !d || (e = h.current) == null || e.style.setProperty(
212
+ F,
213
+ `${L}px`
214
+ );
215
+ }, [d, b, C, L]);
216
+ const V = v(c);
217
+ V.current = c;
218
+ const I = A(
219
+ () => ({
220
+ getActiveToolId: () => V.current,
221
+ setActiveTool: (e) => {
222
+ f.current = !1, l(e);
223
+ },
224
+ open: (e) => {
225
+ const a = s.find((i) => i.id === e);
226
+ !a || a.disabled || (f.current = !1, l(e));
227
+ },
228
+ close: () => {
229
+ f.current = !1, l(null);
230
+ }
231
+ }),
232
+ [s, l]
233
+ );
234
+ ae(q, () => I, [I]), de(ce, I, n);
235
+ const J = g("aiToolsRail.badgeCountOverflow", {
236
+ defaultValue: "99+"
237
+ });
238
+ return /* @__PURE__ */ z(
239
+ "div",
240
+ {
241
+ ref: E,
242
+ "data-component": "ai-tools-rail",
243
+ "data-component-id": n,
244
+ "data-side": x,
245
+ className: [me({ side: x }), O].filter(Boolean).join(" "),
246
+ children: [
247
+ d ? /* @__PURE__ */ z(
248
+ "aside",
249
+ {
250
+ ref: h,
251
+ tabIndex: -1,
252
+ "aria-label": g("aiToolsRail.panelLabel", {
253
+ tool: d.label,
254
+ defaultValue: "{{tool}} panel"
255
+ }),
256
+ "data-ai-tools-rail-state": "expanded",
257
+ "data-active-tool": d.id,
258
+ "data-resizing": S ? "" : void 0,
259
+ className: [he(), "ds:focus-visible:outline-none"].join(
260
+ " "
261
+ ),
262
+ children: [
263
+ /* @__PURE__ */ p(te, { orientation: "vertical", className: "ds:flex-1 ds:min-h-0", children: d.panel }),
264
+ b ? /* @__PURE__ */ p(
265
+ "div",
266
+ {
267
+ ...N,
268
+ "aria-label": g("aiToolsRail.resizePanel", {
269
+ defaultValue: "Resize tool panel"
270
+ }),
271
+ "data-resizing": S ? "" : void 0,
272
+ className: ye({ edge: _ })
273
+ }
274
+ ) : null
275
+ ]
276
+ }
277
+ ) : null,
278
+ /* @__PURE__ */ p(oe, { children: /* @__PURE__ */ p(
279
+ "div",
280
+ {
281
+ role: "toolbar",
282
+ "aria-orientation": "vertical",
283
+ "aria-label": Z ?? g("aiToolsRail.railLabel", { defaultValue: "AI tools" }),
284
+ className: be(),
285
+ onKeyDown: G,
286
+ children: s.map((e, a) => {
287
+ const i = e.id === c, r = typeof e.badgeCount == "number" && e.badgeCount > 0, t = r ? g("aiToolsRail.toolWithCount", {
288
+ tool: e.label,
289
+ count: e.badgeCount,
290
+ defaultValue: "{{tool}}, {{count}} updates"
291
+ }) : e.label;
292
+ return /* @__PURE__ */ z("div", { className: "ds:relative", children: [
293
+ /* @__PURE__ */ p(
294
+ ne,
295
+ {
296
+ ref: (o) => {
297
+ R.current[a] = o;
298
+ },
299
+ icon: e.icon,
300
+ tooltip: e.label,
301
+ "aria-label": t,
302
+ intent: "ghost",
303
+ size: "sm",
304
+ disabled: e.disabled,
305
+ "aria-pressed": i,
306
+ "aria-expanded": i,
307
+ "data-active": i ? e.id : void 0,
308
+ "data-tool-id": e.id,
309
+ tabIndex: a === y ? 0 : -1,
310
+ onFocus: () => {
311
+ e.disabled || k(a);
312
+ },
313
+ onClick: () => $(e.id, w.current),
314
+ onKeyDown: (o) => {
315
+ (o.key === "Enter" || o.key === " ") && (w.current = !0);
316
+ },
317
+ onKeyUp: (o) => {
318
+ (o.key === "Enter" || o.key === " ") && (w.current = !1);
319
+ }
320
+ }
321
+ ),
322
+ r ? /* @__PURE__ */ p("span", { "aria-hidden": "true", className: xe(), children: Re(
323
+ e.badgeCount,
324
+ J
325
+ ) }) : null
326
+ ] }, e.id);
327
+ })
328
+ }
329
+ ) })
330
+ ]
331
+ }
332
+ );
333
+ }
334
+ );
335
+ Te.displayName = "AiToolsRail";
336
+ export {
337
+ Te as A,
338
+ ce as a
339
+ };
340
+ //# sourceMappingURL=ai-tools-rail-7tC3GT4h.js.map
@@ -1,15 +1,25 @@
1
- import { jsxs as E, jsx as t } from "react/jsx-runtime";
2
- import { forwardRef as a, useState as R, useRef as V, useCallback as z, Children as B, isValidElement as D } from "react";
3
- import { c as F } from "./index-D2ZczOXr.js";
4
- import { useTranslation as L } from "react-i18next";
5
- import { u as U } from "./use-controllable-state-BiY4xTzM.js";
6
- import { X as W } from "./x-CCcI3eJp.js";
7
- import { C as X } from "./circle-arrow-up-CC_85SuH.js";
8
- import { C as G } from "./circle-x-Du2CmjaU.js";
9
- import { T as H } from "./triangle-alert-CBPUIzQo.js";
10
- import { C as M } from "./circle-check-9AeSgJD_.js";
1
+ import { jsxs as V, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as a, useState as E, useRef as R, useCallback as z, Children as B, isValidElement as D } from "react";
3
+ import { c as L } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as F } from "react-i18next";
5
+ import { u as M } from "./use-controllable-state-BiY4xTzM.js";
6
+ import { X as U } from "./x-CCcI3eJp.js";
7
+ import { c as W } from "./createLucideIcon-CrFbzy84.js";
8
+ import { C as X } from "./circle-x-Du2CmjaU.js";
9
+ import { T as G } from "./triangle-alert-CBPUIzQo.js";
10
+ import { C as H } from "./circle-check-9AeSgJD_.js";
11
11
  import { I as P } from "./info-B9XNKn05.js";
12
- const $ = F(
12
+ /**
13
+ * @license lucide-react v1.8.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 $ = [
19
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
20
+ ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
21
+ ["path", { d: "M12 16V8", key: "1sbj14" }]
22
+ ], q = W("circle-arrow-up", $), J = L(
13
23
  [
14
24
  // Default `items-center` keeps the icon + dismiss optically aligned
15
25
  // with a single-line description. The `data-[has-title=true]`
@@ -79,7 +89,7 @@ const $ = F(
79
89
  variant: "info"
80
90
  }
81
91
  }
82
- ), h = "ds:shrink-0 ds:size-5", q = `${h} ds:mt-0.5`, J = [
92
+ ), h = "ds:shrink-0 ds:size-5", K = `${h} ds:mt-0.5`, Q = [
83
93
  // Default (no title): the alert root uses `items-center` and the
84
94
  // button centres in the cross-axis. A centred 16×16 glyph inside a
85
95
  // 44×44 button aligns optically with a single-line description.
@@ -103,26 +113,26 @@ const $ = F(
103
113
  "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
104
114
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
105
115
  "ds:forced-colors:focus-visible:outline-[CanvasText]"
106
- ].join(" "), K = {
116
+ ].join(" "), Y = {
107
117
  info: { icon: /* @__PURE__ */ t(P, { "aria-hidden": "true" }), role: "status", live: "polite" },
108
118
  success: {
109
- icon: /* @__PURE__ */ t(M, { "aria-hidden": "true" }),
119
+ icon: /* @__PURE__ */ t(H, { "aria-hidden": "true" }),
110
120
  role: "status",
111
121
  live: "polite"
112
122
  },
113
123
  warning: {
114
- icon: /* @__PURE__ */ t(H, { "aria-hidden": "true" }),
124
+ icon: /* @__PURE__ */ t(G, { "aria-hidden": "true" }),
115
125
  role: "alert",
116
126
  live: "assertive"
117
127
  },
118
128
  error: {
119
- icon: /* @__PURE__ */ t(G, { "aria-hidden": "true" }),
129
+ icon: /* @__PURE__ */ t(X, { "aria-hidden": "true" }),
120
130
  role: "alert",
121
131
  live: "assertive"
122
132
  },
123
133
  // Promotions never interrupt — same polite semantics as info.
124
134
  promo: {
125
- icon: /* @__PURE__ */ t(X, { "aria-hidden": "true" }),
135
+ icon: /* @__PURE__ */ t(q, { "aria-hidden": "true" }),
126
136
  role: "status",
127
137
  live: "polite"
128
138
  }
@@ -137,7 +147,7 @@ const $ = F(
137
147
  )
138
148
  );
139
149
  c.displayName = "Alert.Title";
140
- const x = a(({ className: e, ...o }, r) => /* @__PURE__ */ t(
150
+ const _ = a(({ className: e, ...o }, r) => /* @__PURE__ */ t(
141
151
  "p",
142
152
  {
143
153
  ref: r,
@@ -148,8 +158,8 @@ const x = a(({ className: e, ...o }, r) => /* @__PURE__ */ t(
148
158
  ...o
149
159
  }
150
160
  ));
151
- x.displayName = "Alert.Description";
152
- const _ = a(
161
+ _.displayName = "Alert.Description";
162
+ const x = a(
153
163
  ({ className: e, ...o }, r) => /* @__PURE__ */ t(
154
164
  "div",
155
165
  {
@@ -162,24 +172,24 @@ const _ = a(
162
172
  }
163
173
  )
164
174
  );
165
- _.displayName = "Alert.Action";
166
- const C = a(
175
+ x.displayName = "Alert.Action";
176
+ const w = a(
167
177
  ({
168
178
  variant: e = "info",
169
179
  dismissible: o = !1,
170
180
  open: r,
171
181
  onOpenChange: n,
172
182
  icon: m,
173
- live: w,
174
- className: A,
183
+ live: y,
184
+ className: C,
175
185
  children: u,
176
- ...N
177
- }, y) => {
178
- const { t: T } = L(), [j, k] = U({
186
+ ...A
187
+ }, N) => {
188
+ const { t: T } = F(), [j, k] = M({
179
189
  value: r,
180
190
  defaultValue: !0,
181
191
  onChange: n
182
- }), I = j ?? !0, [f, g] = R(!1), i = V(null), O = z(() => {
192
+ }), I = j ?? !0, [f, g] = E(!1), i = R(null), O = z(() => {
183
193
  if (typeof window > "u") return 200;
184
194
  const s = window.getComputedStyle(document.documentElement).getPropertyValue("--animation-duration");
185
195
  if (!s) return 200;
@@ -187,24 +197,24 @@ const C = a(
187
197
  return Number.isFinite(l) ? b.endsWith("ms") ? l : l * 1e3 : 200;
188
198
  }, []);
189
199
  if (!I) return null;
190
- const d = K[e], v = m !== void 0 ? m : d.icon, p = B.toArray(u).some(
200
+ const d = Y[e], p = m !== void 0 ? m : d.icon, v = B.toArray(u).some(
191
201
  (s) => D(s) && s.type === c
192
202
  ), S = () => {
193
203
  f || (g(!0), i.current && clearTimeout(i.current), i.current = setTimeout(() => {
194
204
  g(!1), k(!1);
195
205
  }, O()));
196
206
  };
197
- return /* @__PURE__ */ E(
207
+ return /* @__PURE__ */ V(
198
208
  "div",
199
209
  {
200
- ref: y,
210
+ ref: N,
201
211
  role: d.role,
202
- "aria-live": w ?? d.live,
212
+ "aria-live": y ?? d.live,
203
213
  "data-component": "alert",
204
- "data-has-title": p ? "true" : "false",
214
+ "data-has-title": v ? "true" : "false",
205
215
  "data-state": f ? "closing" : "open",
206
216
  className: [
207
- $({ variant: e, className: A }),
217
+ J({ variant: e, className: C }),
208
218
  // Entry: fade + slide-down on mount. Exit: fade + slide-up + slight
209
219
  // scale when dismissed. Driven by `tw-animate-css`. Respects
210
220
  // `prefers-reduced-motion` via `motion-safe:` and zeroes under the
@@ -218,9 +228,9 @@ const C = a(
218
228
  "ds:motion-safe:data-[state=closing]:fill-mode-forwards",
219
229
  "ds:motion-safe:duration-[var(--animation-duration)]"
220
230
  ].join(" "),
221
- ...N,
231
+ ...A,
222
232
  children: [
223
- v ? /* @__PURE__ */ t("span", { className: p ? q : h, children: v }) : null,
233
+ p ? /* @__PURE__ */ t("span", { className: v ? K : h, children: p }) : null,
224
234
  /* @__PURE__ */ t("div", { className: "ds:flex-1 ds:min-w-0", children: u }),
225
235
  o ? /* @__PURE__ */ t(
226
236
  "button",
@@ -229,8 +239,8 @@ const C = a(
229
239
  "aria-label": T("common.close", "Close"),
230
240
  onClick: S,
231
241
  "data-alert-dismiss": "",
232
- className: J,
233
- children: /* @__PURE__ */ t(W, { "aria-hidden": "true", className: "ds:size-4" })
242
+ className: Q,
243
+ children: /* @__PURE__ */ t(U, { "aria-hidden": "true", className: "ds:size-4" })
234
244
  }
235
245
  ) : null
236
246
  ]
@@ -238,13 +248,13 @@ const C = a(
238
248
  );
239
249
  }
240
250
  );
241
- C.displayName = "Alert";
242
- const dt = Object.assign(C, {
251
+ w.displayName = "Alert";
252
+ const ct = Object.assign(w, {
243
253
  Title: c,
244
- Description: x,
245
- Action: _
254
+ Description: _,
255
+ Action: x
246
256
  });
247
257
  export {
248
- dt as A
258
+ ct as A
249
259
  };
250
- //# sourceMappingURL=alert-CUTxnym2.js.map
260
+ //# sourceMappingURL=alert-_mUKLmwA.js.map
@@ -6,7 +6,7 @@ import { B as G } from "./button-DD_0Xdmr.js";
6
6
  import { I as N } from "./icon-button-CKEOrN37.js";
7
7
  import { S as pe } from "./select-hsCaJSX3.js";
8
8
  import { A as le } from "./audio-visualiser-l6zPd0AG.js";
9
- import { A as F } from "./alert-CUTxnym2.js";
9
+ import { A as F } from "./alert-_mUKLmwA.js";
10
10
  import { u as me } from "./registry-nPAVE19X.js";
11
11
  import { M as fe } from "./mic-B4Gog3Gi.js";
12
12
  import { c as J } from "./createLucideIcon-CrFbzy84.js";
@@ -444,4 +444,4 @@ export {
444
444
  Ne as A,
445
445
  Re as a
446
446
  };
447
- //# sourceMappingURL=audio-recorder-DVJXV7_k.js.map
447
+ //# sourceMappingURL=audio-recorder-D6OVfNiZ.js.map
@@ -3,7 +3,7 @@ import { forwardRef as ot, useId as rt, useState as K, useCallback as j, useRef
3
3
  import { c as Pe } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as O, Trans as Pt } from "react-i18next";
5
5
  import { u as Ot } from "./registry-nPAVE19X.js";
6
- import { A as z } from "./alert-CUTxnym2.js";
6
+ import { A as z } from "./alert-_mUKLmwA.js";
7
7
  import { B as ie } from "./button-DD_0Xdmr.js";
8
8
  import { C as Ke } from "./checkbox-DRcOdmXv.js";
9
9
  import { C as Bt } from "./checkbox-group-CpUwlHug.js";
@@ -2685,4 +2685,4 @@ export {
2685
2685
  X as O,
2686
2686
  Ma as b
2687
2687
  };
2688
- //# sourceMappingURL=booking-DljH0JkS.js.map
2688
+ //# sourceMappingURL=booking-BUV9fspj.js.map
@@ -3,7 +3,7 @@ import { forwardRef as Fe, useId as Te, useRef as m, useState as Y, useEffect as
3
3
  import { c as z } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as $e } from "react-i18next";
5
5
  import { B as H } from "./button-DD_0Xdmr.js";
6
- import { A as ae } from "./alert-CUTxnym2.js";
6
+ import { A as ae } from "./alert-_mUKLmwA.js";
7
7
  import { L as he, F as Xe } from "./file-upload-BosbPDb1.js";
8
8
  import { u as Ze } from "./use-controllable-state-BiY4xTzM.js";
9
9
  import { u as Ge } from "./registry-nPAVE19X.js";
@@ -700,4 +700,4 @@ export {
700
700
  ur as D,
701
701
  nr as d
702
702
  };
703
- //# sourceMappingURL=document-scanner-Cxqvq7GR.js.map
703
+ //# sourceMappingURL=document-scanner-biBS_f6c.js.map