@alfadocs/ui-kit 1.32.0 → 1.34.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/{appointment-card-D-oj_ugh.js → appointment-card-D6mk39NB.js} +3 -3
- package/dist/_chunks/{appointment-timeline-CymGHyIP.js → appointment-timeline-D-V97Bhc.js} +2 -2
- package/dist/_chunks/{appointment-tray-DCk8gHod.js → appointment-tray-6rg071CL.js} +2 -2
- package/dist/_chunks/{booking-l6UGNiE1.js → booking-BqkEtsKx.js} +777 -747
- package/dist/_chunks/{calendar-workspace-BX-zDyVR.js → calendar-workspace-4NH1Z47_.js} +7 -7
- package/dist/_chunks/{clinical-note-card-D2WTV2CO.js → clinical-note-card-CTRzmqvv.js} +83 -81
- package/dist/_chunks/{contact-profile-card-BZqi8Hck.js → contact-profile-card-DSI9uumA.js} +17 -16
- package/dist/_chunks/{control-room-rail-iO_BCaq1.js → control-room-rail-5MbhjsxN.js} +2 -2
- package/dist/_chunks/format-price-BkMEbeW3.js +47 -0
- package/dist/_chunks/{format-price-DNqXPa_q.js → languages-CZqBaPwI.js} +8 -38
- package/dist/_chunks/money.agent-Dw55UxUA.js +116 -0
- package/dist/_chunks/notes-panel-BjLt-kiP.js +469 -0
- package/dist/_chunks/{practice-results-DjEzPgAK.js → practice-results-kayDEorM.js} +15 -14
- package/dist/_chunks/{rich-text-editor-CQ7yZdG3.js → rich-text-editor-CCI-Y3DN.js} +3 -5
- package/dist/_chunks/{task-card-BUgK6yZT.js → task-card-BalrLkSz.js} +41 -40
- package/dist/_chunks/{task-tray-CYG6rj2s.js → task-tray-COo-RlDv.js} +2 -2
- package/dist/_chunks/tasks-panel-DLKpSNoE.js +844 -0
- package/dist/_chunks/tool-rail-ONaV-Nzz.js +588 -0
- package/dist/_chunks/use-check-animation--I3cS00X.js +28 -0
- package/dist/_chunks/use-list-reflow-Cw43nxw5.js +100 -0
- package/dist/agent-catalog.json +15 -1
- package/dist/components/_shared/format-price.d.ts +15 -0
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +8 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/command-palette/command-palette.d.ts +7 -7
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/money/index.d.ts +4 -0
- package/dist/components/money/index.js +6 -0
- package/dist/components/money/money.agent.d.ts +3 -0
- package/dist/components/money/money.d.ts +38 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +16 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.d.ts +11 -3
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/tasks-panel/tasks-panel.d.ts +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +43 -37
- package/dist/hooks/use-check-animation.d.ts +53 -0
- package/dist/hooks/use-exit-transition.d.ts +48 -0
- package/dist/hooks/use-list-reflow.d.ts +47 -0
- package/dist/host-compat.css +8 -2
- package/dist/i18n/locales/ar.d.ts +5 -0
- package/dist/i18n/locales/ar.js +6 -1
- package/dist/i18n/locales/de.d.ts +5 -0
- package/dist/i18n/locales/de.js +6 -1
- package/dist/i18n/locales/el.d.ts +5 -0
- package/dist/i18n/locales/el.js +6 -1
- package/dist/i18n/locales/en.d.ts +5 -0
- package/dist/i18n/locales/en.js +6 -1
- package/dist/i18n/locales/es.d.ts +5 -0
- package/dist/i18n/locales/es.js +6 -1
- package/dist/i18n/locales/fr.d.ts +5 -0
- package/dist/i18n/locales/fr.js +6 -1
- package/dist/i18n/locales/hi.d.ts +5 -0
- package/dist/i18n/locales/hi.js +6 -1
- package/dist/i18n/locales/it.d.ts +5 -0
- package/dist/i18n/locales/it.js +6 -1
- package/dist/i18n/locales/ja.d.ts +5 -0
- package/dist/i18n/locales/ja.js +6 -1
- package/dist/i18n/locales/nl.d.ts +5 -0
- package/dist/i18n/locales/nl.js +6 -1
- package/dist/i18n/locales/pl.d.ts +5 -0
- package/dist/i18n/locales/pl.js +6 -1
- package/dist/i18n/locales/pt.d.ts +5 -0
- package/dist/i18n/locales/pt.js +6 -1
- package/dist/i18n/locales/ro.d.ts +5 -0
- package/dist/i18n/locales/ro.js +6 -1
- package/dist/i18n/locales/ru.d.ts +5 -0
- package/dist/i18n/locales/ru.js +6 -1
- package/dist/i18n/locales/sq.d.ts +5 -0
- package/dist/i18n/locales/sq.js +6 -1
- package/dist/i18n/locales/sv.d.ts +5 -0
- package/dist/i18n/locales/sv.js +6 -1
- package/dist/i18n/locales/tr.d.ts +5 -0
- package/dist/i18n/locales/tr.js +6 -1
- package/dist/i18n/locales/zh.d.ts +5 -0
- package/dist/i18n/locales/zh.js +6 -1
- package/dist/index.js +919 -916
- package/dist/locales/ar.json +6 -1
- package/dist/locales/de.json +6 -1
- package/dist/locales/el.json +6 -1
- package/dist/locales/en.json +6 -1
- package/dist/locales/es.json +6 -1
- package/dist/locales/fr.json +6 -1
- package/dist/locales/hi.json +6 -1
- package/dist/locales/it.json +6 -1
- package/dist/locales/ja.json +6 -1
- package/dist/locales/nl.json +6 -1
- package/dist/locales/pl.json +6 -1
- package/dist/locales/pt.json +6 -1
- package/dist/locales/ro.json +6 -1
- package/dist/locales/ru.json +6 -1
- package/dist/locales/sq.json +6 -1
- package/dist/locales/sv.json +6 -1
- package/dist/locales/tr.json +6 -1
- package/dist/locales/zh.json +6 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/tokens.css +2 -1
- package/package.json +5 -1
- package/dist/_chunks/notes-panel-C4G-mhZ9.js +0 -380
- package/dist/_chunks/tasks-panel-DQuaVvl5.js +0 -757
- package/dist/_chunks/tool-rail-8Scslq3X.js +0 -524
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { useState as h, useRef as R, useEffect as L, useCallback as g } from "react";
|
|
2
|
+
import { u as x } from "./use-prefers-reduced-motion-BMwIQRjB.js";
|
|
3
|
+
import { u as E } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
4
|
+
function T({
|
|
5
|
+
durationMs: p = 200,
|
|
6
|
+
delayMs: y = 0,
|
|
7
|
+
reduceMotion: v
|
|
8
|
+
} = {}) {
|
|
9
|
+
const w = x(), u = v ?? w, r = u ? 0 : y, s = u ? 0 : p, a = r + s, [f, c] = h(
|
|
10
|
+
() => /* @__PURE__ */ new Set()
|
|
11
|
+
), t = R(/* @__PURE__ */ new Map());
|
|
12
|
+
L(
|
|
13
|
+
() => () => {
|
|
14
|
+
t.current.forEach((e) => window.clearTimeout(e)), t.current.clear();
|
|
15
|
+
},
|
|
16
|
+
[]
|
|
17
|
+
);
|
|
18
|
+
const i = g(
|
|
19
|
+
(e, n) => {
|
|
20
|
+
if (a === 0) {
|
|
21
|
+
n();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (t.current.has(e)) return;
|
|
25
|
+
const d = () => {
|
|
26
|
+
c((o) => {
|
|
27
|
+
const l = new Set(o);
|
|
28
|
+
return l.add(e), l;
|
|
29
|
+
});
|
|
30
|
+
const m = window.setTimeout(() => {
|
|
31
|
+
t.current.delete(e), c((o) => {
|
|
32
|
+
if (!o.has(e)) return o;
|
|
33
|
+
const l = new Set(o);
|
|
34
|
+
return l.delete(e), l;
|
|
35
|
+
}), n();
|
|
36
|
+
}, s);
|
|
37
|
+
t.current.set(e, m);
|
|
38
|
+
};
|
|
39
|
+
if (r === 0) {
|
|
40
|
+
d();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
t.current.set(e, window.setTimeout(d, r));
|
|
44
|
+
},
|
|
45
|
+
[a, r, s]
|
|
46
|
+
);
|
|
47
|
+
return { isLeaving: g((e) => f.has(e), [f]), leave: i, durationMs: a };
|
|
48
|
+
}
|
|
49
|
+
const b = [
|
|
50
|
+
"ds:[transform:translateY(var(--reflow-dy,0px))]",
|
|
51
|
+
"ds:transition-transform ds:duration-[var(--animation-duration)]",
|
|
52
|
+
"ds:ease-[var(--ease-out)]",
|
|
53
|
+
"ds:data-[reflow-snap]:transition-none",
|
|
54
|
+
"ds:motion-reduce:transition-none"
|
|
55
|
+
].join(" ");
|
|
56
|
+
function C({
|
|
57
|
+
key: p,
|
|
58
|
+
durationMs: y = 200,
|
|
59
|
+
reduceMotion: v
|
|
60
|
+
}) {
|
|
61
|
+
const w = R(null), u = R(null), r = x(), s = v ?? r;
|
|
62
|
+
return E(() => {
|
|
63
|
+
const a = w.current;
|
|
64
|
+
if (!a) return;
|
|
65
|
+
const f = Array.from(
|
|
66
|
+
a.querySelectorAll("[data-reflow-id]")
|
|
67
|
+
), c = /* @__PURE__ */ new Map();
|
|
68
|
+
for (const e of f) {
|
|
69
|
+
const n = e.dataset.reflowId;
|
|
70
|
+
n && c.set(n, e.getBoundingClientRect().top);
|
|
71
|
+
}
|
|
72
|
+
const t = u.current;
|
|
73
|
+
if (u.current = c, !t || s) return;
|
|
74
|
+
const i = [];
|
|
75
|
+
for (const e of f) {
|
|
76
|
+
const n = e.dataset.reflowId;
|
|
77
|
+
if (!n) continue;
|
|
78
|
+
const d = t.get(n), m = c.get(n);
|
|
79
|
+
if (d === void 0 || m === void 0) continue;
|
|
80
|
+
const o = d - m;
|
|
81
|
+
Math.abs(o) < 1 || (e.dataset.reflowSnap = "", e.style.setProperty("--reflow-dy", `${o}px`), i.push(e));
|
|
82
|
+
}
|
|
83
|
+
if (i.length === 0) return;
|
|
84
|
+
const S = window.requestAnimationFrame(() => {
|
|
85
|
+
for (const e of i)
|
|
86
|
+
delete e.dataset.reflowSnap, e.style.setProperty("--reflow-dy", "0px");
|
|
87
|
+
});
|
|
88
|
+
return () => {
|
|
89
|
+
window.cancelAnimationFrame(S);
|
|
90
|
+
for (const e of i)
|
|
91
|
+
delete e.dataset.reflowSnap, e.style.removeProperty("--reflow-dy");
|
|
92
|
+
};
|
|
93
|
+
}, [p, s, y]), { containerRef: w };
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
b as R,
|
|
97
|
+
C as a,
|
|
98
|
+
T as u
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=use-list-reflow-Cw43nxw5.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "1.
|
|
3
|
+
"packageVersion": "1.34.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -7074,6 +7074,20 @@
|
|
|
7074
7074
|
}
|
|
7075
7075
|
}
|
|
7076
7076
|
},
|
|
7077
|
+
{
|
|
7078
|
+
"kind": "component",
|
|
7079
|
+
"id": "money",
|
|
7080
|
+
"capabilities": [],
|
|
7081
|
+
"state": [],
|
|
7082
|
+
"actions": [],
|
|
7083
|
+
"domHooks": {
|
|
7084
|
+
"root": {
|
|
7085
|
+
"attr": "data-component",
|
|
7086
|
+
"value": "money",
|
|
7087
|
+
"description": "Marks the element as a kit Money amount."
|
|
7088
|
+
}
|
|
7089
|
+
}
|
|
7090
|
+
},
|
|
7077
7091
|
{
|
|
7078
7092
|
"kind": "component",
|
|
7079
7093
|
"id": "multi-select",
|
|
@@ -18,4 +18,19 @@
|
|
|
18
18
|
* behaviour differs.
|
|
19
19
|
*/
|
|
20
20
|
export declare function formatPrice(minorUnits: number, currency: string, locale: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* The same amount as {@link formatPrice}, but broken into its typed parts so
|
|
23
|
+
* a renderer can treat the fraction differently from the rest.
|
|
24
|
+
*
|
|
25
|
+
* Splitting a formatted price with a regex is not safe across locales: in
|
|
26
|
+
* `it-IT` the group separator is `.` and the decimal is `,`, so `1.000 €`
|
|
27
|
+
* would read as a fraction of `000` and a "drop the zero fraction" rule
|
|
28
|
+
* would render it as `1 €`. `Intl.NumberFormat.formatToParts` labels each
|
|
29
|
+
* piece, so the fraction is whatever the locale says it is, wherever it
|
|
30
|
+
* sits relative to the currency symbol.
|
|
31
|
+
*
|
|
32
|
+
* Returns `null` when the locale or currency is rejected — callers fall
|
|
33
|
+
* back to {@link formatPrice}, which keeps the zero-decimal rule.
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatPriceParts(minorUnits: number, currency: string, locale: string, options?: Pick<Intl.NumberFormatOptions, 'signDisplay'>): Intl.NumberFormatPart[] | null;
|
|
21
36
|
//# sourceMappingURL=format-price.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as p } from "../../_chunks/appointment-card-
|
|
2
|
-
import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-
|
|
1
|
+
import { A as p } from "../../_chunks/appointment-card-D6mk39NB.js";
|
|
2
|
+
import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-6rg071CL.js";
|
|
3
3
|
import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
|
|
4
4
|
export {
|
|
5
5
|
p as AppointmentCard,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type HTMLAttributes } from 'react';
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
/** Author identity — drives the avatar + visible byline. */
|
|
4
4
|
export interface ClinicalNoteAuthor {
|
|
@@ -105,6 +105,13 @@ export interface ClinicalNoteCardProps extends Omit<HTMLAttributes<HTMLDivElemen
|
|
|
105
105
|
* the note can be (un)pinned in place — the pin glyph fills and tints to the
|
|
106
106
|
* accent when pinned (no button fill). Omit for a static, display-only card.
|
|
107
107
|
*/
|
|
108
|
+
/**
|
|
109
|
+
* Host-owned actions for this note (edit, delete, share …), rendered
|
|
110
|
+
* beside the pin and flag. They belong in the same cluster: a reader
|
|
111
|
+
* looking for what they can do to a note should find every affordance
|
|
112
|
+
* in one place, not some in the card and the rest below it.
|
|
113
|
+
*/
|
|
114
|
+
headerActions?: ReactNode;
|
|
108
115
|
onTogglePin?: () => void;
|
|
109
116
|
/** As `onTogglePin`, for the flagged state (warning-tinted when flagged). */
|
|
110
117
|
onToggleFlag?: () => void;
|
|
@@ -29,7 +29,7 @@ declare const CommandPalette: import("react").ForwardRefExoticComponent<Omit<{
|
|
|
29
29
|
ref?: React.Ref<HTMLDivElement>;
|
|
30
30
|
} & {
|
|
31
31
|
asChild?: boolean;
|
|
32
|
-
}, "
|
|
32
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
33
33
|
label?: string;
|
|
34
34
|
shouldFilter?: boolean;
|
|
35
35
|
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
@@ -45,7 +45,7 @@ declare const CommandInput: import("react").ForwardRefExoticComponent<Omit<Omit<
|
|
|
45
45
|
ref?: React.Ref<HTMLInputElement>;
|
|
46
46
|
} & {
|
|
47
47
|
asChild?: boolean;
|
|
48
|
-
}, "
|
|
48
|
+
}, "key" | "asChild" | keyof import("react").InputHTMLAttributes<HTMLInputElement>>, "type" | "value" | "onChange"> & {
|
|
49
49
|
value?: string;
|
|
50
50
|
onValueChange?: (search: string) => void;
|
|
51
51
|
} & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -55,7 +55,7 @@ declare const CommandList: import("react").ForwardRefExoticComponent<Omit<{
|
|
|
55
55
|
ref?: React.Ref<HTMLDivElement>;
|
|
56
56
|
} & {
|
|
57
57
|
asChild?: boolean;
|
|
58
|
-
}, "
|
|
58
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
59
59
|
label?: string;
|
|
60
60
|
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
61
61
|
declare const CommandEmpty: import("react").ForwardRefExoticComponent<Omit<{
|
|
@@ -64,14 +64,14 @@ declare const CommandEmpty: import("react").ForwardRefExoticComponent<Omit<{
|
|
|
64
64
|
ref?: React.Ref<HTMLDivElement>;
|
|
65
65
|
} & {
|
|
66
66
|
asChild?: boolean;
|
|
67
|
-
}, "
|
|
67
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>> & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
68
68
|
declare const CommandGroup: import("react").ForwardRefExoticComponent<Omit<{
|
|
69
69
|
children?: React.ReactNode;
|
|
70
70
|
} & Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
71
71
|
ref?: React.Ref<HTMLDivElement>;
|
|
72
72
|
} & {
|
|
73
73
|
asChild?: boolean;
|
|
74
|
-
}, "
|
|
74
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
|
|
75
75
|
heading?: React.ReactNode;
|
|
76
76
|
value?: string;
|
|
77
77
|
forceMount?: boolean;
|
|
@@ -83,7 +83,7 @@ declare const CommandItem: import("react").ForwardRefExoticComponent<Omit<{
|
|
|
83
83
|
ref?: React.Ref<HTMLDivElement>;
|
|
84
84
|
} & {
|
|
85
85
|
asChild?: boolean;
|
|
86
|
-
}, "
|
|
86
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "onSelect"> & {
|
|
87
87
|
disabled?: boolean;
|
|
88
88
|
onSelect?: (value: string) => void;
|
|
89
89
|
value?: string;
|
|
@@ -94,7 +94,7 @@ declare const CommandSeparator: import("react").ForwardRefExoticComponent<Omit<P
|
|
|
94
94
|
ref?: React.Ref<HTMLDivElement>;
|
|
95
95
|
} & {
|
|
96
96
|
asChild?: boolean;
|
|
97
|
-
}, "
|
|
97
|
+
}, "key" | "asChild" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
98
98
|
alwaysRender?: boolean;
|
|
99
99
|
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
100
100
|
export type CommandShortcutProps = ComponentPropsWithoutRef<'kbd'>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-
|
|
1
|
+
import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-DSI9uumA.js";
|
|
2
2
|
export {
|
|
3
3
|
_ as CONTACT_PROFILE_CARD_ROW_ICONS,
|
|
4
4
|
O as CONTACT_PROFILE_CARD_ROW_KEYS,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as 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-5MbhjsxN.js";
|
|
2
2
|
export {
|
|
3
3
|
r as ControlRoomProvider,
|
|
4
4
|
l as ControlRoomRail,
|
|
@@ -40,6 +40,7 @@ export * from './position-grid';
|
|
|
40
40
|
export * from './token-insert-menu';
|
|
41
41
|
export * from './file-upload';
|
|
42
42
|
export * from './form-field';
|
|
43
|
+
export * from './money';
|
|
43
44
|
export * from './multi-select';
|
|
44
45
|
export * from './number-input';
|
|
45
46
|
export * from './otp-input';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const moneyVariants: (props?: ({
|
|
4
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
5
|
+
tone?: "default" | "muted" | "positive" | "negative" | null | undefined;
|
|
6
|
+
strikethrough?: boolean | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type MoneyDecimals = 'full' | 'muted' | 'hideWhenZero';
|
|
9
|
+
export interface MoneyProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'>, Omit<VariantProps<typeof moneyVariants>, 'tone'> {
|
|
10
|
+
/**
|
|
11
|
+
* Amount in the SMALLEST currency unit (cents), the kit's price
|
|
12
|
+
* convention — never a pre-formatted string. Zero-decimal currencies
|
|
13
|
+
* (JPY, KRW …) take the major amount, as `formatPrice` expects.
|
|
14
|
+
*/
|
|
15
|
+
value: number;
|
|
16
|
+
/** ISO-4217 code. Defaults to EUR, the practice currency. */
|
|
17
|
+
currency?: string;
|
|
18
|
+
/** BCP 47 locale. Defaults to the active i18n language. */
|
|
19
|
+
locale?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Colour. `auto` follows the sign — a negative amount reads destructive,
|
|
22
|
+
* everything else inherits the default. Explicit tones always win.
|
|
23
|
+
*/
|
|
24
|
+
tone?: 'default' | 'muted' | 'positive' | 'negative' | 'auto';
|
|
25
|
+
/**
|
|
26
|
+
* What to do with the fraction:
|
|
27
|
+
* `full` (default) leaves it alone;
|
|
28
|
+
* `muted` de-emphasises it so the whole units read first;
|
|
29
|
+
* `hideWhenZero` drops it ONLY when it is all zeros, so a price is
|
|
30
|
+
* never rounded away in the display.
|
|
31
|
+
*/
|
|
32
|
+
decimals?: MoneyDecimals;
|
|
33
|
+
/** Force a leading `+` on positive amounts (a credit, a movement). */
|
|
34
|
+
signDisplay?: 'auto' | 'always';
|
|
35
|
+
}
|
|
36
|
+
export declare const Money: import("react").ForwardRefExoticComponent<MoneyProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=money.d.ts.map
|
|
@@ -142,11 +142,26 @@ export interface NotesPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'titl
|
|
|
142
142
|
/** Toggle a note's flagged state — renders an inline flag button per note. */
|
|
143
143
|
onToggleFlag?: (id: string) => void;
|
|
144
144
|
/**
|
|
145
|
-
* Host-owned actions
|
|
145
|
+
* Host-owned actions for each note (edit, delete, share…), rendered by
|
|
146
|
+
* the note card beside its pin and flag,
|
|
146
147
|
* aligned to the inline end. The host supplies labelled controls and owns
|
|
147
148
|
* what they do — the panel stays a timeline and never edits a note itself.
|
|
148
149
|
*/
|
|
149
150
|
noteActions?: (note: NotesPanelNote) => ReactNode;
|
|
151
|
+
/**
|
|
152
|
+
* Request the host to delete a note. When provided, the panel holds the
|
|
153
|
+
* row on screen long enough to fade it out before calling this, so the
|
|
154
|
+
* removal reads as a removal rather than a vanish. Omit to let the host
|
|
155
|
+
* own the timing entirely (the reflow animation still closes the gap).
|
|
156
|
+
*/
|
|
157
|
+
onDeleteNote?: (id: string) => void;
|
|
158
|
+
/**
|
|
159
|
+
* Show a confirmation dialog before calling `onDeleteNote`. When `true`
|
|
160
|
+
* (the default when `onDeleteNote` is provided), the built-in delete
|
|
161
|
+
* button opens an alert dialog first; the exit fade only starts after
|
|
162
|
+
* the user confirms. Pass `false` to delete immediately on click.
|
|
163
|
+
*/
|
|
164
|
+
confirmDelete?: boolean;
|
|
150
165
|
/** Panel heading. Defaults to the localised "Notes". */
|
|
151
166
|
title?: string;
|
|
152
167
|
/** Composer placeholder. */
|
|
@@ -23,7 +23,7 @@ export interface RichTextEditorProps {
|
|
|
23
23
|
/** Accessible name for the editing region. */
|
|
24
24
|
ariaLabel?: string;
|
|
25
25
|
/** Size variant for the minimum block-size of the editing region. */
|
|
26
|
-
minHeight?: 'sm' | 'md' | 'lg';
|
|
26
|
+
minHeight?: 'sm' | 'md' | 'lg' | 'fill';
|
|
27
27
|
/** Show a right-aligned editor-extensions affordance (visual placeholder). */
|
|
28
28
|
showExtensions?: boolean;
|
|
29
29
|
/** Extra class names on the wrapper. */
|
|
@@ -46,11 +46,19 @@ export interface TaskCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onC
|
|
|
46
46
|
/** Fires when the row is activated (click / Enter / Space). */
|
|
47
47
|
onActivate?: (item: TaskItem) => void;
|
|
48
48
|
/**
|
|
49
|
-
* Trailing per-row action toolbar (icon buttons:
|
|
50
|
-
*
|
|
51
|
-
*
|
|
49
|
+
* Trailing per-row action toolbar (icon buttons: schedule, edit, …).
|
|
50
|
+
* Rendered above the stretched-link overlay so the controls stay
|
|
51
|
+
* clickable inside an interactive row.
|
|
52
52
|
*/
|
|
53
53
|
actions?: ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Replaces the leading status glyph. Pass a control (the done checkbox)
|
|
56
|
+
* when the row can be completed in place: the glyph alone only reports
|
|
57
|
+
* status, and rendering both a glyph and a matching toggle elsewhere in
|
|
58
|
+
* the row shows the same mark twice, of which only one does anything.
|
|
59
|
+
* Rendered above the stretched-link overlay so it stays clickable.
|
|
60
|
+
*/
|
|
61
|
+
leading?: ReactNode;
|
|
54
62
|
}
|
|
55
63
|
declare const taskCardVariants: (props?: ({
|
|
56
64
|
size?: "sm" | "md" | "xs" | null | undefined;
|
|
@@ -69,7 +69,7 @@ export interface TasksPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'onCl
|
|
|
69
69
|
nowIso?: string;
|
|
70
70
|
/** Panel heading. Defaults to the localised "Tasks". */
|
|
71
71
|
title?: string;
|
|
72
|
-
/** Visual density forwarded to each TaskCard. Defaults to `
|
|
72
|
+
/** Visual density forwarded to each TaskCard. Defaults to `sm`, matching the note and appointment rows. */
|
|
73
73
|
size?: 'xs' | 'sm' | 'md';
|
|
74
74
|
/** Fires when a row is activated. */
|
|
75
75
|
onOpenTask?: (item: TasksPanelItem) => void;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -24,4 +24,7 @@ export { useEdgeResize, type UseEdgeResizeOptions, type UseEdgeResizeReturn, typ
|
|
|
24
24
|
export { useSigningSession, type SigningField, type SigningFieldBase, type UseSigningSessionReturn, } from './use-signing-session';
|
|
25
25
|
export { useZoomDrilldown, ZOOM_DRILLDOWN_TRANSITION_CLASS, type UseZoomDrilldownOptions, type UseZoomDrilldownReturn, } from './use-zoom-drilldown';
|
|
26
26
|
export { useCountdown, type UseCountdownOptions, type UseCountdownReturn, } from './use-countdown';
|
|
27
|
+
export { useCheckAnimation, type UseCheckAnimationOptions, type UseCheckAnimationReturn, } from './use-check-animation';
|
|
28
|
+
export { useExitTransition, type UseExitTransitionOptions, type UseExitTransitionReturn, } from './use-exit-transition';
|
|
29
|
+
export { useListReflow, REFLOW_ROW_CLASS, type UseListReflowOptions, type UseListReflowReturn, } from './use-list-reflow';
|
|
27
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import { u as
|
|
3
|
-
import { Z as
|
|
4
|
-
import { u as
|
|
5
|
-
import { u as
|
|
6
|
-
import { A as M, T as V, a as
|
|
7
|
-
import { u as
|
|
8
|
-
import { u as
|
|
1
|
+
import { u as y } from "../_chunks/use-prefers-reduced-motion-BMwIQRjB.js";
|
|
2
|
+
import { u as v } from "../_chunks/use-media-query-CcAx5SMM.js";
|
|
3
|
+
import { Z as R, u as _, a as w, b as F } from "../_chunks/use-zoom-drilldown-qCX34w9I.js";
|
|
4
|
+
import { u as g } from "../_chunks/use-count-up-BLLetaZ8.js";
|
|
5
|
+
import { u as P } from "../_chunks/use-locale-BkCIHujH.js";
|
|
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";
|
|
7
|
+
import { u as q } from "../_chunks/use-controllable-state-BiY4xTzM.js";
|
|
8
|
+
import { u as G } from "../_chunks/use-copy-to-clipboard-Cyfc_dlv.js";
|
|
9
9
|
import { u as j } from "../_chunks/use-debounced-callback-BisrB-Fq.js";
|
|
10
|
-
import { useState as
|
|
10
|
+
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
14
|
import { u as oe } from "../_chunks/use-overflow-collapse-BIOzKbni.js";
|
|
15
15
|
import { c as se, u as ne } from "../_chunks/use-priority-overflow-c9SjxZkZ.js";
|
|
16
16
|
import { u as ie } from "../_chunks/use-web-otp-D_utzp6S.js";
|
|
17
|
-
import { u as
|
|
17
|
+
import { u as fe } from "../_chunks/use-visual-viewport-pin-ChurOsHM.js";
|
|
18
18
|
import { u as me } from "../_chunks/use-edge-resize-ZnGG7gyO.js";
|
|
19
19
|
import { u as pe } from "../_chunks/use-countdown-Yd6ts0_a.js";
|
|
20
|
+
import { u as Ee } from "../_chunks/use-check-animation--I3cS00X.js";
|
|
21
|
+
import { R as Se, u as Te, a as Ce } from "../_chunks/use-list-reflow-Cw43nxw5.js";
|
|
20
22
|
function C(e, o) {
|
|
21
|
-
const [t, i] =
|
|
22
|
-
return
|
|
23
|
+
const [t, i] = b(e), u = x(null);
|
|
24
|
+
return E(() => {
|
|
23
25
|
if (o <= 0) {
|
|
24
26
|
u.current !== null && (clearTimeout(u.current), u.current = null), i(e);
|
|
25
27
|
return;
|
|
@@ -30,7 +32,7 @@ function C(e, o) {
|
|
|
30
32
|
return u.current = n, () => clearTimeout(n);
|
|
31
33
|
}, [e, o]), t;
|
|
32
34
|
}
|
|
33
|
-
const
|
|
35
|
+
const S = [
|
|
34
36
|
"a[href]",
|
|
35
37
|
"button:not([disabled])",
|
|
36
38
|
'input:not([disabled]):not([type="hidden"])',
|
|
@@ -43,7 +45,7 @@ const T = [
|
|
|
43
45
|
].join(",");
|
|
44
46
|
function p(e) {
|
|
45
47
|
return Array.from(
|
|
46
|
-
e.querySelectorAll(
|
|
48
|
+
e.querySelectorAll(S)
|
|
47
49
|
).filter((o) => {
|
|
48
50
|
if (o.hidden) return !1;
|
|
49
51
|
let t = o;
|
|
@@ -54,9 +56,9 @@ function p(e) {
|
|
|
54
56
|
return !0;
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
|
-
function
|
|
58
|
-
const { enabled: t = !0, autoFocus: i = !0, restoreFocus: u = !0 } = o, n =
|
|
59
|
-
|
|
59
|
+
function L(e, o = {}) {
|
|
60
|
+
const { enabled: t = !0, autoFocus: i = !0, restoreFocus: u = !0 } = o, n = x(null);
|
|
61
|
+
E(() => {
|
|
60
62
|
if (!t) return;
|
|
61
63
|
const a = e.current;
|
|
62
64
|
if (!a) return;
|
|
@@ -64,7 +66,7 @@ function y(e, o = {}) {
|
|
|
64
66
|
const s = p(a)[0] ?? (a.tabIndex >= -1 ? a : null);
|
|
65
67
|
s == null || s.focus();
|
|
66
68
|
}
|
|
67
|
-
function
|
|
69
|
+
function l(r) {
|
|
68
70
|
if (r.key !== "Tab") return;
|
|
69
71
|
const s = e.current;
|
|
70
72
|
if (!s) return;
|
|
@@ -73,11 +75,11 @@ function y(e, o = {}) {
|
|
|
73
75
|
r.preventDefault();
|
|
74
76
|
return;
|
|
75
77
|
}
|
|
76
|
-
const m = c[0], d = c[c.length - 1],
|
|
77
|
-
r.shiftKey ? (
|
|
78
|
+
const m = c[0], d = c[c.length - 1], f = document.activeElement;
|
|
79
|
+
r.shiftKey ? (f === m || !s.contains(f)) && (r.preventDefault(), d.focus()) : (f === d || !s.contains(f)) && (r.preventDefault(), m.focus());
|
|
78
80
|
}
|
|
79
|
-
return a.addEventListener("keydown",
|
|
80
|
-
if (a.removeEventListener("keydown",
|
|
81
|
+
return a.addEventListener("keydown", l), () => {
|
|
82
|
+
if (a.removeEventListener("keydown", l), u && n.current) {
|
|
81
83
|
const r = n.current;
|
|
82
84
|
requestAnimationFrame(() => {
|
|
83
85
|
r.isConnected && r.focus();
|
|
@@ -88,34 +90,38 @@ function y(e, o = {}) {
|
|
|
88
90
|
}
|
|
89
91
|
export {
|
|
90
92
|
M as ACCESSIBILITY_STORAGE_KEY,
|
|
93
|
+
Se as REFLOW_ROW_CLASS,
|
|
91
94
|
V as THEME_CLASS,
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
W as THEME_STORAGE_KEY,
|
|
96
|
+
R as ZOOM_DRILLDOWN_TRANSITION_CLASS,
|
|
94
97
|
se as computePriorityLayout,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
H as resolveTheme,
|
|
99
|
+
N as themeClassList,
|
|
100
|
+
Ee as useCheckAnimation,
|
|
101
|
+
q as useControllableState,
|
|
102
|
+
G as useCopyToClipboard,
|
|
103
|
+
g as useCountUp,
|
|
100
104
|
pe as useCountdown,
|
|
101
105
|
j as useDebouncedCallback,
|
|
102
106
|
C as useDebouncedValue,
|
|
103
107
|
Q as useDirection,
|
|
104
108
|
J as useDocumentDirection,
|
|
105
109
|
me as useEdgeResize,
|
|
106
|
-
|
|
110
|
+
Te as useExitTransition,
|
|
111
|
+
L as useFocusTrap,
|
|
107
112
|
te as useIsomorphicLayoutEffect,
|
|
108
|
-
|
|
109
|
-
|
|
113
|
+
Ce as useListReflow,
|
|
114
|
+
P as useLocale,
|
|
115
|
+
v as useMediaQuery,
|
|
110
116
|
oe as useOverflowCollapse,
|
|
111
117
|
$ as usePersistentState,
|
|
112
|
-
|
|
118
|
+
y as usePrefersReducedMotion,
|
|
113
119
|
ne as usePriorityOverflow,
|
|
114
120
|
_ as useScrollToFirstError,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
121
|
+
w as useSigningSession,
|
|
122
|
+
Y as useTheme,
|
|
123
|
+
fe as useVisualViewportPin,
|
|
118
124
|
ie as useWebOtp,
|
|
119
|
-
|
|
125
|
+
F as useZoomDrilldown
|
|
120
126
|
};
|
|
121
127
|
//# sourceMappingURL=index.js.map
|