@alfadocs/ui-kit 1.33.0 → 1.35.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-Bh_CIlc6.js +431 -0
- package/dist/_chunks/appointment-timeline-De-Wqdkw.js +449 -0
- package/dist/_chunks/{appointment-tray-DCk8gHod.js → appointment-tray-4I9wTAi4.js} +2 -2
- package/dist/_chunks/{calendar-workspace-BX-zDyVR.js → calendar-workspace-UywR5gUl.js} +7 -7
- package/dist/_chunks/{care-plan-card-CZW476Kg.js → care-plan-card-DHVhBcvs.js} +3 -3
- package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js → care-plan-entry-card-Dx6IdTcR.js} +2 -2
- package/dist/_chunks/{care-plan-header-B5CBE0zu.js → care-plan-header-UTX5ZD74.js} +2 -2
- 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/{entity-card-DmrgYSEX.js → entity-card-9_62gY7l.js} +4 -4
- 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/{operator-hero-D7-iiFQ9.js → operator-hero-aG_qyn6g.js} +2 -2
- package/dist/_chunks/{payment-request-card-lmKLwsDs.js → payment-request-card-DvEsWEkC.js} +2 -2
- 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/appointment-card.d.ts +36 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +6 -0
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/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/operator-hero/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -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 +10 -0
- package/dist/i18n/locales/ar.js +12 -2
- package/dist/i18n/locales/de.d.ts +10 -0
- package/dist/i18n/locales/de.js +12 -2
- package/dist/i18n/locales/el.d.ts +10 -0
- package/dist/i18n/locales/el.js +12 -2
- package/dist/i18n/locales/en.d.ts +10 -0
- package/dist/i18n/locales/en.js +12 -2
- package/dist/i18n/locales/es.d.ts +10 -0
- package/dist/i18n/locales/es.js +12 -2
- package/dist/i18n/locales/fr.d.ts +10 -0
- package/dist/i18n/locales/fr.js +12 -2
- package/dist/i18n/locales/hi.d.ts +10 -0
- package/dist/i18n/locales/hi.js +12 -2
- package/dist/i18n/locales/it.d.ts +13 -3
- package/dist/i18n/locales/it.js +14 -4
- package/dist/i18n/locales/ja.d.ts +10 -0
- package/dist/i18n/locales/ja.js +12 -2
- package/dist/i18n/locales/nl.d.ts +10 -0
- package/dist/i18n/locales/nl.js +12 -2
- package/dist/i18n/locales/pl.d.ts +10 -0
- package/dist/i18n/locales/pl.js +12 -2
- package/dist/i18n/locales/pt.d.ts +10 -0
- package/dist/i18n/locales/pt.js +12 -2
- package/dist/i18n/locales/ro.d.ts +10 -0
- package/dist/i18n/locales/ro.js +12 -2
- package/dist/i18n/locales/ru.d.ts +10 -0
- package/dist/i18n/locales/ru.js +12 -2
- package/dist/i18n/locales/sq.d.ts +10 -0
- package/dist/i18n/locales/sq.js +12 -2
- package/dist/i18n/locales/sv.d.ts +10 -0
- package/dist/i18n/locales/sv.js +12 -2
- package/dist/i18n/locales/tr.d.ts +10 -0
- package/dist/i18n/locales/tr.js +12 -2
- package/dist/i18n/locales/zh.d.ts +10 -0
- package/dist/i18n/locales/zh.js +12 -2
- package/dist/index.js +919 -916
- package/dist/locales/ar.json +12 -2
- package/dist/locales/de.json +12 -2
- package/dist/locales/el.json +12 -2
- package/dist/locales/en.json +12 -2
- package/dist/locales/es.json +12 -2
- package/dist/locales/fr.json +12 -2
- package/dist/locales/hi.json +12 -2
- package/dist/locales/it.json +14 -4
- package/dist/locales/ja.json +12 -2
- package/dist/locales/nl.json +12 -2
- package/dist/locales/pl.json +12 -2
- package/dist/locales/pt.json +12 -2
- package/dist/locales/ro.json +12 -2
- package/dist/locales/ru.json +12 -2
- package/dist/locales/sq.json +12 -2
- package/dist/locales/sv.json +12 -2
- package/dist/locales/tr.json +12 -2
- package/dist/locales/zh.json +12 -2
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/tokens.css +2 -1
- package/package.json +5 -1
- package/dist/_chunks/appointment-card-D-oj_ugh.js +0 -296
- package/dist/_chunks/appointment-timeline-CymGHyIP.js +0 -403
- 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
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
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface UseCheckAnimationOptions {
|
|
2
|
+
/**
|
|
3
|
+
* The committed state, as the host holds it. The hook shows an optimistic
|
|
4
|
+
* value while a toggle is in flight so the tick draws on the click rather
|
|
5
|
+
* than waiting for the host's re-render.
|
|
6
|
+
*/
|
|
7
|
+
checked: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* How long the tick takes to draw, in milliseconds. Keep it in step with
|
|
10
|
+
* the CSS transition the caller paints — `--duration-normal` (200ms) is
|
|
11
|
+
* the kit's default and the hook's too.
|
|
12
|
+
*/
|
|
13
|
+
durationMs?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Force the reduced-motion branch. Defaults to reading
|
|
16
|
+
* `prefers-reduced-motion: reduce`. Useful in tests and for callers that
|
|
17
|
+
* already track the preference upstream. When reduced, the tick lands
|
|
18
|
+
* immediately and `drawing` never turns true.
|
|
19
|
+
*/
|
|
20
|
+
reduceMotion?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface UseCheckAnimationReturn {
|
|
23
|
+
/** What to render: the optimistic value while a toggle is in flight. */
|
|
24
|
+
checked: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* True only while an unchecked → checked flip is drawing. Reflect it onto
|
|
27
|
+
* the element (e.g. `data-drawing`) to trigger the stroke animation;
|
|
28
|
+
* unticking is deliberately instant, since there is nothing to celebrate.
|
|
29
|
+
*/
|
|
30
|
+
drawing: boolean;
|
|
31
|
+
/** The effective duration — 0 under reduced motion. */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
/**
|
|
34
|
+
* Flip the box. Returns the value it flipped to, so the caller can pass it
|
|
35
|
+
* straight to its own commit callback.
|
|
36
|
+
*/
|
|
37
|
+
toggle: () => boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Drives an animated tick for a checkbox whose state lives with the host.
|
|
41
|
+
*
|
|
42
|
+
* A checkbox backed by host state cannot animate on click: the tick would
|
|
43
|
+
* wait for the round trip, and when the row is about to leave the list the
|
|
44
|
+
* host may never send the new value back at all. This hook holds an
|
|
45
|
+
* optimistic value for the length of the animation so the tick draws
|
|
46
|
+
* immediately, then defers to the host once its value agrees.
|
|
47
|
+
*
|
|
48
|
+
* The hook owns the timing only. Paint the tick in CSS — a
|
|
49
|
+
* `stroke-dashoffset` transition keyed off `drawing` — so the animation
|
|
50
|
+
* honours the `--animation-duration` token in the accessible theme.
|
|
51
|
+
*/
|
|
52
|
+
export declare function useCheckAnimation({ checked, durationMs, reduceMotion, }: UseCheckAnimationOptions): UseCheckAnimationReturn;
|
|
53
|
+
//# sourceMappingURL=use-check-animation.d.ts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface UseExitTransitionOptions {
|
|
2
|
+
/**
|
|
3
|
+
* How long the exit takes, in milliseconds. Keep it in step with the CSS
|
|
4
|
+
* transition the caller paints — `--duration-normal` (200ms) is the kit's
|
|
5
|
+
* default and the hook's too.
|
|
6
|
+
*/
|
|
7
|
+
durationMs?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Hold this long before the exit begins. The row is not reported as
|
|
10
|
+
* leaving until it elapses, so an animation already playing on the row (a
|
|
11
|
+
* tick drawing in) finishes before the fade starts rather than sharing it.
|
|
12
|
+
* Default 0.
|
|
13
|
+
*/
|
|
14
|
+
delayMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Force the reduced-motion branch. Defaults to reading
|
|
17
|
+
* `prefers-reduced-motion: reduce`. When reduced, `leave` commits
|
|
18
|
+
* synchronously and nothing is ever reported as leaving.
|
|
19
|
+
*/
|
|
20
|
+
reduceMotion?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface UseExitTransitionReturn {
|
|
23
|
+
/** Whether this id is mid-exit. Reflect it onto the row (e.g. `data-leaving`). */
|
|
24
|
+
isLeaving: (id: string) => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Start `id` leaving, then run `commit` once the exit has played. Calling
|
|
27
|
+
* it twice for the same id is a no-op, so a double click cannot remove a
|
|
28
|
+
* row twice. Under reduced motion `commit` runs immediately.
|
|
29
|
+
*/
|
|
30
|
+
leave: (id: string, commit: () => void) => void;
|
|
31
|
+
/** The effective total delay + duration — 0 under reduced motion. */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Holds a row on screen long enough to fade out before the host removes it.
|
|
36
|
+
*
|
|
37
|
+
* A list that drops an item the instant it is actioned gives no sense of
|
|
38
|
+
* where the item went. This hook inverts the order: mark the row as leaving,
|
|
39
|
+
* let CSS fade it, and only then tell the host to drop it — so the removal
|
|
40
|
+
* the user sees and the state change agree.
|
|
41
|
+
*
|
|
42
|
+
* The hook owns the timing only. Paint the exit in CSS, keyed off
|
|
43
|
+
* `isLeaving`, so it honours the `--animation-duration` token in the
|
|
44
|
+
* accessible theme. Pending exits are cancelled on unmount, so a commit
|
|
45
|
+
* never fires against a list that has gone away.
|
|
46
|
+
*/
|
|
47
|
+
export declare function useExitTransition({ durationMs, delayMs, reduceMotion, }?: UseExitTransitionOptions): UseExitTransitionReturn;
|
|
48
|
+
//# sourceMappingURL=use-exit-transition.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export interface UseListReflowOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Changes to this string trigger a measurement pass — pass the rendered
|
|
5
|
+
* ids in order (`items.map((i) => i.id).join()`), so the hook runs when
|
|
6
|
+
* the list is reordered, added to or removed from, and not on every
|
|
7
|
+
* unrelated re-render.
|
|
8
|
+
*/
|
|
9
|
+
key: string;
|
|
10
|
+
/**
|
|
11
|
+
* How long a row takes to travel to its new place, in milliseconds.
|
|
12
|
+
* Matches the CSS the row paints via {@link REFLOW_ROW_CLASS}.
|
|
13
|
+
*/
|
|
14
|
+
durationMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Force the reduced-motion branch. Defaults to reading
|
|
17
|
+
* `prefers-reduced-motion: reduce`. When reduced, rows jump as before.
|
|
18
|
+
*/
|
|
19
|
+
reduceMotion?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface UseListReflowReturn<T extends HTMLElement> {
|
|
22
|
+
/** Attach to the element that contains the tracked rows. */
|
|
23
|
+
containerRef: RefObject<T | null>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Every tracked row must carry this class and a `data-reflow-id`. It parks
|
|
27
|
+
* the row at the offset the hook sets and animates it back to zero; the
|
|
28
|
+
* snap frame that sets the offset is exempted, so the jump itself is never
|
|
29
|
+
* animated.
|
|
30
|
+
*/
|
|
31
|
+
export declare const REFLOW_ROW_CLASS: string;
|
|
32
|
+
/**
|
|
33
|
+
* Slides the surviving rows of a list to their new positions instead of
|
|
34
|
+
* letting them snap.
|
|
35
|
+
*
|
|
36
|
+
* When a row is removed the rows below it jump up by its height, and the eye
|
|
37
|
+
* loses its place — the list looks like it re-rendered rather than like one
|
|
38
|
+
* row left. This runs the standard invert-and-play: it records where each
|
|
39
|
+
* row sat, and after the DOM changes it puts each moved row back where it
|
|
40
|
+
* was and releases it, so the gap closes as a movement.
|
|
41
|
+
*
|
|
42
|
+
* Measurement happens before paint, so no intermediate frame is shown. Rows
|
|
43
|
+
* that are new (no previous position) are left alone — this animates travel,
|
|
44
|
+
* not arrival.
|
|
45
|
+
*/
|
|
46
|
+
export declare function useListReflow<T extends HTMLElement>({ key, durationMs, reduceMotion, }: UseListReflowOptions): UseListReflowReturn<T>;
|
|
47
|
+
//# sourceMappingURL=use-list-reflow.d.ts.map
|
package/dist/host-compat.css
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
/* ───────────────────────────────────────────────────────────────────────
|
|
43
43
|
SECTION A — design tokens (custom properties). UNLAYERED.
|
|
44
|
-
|
|
44
|
+
96 declarations across 73 token names and 26 selectors.
|
|
45
45
|
|
|
46
46
|
Unlayered normal declarations outrank every layered one regardless of
|
|
47
47
|
source order and specificity, so this block beats the kit's own
|
|
@@ -199,10 +199,13 @@
|
|
|
199
199
|
.redactor-theme-alfadocs[data-min-height=lg] {
|
|
200
200
|
--rich-text-editor-min-block-size:384px;
|
|
201
201
|
}
|
|
202
|
+
.redactor-theme-alfadocs[data-min-height=fill] {
|
|
203
|
+
--rich-text-editor-min-block-size:max(128px, 30dvh);
|
|
204
|
+
}
|
|
202
205
|
|
|
203
206
|
/* ───────────────────────────────────────────────────────────────────────
|
|
204
207
|
SECTION B — non-token declarations. ORIGINAL LAYER PRESERVED.
|
|
205
|
-
|
|
208
|
+
133 declarations across 129 rules.
|
|
206
209
|
|
|
207
210
|
Kit-authored arbitrary-value utilities (`ds:w-[20rem]`) and the
|
|
208
211
|
vendored AG Grid rules. These set real properties on real elements,
|
|
@@ -463,6 +466,9 @@
|
|
|
463
466
|
.ds\:min-w-\[32rem\] {
|
|
464
467
|
min-width:512px;
|
|
465
468
|
}
|
|
469
|
+
.ds\:min-w-\[36rem\] {
|
|
470
|
+
min-width:576px;
|
|
471
|
+
}
|
|
466
472
|
.ds\:auto-rows-\[14rem\] {
|
|
467
473
|
grid-auto-rows:224px;
|
|
468
474
|
}
|
|
@@ -2119,10 +2119,15 @@ export declare const arUi: {
|
|
|
2119
2119
|
readonly duration_many: "{{count}} min";
|
|
2120
2120
|
readonly duration_other: "{{count}} min";
|
|
2121
2121
|
readonly firstVisit: "First visit";
|
|
2122
|
+
readonly firstVisitUnknown: "首次就诊?";
|
|
2123
|
+
readonly hasBookingNote: "预约备注";
|
|
2124
|
+
readonly recurring: "周期性";
|
|
2125
|
+
readonly signing: "{{complete}}/{{required}} 已签";
|
|
2122
2126
|
readonly treatmentWithElements: "{{care}} ({{elements}})";
|
|
2123
2127
|
readonly flag: {
|
|
2124
2128
|
readonly bookedOnline: "Booked online";
|
|
2125
2129
|
readonly highlightedAnamnesis: "Anamnesis flag";
|
|
2130
|
+
readonly billable: "可计费";
|
|
2126
2131
|
};
|
|
2127
2132
|
readonly state: {
|
|
2128
2133
|
readonly absent: "Absent";
|
|
@@ -3957,6 +3962,11 @@ export declare const arUi: {
|
|
|
3957
3962
|
readonly loadError: "تعذّر تحميل الملاحظات.";
|
|
3958
3963
|
readonly retry: "إعادة المحاولة";
|
|
3959
3964
|
readonly addFailed: "تعذّر حفظ الملاحظة.";
|
|
3965
|
+
readonly delete: "حذف ملاحظة";
|
|
3966
|
+
readonly deleteConfirmTitle: "حذف هذه الملاحظة؟";
|
|
3967
|
+
readonly deleteConfirmBody: "سيتم إزالة الملاحظة من السجل.";
|
|
3968
|
+
readonly deleteConfirmAction: "حذف";
|
|
3969
|
+
readonly deleteConfirmCancel: "إلغاء";
|
|
3960
3970
|
};
|
|
3961
3971
|
readonly toolRail: {
|
|
3962
3972
|
readonly reorderInstructions: "إعادة ترتيب {{tool}}. اضغط Alt + أعلى أو Alt + أسفل للنقل.";
|
package/dist/i18n/locales/ar.js
CHANGED
|
@@ -2106,10 +2106,15 @@ const e = {
|
|
|
2106
2106
|
duration_many: "{{count}} min",
|
|
2107
2107
|
duration_other: "{{count}} min",
|
|
2108
2108
|
firstVisit: "First visit",
|
|
2109
|
+
firstVisitUnknown: "首次就诊?",
|
|
2110
|
+
hasBookingNote: "预约备注",
|
|
2111
|
+
recurring: "周期性",
|
|
2112
|
+
signing: "{{complete}}/{{required}} 已签",
|
|
2109
2113
|
treatmentWithElements: "{{care}} ({{elements}})",
|
|
2110
2114
|
flag: {
|
|
2111
2115
|
bookedOnline: "Booked online",
|
|
2112
|
-
highlightedAnamnesis: "Anamnesis flag"
|
|
2116
|
+
highlightedAnamnesis: "Anamnesis flag",
|
|
2117
|
+
billable: "可计费"
|
|
2113
2118
|
},
|
|
2114
2119
|
state: {
|
|
2115
2120
|
absent: "Absent",
|
|
@@ -3920,7 +3925,12 @@ const e = {
|
|
|
3920
3925
|
loading: "جارٍ تحميل الملاحظات…",
|
|
3921
3926
|
loadError: "تعذّر تحميل الملاحظات.",
|
|
3922
3927
|
retry: "إعادة المحاولة",
|
|
3923
|
-
addFailed: "تعذّر حفظ الملاحظة."
|
|
3928
|
+
addFailed: "تعذّر حفظ الملاحظة.",
|
|
3929
|
+
delete: "حذف ملاحظة",
|
|
3930
|
+
deleteConfirmTitle: "حذف هذه الملاحظة؟",
|
|
3931
|
+
deleteConfirmBody: "سيتم إزالة الملاحظة من السجل.",
|
|
3932
|
+
deleteConfirmAction: "حذف",
|
|
3933
|
+
deleteConfirmCancel: "إلغاء"
|
|
3924
3934
|
},
|
|
3925
3935
|
toolRail: {
|
|
3926
3936
|
reorderInstructions: "إعادة ترتيب {{tool}}. اضغط Alt + أعلى أو Alt + أسفل للنقل.",
|
|
@@ -2119,10 +2119,15 @@ export declare const deUi: {
|
|
|
2119
2119
|
readonly duration_many: "{{count}} min";
|
|
2120
2120
|
readonly duration_other: "{{count}} min";
|
|
2121
2121
|
readonly firstVisit: "First visit";
|
|
2122
|
+
readonly firstVisitUnknown: "首次就诊?";
|
|
2123
|
+
readonly hasBookingNote: "预约备注";
|
|
2124
|
+
readonly recurring: "周期性";
|
|
2125
|
+
readonly signing: "{{complete}}/{{required}} 已签";
|
|
2122
2126
|
readonly treatmentWithElements: "{{care}} ({{elements}})";
|
|
2123
2127
|
readonly flag: {
|
|
2124
2128
|
readonly bookedOnline: "Booked online";
|
|
2125
2129
|
readonly highlightedAnamnesis: "Anamnesis flag";
|
|
2130
|
+
readonly billable: "可计费";
|
|
2126
2131
|
};
|
|
2127
2132
|
readonly state: {
|
|
2128
2133
|
readonly absent: "Absent";
|
|
@@ -3957,6 +3962,11 @@ export declare const deUi: {
|
|
|
3957
3962
|
readonly loadError: "Die Notizen konnten nicht geladen werden.";
|
|
3958
3963
|
readonly retry: "Erneut versuchen";
|
|
3959
3964
|
readonly addFailed: "Die Notiz konnte nicht gespeichert werden.";
|
|
3965
|
+
readonly delete: "Notiz löschen";
|
|
3966
|
+
readonly deleteConfirmTitle: "Diese Notiz löschen?";
|
|
3967
|
+
readonly deleteConfirmBody: "Die Notiz wird aus der Akte entfernt.";
|
|
3968
|
+
readonly deleteConfirmAction: "Löschen";
|
|
3969
|
+
readonly deleteConfirmCancel: "Abbrechen";
|
|
3960
3970
|
};
|
|
3961
3971
|
readonly toolRail: {
|
|
3962
3972
|
readonly reorderInstructions: "{{tool}} neu anordnen. Drücken Sie Alt + Oben oder Alt + Unten, um zu verschieben.";
|
package/dist/i18n/locales/de.js
CHANGED
|
@@ -2105,10 +2105,15 @@ const e = {
|
|
|
2105
2105
|
duration_many: "{{count}} min",
|
|
2106
2106
|
duration_other: "{{count}} min",
|
|
2107
2107
|
firstVisit: "First visit",
|
|
2108
|
+
firstVisitUnknown: "首次就诊?",
|
|
2109
|
+
hasBookingNote: "预约备注",
|
|
2110
|
+
recurring: "周期性",
|
|
2111
|
+
signing: "{{complete}}/{{required}} 已签",
|
|
2108
2112
|
treatmentWithElements: "{{care}} ({{elements}})",
|
|
2109
2113
|
flag: {
|
|
2110
2114
|
bookedOnline: "Booked online",
|
|
2111
|
-
highlightedAnamnesis: "Anamnesis flag"
|
|
2115
|
+
highlightedAnamnesis: "Anamnesis flag",
|
|
2116
|
+
billable: "可计费"
|
|
2112
2117
|
},
|
|
2113
2118
|
state: {
|
|
2114
2119
|
absent: "Absent",
|
|
@@ -3923,7 +3928,12 @@ const e = {
|
|
|
3923
3928
|
loading: "Notizen werden geladen …",
|
|
3924
3929
|
loadError: "Die Notizen konnten nicht geladen werden.",
|
|
3925
3930
|
retry: "Erneut versuchen",
|
|
3926
|
-
addFailed: "Die Notiz konnte nicht gespeichert werden."
|
|
3931
|
+
addFailed: "Die Notiz konnte nicht gespeichert werden.",
|
|
3932
|
+
delete: "Notiz löschen",
|
|
3933
|
+
deleteConfirmTitle: "Diese Notiz löschen?",
|
|
3934
|
+
deleteConfirmBody: "Die Notiz wird aus der Akte entfernt.",
|
|
3935
|
+
deleteConfirmAction: "Löschen",
|
|
3936
|
+
deleteConfirmCancel: "Abbrechen"
|
|
3927
3937
|
},
|
|
3928
3938
|
toolRail: {
|
|
3929
3939
|
reorderInstructions: "{{tool}} neu anordnen. Drücken Sie Alt + Oben oder Alt + Unten, um zu verschieben.",
|
|
@@ -2116,10 +2116,15 @@ export declare const elUi: {
|
|
|
2116
2116
|
readonly duration_many: "{{count}} min";
|
|
2117
2117
|
readonly duration_other: "{{count}} min";
|
|
2118
2118
|
readonly firstVisit: "First visit";
|
|
2119
|
+
readonly firstVisitUnknown: "首次就诊?";
|
|
2120
|
+
readonly hasBookingNote: "预约备注";
|
|
2121
|
+
readonly recurring: "周期性";
|
|
2122
|
+
readonly signing: "{{complete}}/{{required}} 已签";
|
|
2119
2123
|
readonly treatmentWithElements: "{{care}} ({{elements}})";
|
|
2120
2124
|
readonly flag: {
|
|
2121
2125
|
readonly bookedOnline: "Booked online";
|
|
2122
2126
|
readonly highlightedAnamnesis: "Anamnesis flag";
|
|
2127
|
+
readonly billable: "可计费";
|
|
2123
2128
|
};
|
|
2124
2129
|
readonly state: {
|
|
2125
2130
|
readonly absent: "Absent";
|
|
@@ -3954,6 +3959,11 @@ export declare const elUi: {
|
|
|
3954
3959
|
readonly loadError: "Δεν ήταν δυνατή η φόρτωση των σημειώσεων.";
|
|
3955
3960
|
readonly retry: "Δοκιμάστε ξανά";
|
|
3956
3961
|
readonly addFailed: "Δεν ήταν δυνατή η αποθήκευση της σημείωσης.";
|
|
3962
|
+
readonly delete: "Διαγραφή σημείωσης";
|
|
3963
|
+
readonly deleteConfirmTitle: "Διαγραφή αυτής της σημείωσης;";
|
|
3964
|
+
readonly deleteConfirmBody: "Η σημείωση θα αφαιρεθεί από το αρχείο.";
|
|
3965
|
+
readonly deleteConfirmAction: "Διαγραφή";
|
|
3966
|
+
readonly deleteConfirmCancel: "Άκυρο";
|
|
3957
3967
|
};
|
|
3958
3968
|
readonly toolRail: {
|
|
3959
3969
|
readonly reorderInstructions: "Αναδιάταξη {{tool}}. Πατήστε Alt + Πάνω ή Alt + Κάτω για μετακίνηση.";
|
package/dist/i18n/locales/el.js
CHANGED
|
@@ -2106,10 +2106,15 @@ const e = {
|
|
|
2106
2106
|
duration_many: "{{count}} min",
|
|
2107
2107
|
duration_other: "{{count}} min",
|
|
2108
2108
|
firstVisit: "First visit",
|
|
2109
|
+
firstVisitUnknown: "首次就诊?",
|
|
2110
|
+
hasBookingNote: "预约备注",
|
|
2111
|
+
recurring: "周期性",
|
|
2112
|
+
signing: "{{complete}}/{{required}} 已签",
|
|
2109
2113
|
treatmentWithElements: "{{care}} ({{elements}})",
|
|
2110
2114
|
flag: {
|
|
2111
2115
|
bookedOnline: "Booked online",
|
|
2112
|
-
highlightedAnamnesis: "Anamnesis flag"
|
|
2116
|
+
highlightedAnamnesis: "Anamnesis flag",
|
|
2117
|
+
billable: "可计费"
|
|
2113
2118
|
},
|
|
2114
2119
|
state: {
|
|
2115
2120
|
absent: "Absent",
|
|
@@ -3927,7 +3932,12 @@ const e = {
|
|
|
3927
3932
|
loading: "Φόρτωση σημειώσεων…",
|
|
3928
3933
|
loadError: "Δεν ήταν δυνατή η φόρτωση των σημειώσεων.",
|
|
3929
3934
|
retry: "Δοκιμάστε ξανά",
|
|
3930
|
-
addFailed: "Δεν ήταν δυνατή η αποθήκευση της σημείωσης."
|
|
3935
|
+
addFailed: "Δεν ήταν δυνατή η αποθήκευση της σημείωσης.",
|
|
3936
|
+
delete: "Διαγραφή σημείωσης",
|
|
3937
|
+
deleteConfirmTitle: "Διαγραφή αυτής της σημείωσης;",
|
|
3938
|
+
deleteConfirmBody: "Η σημείωση θα αφαιρεθεί από το αρχείο.",
|
|
3939
|
+
deleteConfirmAction: "Διαγραφή",
|
|
3940
|
+
deleteConfirmCancel: "Άκυρο"
|
|
3931
3941
|
},
|
|
3932
3942
|
toolRail: {
|
|
3933
3943
|
reorderInstructions: "Αναδιάταξη {{tool}}. Πατήστε Alt + Πάνω ή Alt + Κάτω για μετακίνηση.",
|
|
@@ -2184,10 +2184,15 @@ export declare const enUi: {
|
|
|
2184
2184
|
readonly duration_many: "{{count}} min";
|
|
2185
2185
|
readonly duration_other: "{{count}} min";
|
|
2186
2186
|
readonly firstVisit: "First visit";
|
|
2187
|
+
readonly firstVisitUnknown: "First visit?";
|
|
2188
|
+
readonly hasBookingNote: "Booking note";
|
|
2189
|
+
readonly recurring: "Recurring";
|
|
2190
|
+
readonly signing: "{{complete}}/{{required}} signed";
|
|
2187
2191
|
readonly treatmentWithElements: "{{care}} ({{elements}})";
|
|
2188
2192
|
readonly flag: {
|
|
2189
2193
|
readonly bookedOnline: "Booked online";
|
|
2190
2194
|
readonly highlightedAnamnesis: "Anamnesis flag";
|
|
2195
|
+
readonly billable: "Billable";
|
|
2191
2196
|
};
|
|
2192
2197
|
readonly state: {
|
|
2193
2198
|
readonly absent: "Absent";
|
|
@@ -3965,6 +3970,11 @@ export declare const enUi: {
|
|
|
3965
3970
|
readonly loadError: "The notes could not be loaded.";
|
|
3966
3971
|
readonly retry: "Try again";
|
|
3967
3972
|
readonly addFailed: "The note could not be saved.";
|
|
3973
|
+
readonly delete: "Delete note";
|
|
3974
|
+
readonly deleteConfirmTitle: "Delete this note?";
|
|
3975
|
+
readonly deleteConfirmBody: "The note will be removed from the record.";
|
|
3976
|
+
readonly deleteConfirmAction: "Delete";
|
|
3977
|
+
readonly deleteConfirmCancel: "Cancel";
|
|
3968
3978
|
};
|
|
3969
3979
|
readonly toolRail: {
|
|
3970
3980
|
readonly reorderInstructions: "Reorder {{tool}}. Press Alt + Up or Alt + Down to move.";
|
package/dist/i18n/locales/en.js
CHANGED
|
@@ -2167,10 +2167,15 @@ const e = {
|
|
|
2167
2167
|
duration_many: "{{count}} min",
|
|
2168
2168
|
duration_other: "{{count}} min",
|
|
2169
2169
|
firstVisit: "First visit",
|
|
2170
|
+
firstVisitUnknown: "First visit?",
|
|
2171
|
+
hasBookingNote: "Booking note",
|
|
2172
|
+
recurring: "Recurring",
|
|
2173
|
+
signing: "{{complete}}/{{required}} signed",
|
|
2170
2174
|
treatmentWithElements: "{{care}} ({{elements}})",
|
|
2171
2175
|
flag: {
|
|
2172
2176
|
bookedOnline: "Booked online",
|
|
2173
|
-
highlightedAnamnesis: "Anamnesis flag"
|
|
2177
|
+
highlightedAnamnesis: "Anamnesis flag",
|
|
2178
|
+
billable: "Billable"
|
|
2174
2179
|
},
|
|
2175
2180
|
state: {
|
|
2176
2181
|
absent: "Absent",
|
|
@@ -3947,7 +3952,12 @@ const e = {
|
|
|
3947
3952
|
loading: "Loading notes…",
|
|
3948
3953
|
loadError: "The notes could not be loaded.",
|
|
3949
3954
|
retry: "Try again",
|
|
3950
|
-
addFailed: "The note could not be saved."
|
|
3955
|
+
addFailed: "The note could not be saved.",
|
|
3956
|
+
delete: "Delete note",
|
|
3957
|
+
deleteConfirmTitle: "Delete this note?",
|
|
3958
|
+
deleteConfirmBody: "The note will be removed from the record.",
|
|
3959
|
+
deleteConfirmAction: "Delete",
|
|
3960
|
+
deleteConfirmCancel: "Cancel"
|
|
3951
3961
|
},
|
|
3952
3962
|
toolRail: {
|
|
3953
3963
|
reorderInstructions: "Reorder {{tool}}. Press Alt + Up or Alt + Down to move.",
|
|
@@ -2116,10 +2116,15 @@ export declare const esUi: {
|
|
|
2116
2116
|
readonly duration_many: "{{count}} min";
|
|
2117
2117
|
readonly duration_other: "{{count}} min";
|
|
2118
2118
|
readonly firstVisit: "First visit";
|
|
2119
|
+
readonly firstVisitUnknown: "首次就诊?";
|
|
2120
|
+
readonly hasBookingNote: "预约备注";
|
|
2121
|
+
readonly recurring: "周期性";
|
|
2122
|
+
readonly signing: "{{complete}}/{{required}} 已签";
|
|
2119
2123
|
readonly treatmentWithElements: "{{care}} ({{elements}})";
|
|
2120
2124
|
readonly flag: {
|
|
2121
2125
|
readonly bookedOnline: "Booked online";
|
|
2122
2126
|
readonly highlightedAnamnesis: "Anamnesis flag";
|
|
2127
|
+
readonly billable: "可计费";
|
|
2123
2128
|
};
|
|
2124
2129
|
readonly state: {
|
|
2125
2130
|
readonly absent: "Absent";
|
|
@@ -3954,6 +3959,11 @@ export declare const esUi: {
|
|
|
3954
3959
|
readonly loadError: "No se pudieron cargar las notas.";
|
|
3955
3960
|
readonly retry: "Reintentar";
|
|
3956
3961
|
readonly addFailed: "No se pudo guardar la nota.";
|
|
3962
|
+
readonly delete: "Eliminar nota";
|
|
3963
|
+
readonly deleteConfirmTitle: "¿Eliminar esta nota?";
|
|
3964
|
+
readonly deleteConfirmBody: "La nota se eliminará del registro.";
|
|
3965
|
+
readonly deleteConfirmAction: "Eliminar";
|
|
3966
|
+
readonly deleteConfirmCancel: "Cancelar";
|
|
3957
3967
|
};
|
|
3958
3968
|
readonly toolRail: {
|
|
3959
3969
|
readonly reorderInstructions: "Reordenar {{tool}}. Pulse Alt + Arriba o Alt + Abajo para mover.";
|
package/dist/i18n/locales/es.js
CHANGED
|
@@ -2105,10 +2105,15 @@ const e = {
|
|
|
2105
2105
|
duration_many: "{{count}} min",
|
|
2106
2106
|
duration_other: "{{count}} min",
|
|
2107
2107
|
firstVisit: "First visit",
|
|
2108
|
+
firstVisitUnknown: "首次就诊?",
|
|
2109
|
+
hasBookingNote: "预约备注",
|
|
2110
|
+
recurring: "周期性",
|
|
2111
|
+
signing: "{{complete}}/{{required}} 已签",
|
|
2108
2112
|
treatmentWithElements: "{{care}} ({{elements}})",
|
|
2109
2113
|
flag: {
|
|
2110
2114
|
bookedOnline: "Booked online",
|
|
2111
|
-
highlightedAnamnesis: "Anamnesis flag"
|
|
2115
|
+
highlightedAnamnesis: "Anamnesis flag",
|
|
2116
|
+
billable: "可计费"
|
|
2112
2117
|
},
|
|
2113
2118
|
state: {
|
|
2114
2119
|
absent: "Absent",
|
|
@@ -3916,7 +3921,12 @@ const e = {
|
|
|
3916
3921
|
loading: "Cargando notas…",
|
|
3917
3922
|
loadError: "No se pudieron cargar las notas.",
|
|
3918
3923
|
retry: "Reintentar",
|
|
3919
|
-
addFailed: "No se pudo guardar la nota."
|
|
3924
|
+
addFailed: "No se pudo guardar la nota.",
|
|
3925
|
+
delete: "Eliminar nota",
|
|
3926
|
+
deleteConfirmTitle: "¿Eliminar esta nota?",
|
|
3927
|
+
deleteConfirmBody: "La nota se eliminará del registro.",
|
|
3928
|
+
deleteConfirmAction: "Eliminar",
|
|
3929
|
+
deleteConfirmCancel: "Cancelar"
|
|
3920
3930
|
},
|
|
3921
3931
|
toolRail: {
|
|
3922
3932
|
reorderInstructions: "Reordenar {{tool}}. Pulse Alt + Arriba o Alt + Abajo para mover.",
|