@alfadocs/ui-kit 1.55.0 → 1.56.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/{alia-sidebar-DS0b54Mv.js → alia-sidebar-DOei4Iyu.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-Dtw5Hpg4.js → anamnesis-summary-rows-CQ-XGr0T.js} +3 -3
- package/dist/_chunks/{balance-badge-cell-zP-iN-Pd.js → balance-badge-cell-DmDcXw0c.js} +3 -3
- package/dist/_chunks/{bmi-calculator-DTZhRhXe.js → bmi-calculator-C0UTxB7R.js} +2 -2
- package/dist/_chunks/{booking-uZO10TLK.js → booking-WyNGKPE2.js} +2 -2
- package/dist/_chunks/{breadcrumb-xgVpPH2H.js → breadcrumb-Boan-5n8.js} +39 -39
- package/dist/_chunks/{calculator-dialog-BRjZMWuE.js → calculator-dialog-pCPWta7h.js} +2 -2
- package/dist/_chunks/{calendar-workspace-DVajSkKA.js → calendar-workspace-Du2ryaI-.js} +8 -8
- package/dist/_chunks/{care-plan-header-BeMYMiI7.js → care-plan-header-DUX_SVvF.js} +2 -2
- package/dist/_chunks/chart-HsF1KHbx.js +909 -0
- package/dist/_chunks/{contact-profile-card-C5DbP_X3.js → contact-profile-card-Ci8lBQ6a.js} +2 -2
- package/dist/_chunks/dashboard-grid-DfEY2qci.js +844 -0
- package/dist/_chunks/{data-table-C6T31E33.js → data-table-D8fuhqO1.js} +1 -1
- package/dist/_chunks/{date-range-picker-BOvHwWO5.js → date-range-picker-CtUOI38x.js} +188 -182
- package/dist/_chunks/{dependent-selector-Bet3XAFj.js → dependent-selector-DgaAQc-c.js} +91 -86
- package/dist/_chunks/{dialog-D52AI4nF.js → dialog-CUzbnKLw.js} +86 -69
- package/dist/_chunks/{due-date-calculator-DXDJbUzo.js → due-date-calculator-CSjklbyw.js} +2 -2
- package/dist/_chunks/{file-manager-dIJQUZvq.js → file-manager-Cc_uO8r2.js} +4 -4
- package/dist/_chunks/{freemium-paywall-B6ojVXq7.js → freemium-paywall-DIKuhX8b.js} +90 -86
- package/dist/_chunks/{gestational-age-calculator-BfGpt3du.js → gestational-age-calculator-DqVeJke2.js} +2 -2
- package/dist/_chunks/{heatmap-BARGZZt2.js → heatmap-Gf9r7Tn1.js} +2 -2
- package/dist/_chunks/{help-me-write-templates-B7L3zGsE.js → help-me-write-templates-fV-Apf72.js} +2 -2
- package/dist/_chunks/{key-value-pair-Ax8IJr1M.js → key-value-pair-BNNITp6S.js} +25 -19
- package/dist/_chunks/{kit-extensions-C9-v8Dih.js → kit-extensions-Byfxy6sy.js} +4 -4
- package/dist/_chunks/{link-cell-renderer-DlBVPMTi.js → link-cell-renderer-TeJNvymP.js} +2 -2
- package/dist/_chunks/non-modal-tab-exit-D2Bd93Bq.js +65 -0
- package/dist/_chunks/{notes-panel-I8ntrrUW.js → notes-panel-DceRhthG.js} +3 -3
- package/dist/_chunks/{patient-summary-card-3dspc2tR.js → patient-summary-card-9nQWTQf6.js} +7 -3
- package/dist/_chunks/{payment-automation-upsell-DEUfM7EU.js → payment-automation-upsell-DiHovmUL.js} +2 -2
- package/dist/_chunks/{payment-request-card-DAGqh9Yx.js → payment-request-card-CwDpwXUC.js} +2 -2
- package/dist/_chunks/{periodontal-chart-BqwLxy2m.js → periodontal-chart-DD5C0M3l.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-CWZ1YM1h.js → periodontal-chart-card-CxdXvsPU.js} +2 -2
- package/dist/_chunks/{periodontal-diagnosis-C9IuvLId.js → periodontal-diagnosis-D-PJv7KS.js} +2 -2
- package/dist/_chunks/{position-grid-D2D5_Tze.js → position-grid-CBB88EaH.js} +38 -36
- package/dist/_chunks/{practice-results-DxOgbPDy.js → practice-results-Dhbo-fc_.js} +2 -2
- package/dist/_chunks/{pregnancy-dating-R3q5n1Wh.js → pregnancy-dating-Bfu0Cq4H.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-DwmNklDU.js → pregnancy-weight-gain-CUUrBTBo.js} +2 -2
- package/dist/_chunks/{public-header.agent-BWusjxY8.js → public-header.agent-pr2hyiND.js} +2 -2
- package/dist/_chunks/{radio-group-BT97ty7o.js → radio-group-DicxWJXP.js} +111 -106
- package/dist/_chunks/{radiograph-panel.agent-BA90I3Mu.js → radiograph-panel.agent-DkUokbEa.js} +3 -3
- package/dist/_chunks/{rich-text-editor-Blp4smUr.js → rich-text-editor-CkFfmA3v.js} +2 -2
- package/dist/_chunks/{sheet-CNFW8mYZ.js → sheet-C7SwIxwB.js} +95 -79
- package/dist/_chunks/{signature-request-rgMsgo-C.js → signature-request-DhbpB9N9.js} +2 -2
- package/dist/_chunks/{stat-51CDL4au.js → stat-DmjGfXND.js} +117 -108
- package/dist/_chunks/{stepper-accordion-D7lnBGh2.js → stepper-accordion-DDTSOUHc.js} +17 -6
- package/dist/_chunks/{task-editor-Ctxsa1BY.js → task-editor-ByyRu29Y.js} +3 -3
- package/dist/_chunks/{use-appointment-details-read-DinTrRIW.js → use-appointment-details-read-JsDM48tf.js} +2 -2
- package/dist/_chunks/use-select-on-arrow-Cr4iBuW5.js +26 -0
- package/dist/_chunks/{widget-picker-D8RiWrJd.js → widget-picker-DXYBMTfe.js} +2 -2
- package/dist/_chunks/{workflow-map-D3mezmGB.js → workflow-map-Demlpy39.js} +2 -2
- package/dist/agent-catalog.json +27 -10
- package/dist/agent-i18n/en.json +8 -7
- package/dist/components/_shared/non-modal-tab-exit.d.ts +8 -0
- package/dist/components/_shared/use-apex-chart-semantics.d.ts +6 -0
- package/dist/components/_shared/use-select-on-arrow.d.ts +20 -0
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/calculator-dialog/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/chart/chart.d.ts +10 -5
- package/dist/components/chart/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/dashboard-grid/dashboard-grid-engine.d.ts +22 -0
- package/dist/components/dashboard-grid/dashboard-grid.d.ts +48 -4
- package/dist/components/dashboard-grid/index.js +1 -1
- package/dist/components/data-table/index.js +2 -2
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/dependent-selector/index.js +1 -1
- package/dist/components/dialog/dialog.d.ts +2 -2
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/heatmap/index.js +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/periodontal-chart/index.js +1 -1
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/periodontal-diagnosis/index.js +1 -1
- package/dist/components/position-grid/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/radio-group/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +2 -2
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sheet/sheet.d.ts +2 -2
- package/dist/components/stat/index.d.ts +1 -1
- package/dist/components/stat/index.js +1 -1
- package/dist/components/stat/stat.d.ts +9 -0
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/task-editor/index.js +1 -1
- package/dist/components/widget-picker/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/host-legacy.css +13 -2
- package/dist/i18n/locales/ar.d.ts +3 -2
- package/dist/i18n/locales/ar.js +5 -4
- package/dist/i18n/locales/de.d.ts +3 -2
- package/dist/i18n/locales/de.js +5 -4
- package/dist/i18n/locales/el.d.ts +3 -2
- package/dist/i18n/locales/el.js +5 -4
- package/dist/i18n/locales/en.d.ts +3 -2
- package/dist/i18n/locales/en.js +5 -4
- package/dist/i18n/locales/es.d.ts +3 -2
- package/dist/i18n/locales/es.js +5 -4
- package/dist/i18n/locales/fr.d.ts +3 -2
- package/dist/i18n/locales/fr.js +5 -4
- package/dist/i18n/locales/hi.d.ts +3 -2
- package/dist/i18n/locales/hi.js +5 -4
- package/dist/i18n/locales/it.d.ts +3 -2
- package/dist/i18n/locales/it.js +5 -4
- package/dist/i18n/locales/ja.d.ts +3 -2
- package/dist/i18n/locales/ja.js +5 -4
- package/dist/i18n/locales/nl.d.ts +3 -2
- package/dist/i18n/locales/nl.js +5 -4
- package/dist/i18n/locales/pl.d.ts +3 -2
- package/dist/i18n/locales/pl.js +5 -4
- package/dist/i18n/locales/pt.d.ts +3 -2
- package/dist/i18n/locales/pt.js +5 -4
- package/dist/i18n/locales/ro.d.ts +3 -2
- package/dist/i18n/locales/ro.js +5 -4
- package/dist/i18n/locales/ru.d.ts +3 -2
- package/dist/i18n/locales/ru.js +5 -4
- package/dist/i18n/locales/sq.d.ts +3 -2
- package/dist/i18n/locales/sq.js +5 -4
- package/dist/i18n/locales/sv.d.ts +3 -2
- package/dist/i18n/locales/sv.js +5 -4
- package/dist/i18n/locales/tr.d.ts +3 -2
- package/dist/i18n/locales/tr.js +5 -4
- package/dist/i18n/locales/zh.d.ts +3 -2
- package/dist/i18n/locales/zh.js +5 -4
- package/dist/index.js +48 -48
- package/dist/locales/ar.json +5 -4
- package/dist/locales/de.json +5 -4
- package/dist/locales/el.json +5 -4
- package/dist/locales/en.json +5 -4
- package/dist/locales/es.json +5 -4
- package/dist/locales/fr.json +5 -4
- package/dist/locales/hi.json +5 -4
- package/dist/locales/it.json +5 -4
- package/dist/locales/ja.json +5 -4
- package/dist/locales/nl.json +5 -4
- package/dist/locales/pl.json +5 -4
- package/dist/locales/pt.json +5 -4
- package/dist/locales/ro.json +5 -4
- package/dist/locales/ru.json +5 -4
- package/dist/locales/sq.json +5 -4
- package/dist/locales/sv.json +5 -4
- package/dist/locales/tr.json +5 -4
- package/dist/locales/zh.json +5 -4
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +2 -2
- package/dist/patterns/help-me-write-templates/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/tokens.css +13 -2
- package/package.json +1 -1
- package/dist/_chunks/chart-C2RBJERE.js +0 -705
- package/dist/_chunks/dashboard-grid-SAGoyCtL.js +0 -691
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { forwardRef as
|
|
1
|
+
import { jsxs as b, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as Z, useId as tt, useCallback as O, useRef as et, useMemo as rt } from "react";
|
|
3
3
|
import { c as V } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as B } from "react-i18next";
|
|
5
|
-
import { u as
|
|
5
|
+
import { u as st } from "./use-count-up-BLLetaZ8.js";
|
|
6
6
|
const P = V("ds:flex ds:flex-col ds:h-full", {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
@@ -106,180 +106,188 @@ const P = V("ds:flex ds:flex-col ds:h-full", {
|
|
|
106
106
|
variant: "default",
|
|
107
107
|
intent: "foreground"
|
|
108
108
|
}
|
|
109
|
-
}),
|
|
109
|
+
}), at = V(
|
|
110
110
|
"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-label",
|
|
111
111
|
{
|
|
112
112
|
variants: {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
// Whether the change is good news, not which way it went: with
|
|
114
|
+
// `trendPolarity="lower-is-better"` a fall is `better`.
|
|
115
|
+
tone: {
|
|
116
|
+
better: "ds:text-[var(--success)]",
|
|
117
|
+
worse: "ds:text-[var(--destructive)]",
|
|
118
|
+
neutral: "ds:text-[var(--muted-foreground)]"
|
|
117
119
|
}
|
|
118
120
|
},
|
|
119
121
|
defaultVariants: {
|
|
120
|
-
|
|
122
|
+
tone: "neutral"
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
|
-
),
|
|
125
|
+
), nt = { up: "↑", down: "↓", flat: "→" }, it = {
|
|
124
126
|
up: "stat.trend.up",
|
|
125
127
|
down: "stat.trend.down",
|
|
126
128
|
flat: "stat.trend.flat"
|
|
127
129
|
};
|
|
128
|
-
function
|
|
129
|
-
trend:
|
|
130
|
+
function dt({
|
|
131
|
+
trend: a,
|
|
130
132
|
delta: t,
|
|
131
|
-
deltaFormat:
|
|
132
|
-
locale:
|
|
133
|
+
deltaFormat: u = "decimal",
|
|
134
|
+
locale: n,
|
|
135
|
+
polarity: e = "higher-is-better"
|
|
133
136
|
}) {
|
|
134
|
-
const { t:
|
|
135
|
-
style:
|
|
136
|
-
}).format(
|
|
137
|
-
return /* @__PURE__ */
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
|
|
137
|
+
const { t: i, i18n: m } = B("ui"), d = typeof t == "string" ? t : new Intl.NumberFormat(n ?? m.language, {
|
|
138
|
+
style: u === "percent" ? "percent" : "decimal"
|
|
139
|
+
}).format(u === "percent" ? t / 100 : t), r = a === "flat" ? "neutral" : a === "up" == (e === "higher-is-better") ? "better" : "worse";
|
|
140
|
+
return /* @__PURE__ */ b("span", { className: at({ tone: r }), "data-trend-tone": r, children: [
|
|
141
|
+
/* @__PURE__ */ l("span", { "aria-hidden": "true", children: nt[a] }),
|
|
142
|
+
/* @__PURE__ */ l("span", { className: "ds:sr-only", children: i(it[a]) }),
|
|
143
|
+
d,
|
|
144
|
+
r === "neutral" ? null : /* @__PURE__ */ b("span", { className: "ds:sr-only", children: [
|
|
145
|
+
" ",
|
|
146
|
+
i(r === "better" ? "stat.trend.better" : "stat.trend.worse")
|
|
147
|
+
] })
|
|
141
148
|
] });
|
|
142
149
|
}
|
|
143
|
-
function
|
|
144
|
-
const
|
|
145
|
-
if (
|
|
146
|
-
let
|
|
147
|
-
e.startsWith("+") ? (
|
|
148
|
-
let
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
let
|
|
150
|
+
function ot(a, t) {
|
|
151
|
+
const u = a.trim();
|
|
152
|
+
if (u === "") return null;
|
|
153
|
+
let n = "", e = u;
|
|
154
|
+
e.startsWith("+") ? (n = "+", e = e.slice(1).trimStart()) : (e.startsWith("-") || e.startsWith("−")) && (n = "-", e = e.slice(1).trimStart());
|
|
155
|
+
let i = "";
|
|
156
|
+
const m = e.match(/[KMB]$/i);
|
|
157
|
+
m && (i = m[0], e = e.slice(0, -1).trimEnd());
|
|
158
|
+
let d = "", r = ".";
|
|
152
159
|
try {
|
|
153
|
-
const
|
|
154
|
-
for (const
|
|
155
|
-
|
|
160
|
+
const h = new Intl.NumberFormat(t).formatToParts(12345.6);
|
|
161
|
+
for (const c of h)
|
|
162
|
+
c.type === "group" ? d = c.value : c.type === "decimal" && (r = c.value);
|
|
156
163
|
} catch {
|
|
157
164
|
}
|
|
158
165
|
const g = e.match(/^(\d+)\.(\d+)$/);
|
|
159
|
-
if (g && !(g[2].length === 3 &&
|
|
160
|
-
const
|
|
161
|
-
if (Number.isFinite(
|
|
162
|
-
return { target:
|
|
166
|
+
if (g && !(g[2].length === 3 && d === ".")) {
|
|
167
|
+
const c = Number.parseFloat(e);
|
|
168
|
+
if (Number.isFinite(c))
|
|
169
|
+
return { target: c, sign: n, suffix: i };
|
|
163
170
|
}
|
|
164
|
-
let
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
return Number.isFinite(
|
|
171
|
+
let o = e;
|
|
172
|
+
d !== "" && (o = o.split(d).join("")), r !== "." && (o = o.split(r).join(".")), o = o.replace(/[\s\u00A0\u202F]/g, "");
|
|
173
|
+
const f = Number.parseFloat(o);
|
|
174
|
+
return Number.isFinite(f) ? { target: f, sign: n, suffix: i } : null;
|
|
168
175
|
}
|
|
169
|
-
const ct =
|
|
176
|
+
const ct = Z(
|
|
170
177
|
({
|
|
171
|
-
label:
|
|
178
|
+
label: a,
|
|
172
179
|
value: t,
|
|
173
|
-
format:
|
|
174
|
-
currency:
|
|
180
|
+
format: u,
|
|
181
|
+
currency: n,
|
|
175
182
|
locale: e,
|
|
176
|
-
trend:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
183
|
+
trend: i,
|
|
184
|
+
trendPolarity: m,
|
|
185
|
+
delta: d,
|
|
186
|
+
deltaFormat: r = "decimal",
|
|
187
|
+
icon: g,
|
|
188
|
+
loading: o = !1,
|
|
189
|
+
animate: f = !1,
|
|
190
|
+
animateOnEveryView: h = !1,
|
|
191
|
+
animateDurationMs: c = 1600,
|
|
192
|
+
animateLocale: K,
|
|
193
|
+
animateSeparators: x,
|
|
194
|
+
variant: y = "default",
|
|
195
|
+
size: N = "md",
|
|
188
196
|
align: I = "start",
|
|
189
197
|
intent: M = "foreground",
|
|
190
198
|
className: j,
|
|
191
199
|
...k
|
|
192
200
|
}, R) => {
|
|
193
|
-
const { i18n:
|
|
201
|
+
const { i18n: Y } = B("ui"), T = tt(), p = e ?? Y.language, _ = O(() => {
|
|
194
202
|
if (typeof t == "string") return t;
|
|
195
|
-
switch (
|
|
203
|
+
switch (u) {
|
|
196
204
|
case "currency":
|
|
197
|
-
return new Intl.NumberFormat(
|
|
205
|
+
return new Intl.NumberFormat(p, {
|
|
198
206
|
style: "currency",
|
|
199
|
-
currency:
|
|
207
|
+
currency: n ?? "USD"
|
|
200
208
|
}).format(t);
|
|
201
209
|
case "percent":
|
|
202
|
-
return new Intl.NumberFormat(
|
|
210
|
+
return new Intl.NumberFormat(p, { style: "percent" }).format(
|
|
203
211
|
t
|
|
204
212
|
);
|
|
205
213
|
case "decimal":
|
|
206
|
-
return new Intl.NumberFormat(
|
|
214
|
+
return new Intl.NumberFormat(p, { style: "decimal" }).format(
|
|
207
215
|
t
|
|
208
216
|
);
|
|
209
217
|
default:
|
|
210
|
-
return new Intl.NumberFormat(
|
|
218
|
+
return new Intl.NumberFormat(p).format(t);
|
|
211
219
|
}
|
|
212
|
-
}, [t,
|
|
213
|
-
|
|
214
|
-
const s =
|
|
215
|
-
(
|
|
220
|
+
}, [t, u, p, n])(), w = K ?? p;
|
|
221
|
+
et(!1);
|
|
222
|
+
const s = rt(() => f ? typeof t == "number" ? Number.isFinite(t) ? { target: t, sign: "", suffix: "" } : null : ot(t, w) : null, [f, t, w]), q = f && s !== null, H = (s == null ? void 0 : s.target) ?? 0, F = (s == null ? void 0 : s.sign) ?? "", $ = (s == null ? void 0 : s.suffix) ?? "", J = O(
|
|
223
|
+
(z) => {
|
|
216
224
|
const E = (() => {
|
|
217
225
|
try {
|
|
218
|
-
return new Intl.NumberFormat(
|
|
226
|
+
return new Intl.NumberFormat(w, {
|
|
219
227
|
useGrouping: !0
|
|
220
228
|
});
|
|
221
229
|
} catch {
|
|
222
230
|
return null;
|
|
223
231
|
}
|
|
224
232
|
})();
|
|
225
|
-
let
|
|
233
|
+
let v;
|
|
226
234
|
if (E)
|
|
227
|
-
if (
|
|
228
|
-
const A = Math.abs(
|
|
235
|
+
if (x) {
|
|
236
|
+
const A = Math.abs(z), D = Math.trunc(A), G = A - D, Q = x.thousand ?? "", S = String(D).replace(
|
|
229
237
|
/\B(?=(\d{3})+(?!\d))/g,
|
|
230
|
-
|
|
238
|
+
Q
|
|
231
239
|
);
|
|
232
240
|
if (G === 0)
|
|
233
|
-
|
|
241
|
+
v = S;
|
|
234
242
|
else {
|
|
235
|
-
const L = G.toFixed(6).replace(/0+$/, "").slice(2),
|
|
236
|
-
|
|
243
|
+
const L = G.toFixed(6).replace(/0+$/, "").slice(2), X = x.decimal ?? ".";
|
|
244
|
+
v = L ? S + X + L : S;
|
|
237
245
|
}
|
|
238
246
|
} else
|
|
239
|
-
|
|
247
|
+
v = E.format(Math.abs(z));
|
|
240
248
|
else
|
|
241
|
-
|
|
249
|
+
v = String(Math.abs(z));
|
|
242
250
|
let W = F;
|
|
243
|
-
return F === "" &&
|
|
251
|
+
return F === "" && z < 0 && (W = "-"), `${W}${v}${$}`;
|
|
244
252
|
},
|
|
245
|
-
[
|
|
246
|
-
), C =
|
|
247
|
-
to:
|
|
253
|
+
[w, x, F, $]
|
|
254
|
+
), C = st({
|
|
255
|
+
to: H,
|
|
248
256
|
from: 0,
|
|
249
|
-
durationMs:
|
|
257
|
+
durationMs: c,
|
|
250
258
|
startOnVisible: !0,
|
|
251
|
-
retriggerOnReEntry:
|
|
259
|
+
retriggerOnReEntry: h,
|
|
252
260
|
// `formatter` is the only path we use — it owns both the locale
|
|
253
261
|
// formatting and the sign/suffix re-application.
|
|
254
|
-
formatter:
|
|
262
|
+
formatter: J
|
|
255
263
|
});
|
|
256
|
-
return
|
|
264
|
+
return o ? /* @__PURE__ */ b(
|
|
257
265
|
"div",
|
|
258
266
|
{
|
|
259
267
|
ref: R,
|
|
260
268
|
role: "group",
|
|
261
269
|
"aria-busy": "true",
|
|
262
|
-
"aria-label":
|
|
270
|
+
"aria-label": a,
|
|
263
271
|
"data-component": "stat",
|
|
264
|
-
className: P({ variant:
|
|
272
|
+
className: P({ variant: y, size: N, align: I, className: j }),
|
|
265
273
|
...k,
|
|
266
274
|
children: [
|
|
267
|
-
/* @__PURE__ */
|
|
268
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ l("div", { className: "ds:h-[var(--skeleton-label-h)] ds:w-[var(--skeleton-label-w)] ds:animate-pulse ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)]" }),
|
|
276
|
+
/* @__PURE__ */ l("div", { className: "ds:h-[var(--skeleton-value-h)] ds:w-[var(--skeleton-value-w)] ds:animate-pulse ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)]" })
|
|
269
277
|
]
|
|
270
278
|
}
|
|
271
|
-
) : /* @__PURE__ */
|
|
279
|
+
) : /* @__PURE__ */ b(
|
|
272
280
|
"div",
|
|
273
281
|
{
|
|
274
282
|
ref: R,
|
|
275
283
|
role: "group",
|
|
276
284
|
"aria-labelledby": T,
|
|
277
285
|
"data-component": "stat",
|
|
278
|
-
className: P({ variant:
|
|
286
|
+
className: P({ variant: y, size: N, align: I, className: j }),
|
|
279
287
|
...k,
|
|
280
288
|
children: [
|
|
281
|
-
/* @__PURE__ */
|
|
282
|
-
|
|
289
|
+
/* @__PURE__ */ b("span", { className: "ds:inline-flex ds:items-center", children: [
|
|
290
|
+
g && /* @__PURE__ */ l(
|
|
283
291
|
"span",
|
|
284
292
|
{
|
|
285
293
|
"aria-hidden": "true",
|
|
@@ -292,41 +300,42 @@ const ct = X(
|
|
|
292
300
|
"ds:text-[color:var(--accent)]",
|
|
293
301
|
"ds:forced-colors:text-[CanvasText]"
|
|
294
302
|
].join(" "),
|
|
295
|
-
children:
|
|
303
|
+
children: g
|
|
296
304
|
}
|
|
297
305
|
),
|
|
298
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ l(
|
|
299
307
|
"span",
|
|
300
308
|
{
|
|
301
309
|
id: T,
|
|
302
310
|
className: "type-label ds:text-[var(--muted-foreground)]",
|
|
303
|
-
children:
|
|
311
|
+
children: a
|
|
304
312
|
}
|
|
305
313
|
)
|
|
306
314
|
] }),
|
|
307
|
-
|
|
315
|
+
q ? (
|
|
308
316
|
// The animated number is wrapped in an `aria-live="off"` span
|
|
309
317
|
// so screen readers don't announce every interpolated frame.
|
|
310
318
|
// The `role="group"` ancestor (with `aria-labelledby` pointing
|
|
311
319
|
// at the label) carries the final accessible reading — the
|
|
312
320
|
// animated frames are decorative only.
|
|
313
|
-
/* @__PURE__ */
|
|
321
|
+
/* @__PURE__ */ l(
|
|
314
322
|
"span",
|
|
315
323
|
{
|
|
316
324
|
ref: C.ref,
|
|
317
325
|
"aria-live": "off",
|
|
318
|
-
className: U({ size:
|
|
326
|
+
className: U({ size: N, variant: y, intent: M }),
|
|
319
327
|
children: C.value
|
|
320
328
|
}
|
|
321
329
|
)
|
|
322
|
-
) : /* @__PURE__ */
|
|
323
|
-
|
|
324
|
-
|
|
330
|
+
) : /* @__PURE__ */ l("span", { className: U({ size: N, variant: y, intent: M }), children: _ }),
|
|
331
|
+
i != null && d != null && /* @__PURE__ */ l(
|
|
332
|
+
dt,
|
|
325
333
|
{
|
|
326
|
-
trend:
|
|
327
|
-
delta:
|
|
328
|
-
deltaFormat:
|
|
329
|
-
locale: e
|
|
334
|
+
trend: i,
|
|
335
|
+
delta: d,
|
|
336
|
+
deltaFormat: r,
|
|
337
|
+
locale: e,
|
|
338
|
+
polarity: m
|
|
330
339
|
}
|
|
331
340
|
)
|
|
332
341
|
]
|
|
@@ -338,4 +347,4 @@ ct.displayName = "Stat";
|
|
|
338
347
|
export {
|
|
339
348
|
ct as S
|
|
340
349
|
};
|
|
341
|
-
//# sourceMappingURL=stat-
|
|
350
|
+
//# sourceMappingURL=stat-DmjGfXND.js.map
|
|
@@ -124,7 +124,11 @@ const K = [
|
|
|
124
124
|
"ds:group-data-[state=open]/item:rotate-180"
|
|
125
125
|
].join(" "), sr = [
|
|
126
126
|
"type-meta ds:text-[var(--muted-foreground)]",
|
|
127
|
-
|
|
127
|
+
// Indented under the step title from 448px of accordion width (px, not
|
|
128
|
+
// rem: a container query in rem follows the host's root font size); narrower
|
|
129
|
+
// (a phone) the content takes the full width so a form or a list in it
|
|
130
|
+
// is not squeezed beside the step number.
|
|
131
|
+
"ds:ps-[var(--spacing-md)] ds:@[448px]/stepper:ps-[calc(var(--min-target-size)+var(--spacing-md)+var(--spacing-sm))]",
|
|
128
132
|
"ds:pe-[var(--spacing-md)] ds:pb-[var(--spacing-sm)]",
|
|
129
133
|
"ds:group-data-[state=open]/item:hidden"
|
|
130
134
|
].join(" "), ar = [
|
|
@@ -132,11 +136,18 @@ const K = [
|
|
|
132
136
|
"ds:data-[state=open]:animate-[accordion-down_var(--animation-duration)_var(--ease-out)]",
|
|
133
137
|
"ds:data-[state=closed]:animate-[accordion-up_var(--animation-duration)_var(--ease-in)]"
|
|
134
138
|
].join(" "), tr = [
|
|
135
|
-
|
|
139
|
+
// Indented under the step title from 448px of accordion width (px, not
|
|
140
|
+
// rem: a container query in rem follows the host's root font size); narrower
|
|
141
|
+
// (a phone) the content takes the full width so a form or a list in it
|
|
142
|
+
// is not squeezed beside the step number.
|
|
143
|
+
"ds:ps-[var(--spacing-md)] ds:@[448px]/stepper:ps-[calc(var(--min-target-size)+var(--spacing-md)+var(--spacing-sm))]",
|
|
136
144
|
"ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-md)]"
|
|
137
|
-
].join(" "), nr = b(
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
].join(" "), nr = b(
|
|
146
|
+
"ds:@container/stepper ds:flex ds:w-full ds:min-w-0 ds:flex-col ds:gap-[var(--spacing-sm)]",
|
|
147
|
+
{
|
|
148
|
+
variants: {}
|
|
149
|
+
}
|
|
150
|
+
), or = P(
|
|
140
151
|
({
|
|
141
152
|
activeStep: s,
|
|
142
153
|
steps: i,
|
|
@@ -248,4 +259,4 @@ or.displayName = "StepperAccordion";
|
|
|
248
259
|
export {
|
|
249
260
|
or as S
|
|
250
261
|
};
|
|
251
|
-
//# sourceMappingURL=stepper-accordion-
|
|
262
|
+
//# sourceMappingURL=stepper-accordion-DDTSOUHc.js.map
|
|
@@ -6,14 +6,14 @@ import { A as M } from "./alert-BhCstf2h.js";
|
|
|
6
6
|
import { B as Me } from "./button-Bn16lcFM.js";
|
|
7
7
|
import { I as We } from "./icon-button-COX76Jdj.js";
|
|
8
8
|
import { C as Qe } from "./combobox-U5yfO6o0.js";
|
|
9
|
-
import { D as ce } from "./dialog-
|
|
9
|
+
import { D as ce } from "./dialog-CUzbnKLw.js";
|
|
10
10
|
import { D as Bt } from "./date-picker-wRAcq2lt.js";
|
|
11
11
|
import { F as H } from "./form-field-Ani72sVY.js";
|
|
12
12
|
import { I as Ft } from "./icon-button-group-C5hhI-R5.js";
|
|
13
13
|
import { P as Pt } from "./panel-header-D_mTdhUp.js";
|
|
14
14
|
import { P as Ot } from "./panel-subview-BT-Apwgb.js";
|
|
15
15
|
import { R as Pe } from "./radio-BBbMdbE_.js";
|
|
16
|
-
import { R as jt } from "./radio-group-
|
|
16
|
+
import { R as jt } from "./radio-group-DicxWJXP.js";
|
|
17
17
|
import { S as Mt } from "./scroll-area-ZtFCv9K7.js";
|
|
18
18
|
import { S as Ke } from "./select-Ce5RMk93.js";
|
|
19
19
|
import { S as He } from "./skeleton-B1KTdJ4N.js";
|
|
@@ -1238,4 +1238,4 @@ export {
|
|
|
1238
1238
|
vo as T,
|
|
1239
1239
|
lo as t
|
|
1240
1240
|
};
|
|
1241
|
-
//# sourceMappingURL=task-editor-
|
|
1241
|
+
//# sourceMappingURL=task-editor-ByyRu29Y.js.map
|
|
@@ -16,7 +16,7 @@ import { E as zt } from "./editable-description-DuJlvltc.js";
|
|
|
16
16
|
import { N as Xe } from "./note-timeline-CsY8YOE7.js";
|
|
17
17
|
import { P as Ot } from "./panel-header-D_mTdhUp.js";
|
|
18
18
|
import { P as Ge } from "./panel-subview-BT-Apwgb.js";
|
|
19
|
-
import { P as _t } from "./patient-summary-card-
|
|
19
|
+
import { P as _t } from "./patient-summary-card-9nQWTQf6.js";
|
|
20
20
|
import { S as ne } from "./section-card-ChJdOlBU.js";
|
|
21
21
|
import { C as nn, S as ue } from "./skeleton-B1KTdJ4N.js";
|
|
22
22
|
import { T as an } from "./text-area-COMVJ1yE.js";
|
|
@@ -2195,4 +2195,4 @@ export {
|
|
|
2195
2195
|
Kn as s,
|
|
2196
2196
|
_s as u
|
|
2197
2197
|
};
|
|
2198
|
-
//# sourceMappingURL=use-appointment-details-read-
|
|
2198
|
+
//# sourceMappingURL=use-appointment-details-read-JsDM48tf.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useRef as u, useMemo as i } from "react";
|
|
2
|
+
const s = /* @__PURE__ */ new Set(["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"]);
|
|
3
|
+
function f() {
|
|
4
|
+
const t = u(null);
|
|
5
|
+
return i(
|
|
6
|
+
() => ({
|
|
7
|
+
onKeyDown: (r) => {
|
|
8
|
+
if (!s.has(r.key) || !r.defaultPrevented) return;
|
|
9
|
+
const n = r.currentTarget, c = r.target, o = { selected: !1 };
|
|
10
|
+
t.current = o, window.setTimeout(() => {
|
|
11
|
+
t.current === o && (t.current = null);
|
|
12
|
+
const e = document.activeElement;
|
|
13
|
+
o.selected || e === c || !(e instanceof HTMLElement) || !n.isConnected || e.getAttribute("role") !== "radio" || e.closest('[role="radiogroup"]') !== n || e.getAttribute("aria-checked") === "true" || e.click();
|
|
14
|
+
}, 0);
|
|
15
|
+
},
|
|
16
|
+
noteSelection: () => {
|
|
17
|
+
t.current && (t.current.selected = !0);
|
|
18
|
+
}
|
|
19
|
+
}),
|
|
20
|
+
[]
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
f as u
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=use-select-on-arrow-Cr4iBuW5.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx as t, jsxs as c } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as P, useState as N, useEffect as S, useMemo as f, useCallback as W, useImperativeHandle as T } from "react";
|
|
3
3
|
import { c as _ } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as j } from "react-i18next";
|
|
5
|
-
import { D as l } from "./dialog-
|
|
5
|
+
import { D as l } from "./dialog-CUzbnKLw.js";
|
|
6
6
|
import { S as z } from "./state-backed-text-input-DECQy5aA.js";
|
|
7
7
|
import { B as C } from "./badge-hnBt8o7n.js";
|
|
8
8
|
import { u as B } from "./registry-DvAUVLHh.js";
|
|
@@ -190,4 +190,4 @@ export {
|
|
|
190
190
|
A as W,
|
|
191
191
|
L as w
|
|
192
192
|
};
|
|
193
|
-
//# sourceMappingURL=widget-picker-
|
|
193
|
+
//# sourceMappingURL=widget-picker-DXYBMTfe.js.map
|
|
@@ -4,7 +4,7 @@ import { c as j } from "./index-D2ZczOXr.js";
|
|
|
4
4
|
import { useTranslation as z } from "react-i18next";
|
|
5
5
|
import { C } from "./card-DMO2nkt4.js";
|
|
6
6
|
import { B as ye } from "./badge-hnBt8o7n.js";
|
|
7
|
-
import { a as Z } from "./key-value-pair-
|
|
7
|
+
import { a as Z } from "./key-value-pair-BNNITp6S.js";
|
|
8
8
|
import { T as xe } from "./timestamp-DPLDWdxA.js";
|
|
9
9
|
import { I as S } from "./icon-button-COX76Jdj.js";
|
|
10
10
|
import { P as $ } from "./pencil-B1sKKyuT.js";
|
|
@@ -1321,4 +1321,4 @@ export {
|
|
|
1321
1321
|
ee as r,
|
|
1322
1322
|
D as w
|
|
1323
1323
|
};
|
|
1324
|
-
//# sourceMappingURL=workflow-map-
|
|
1324
|
+
//# sourceMappingURL=workflow-map-Demlpy39.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "1.
|
|
3
|
+
"packageVersion": "1.56.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -2071,7 +2071,7 @@
|
|
|
2071
2071
|
]
|
|
2072
2072
|
},
|
|
2073
2073
|
"idempotent": true,
|
|
2074
|
-
"description": "Replace the chart series without remounting. Pass the DECLARED type’s shape (see declaredType state)
|
|
2074
|
+
"description": "Replace the chart series without remounting. Pass the DECLARED type’s shape (see declaredType state); when the user has switched the view cross-shape the values are converted to the rendered shape. The data and its summary table persist across type switches, resizes and theme changes until the host passes a new series prop.",
|
|
2075
2075
|
"descriptionKey": "ui.agent.chart.actions.updateSeries"
|
|
2076
2076
|
},
|
|
2077
2077
|
{
|
|
@@ -2083,7 +2083,7 @@
|
|
|
2083
2083
|
"description": "A `data:image/png;base64,…` URI of the rendered chart."
|
|
2084
2084
|
},
|
|
2085
2085
|
"idempotent": true,
|
|
2086
|
-
"description": "Return a PNG data URI of the chart for export or screenshotting.",
|
|
2086
|
+
"description": "Return a PNG data URI of the chart for export or screenshotting. Waits until series pushed with update_series are drawn.",
|
|
2087
2087
|
"descriptionKey": "ui.agent.chart.actions.exportPng"
|
|
2088
2088
|
}
|
|
2089
2089
|
],
|
|
@@ -3256,6 +3256,12 @@
|
|
|
3256
3256
|
"type": "boolean",
|
|
3257
3257
|
"description": "Whether edit mode is on. Move/resize actions are refused while it is off — the host app owns the toggle.",
|
|
3258
3258
|
"descriptionKey": "ui.agent.dashboardGrid.state.editing"
|
|
3259
|
+
},
|
|
3260
|
+
{
|
|
3261
|
+
"name": "stacked",
|
|
3262
|
+
"type": "boolean",
|
|
3263
|
+
"description": "Whether the board is narrower than its stackBelow width and shows its widgets as one read-only column. Move/resize actions are unavailable while it is true, even in edit mode; the saved layout is unchanged.",
|
|
3264
|
+
"descriptionKey": "ui.agent.dashboardGrid.state.stacked"
|
|
3259
3265
|
}
|
|
3260
3266
|
],
|
|
3261
3267
|
"actions": [
|
|
@@ -3290,10 +3296,15 @@
|
|
|
3290
3296
|
"returns": "boolean (accepted)",
|
|
3291
3297
|
"returnsSchema": {
|
|
3292
3298
|
"type": "boolean",
|
|
3293
|
-
"description": "True when applied; false when edit mode is off or the id is unknown."
|
|
3299
|
+
"description": "True when applied; false when edit mode is off, the board is stacked, or the id is unknown."
|
|
3294
3300
|
},
|
|
3295
3301
|
"idempotent": true,
|
|
3296
|
-
"
|
|
3302
|
+
"errors": [
|
|
3303
|
+
"Unavailable while the board is stacked (state stacked is true): returns false and changes nothing.",
|
|
3304
|
+
"Unavailable while edit mode is off: returns false.",
|
|
3305
|
+
"Unknown widget id: returns false."
|
|
3306
|
+
],
|
|
3307
|
+
"description": "Move a widget to a cell. Out-of-bounds targets are clamped; colliding widgets are pushed down and the layout re-compacts. Refused while edit mode is off or the board is stacked.",
|
|
3297
3308
|
"descriptionKey": "ui.agent.dashboardGrid.actions.moveWidget"
|
|
3298
3309
|
},
|
|
3299
3310
|
{
|
|
@@ -3327,17 +3338,23 @@
|
|
|
3327
3338
|
"returns": "boolean (accepted)",
|
|
3328
3339
|
"returnsSchema": {
|
|
3329
3340
|
"type": "boolean",
|
|
3330
|
-
"description": "True when applied; false when edit mode is off or the id is unknown."
|
|
3341
|
+
"description": "True when applied; false when edit mode is off, the board is stacked, or the id is unknown."
|
|
3331
3342
|
},
|
|
3332
3343
|
"idempotent": true,
|
|
3333
|
-
"
|
|
3344
|
+
"errors": [
|
|
3345
|
+
"Unavailable while the board is stacked (state stacked is true): returns false and changes nothing.",
|
|
3346
|
+
"Unavailable while edit mode is off: returns false.",
|
|
3347
|
+
"Unknown widget id: returns false."
|
|
3348
|
+
],
|
|
3349
|
+
"description": "Resize a widget to a span. Clamped to the grid and the widget’s min/max; colliding widgets are pushed down. Refused while edit mode is off or the board is stacked.",
|
|
3334
3350
|
"descriptionKey": "ui.agent.dashboardGrid.actions.resizeWidget"
|
|
3335
3351
|
}
|
|
3336
3352
|
],
|
|
3337
3353
|
"domHooks": {
|
|
3338
3354
|
"root": {
|
|
3339
3355
|
"attr": "data-component",
|
|
3340
|
-
"value": "dashboard-grid"
|
|
3356
|
+
"value": "dashboard-grid",
|
|
3357
|
+
"description": "Also carries data-stacked=\"true\" while the board shows one read-only column."
|
|
3341
3358
|
},
|
|
3342
3359
|
"instanceId": {
|
|
3343
3360
|
"attr": "data-component-id",
|
|
@@ -19708,7 +19725,7 @@
|
|
|
19708
19725
|
{
|
|
19709
19726
|
"name": "run_template",
|
|
19710
19727
|
"safety": "phi",
|
|
19711
|
-
"description": "Open the Templates menu from the editor's AI pill, or from the bubble that appears over selected text, and pick a template (
|
|
19728
|
+
"description": "Open the Templates menu from the editor's AI pill, or from the bubble that appears over selected text, and pick a template (listed in the practice's order). It runs straight away and rewrites the selected text, or the whole note when nothing is selected; the notice that follows offers Undo. Without patient AI consent the consent banner shows first. Out of AI credits opens the Alia Writing Assistant on the out-of-credits notice.",
|
|
19712
19729
|
"descriptionKey": "ui.agent.helpMeWriteTemplates.workflows.runTemplate",
|
|
19713
19730
|
"uiActions": [
|
|
19714
19731
|
"dropdown-menu.open",
|
|
@@ -19734,7 +19751,7 @@
|
|
|
19734
19751
|
{
|
|
19735
19752
|
"name": "manage_templates",
|
|
19736
19753
|
"safety": "write",
|
|
19737
|
-
"description": "Open Manage templates from the Templates menu in the AI pill: list the practice's templates, create or edit one (name, optional short description, instructions for the AI
|
|
19754
|
+
"description": "Open Manage templates from the Templates menu in the AI pill: list the practice's templates, create or edit one (name, optional short description, instructions for the AI; names are unique), reorder them by dragging and delete one after a confirmation. Shown only when the host allows managing.",
|
|
19738
19755
|
"descriptionKey": "ui.agent.helpMeWriteTemplates.workflows.manageTemplates",
|
|
19739
19756
|
"uiActions": [
|
|
19740
19757
|
"dialog.close",
|
package/dist/agent-i18n/en.json
CHANGED
|
@@ -248,8 +248,8 @@
|
|
|
248
248
|
},
|
|
249
249
|
"actions": {
|
|
250
250
|
"changeView": "Switch the rendered chart type via the type switcher. No-op (returns false) when the chart has no switcher or the type is not offered.",
|
|
251
|
-
"updateSeries": "Replace the chart series without remounting. Pass the DECLARED type’s shape (see declaredType state)
|
|
252
|
-
"exportPng": "Return a PNG data URI of the chart for export or screenshotting."
|
|
251
|
+
"updateSeries": "Replace the chart series without remounting. Pass the DECLARED type’s shape (see declaredType state); when the user has switched the view cross-shape the values are converted to the rendered shape. The data and its summary table persist across type switches, resizes and theme changes until the host passes a new series prop.",
|
|
252
|
+
"exportPng": "Return a PNG data URI of the chart for export or screenshotting. Waits until series pushed with update_series are drawn."
|
|
253
253
|
}
|
|
254
254
|
},
|
|
255
255
|
"chatContainer": {
|
|
@@ -399,11 +399,12 @@
|
|
|
399
399
|
"state": {
|
|
400
400
|
"layout": "Current widget geometry in cell units — ids and rectangles only, no widget content.",
|
|
401
401
|
"cols": "Logical column count of the board.",
|
|
402
|
-
"editing": "Whether edit mode is on. Move/resize actions are refused while it is off — the host app owns the toggle."
|
|
402
|
+
"editing": "Whether edit mode is on. Move/resize actions are refused while it is off — the host app owns the toggle.",
|
|
403
|
+
"stacked": "Whether the board is narrower than its stackBelow width and shows its widgets as one read-only column. Move/resize actions are unavailable while it is true, even in edit mode; the saved layout is unchanged."
|
|
403
404
|
},
|
|
404
405
|
"actions": {
|
|
405
|
-
"moveWidget": "Move a widget to a cell. Out-of-bounds targets are clamped; colliding widgets are pushed down and the layout re-compacts. Refused while edit mode is off.",
|
|
406
|
-
"resizeWidget": "Resize a widget to a span. Clamped to the grid and the widget’s min/max; colliding widgets are pushed down. Refused while edit mode is off."
|
|
406
|
+
"moveWidget": "Move a widget to a cell. Out-of-bounds targets are clamped; colliding widgets are pushed down and the layout re-compacts. Refused while edit mode is off or the board is stacked.",
|
|
407
|
+
"resizeWidget": "Resize a widget to a span. Clamped to the grid and the widget’s min/max; colliding widgets are pushed down. Refused while edit mode is off or the board is stacked."
|
|
407
408
|
}
|
|
408
409
|
},
|
|
409
410
|
"dataTableTabs": {
|
|
@@ -1835,9 +1836,9 @@
|
|
|
1835
1836
|
},
|
|
1836
1837
|
"helpMeWriteTemplates": {
|
|
1837
1838
|
"workflows": {
|
|
1838
|
-
"runTemplate": "Open the Templates menu from the editor's AI pill, or from the bubble that appears over selected text, and pick a template (
|
|
1839
|
+
"runTemplate": "Open the Templates menu from the editor's AI pill, or from the bubble that appears over selected text, and pick a template (listed in the practice's order). It runs straight away and rewrites the selected text, or the whole note when nothing is selected; the notice that follows offers Undo. Without patient AI consent the consent banner shows first. Out of AI credits opens the Alia Writing Assistant on the out-of-credits notice.",
|
|
1839
1840
|
"freePrompt": "Type (or dictate with the bar mic) what to write and press Write; the draft is inserted at the caret on Insert.",
|
|
1840
|
-
"manageTemplates": "Open Manage templates from the Templates menu in the AI pill: list the practice's templates, create or edit one (name, optional short description, instructions for the AI
|
|
1841
|
+
"manageTemplates": "Open Manage templates from the Templates menu in the AI pill: list the practice's templates, create or edit one (name, optional short description, instructions for the AI; names are unique), reorder them by dragging and delete one after a confirmation. Shown only when the host allows managing."
|
|
1841
1842
|
}
|
|
1842
1843
|
},
|
|
1843
1844
|
"invoices": {
|