@alfadocs/ui-kit 1.41.1 → 1.43.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.
- package/dist/_chunks/{calendar-workspace-Bx8xxvic.js → calendar-workspace-DhXqqu-D.js} +1981 -1968
- package/dist/_chunks/control-room-rail-Cv7GpMqX.js +354 -0
- package/dist/_chunks/{marketplace-app-shell-D_g9BaDI.js → marketplace-app-shell-DdwPj03y.js} +3 -3
- package/dist/_chunks/{notes-panel-Daq5T_cS.js → notes-panel-CRAovkjx.js} +84 -68
- package/dist/_chunks/{sidebar-ClTY9lLI.js → sidebar-DbZXLl8h.js} +2 -2
- package/dist/_chunks/tab-bar-Cw9UK18Z.js +228 -0
- package/dist/_chunks/{tool-rail-D89USYE6.js → tool-rail-CCFqDfAn.js} +282 -276
- package/dist/_chunks/use-edge-resize-BHesP0kg.js +149 -0
- package/dist/_chunks/use-scroll-overflow-UbLrUfBo.js +72 -0
- package/dist/agent-catalog.json +1 -1
- package/dist/components/control-room-rail/control-room-rail.d.ts +9 -0
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +32 -0
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tool-rail/tool-rail.d.ts +16 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +35 -32
- package/dist/hooks/use-edge-resize.d.ts +13 -1
- package/dist/index.js +6 -6
- package/dist/patterns/calendar/calendar.journey.d.ts +11 -0
- package/dist/patterns/calendar/calendar.sheets.d.ts +20 -0
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/control-room-rail-CnNZusR5.js +0 -337
- package/dist/_chunks/tab-bar-rDkLiaA6.js +0 -268
- package/dist/_chunks/use-edge-resize-ZnGG7gyO.js +0 -139
- package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +0 -32
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { useState as T, useRef as b, useCallback as o } from "react";
|
|
2
|
+
import { useTranslation as Y } from "react-i18next";
|
|
3
|
+
import { u as A } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
4
|
+
const $ = 16, H = 64;
|
|
5
|
+
function j({
|
|
6
|
+
edge: P,
|
|
7
|
+
targetRef: n,
|
|
8
|
+
cssProperty: c,
|
|
9
|
+
minSize: p,
|
|
10
|
+
maxSize: d,
|
|
11
|
+
defaultSize: k,
|
|
12
|
+
disabled: l = !1,
|
|
13
|
+
onResize: u,
|
|
14
|
+
size: f
|
|
15
|
+
}) {
|
|
16
|
+
const { t: K } = Y(), E = f !== void 0, [h, g] = T(
|
|
17
|
+
E ? f : null
|
|
18
|
+
), [M, x] = T(!1), m = b(null), w = b(null);
|
|
19
|
+
A(() => {
|
|
20
|
+
const t = n.current;
|
|
21
|
+
if (!t) return;
|
|
22
|
+
const r = t.getBoundingClientRect().width;
|
|
23
|
+
r > 0 && (m.current = r);
|
|
24
|
+
});
|
|
25
|
+
const I = o(
|
|
26
|
+
(t) => Math.min(d, Math.max(p, t)),
|
|
27
|
+
[p, d]
|
|
28
|
+
);
|
|
29
|
+
A(() => {
|
|
30
|
+
var r, e;
|
|
31
|
+
if (!E) return;
|
|
32
|
+
const t = f === null ? null : I(f);
|
|
33
|
+
g(t), t === null ? ((r = n.current) == null || r.style.removeProperty(c), m.current = null) : (e = n.current) == null || e.style.setProperty(c, `${t}px`);
|
|
34
|
+
}, [E, f, I, c, n]);
|
|
35
|
+
const s = o(() => {
|
|
36
|
+
if (h !== null) return h;
|
|
37
|
+
const t = n.current;
|
|
38
|
+
if (t) {
|
|
39
|
+
const r = t.getBoundingClientRect().width;
|
|
40
|
+
if (r > 0)
|
|
41
|
+
return m.current = r, r;
|
|
42
|
+
}
|
|
43
|
+
return m.current ?? k;
|
|
44
|
+
}, [h, k, n]), a = o(
|
|
45
|
+
(t) => {
|
|
46
|
+
var e;
|
|
47
|
+
const r = I(t);
|
|
48
|
+
return g(r), (e = n.current) == null || e.style.setProperty(c, `${r}px`), r;
|
|
49
|
+
},
|
|
50
|
+
[I, c, n]
|
|
51
|
+
), C = o(() => {
|
|
52
|
+
var t;
|
|
53
|
+
g(null), (t = n.current) == null || t.style.removeProperty(c), m.current = null, u == null || u(null);
|
|
54
|
+
}, [c, u, n]), y = o(() => {
|
|
55
|
+
const t = n.current, r = t ? getComputedStyle(t).direction === "rtl" : !1;
|
|
56
|
+
return (P === "inline-end" ? 1 : -1) * (r ? -1 : 1);
|
|
57
|
+
}, [P, n]), v = o(
|
|
58
|
+
(t) => {
|
|
59
|
+
l || !t.isPrimary || (t.currentTarget.setPointerCapture(t.pointerId), w.current = {
|
|
60
|
+
pointerId: t.pointerId,
|
|
61
|
+
startX: t.clientX,
|
|
62
|
+
startSize: s(),
|
|
63
|
+
sign: y()
|
|
64
|
+
}, x(!0));
|
|
65
|
+
},
|
|
66
|
+
[l, s, y]
|
|
67
|
+
), _ = o(
|
|
68
|
+
(t) => {
|
|
69
|
+
const r = w.current;
|
|
70
|
+
!r || t.pointerId !== r.pointerId || a(r.startSize + r.sign * (t.clientX - r.startX));
|
|
71
|
+
},
|
|
72
|
+
[a]
|
|
73
|
+
), D = o(
|
|
74
|
+
(t) => {
|
|
75
|
+
const r = w.current;
|
|
76
|
+
if (!r || t.pointerId !== r.pointerId) return;
|
|
77
|
+
t.currentTarget.releasePointerCapture(t.pointerId), w.current = null, x(!1);
|
|
78
|
+
const e = a(
|
|
79
|
+
r.startSize + r.sign * (t.clientX - r.startX)
|
|
80
|
+
);
|
|
81
|
+
u == null || u(e);
|
|
82
|
+
},
|
|
83
|
+
[a, u]
|
|
84
|
+
), B = o(
|
|
85
|
+
(t) => {
|
|
86
|
+
if (l) return;
|
|
87
|
+
const r = t.shiftKey ? H : $, e = y();
|
|
88
|
+
let i = null;
|
|
89
|
+
switch (t.key) {
|
|
90
|
+
case "ArrowRight":
|
|
91
|
+
i = s() + e * r;
|
|
92
|
+
break;
|
|
93
|
+
case "ArrowLeft":
|
|
94
|
+
i = s() - e * r;
|
|
95
|
+
break;
|
|
96
|
+
case "Home":
|
|
97
|
+
i = p;
|
|
98
|
+
break;
|
|
99
|
+
case "End":
|
|
100
|
+
i = d;
|
|
101
|
+
break;
|
|
102
|
+
case "Enter":
|
|
103
|
+
t.preventDefault(), C();
|
|
104
|
+
return;
|
|
105
|
+
default:
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (i === null) return;
|
|
109
|
+
t.preventDefault();
|
|
110
|
+
const L = a(i);
|
|
111
|
+
u == null || u(L);
|
|
112
|
+
},
|
|
113
|
+
[
|
|
114
|
+
a,
|
|
115
|
+
s,
|
|
116
|
+
l,
|
|
117
|
+
d,
|
|
118
|
+
p,
|
|
119
|
+
u,
|
|
120
|
+
C,
|
|
121
|
+
y
|
|
122
|
+
]
|
|
123
|
+
), X = Math.round(s());
|
|
124
|
+
return {
|
|
125
|
+
separatorProps: {
|
|
126
|
+
role: "separator",
|
|
127
|
+
tabIndex: l ? -1 : 0,
|
|
128
|
+
"aria-orientation": "vertical",
|
|
129
|
+
"aria-valuemin": p,
|
|
130
|
+
"aria-valuemax": d,
|
|
131
|
+
"aria-valuenow": X,
|
|
132
|
+
"aria-valuetext": K("resizable.widthAnnounce", { width: X }),
|
|
133
|
+
"aria-disabled": l || void 0,
|
|
134
|
+
onPointerDown: v,
|
|
135
|
+
onPointerMove: _,
|
|
136
|
+
onPointerUp: D,
|
|
137
|
+
onPointerCancel: D,
|
|
138
|
+
onKeyDown: B,
|
|
139
|
+
onDoubleClick: C
|
|
140
|
+
},
|
|
141
|
+
isResizing: M,
|
|
142
|
+
isResized: h !== null,
|
|
143
|
+
reset: C
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export {
|
|
147
|
+
j as u
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=use-edge-resize-BHesP0kg.js.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useRef as m, useState as h, useCallback as v } from "react";
|
|
2
|
+
import { u as R } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
3
|
+
function b(l = !0) {
|
|
4
|
+
const i = m(null), [o, a] = h(null), d = v(
|
|
5
|
+
(e) => {
|
|
6
|
+
l && a(e);
|
|
7
|
+
},
|
|
8
|
+
[l]
|
|
9
|
+
), [t, n] = h(!1), r = m(null);
|
|
10
|
+
return R(() => {
|
|
11
|
+
if (!l) {
|
|
12
|
+
r.current = null, n((c) => c && !1);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const e = i.current;
|
|
16
|
+
if (!e) return;
|
|
17
|
+
const u = () => {
|
|
18
|
+
o && (r.current = o.scrollWidth);
|
|
19
|
+
const c = r.current;
|
|
20
|
+
if (c == null) return;
|
|
21
|
+
const f = c - e.clientWidth > 1;
|
|
22
|
+
n((w) => w === f ? w : f);
|
|
23
|
+
};
|
|
24
|
+
if (u(), typeof ResizeObserver > "u") return;
|
|
25
|
+
const s = new ResizeObserver(u);
|
|
26
|
+
return s.observe(e), o && s.observe(o), () => s.disconnect();
|
|
27
|
+
}, [l, o]), { containerRef: i, contentRef: d, isOverflowing: t };
|
|
28
|
+
}
|
|
29
|
+
function y(l = !0) {
|
|
30
|
+
const i = m(null), [o, a] = h({ start: !1, end: !1 });
|
|
31
|
+
R(() => {
|
|
32
|
+
const t = i.current;
|
|
33
|
+
if (!t || !l) {
|
|
34
|
+
a(
|
|
35
|
+
(e) => e.start || e.end ? { start: !1, end: !1 } : e
|
|
36
|
+
);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const n = () => {
|
|
40
|
+
const e = Math.abs(t.scrollLeft), u = t.scrollWidth - t.clientWidth, s = e > 1, c = u - e > 1;
|
|
41
|
+
a(
|
|
42
|
+
(f) => f.start === s && f.end === c ? f : { start: s, end: c }
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
n(), t.addEventListener("scroll", n, { passive: !0 });
|
|
46
|
+
let r;
|
|
47
|
+
return typeof ResizeObserver < "u" && (r = new ResizeObserver(n), r.observe(t), t.firstElementChild && r.observe(t.firstElementChild)), () => {
|
|
48
|
+
t.removeEventListener("scroll", n), r == null || r.disconnect();
|
|
49
|
+
};
|
|
50
|
+
}, [l]);
|
|
51
|
+
const d = v((t) => {
|
|
52
|
+
var s;
|
|
53
|
+
const n = i.current;
|
|
54
|
+
if (!n || typeof window > "u") return;
|
|
55
|
+
const r = window.getComputedStyle(n).direction === "rtl", e = (s = window.matchMedia) == null ? void 0 : s.call(
|
|
56
|
+
window,
|
|
57
|
+
"(prefers-reduced-motion: reduce)"
|
|
58
|
+
).matches, u = n.clientWidth * 0.85 * t * (r ? -1 : 1);
|
|
59
|
+
n.scrollBy({ left: u, behavior: e ? "auto" : "smooth" });
|
|
60
|
+
}, []);
|
|
61
|
+
return {
|
|
62
|
+
ref: i,
|
|
63
|
+
canScrollStart: o.start,
|
|
64
|
+
canScrollEnd: o.end,
|
|
65
|
+
scrollByPage: d
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
y as a,
|
|
70
|
+
b as u
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=use-scroll-overflow-UbLrUfBo.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -39,6 +39,15 @@ export interface ControlRoomRailProps extends Omit<ToolRailProps, 'tools' | 'onR
|
|
|
39
39
|
onFavoriteIdsChange?: (next: string[]) => void;
|
|
40
40
|
/** localStorage key for the uncontrolled favourites. */
|
|
41
41
|
persistFavoritesKey?: string;
|
|
42
|
+
/**
|
|
43
|
+
* localStorage key for the uncontrolled committed panel width, mirroring
|
|
44
|
+
* `persistFavoritesKey`: when set and `panelWidth` is absent, the rail
|
|
45
|
+
* seeds its width from storage on mount and writes each commit back.
|
|
46
|
+
* Unlike `persistFavoritesKey` this has no default — persistence is
|
|
47
|
+
* opt-in. Only meaningful with `resizablePanel` — there is nothing to
|
|
48
|
+
* persist without the resize handle.
|
|
49
|
+
*/
|
|
50
|
+
persistPanelWidthKey?: string;
|
|
42
51
|
}
|
|
43
52
|
export declare const ControlRoomRail: import("react").ForwardRefExoticComponent<ControlRoomRailProps & import("react").RefAttributes<ToolRailHandle>>;
|
|
44
53
|
//# sourceMappingURL=control-room-rail.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-
|
|
1
|
+
import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-Cv7GpMqX.js";
|
|
2
2
|
export {
|
|
3
3
|
r as ControlRoomProvider,
|
|
4
4
|
l as ControlRoomRail,
|
|
@@ -145,6 +145,38 @@ export interface NotesPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'titl
|
|
|
145
145
|
* neither affordance).
|
|
146
146
|
*/
|
|
147
147
|
aiConsent?: AiConsentGate;
|
|
148
|
+
/**
|
|
149
|
+
* Template variables for the rich composer's "Insert variable" menu and
|
|
150
|
+
* `[[TOKEN]]` chip rendering. Forwarded straight to `RichTextEditor`.
|
|
151
|
+
* Ignored by the `'plain'` composer.
|
|
152
|
+
*/
|
|
153
|
+
variables?: RichTextEditorProps['variables'];
|
|
154
|
+
/** Decide whether a `[[TOKEN]]` is valid. See `RichTextEditor`. */
|
|
155
|
+
validateVariable?: RichTextEditorProps['validateVariable'];
|
|
156
|
+
/** The invalid `[[TOKEN]]`s in the draft, reported by the rich composer. */
|
|
157
|
+
onVariableValidityChange?: RichTextEditorProps['onVariableValidityChange'];
|
|
158
|
+
/**
|
|
159
|
+
* Bring your own Help-me-write surface (e.g. practice templates) into the
|
|
160
|
+
* composer, forwarded straight to `RichTextEditor`. See
|
|
161
|
+
* `RichTextEditorProps['renderHelpMeWrite']`.
|
|
162
|
+
*/
|
|
163
|
+
renderHelpMeWrite?: RichTextEditorProps['renderHelpMeWrite'];
|
|
164
|
+
/** Upload an image yourself and resolve its URL. See `RichTextEditor`. */
|
|
165
|
+
onUploadImage?: RichTextEditorProps['onUploadImage'];
|
|
166
|
+
/** An AI call ran out of credits. See `RichTextEditor`. */
|
|
167
|
+
onAiCreditsExhausted?: RichTextEditorProps['onAiCreditsExhausted'];
|
|
168
|
+
/**
|
|
169
|
+
* Rendered just above the composer — e.g. the Help-me-write templates
|
|
170
|
+
* pattern's `undoNotice`. Renders in both add and edit mode, whenever the
|
|
171
|
+
* composer itself is mounted.
|
|
172
|
+
*/
|
|
173
|
+
composerBefore?: ReactNode;
|
|
174
|
+
/**
|
|
175
|
+
* Rendered just after the composer — e.g. the Help-me-write templates
|
|
176
|
+
* pattern's `manager` dialog. Renders in both add and edit mode, whenever
|
|
177
|
+
* the composer itself is mounted.
|
|
178
|
+
*/
|
|
179
|
+
composerAfter?: ReactNode;
|
|
148
180
|
/** Toggle a note's pinned state — renders an inline pin button per note. */
|
|
149
181
|
onTogglePin?: (id: string) => void;
|
|
150
182
|
/** Toggle a note's flagged state — renders an inline flag button per note. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as r, a as i, b as s, c as d, d as S, e as b, f as t, g as o, h as m, i as n, j as p, k as l, l as c, m as g, n as u, o as I, p as P, q as f, s as h, u as B } from "../../_chunks/sidebar-
|
|
1
|
+
import { S as r, a as i, b as s, c as d, d as S, e as b, f as t, g as o, h as m, i as n, j as p, k as l, l as c, m as g, n as u, o as I, p as P, q as f, s as h, u as B } from "../../_chunks/sidebar-DbZXLl8h.js";
|
|
2
2
|
import { u as k } from "../../_chunks/use-persistent-state-nZwZAnE9.js";
|
|
3
3
|
export {
|
|
4
4
|
r as Sidebar,
|
|
@@ -96,6 +96,22 @@ export interface ToolRailProps extends VariantProps<typeof railVariants> {
|
|
|
96
96
|
* Enter / double-click resets to the token-driven default. Default `false`.
|
|
97
97
|
*/
|
|
98
98
|
resizablePanel?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Controlled committed panel width, px; `null` for the token-driven
|
|
101
|
+
* default. Only meaningful when `resizablePanel` is `true` — the width
|
|
102
|
+
* has nothing to resize without the handle. Applied to
|
|
103
|
+
* `--tool-rail-panel-inline-size` on mount and whenever it changes,
|
|
104
|
+
* clamped to 288–880px. Omit for uncontrolled sizing (the rail owns the
|
|
105
|
+
* committed width internally, the existing behaviour).
|
|
106
|
+
*/
|
|
107
|
+
panelWidth?: number | null;
|
|
108
|
+
/**
|
|
109
|
+
* Fires with the committed px width on every commit — pointer release,
|
|
110
|
+
* a keyboard step, or `null` on reset (Enter / double-click). Fires
|
|
111
|
+
* whether or not `panelWidth` is controlled, so an uncontrolled host can
|
|
112
|
+
* still observe the width to persist it.
|
|
113
|
+
*/
|
|
114
|
+
onPanelWidthChange?: (px: number | null) => void;
|
|
99
115
|
/**
|
|
100
116
|
* Fires when the user reorders the `reorderable` run (drag-drop or
|
|
101
117
|
* `Alt`+Arrow). `from` / `to` are indices into `tools`; the host applies the
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -28,4 +28,6 @@ export { useCheckAnimation, type UseCheckAnimationOptions, type UseCheckAnimatio
|
|
|
28
28
|
export { useExitTransition, type UseExitTransitionOptions, type UseExitTransitionReturn, } from './use-exit-transition';
|
|
29
29
|
export { usePresenceTransition, type PresencePhase, type UsePresenceTransitionOptions, type UsePresenceTransitionReturn, } from './use-presence-transition';
|
|
30
30
|
export { useListReflow, REFLOW_ROW_CLASS, type UseListReflowOptions, type UseListReflowReturn, } from './use-list-reflow';
|
|
31
|
+
export { useClampOverflow } from './use-clamp-overflow';
|
|
32
|
+
export { useScrollOverflow, type UseScrollOverflowReturn, } from './use-scroll-overflow';
|
|
31
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import { u as
|
|
3
|
-
import { Z as
|
|
1
|
+
import { u as h } from "../_chunks/use-prefers-reduced-motion-BMwIQRjB.js";
|
|
2
|
+
import { u as y } from "../_chunks/use-media-query-CcAx5SMM.js";
|
|
3
|
+
import { Z as D, u as R, a as _, b as F } from "../_chunks/use-zoom-drilldown-qCX34w9I.js";
|
|
4
4
|
import { u as g } from "../_chunks/use-count-up-BLLetaZ8.js";
|
|
5
5
|
import { u as k } from "../_chunks/use-locale-BkCIHujH.js";
|
|
6
6
|
import { A as M, T as V, a as W, r as H, t as N, u as Y } from "../_chunks/use-theme-CAuo6EYT.js";
|
|
@@ -11,15 +11,16 @@ import { useState as b, useRef as x, useEffect as E } from "react";
|
|
|
11
11
|
import { u as Q, a as J } from "../_chunks/use-direction-Dp8h70PP.js";
|
|
12
12
|
import { u as $ } from "../_chunks/use-persistent-state-nZwZAnE9.js";
|
|
13
13
|
import { u as te } from "../_chunks/use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
14
|
-
import { u as oe } from "../_chunks/use-overflow-
|
|
15
|
-
import { c as
|
|
16
|
-
import { u as
|
|
14
|
+
import { u as oe, a as ue } from "../_chunks/use-scroll-overflow-UbLrUfBo.js";
|
|
15
|
+
import { c as ne, u as ae } from "../_chunks/use-priority-overflow-c9SjxZkZ.js";
|
|
16
|
+
import { u as ce } from "../_chunks/use-web-otp-D_utzp6S.js";
|
|
17
17
|
import { u as fe } from "../_chunks/use-visual-viewport-pin-ChurOsHM.js";
|
|
18
|
-
import { u as
|
|
19
|
-
import { u as
|
|
20
|
-
import { u as
|
|
21
|
-
import { R as Te, u as
|
|
22
|
-
import { u as
|
|
18
|
+
import { u as de } from "../_chunks/use-edge-resize-BHesP0kg.js";
|
|
19
|
+
import { u as xe } from "../_chunks/use-countdown-Yd6ts0_a.js";
|
|
20
|
+
import { u as be } from "../_chunks/use-check-animation--I3cS00X.js";
|
|
21
|
+
import { R as Te, u as Ce, a as Le } from "../_chunks/use-list-reflow-Cw43nxw5.js";
|
|
22
|
+
import { u as Oe } from "../_chunks/use-presence-transition-cDwWUXV-.js";
|
|
23
|
+
import { u as ve } from "../_chunks/use-clamp-overflow-DQE2kwZ9.js";
|
|
23
24
|
function C(e, o) {
|
|
24
25
|
const [t, i] = b(e), u = x(null);
|
|
25
26
|
return E(() => {
|
|
@@ -33,7 +34,7 @@ function C(e, o) {
|
|
|
33
34
|
return u.current = n, () => clearTimeout(n);
|
|
34
35
|
}, [e, o]), t;
|
|
35
36
|
}
|
|
36
|
-
const
|
|
37
|
+
const S = [
|
|
37
38
|
"a[href]",
|
|
38
39
|
"button:not([disabled])",
|
|
39
40
|
'input:not([disabled]):not([type="hidden"])',
|
|
@@ -46,7 +47,7 @@ const T = [
|
|
|
46
47
|
].join(",");
|
|
47
48
|
function p(e) {
|
|
48
49
|
return Array.from(
|
|
49
|
-
e.querySelectorAll(
|
|
50
|
+
e.querySelectorAll(S)
|
|
50
51
|
).filter((o) => {
|
|
51
52
|
if (o.hidden) return !1;
|
|
52
53
|
let t = o;
|
|
@@ -67,7 +68,7 @@ function L(e, o = {}) {
|
|
|
67
68
|
const s = p(a)[0] ?? (a.tabIndex >= -1 ? a : null);
|
|
68
69
|
s == null || s.focus();
|
|
69
70
|
}
|
|
70
|
-
function
|
|
71
|
+
function f(r) {
|
|
71
72
|
if (r.key !== "Tab") return;
|
|
72
73
|
const s = e.current;
|
|
73
74
|
if (!s) return;
|
|
@@ -76,11 +77,11 @@ function L(e, o = {}) {
|
|
|
76
77
|
r.preventDefault();
|
|
77
78
|
return;
|
|
78
79
|
}
|
|
79
|
-
const m = c[0], d = c[c.length - 1],
|
|
80
|
-
r.shiftKey ? (
|
|
80
|
+
const m = c[0], d = c[c.length - 1], l = document.activeElement;
|
|
81
|
+
r.shiftKey ? (l === m || !s.contains(l)) && (r.preventDefault(), d.focus()) : (l === d || !s.contains(l)) && (r.preventDefault(), m.focus());
|
|
81
82
|
}
|
|
82
|
-
return a.addEventListener("keydown",
|
|
83
|
-
if (a.removeEventListener("keydown",
|
|
83
|
+
return a.addEventListener("keydown", f), () => {
|
|
84
|
+
if (a.removeEventListener("keydown", f), u && n.current) {
|
|
84
85
|
const r = n.current;
|
|
85
86
|
requestAnimationFrame(() => {
|
|
86
87
|
r.isConnected && r.focus();
|
|
@@ -94,36 +95,38 @@ export {
|
|
|
94
95
|
Te as REFLOW_ROW_CLASS,
|
|
95
96
|
V as THEME_CLASS,
|
|
96
97
|
W as THEME_STORAGE_KEY,
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
D as ZOOM_DRILLDOWN_TRANSITION_CLASS,
|
|
99
|
+
ne as computePriorityLayout,
|
|
99
100
|
H as resolveTheme,
|
|
100
101
|
N as themeClassList,
|
|
101
|
-
|
|
102
|
+
be as useCheckAnimation,
|
|
103
|
+
ve as useClampOverflow,
|
|
102
104
|
q as useControllableState,
|
|
103
105
|
G as useCopyToClipboard,
|
|
104
106
|
g as useCountUp,
|
|
105
|
-
|
|
107
|
+
xe as useCountdown,
|
|
106
108
|
j as useDebouncedCallback,
|
|
107
109
|
C as useDebouncedValue,
|
|
108
110
|
Q as useDirection,
|
|
109
111
|
J as useDocumentDirection,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
de as useEdgeResize,
|
|
113
|
+
Ce as useExitTransition,
|
|
112
114
|
L as useFocusTrap,
|
|
113
115
|
te as useIsomorphicLayoutEffect,
|
|
114
|
-
|
|
116
|
+
Le as useListReflow,
|
|
115
117
|
k as useLocale,
|
|
116
|
-
|
|
118
|
+
y as useMediaQuery,
|
|
117
119
|
oe as useOverflowCollapse,
|
|
118
120
|
$ as usePersistentState,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
h as usePrefersReducedMotion,
|
|
122
|
+
Oe as usePresenceTransition,
|
|
123
|
+
ae as usePriorityOverflow,
|
|
124
|
+
ue as useScrollOverflow,
|
|
125
|
+
R as useScrollToFirstError,
|
|
126
|
+
_ as useSigningSession,
|
|
124
127
|
Y as useTheme,
|
|
125
128
|
fe as useVisualViewportPin,
|
|
126
|
-
|
|
129
|
+
ce as useWebOtp,
|
|
127
130
|
F as useZoomDrilldown
|
|
128
131
|
};
|
|
129
132
|
//# sourceMappingURL=index.js.map
|
|
@@ -43,6 +43,18 @@ export interface UseEdgeResizeOptions {
|
|
|
43
43
|
disabled?: boolean;
|
|
44
44
|
/** Fired with the committed px width; `null` means reset-to-default. */
|
|
45
45
|
onResize?: (size: number | null) => void;
|
|
46
|
+
/**
|
|
47
|
+
* Controlled committed width, px; `null` for the token-driven default.
|
|
48
|
+
* When provided (including `null`), the hook applies it to the target's
|
|
49
|
+
* CSS property on mount and on every change — mirroring the "re-assert
|
|
50
|
+
* on remount" effect components already run for the uncontrolled case.
|
|
51
|
+
* Dragging and keyboard steps still update the CSS property and fire
|
|
52
|
+
* `onResize` immediately for a responsive handle; the host is expected
|
|
53
|
+
* to feed the committed value back through `size` on its next render,
|
|
54
|
+
* the same contract as a controlled form input. Omit for uncontrolled
|
|
55
|
+
* (internally-owned) sizing — the hook's default and existing behaviour.
|
|
56
|
+
*/
|
|
57
|
+
size?: number | null;
|
|
46
58
|
}
|
|
47
59
|
export interface EdgeResizeSeparatorProps {
|
|
48
60
|
role: 'separator';
|
|
@@ -74,5 +86,5 @@ export interface UseEdgeResizeReturn {
|
|
|
74
86
|
/** Programmatic reset to the token-driven default width. */
|
|
75
87
|
reset: () => void;
|
|
76
88
|
}
|
|
77
|
-
export declare function useEdgeResize({ edge, targetRef, cssProperty, minSize, maxSize, defaultSize, disabled, onResize, }: UseEdgeResizeOptions): UseEdgeResizeReturn;
|
|
89
|
+
export declare function useEdgeResize({ edge, targetRef, cssProperty, minSize, maxSize, defaultSize, disabled, onResize, size: controlledSize, }: UseEdgeResizeOptions): UseEdgeResizeReturn;
|
|
78
90
|
//# sourceMappingURL=use-edge-resize.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -109,7 +109,7 @@ import { S as Qt } from "./_chunks/stat-Bs80Z6Yv.js";
|
|
|
109
109
|
import { T as Jt } from "./_chunks/tag-Ci3xJPcH.js";
|
|
110
110
|
import { T as an, t as en } from "./_chunks/timeline-61AihzYz.js";
|
|
111
111
|
import { T as rn } from "./_chunks/timestamp-BV2lC-wV.js";
|
|
112
|
-
import { C as tn, a as nn, c as pn, u as mn, b as ln, d as dn } from "./_chunks/control-room-rail-
|
|
112
|
+
import { C as tn, a as nn, c as pn, u as mn, b as ln, d as dn } from "./_chunks/control-room-rail-Cv7GpMqX.js";
|
|
113
113
|
import { B as cn, a as fn, b as gn, c as Sn, d as Cn, e as Tn, f as xn } from "./_chunks/breadcrumb-agut0PwN.js";
|
|
114
114
|
import { C as Pn, a as In, b as En, c as Rn, d as _n, e as bn, f as Nn, g as Dn, h as hn, i as On, j as Fn, k as Ln, u as Mn } from "./_chunks/command-palette-DQl_SNEv.js";
|
|
115
115
|
import { H as kn, a as Bn, b as Gn, c as Hn, d as vn, e as wn, f as Wn, g as Un } from "./_chunks/header-3o9o9v_T.js";
|
|
@@ -121,11 +121,11 @@ import { P as pi, a as mi, b as li, c as di, d as Ai, e as ci, f as fi, g as gi,
|
|
|
121
121
|
import { D as Ti, a as xi, P as ui, S as Pi, c as Ii, p as Ei } from "./_chunks/public-footer.agent-BKkK3T3V.js";
|
|
122
122
|
import { P as _i, p as bi } from "./_chunks/public-header.agent-D-EBVskf.js";
|
|
123
123
|
import { S as Di, f as hi, s as Oi } from "./_chunks/search-bar-CCmViqaa.js";
|
|
124
|
-
import { S as Li, a as Mi, b as yi, c as ki, d as Bi, e as Gi, f as Hi, g as vi, h as wi, i as Wi, j as Ui, k as Vi, l as Ki, m as Yi, n as Xi, o as qi, p as zi, q as ji, s as Qi, u as Zi } from "./_chunks/sidebar-
|
|
124
|
+
import { S as Li, a as Mi, b as yi, c as ki, d as Bi, e as Gi, f as Hi, g as vi, h as wi, i as Wi, j as Ui, k as Vi, l as Ki, m as Yi, n as Xi, o as qi, p as zi, q as ji, s as Qi, u as Zi } from "./_chunks/sidebar-DbZXLl8h.js";
|
|
125
125
|
import { S as $i } from "./_chunks/stepper-accordion-DmVykr5F.js";
|
|
126
126
|
import { s as ep } from "./_chunks/stepper-accordion.agent-cmEguIdx.js";
|
|
127
127
|
import { S as rp, s as op } from "./_chunks/stepper-progress-Bv0njx4g.js";
|
|
128
|
-
import { T as np } from "./_chunks/tab-bar-
|
|
128
|
+
import { T as np } from "./_chunks/tab-bar-Cw9UK18Z.js";
|
|
129
129
|
import { T as pp, a as mp, b as lp, c as dp, t as Ap } from "./_chunks/tabs-BnRaLT0y.js";
|
|
130
130
|
import { T as fp, t as gp } from "./_chunks/theme-toggle-bI0pgDDv.js";
|
|
131
131
|
import { A as Cp } from "./_chunks/agenda-card-DyQtHb9z.js";
|
|
@@ -153,7 +153,7 @@ import { M as Cm, m as Tm } from "./_chunks/message-tray-CrRIHfiQ.js";
|
|
|
153
153
|
import { N as um, i as Pm } from "./_chunks/notification-card-B2gLO6dK.js";
|
|
154
154
|
import { n as Em } from "./_chunks/notification-card.agent-DxGBZb8T.js";
|
|
155
155
|
import { N as _m, n as bm } from "./_chunks/notification-tray-BOEKegVV.js";
|
|
156
|
-
import { N as Dm } from "./_chunks/notes-panel-
|
|
156
|
+
import { N as Dm } from "./_chunks/notes-panel-CRAovkjx.js";
|
|
157
157
|
import { P as Om, p as Fm } from "./_chunks/popover-DO-pssF3.js";
|
|
158
158
|
import { R as Mm, I as ym, r as km } from "./_chunks/radiograph-panel.agent-LrILY2lN.js";
|
|
159
159
|
import { P as Gm, R as Hm, T as vm, a as wm, p as Wm, r as Um } from "./_chunks/pregnancy-weight-gain-Bfq4Kwt5.js";
|
|
@@ -238,9 +238,9 @@ import { W as xC, a as uC, w as PC } from "./_chunks/workflow-status-xeaJTzD3.js
|
|
|
238
238
|
import { C as EC, W as RC, a as _C, b as bC, c as NC, i as DC, l as hC, m as OC, r as FC, w as LC, d as MC, e as yC, f as kC } from "./_chunks/workflow-map-DhR_h5yw.js";
|
|
239
239
|
import { A as GC, a as HC, b as vC, c as wC } from "./_chunks/alia-sidebar-CUqaJNPQ.js";
|
|
240
240
|
import { A as UC, a as VC, L as KC, P as YC, S as XC, T as qC, b as zC, c as jC, d as QC, e as ZC, f as JC, g as $C, h as aT, i as eT, j as sT, k as rT, l as oT, m as tT, n as nT, o as iT, p as pT, r as mT, q as lT, s as dT, t as AT, u as cT } from "./_chunks/anamnesis-summary-rows-DQUqwWc1.js";
|
|
241
|
-
import { C as gT, a as ST, b as CT, c as TT, D as xT, d as uT, S as PT, V as IT, W as ET, e as RT, i as _T, m as bT, r as NT, u as DT, f as hT, g as OT } from "./_chunks/calendar-workspace-
|
|
241
|
+
import { C as gT, a as ST, b as CT, c as TT, D as xT, d as uT, S as PT, V as IT, W as ET, e as RT, i as _T, m as bT, r as NT, u as DT, f as hT, g as OT } from "./_chunks/calendar-workspace-DhXqqu-D.js";
|
|
242
242
|
import { A as LT, a as MT, b as yT, H as kT, c as BT, u as GT } from "./_chunks/help-me-write-templates-B-m7zgJa.js";
|
|
243
|
-
import { C as vT, M as wT, P as WT } from "./_chunks/marketplace-app-shell-
|
|
243
|
+
import { C as vT, M as wT, P as WT } from "./_chunks/marketplace-app-shell-DdwPj03y.js";
|
|
244
244
|
import { P as VT } from "./_chunks/payment-automation-upsell-BKmBXU4i.js";
|
|
245
245
|
import { S as YT } from "./_chunks/signature-request-D_j2aQu1.js";
|
|
246
246
|
import { D as qT, d as zT } from "./_chunks/dependent-selector-BHDP0nBB.js";
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type { CalendarEventStatus } from '../../components/calendar';
|
|
14
14
|
import type { Dispatch, SetStateAction } from 'react';
|
|
15
15
|
import type { NotesPanelNote, NotesPanelProps, NotesPanelSubmission, AiConsentGate } from '../../components/notes-panel';
|
|
16
|
+
import type { PatientNotesSeam } from './calendar.sheets';
|
|
16
17
|
import type { AvailabilityContext, BacklogFilter, BacklogItem, CalendarFreeSlot, CalendarRow, DisplaySettings, DraftSlot, EditorDraft, EditorPrefill, FindSlotsSeed, HistoryInput, RailFocus, SlotPatch, WaitingEntryDraft } from './calendar.model';
|
|
17
18
|
import type { DeleteOptions, EditorDraftExtras, RecurringScope } from './calendar-workspace.model';
|
|
18
19
|
import type { CalendarHistoryEntry, CalendarSignChannel, CalendarWaitingEntry } from './calendar.types';
|
|
@@ -168,5 +169,15 @@ export interface CalendarJourney {
|
|
|
168
169
|
* `ic_internal_api_post_patient_ai_consent` grant route.
|
|
169
170
|
*/
|
|
170
171
|
noteAiConsentFor?: (patientId: string) => AiConsentGate | undefined;
|
|
172
|
+
/**
|
|
173
|
+
* The notes composer's template-variable, Help-me-write and image-upload
|
|
174
|
+
* seams for one patient, read as the details panel opens them — one hook
|
|
175
|
+
* instead of six props, mirroring `noteAiConsentFor`. Omit any key (or the
|
|
176
|
+
* whole hook) and that affordance is not offered: the kit ships no
|
|
177
|
+
* variables, no bring-your-own Help-me-write surface and no image upload
|
|
178
|
+
* of its own. Typically backed by the host's own `useHelpMeWriteTemplates`
|
|
179
|
+
* call, built once per patient and passed straight through.
|
|
180
|
+
*/
|
|
181
|
+
noteComposerExtrasFor?: (patientId: string) => Partial<Pick<PatientNotesSeam, 'variables' | 'validateVariable' | 'onVariableValidityChange' | 'renderHelpMeWrite' | 'onUploadImage' | 'onAiCreditsExhausted' | 'composerBefore' | 'composerAfter'>> | undefined;
|
|
171
182
|
}
|
|
172
183
|
//# sourceMappingURL=calendar.journey.d.ts.map
|
|
@@ -82,6 +82,26 @@ export interface PatientNotesSeam {
|
|
|
82
82
|
* mics. Omitted → today's ungated behaviour (matches `NotesPanel`).
|
|
83
83
|
*/
|
|
84
84
|
aiConsent?: AiConsentGate;
|
|
85
|
+
/** Template variables for the composer's "Insert variable" menu. See
|
|
86
|
+
* `RichTextEditor`. */
|
|
87
|
+
variables?: NotesPanelProps['variables'];
|
|
88
|
+
/** Decide whether a `[[TOKEN]]` is valid. See `RichTextEditor`. */
|
|
89
|
+
validateVariable?: NotesPanelProps['validateVariable'];
|
|
90
|
+
/** The invalid `[[TOKEN]]`s in the draft. See `RichTextEditor`. */
|
|
91
|
+
onVariableValidityChange?: NotesPanelProps['onVariableValidityChange'];
|
|
92
|
+
/** Bring your own Help-me-write surface (e.g. practice templates). See
|
|
93
|
+
* `RichTextEditor`. */
|
|
94
|
+
renderHelpMeWrite?: NotesPanelProps['renderHelpMeWrite'];
|
|
95
|
+
/** Upload an image yourself and resolve its URL. See `RichTextEditor`. */
|
|
96
|
+
onUploadImage?: NotesPanelProps['onUploadImage'];
|
|
97
|
+
/** An AI call ran out of credits. See `RichTextEditor`. */
|
|
98
|
+
onAiCreditsExhausted?: NotesPanelProps['onAiCreditsExhausted'];
|
|
99
|
+
/** Rendered just above the composer — e.g. the templates pattern's
|
|
100
|
+
* `undoNotice`. See `NotesPanel`. */
|
|
101
|
+
composerBefore?: NotesPanelProps['composerBefore'];
|
|
102
|
+
/** Rendered just after the composer — e.g. the templates pattern's
|
|
103
|
+
* `manager`. See `NotesPanel`. */
|
|
104
|
+
composerAfter?: NotesPanelProps['composerAfter'];
|
|
85
105
|
/** The host's read. Absent while `onLoad` is present reads as loading. */
|
|
86
106
|
status?: 'loading' | 'ready' | 'error';
|
|
87
107
|
total?: number | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as s, a as r, b as E, c as P, D as S, d as o, S as C, V as t, W as d, e as A, i, m as n, r as D, u as W, f as _, g as c } from "../../_chunks/calendar-workspace-
|
|
1
|
+
import { C as s, a as r, b as E, c as P, D as S, d as o, S as C, V as t, W as d, e as A, i, m as n, r as D, u as W, f as _, g as c } from "../../_chunks/calendar-workspace-DhXqqu-D.js";
|
|
2
2
|
export {
|
|
3
3
|
s as CALENDAR_PREFERENCE_KEYS,
|
|
4
4
|
r as CalendarDataProvider,
|