@alfadocs/ui-kit 0.23.0 → 0.25.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/{autocomplete-BxfabhZ8.js → autocomplete-C7xq06bP.js} +40 -40
- package/dist/_chunks/{card-CWzuTLYE.js → card-C353dU-H.js} +21 -13
- package/dist/_chunks/carousel.agent-DnPiqijR.js +1733 -0
- package/dist/_chunks/{contact-card-DTQUMetD.js → contact-card-CjG7c-1q.js} +2 -2
- package/dist/_chunks/description-list-Bsga4IW8.js +309 -0
- package/dist/_chunks/editable-currency-cell-renderer-DJB5MxAI.js +2349 -0
- package/dist/_chunks/locale-picker-BxEUUPW7.js +638 -0
- package/dist/_chunks/{patient-shell-DavGODt9.js → patient-shell-B164drIa.js} +40 -55
- package/dist/_chunks/settings-ca2Yi9R8.js +21 -0
- package/dist/_chunks/sun-Eweh5fvi.js +50 -0
- package/dist/_chunks/{theme-toggle-BswYl0Yp.js → theme-toggle-FrotC2VI.js} +85 -127
- package/dist/_chunks/{timeline-Czeqr3HF.js → timeline-jmd7lfDf.js} +19 -12
- package/dist/_chunks/use-locale-BkCIHujH.js +20 -0
- package/dist/_chunks/use-scroll-to-first-error-BrK7dKB_.js +55 -0
- package/dist/_chunks/{whatsapp-button-CtlLwM3M.js → whatsapp-button-DUjlWGKf.js} +26 -25
- package/dist/_chunks/{workflow-map-712GL-8u.js → workflow-map-BR6txfFX.js} +2 -2
- package/dist/agent-catalog.json +59 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/card/index.js +1 -1
- package/dist/components/carousel/carousel.d.ts +21 -0
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/contact-card/index.js +1 -1
- package/dist/components/data-table/filters/number-filter.d.ts +56 -0
- package/dist/components/data-table/filters/text-filter.d.ts +49 -0
- package/dist/components/data-table/index.d.ts +4 -0
- package/dist/components/data-table/index.js +25 -21
- package/dist/components/description-list/description-list.d.ts +40 -0
- package/dist/components/description-list/index.d.ts +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/header-settings/index.js +232 -0
- package/dist/components/locale-picker/index.js +7 -0
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/whatsapp-button/index.js +1 -1
- package/dist/components/whatsapp-button/whatsapp-button.d.ts +14 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/fonts/Lexend-VF-latin-ext.woff2 +0 -0
- package/dist/fonts/Lexend-VF-latin.woff2 +0 -0
- package/dist/fonts/Lexend-VF-vietnamese.woff2 +0 -0
- package/dist/fonts/NotoSansArabic-VF-arabic.woff2 +0 -0
- package/dist/fonts/NotoSansDevanagari-VF-devanagari.woff2 +0 -0
- package/dist/hooks/index.js +29 -28
- package/dist/i18n/config.js +2726 -134
- package/dist/i18n/locales/ar.d.ts +147 -3
- package/dist/i18n/locales/de.d.ts +147 -3
- package/dist/i18n/locales/el.d.ts +147 -3
- package/dist/i18n/locales/es.d.ts +147 -3
- package/dist/i18n/locales/fr.d.ts +147 -3
- package/dist/i18n/locales/hi.d.ts +147 -3
- package/dist/i18n/locales/ja.d.ts +147 -3
- package/dist/i18n/locales/nl.d.ts +147 -3
- package/dist/i18n/locales/pl.d.ts +149 -5
- package/dist/i18n/locales/pt.d.ts +147 -3
- package/dist/i18n/locales/ro.d.ts +147 -3
- package/dist/i18n/locales/ru.d.ts +148 -4
- package/dist/i18n/locales/sq.d.ts +147 -3
- package/dist/i18n/locales/sv.d.ts +147 -3
- package/dist/i18n/locales/tr.d.ts +147 -3
- package/dist/i18n/locales/zh.d.ts +147 -3
- package/dist/i18n/resources.d.ts +294 -6
- package/dist/index.js +512 -507
- package/dist/locales/ar.json +149 -5
- package/dist/locales/de.json +149 -5
- package/dist/locales/el.json +149 -5
- package/dist/locales/en.json +147 -3
- package/dist/locales/es.json +149 -5
- package/dist/locales/fr.json +149 -5
- package/dist/locales/hi.json +149 -5
- package/dist/locales/it.json +147 -3
- package/dist/locales/ja.json +149 -5
- package/dist/locales/nl.json +149 -5
- package/dist/locales/pl.json +151 -7
- package/dist/locales/pt.json +149 -5
- package/dist/locales/ro.json +149 -5
- package/dist/locales/ru.json +150 -6
- package/dist/locales/sq.json +149 -5
- package/dist/locales/sv.json +149 -5
- package/dist/locales/tr.json +149 -5
- package/dist/locales/zh.json +149 -5
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +2 -2
- package/package.json +10 -1
- package/dist/_chunks/carousel.agent-CQPFfppK.js +0 -1696
- package/dist/_chunks/description-list-y7Hk51KI.js +0 -191
- package/dist/_chunks/editable-currency-cell-renderer-1t42gENX.js +0 -1972
- package/dist/_chunks/use-locale-C5rS3Xon.js +0 -71
|
@@ -3,7 +3,7 @@ import { forwardRef as m, useMemo as p, useRef as w, useState as V, useCallback
|
|
|
3
3
|
import { c as b } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as A } from "react-i18next";
|
|
5
5
|
import { A as P } from "./avatar-BpFohgWG.js";
|
|
6
|
-
import { C as N } from "./card-
|
|
6
|
+
import { C as N } from "./card-C353dU-H.js";
|
|
7
7
|
import { T as B } from "./timestamp-BV2lC-wV.js";
|
|
8
8
|
import { u as H } from "./registry-C9nwlNyL.js";
|
|
9
9
|
import { C as q } from "./circle-BkqTgYmt.js";
|
|
@@ -156,7 +156,7 @@ const K = {
|
|
|
156
156
|
}
|
|
157
157
|
);
|
|
158
158
|
E.displayName = "Timeline";
|
|
159
|
-
const
|
|
159
|
+
const k = m(
|
|
160
160
|
({ type: t = "neutral", eventId: r, className: s, children: i, ...n }, a) => {
|
|
161
161
|
const { layout: d } = v(u), { t: o } = A(), l = p(() => ({ type: t }), [t]);
|
|
162
162
|
return d === "alternating" ? /* @__PURE__ */ e(g.Provider, { value: l, children: /* @__PURE__ */ c(
|
|
@@ -186,8 +186,8 @@ const S = m(
|
|
|
186
186
|
) });
|
|
187
187
|
}
|
|
188
188
|
);
|
|
189
|
-
|
|
190
|
-
const
|
|
189
|
+
k.displayName = "Timeline.Event";
|
|
190
|
+
const S = m(
|
|
191
191
|
({ icon: t, className: r, ...s }, i) => {
|
|
192
192
|
const { type: n } = v(g), { layout: a } = v(u), d = /* @__PURE__ */ e(
|
|
193
193
|
"div",
|
|
@@ -213,8 +213,8 @@ const _ = m(
|
|
|
213
213
|
) : d;
|
|
214
214
|
}
|
|
215
215
|
);
|
|
216
|
-
|
|
217
|
-
const
|
|
216
|
+
S.displayName = "Timeline.Dot";
|
|
217
|
+
const _ = m(
|
|
218
218
|
({ title: t, description: r, actor: s, children: i, className: n, ...a }, d) => {
|
|
219
219
|
const { layout: o } = v(u), l = /* @__PURE__ */ e(
|
|
220
220
|
"div",
|
|
@@ -222,7 +222,14 @@ const k = m(
|
|
|
222
222
|
ref: d,
|
|
223
223
|
className: [
|
|
224
224
|
"ds:flex-1 ds:min-w-0 ds:pb-[var(--spacing-md)]",
|
|
225
|
-
|
|
225
|
+
// Wrap policy: `break-word` (not `anywhere`) preserves word-
|
|
226
|
+
// boundary wrapping for natural-language titles / descriptions;
|
|
227
|
+
// only genuinely unbreakable strings (URLs, hashes) break mid-
|
|
228
|
+
// word when they would otherwise overflow. `anywhere` introduces
|
|
229
|
+
// a soft-wrap opportunity at every character boundary, which
|
|
230
|
+
// chopped Italian / German labels mid-word when an event card
|
|
231
|
+
// sat in a narrow context.
|
|
232
|
+
"ds:[&_*]:break-normal ds:[&_*]:[overflow-wrap:break-word]",
|
|
226
233
|
n
|
|
227
234
|
].filter(Boolean).join(" "),
|
|
228
235
|
...a,
|
|
@@ -240,7 +247,7 @@ const k = m(
|
|
|
240
247
|
return o === "alternating" ? /* @__PURE__ */ e("div", { className: "ds:col-span-1 ds:[li:nth-child(even)_&]:col-start-3 ds:[li:nth-child(odd)_&]:col-start-1", children: l }) : l;
|
|
241
248
|
}
|
|
242
249
|
);
|
|
243
|
-
|
|
250
|
+
_.displayName = "Timeline.Content";
|
|
244
251
|
const G = 1440 * 60 * 1e3, j = m(
|
|
245
252
|
({
|
|
246
253
|
date: t,
|
|
@@ -267,13 +274,13 @@ const G = 1440 * 60 * 1e3, j = m(
|
|
|
267
274
|
);
|
|
268
275
|
j.displayName = "Timeline.Timestamp";
|
|
269
276
|
const le = Object.assign(E, {
|
|
270
|
-
Event:
|
|
271
|
-
Dot:
|
|
272
|
-
Content:
|
|
277
|
+
Event: k,
|
|
278
|
+
Dot: S,
|
|
279
|
+
Content: _,
|
|
273
280
|
Timestamp: j
|
|
274
281
|
});
|
|
275
282
|
export {
|
|
276
283
|
le as T,
|
|
277
284
|
K as t
|
|
278
285
|
};
|
|
279
|
-
//# sourceMappingURL=timeline-
|
|
286
|
+
//# sourceMappingURL=timeline-jmd7lfDf.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useState as r, useEffect as u, useCallback as c } from "react";
|
|
2
|
+
import "../i18n/config.js";
|
|
3
|
+
import a from "i18next";
|
|
4
|
+
function m() {
|
|
5
|
+
const [e, n] = r(() => a.language);
|
|
6
|
+
u(() => {
|
|
7
|
+
const t = (l) => n(l);
|
|
8
|
+
return a.on("languageChanged", t), a.language !== e && n(a.language), () => {
|
|
9
|
+
a.off("languageChanged", t);
|
|
10
|
+
};
|
|
11
|
+
}, [e]);
|
|
12
|
+
const o = c(async (t) => {
|
|
13
|
+
await a.changeLanguage(t);
|
|
14
|
+
}, []), g = a.dir(e) === "rtl" ? "rtl" : "ltr";
|
|
15
|
+
return { locale: e, dir: g, setLocale: o };
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
m as u
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=use-locale-BkCIHujH.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useState as h, useEffect as w, useRef as m } from "react";
|
|
2
|
+
function v(e) {
|
|
3
|
+
const [i, r] = h(() => typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia(e).matches);
|
|
4
|
+
return w(() => {
|
|
5
|
+
if (typeof window > "u" || typeof window.matchMedia != "function")
|
|
6
|
+
return;
|
|
7
|
+
const n = window.matchMedia(e);
|
|
8
|
+
r(n.matches);
|
|
9
|
+
const t = (u) => r(u.matches);
|
|
10
|
+
return typeof n.addEventListener == "function" ? (n.addEventListener("change", t), () => n.removeEventListener("change", t)) : (n.addListener(t), () => n.removeListener(t));
|
|
11
|
+
}, [e]), i;
|
|
12
|
+
}
|
|
13
|
+
function p(e) {
|
|
14
|
+
return e != null && e.current ? e.current : typeof document > "u" ? null : document;
|
|
15
|
+
}
|
|
16
|
+
function S(e, i) {
|
|
17
|
+
const r = typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : (
|
|
18
|
+
// SSR / jsdom fallback — drop every character that's
|
|
19
|
+
// significant in a CSS attribute selector. Conservative but
|
|
20
|
+
// robust enough for the test environment.
|
|
21
|
+
e.replace(/["'\\[\]]/g, "")
|
|
22
|
+
), n = `[data-error-anchor="${r}"], [name="${r}"], [name$="[${r}]"]`, t = Array.from(i.querySelectorAll(n));
|
|
23
|
+
return t.length === 0 ? null : t.find((f) => f.offsetParent !== null) ?? t[0];
|
|
24
|
+
}
|
|
25
|
+
function E(e, i, r = {}) {
|
|
26
|
+
const {
|
|
27
|
+
scope: n,
|
|
28
|
+
scrollOptions: t = { behavior: "smooth", block: "center" },
|
|
29
|
+
focus: u = !0,
|
|
30
|
+
skipInitialMount: f = !0
|
|
31
|
+
} = r, l = m(!0), c = m(null), o = i.find((s) => !!e[s]) ?? null;
|
|
32
|
+
w(() => {
|
|
33
|
+
if (l.current && (l.current = !1, f)) {
|
|
34
|
+
c.current = o;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (!o) {
|
|
38
|
+
c.current = null;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (o === c.current || typeof window > "u") return;
|
|
42
|
+
const s = window.requestAnimationFrame(() => {
|
|
43
|
+
const d = p(n);
|
|
44
|
+
if (!d) return;
|
|
45
|
+
const a = S(o, d);
|
|
46
|
+
a && (a.scrollIntoView(t), u && a.focus({ preventScroll: !0 }), c.current = o);
|
|
47
|
+
});
|
|
48
|
+
return () => window.cancelAnimationFrame(s);
|
|
49
|
+
}, [o]);
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
E as a,
|
|
53
|
+
v as u
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=use-scroll-to-first-error-BrK7dKB_.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as c, jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as
|
|
2
|
+
import { forwardRef as A, useMemo as C } from "react";
|
|
3
3
|
import { c as m } from "./index-D2ZczOXr.js";
|
|
4
|
-
import { useTranslation as
|
|
4
|
+
import { useTranslation as _ } from "react-i18next";
|
|
5
5
|
function u({ className: a }) {
|
|
6
6
|
return /* @__PURE__ */ i(
|
|
7
7
|
"svg",
|
|
@@ -15,7 +15,7 @@ function u({ className: a }) {
|
|
|
15
15
|
}
|
|
16
16
|
);
|
|
17
17
|
}
|
|
18
|
-
const
|
|
18
|
+
const j = m(
|
|
19
19
|
[
|
|
20
20
|
// `position` is provided by `positionVariants` below — `static`
|
|
21
21
|
// sets `ds:relative` (so the pseudo-element touch-target anchors),
|
|
@@ -103,7 +103,7 @@ const _ = m(
|
|
|
103
103
|
size: "md"
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
),
|
|
106
|
+
), B = m("", {
|
|
107
107
|
variants: {
|
|
108
108
|
position: {
|
|
109
109
|
// `relative` so the `::before` pseudo touch-target (defined in
|
|
@@ -118,47 +118,48 @@ const _ = m(
|
|
|
118
118
|
},
|
|
119
119
|
defaultVariants: { position: "static" }
|
|
120
120
|
});
|
|
121
|
-
function
|
|
121
|
+
function L(a, o) {
|
|
122
122
|
const s = a.replace(/\D/g, "");
|
|
123
123
|
if (s.length === 0)
|
|
124
124
|
return null;
|
|
125
|
-
const
|
|
126
|
-
return o ? `${
|
|
125
|
+
const d = `https://wa.me/${s}`;
|
|
126
|
+
return o ? `${d}?text=${encodeURIComponent(o)}` : d;
|
|
127
127
|
}
|
|
128
|
-
const N =
|
|
128
|
+
const N = A(
|
|
129
129
|
({
|
|
130
130
|
phoneNumber: a,
|
|
131
131
|
message: o,
|
|
132
132
|
variant: s = "pill",
|
|
133
|
-
size:
|
|
133
|
+
size: d = "md",
|
|
134
134
|
position: h,
|
|
135
135
|
label: g,
|
|
136
|
-
|
|
136
|
+
tone: w = "standard",
|
|
137
|
+
className: z,
|
|
137
138
|
...n
|
|
138
|
-
},
|
|
139
|
-
const { t: p } =
|
|
140
|
-
() =>
|
|
139
|
+
}, x) => {
|
|
140
|
+
const { t: p } = _(), f = C(
|
|
141
|
+
() => L(a, o),
|
|
141
142
|
[a, o]
|
|
142
|
-
), e = g ?? p(s === "fab" ? "whatsApp.fabLabel" : "whatsApp.label"),
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
].filter(Boolean).join(" "),
|
|
147
|
-
ref:
|
|
148
|
-
...
|
|
143
|
+
), e = g ?? p(s === "fab" ? "whatsApp.fabLabel" : w === "question" ? "whatsApp.questionPrompt" : "whatsApp.label"), y = [
|
|
144
|
+
j({ variant: s, size: d }),
|
|
145
|
+
B({ position: h }),
|
|
146
|
+
z
|
|
147
|
+
].filter(Boolean).join(" "), r = f === null, v = {
|
|
148
|
+
ref: x,
|
|
149
|
+
...r ? {} : {
|
|
149
150
|
href: f,
|
|
150
151
|
target: "_blank",
|
|
151
152
|
rel: "noopener noreferrer"
|
|
152
153
|
},
|
|
153
|
-
"aria-disabled":
|
|
154
|
+
"aria-disabled": r ? !0 : void 0,
|
|
154
155
|
"data-component": "whatsapp-button",
|
|
155
156
|
"data-variant": s,
|
|
156
157
|
onClick: (l) => {
|
|
157
158
|
var b;
|
|
158
|
-
|
|
159
|
+
r && l.preventDefault(), (b = n.onClick) == null || b.call(n, l);
|
|
159
160
|
},
|
|
160
|
-
className:
|
|
161
|
-
}, t =
|
|
161
|
+
className: y
|
|
162
|
+
}, t = r ? null : p("link.opensInNewTab", "Opens in a new tab");
|
|
162
163
|
if (s === "fab") {
|
|
163
164
|
const l = typeof e == "string" ? t ? `${e} — ${t}` : e : void 0;
|
|
164
165
|
return /* @__PURE__ */ c("a", { ...n, ...v, "aria-label": l, children: [
|
|
@@ -183,4 +184,4 @@ N.displayName = "WhatsAppButton";
|
|
|
183
184
|
export {
|
|
184
185
|
N as W
|
|
185
186
|
};
|
|
186
|
-
//# sourceMappingURL=whatsapp-button-
|
|
187
|
+
//# sourceMappingURL=whatsapp-button-DUjlWGKf.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx as t, jsxs as u, Fragment as ve } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as O, useMemo as R, useRef as j, useCallback as W, useState as ge, useImperativeHandle as ke, useEffect as ye } from "react";
|
|
3
3
|
import { c as L } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as z } from "react-i18next";
|
|
5
|
-
import { C } from "./card-
|
|
5
|
+
import { C } from "./card-C353dU-H.js";
|
|
6
6
|
import { B as be } from "./badge-cLYVGlMh.js";
|
|
7
7
|
import { K as Z } from "./key-value-pair-DBuOCtIc.js";
|
|
8
8
|
import { T as xe } from "./timestamp-BV2lC-wV.js";
|
|
@@ -1412,4 +1412,4 @@ export {
|
|
|
1412
1412
|
ee as r,
|
|
1413
1413
|
D as w
|
|
1414
1414
|
};
|
|
1415
|
-
//# sourceMappingURL=workflow-map-
|
|
1415
|
+
//# sourceMappingURL=workflow-map-BR6txfFX.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "0.
|
|
3
|
+
"packageVersion": "0.25.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -1617,6 +1617,41 @@
|
|
|
1617
1617
|
}
|
|
1618
1618
|
}
|
|
1619
1619
|
},
|
|
1620
|
+
{
|
|
1621
|
+
"kind": "component",
|
|
1622
|
+
"id": "header-settings",
|
|
1623
|
+
"capabilities": [
|
|
1624
|
+
"view_change"
|
|
1625
|
+
],
|
|
1626
|
+
"state": [],
|
|
1627
|
+
"actions": [
|
|
1628
|
+
{
|
|
1629
|
+
"name": "set_locale",
|
|
1630
|
+
"safety": "write",
|
|
1631
|
+
"argsType": "{ locale: string }",
|
|
1632
|
+
"description": "Switch the active locale to the given IETF tag."
|
|
1633
|
+
},
|
|
1634
|
+
{
|
|
1635
|
+
"name": "set_theme",
|
|
1636
|
+
"safety": "write",
|
|
1637
|
+
"argsType": "{ theme: \"light\" | \"dark\" | \"system\" }",
|
|
1638
|
+
"description": "Switch the theme preference."
|
|
1639
|
+
},
|
|
1640
|
+
{
|
|
1641
|
+
"name": "set_accessibility",
|
|
1642
|
+
"safety": "write",
|
|
1643
|
+
"argsType": "{ accessibility: \"default\" | \"accessible\" }",
|
|
1644
|
+
"description": "Switch the accessibility preference."
|
|
1645
|
+
}
|
|
1646
|
+
],
|
|
1647
|
+
"domHooks": {
|
|
1648
|
+
"root": {
|
|
1649
|
+
"attr": "data-component",
|
|
1650
|
+
"value": "header-settings",
|
|
1651
|
+
"description": "Marks the HeaderSettings wrapper."
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
},
|
|
1620
1655
|
{
|
|
1621
1656
|
"kind": "component",
|
|
1622
1657
|
"id": "icon-button",
|
|
@@ -1747,6 +1782,29 @@
|
|
|
1747
1782
|
}
|
|
1748
1783
|
}
|
|
1749
1784
|
},
|
|
1785
|
+
{
|
|
1786
|
+
"kind": "component",
|
|
1787
|
+
"id": "locale-picker",
|
|
1788
|
+
"capabilities": [
|
|
1789
|
+
"view_change"
|
|
1790
|
+
],
|
|
1791
|
+
"state": [],
|
|
1792
|
+
"actions": [
|
|
1793
|
+
{
|
|
1794
|
+
"name": "set_locale",
|
|
1795
|
+
"safety": "write",
|
|
1796
|
+
"argsType": "{ locale: string }",
|
|
1797
|
+
"description": "Switch the active locale to the given IETF tag."
|
|
1798
|
+
}
|
|
1799
|
+
],
|
|
1800
|
+
"domHooks": {
|
|
1801
|
+
"root": {
|
|
1802
|
+
"attr": "data-component",
|
|
1803
|
+
"value": "locale-picker",
|
|
1804
|
+
"description": "Marks the LocalePicker wrapper."
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1807
|
+
},
|
|
1750
1808
|
{
|
|
1751
1809
|
"kind": "component",
|
|
1752
1810
|
"id": "logo",
|
|
@@ -26,6 +26,27 @@ export interface CarouselProps extends Omit<ComponentPropsWithoutRef<'section'>,
|
|
|
26
26
|
snap?: 'mandatory' | 'proximity';
|
|
27
27
|
/** Consumer-supplied instance id, surfaced as `data-component-id`. */
|
|
28
28
|
id?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Fade the inline edges of the viewport so offscreen slides on the
|
|
31
|
+
* leading and trailing edges appear to dissolve into the surrounding
|
|
32
|
+
* surface instead of being clipped abruptly. Defaults to `true`.
|
|
33
|
+
*
|
|
34
|
+
* The fade is conditionally suppressed when the carousel is at the
|
|
35
|
+
* start of the strip (leading edge stays solid) or at the end
|
|
36
|
+
* (trailing edge stays solid) — there is no offscreen content to
|
|
37
|
+
* hint at in those positions, and a fade would just look like a
|
|
38
|
+
* decorative haze.
|
|
39
|
+
*
|
|
40
|
+
* The gradient width is controlled by `--carousel-fade-distance`,
|
|
41
|
+
* which defaults to `var(--spacing-xl)`. Consumers can override it
|
|
42
|
+
* by setting the variable on the Carousel root via className, e.g.
|
|
43
|
+
* `<Carousel className="ds:[--carousel-fade-distance:5rem]" …>`.
|
|
44
|
+
*
|
|
45
|
+
* Automatically disabled under `prefers-reduced-motion`, the
|
|
46
|
+
* `theme-accessible` palette, and Windows High Contrast Mode so the
|
|
47
|
+
* mask never strips information from users who need it.
|
|
48
|
+
*/
|
|
49
|
+
fadeEdges?: boolean;
|
|
29
50
|
}
|
|
30
51
|
export interface CarouselItemProps extends ComponentPropsWithoutRef<'div'> {
|
|
31
52
|
children: ReactNode;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { CustomFilterProps, CustomFloatingFilterProps } from 'ag-grid-react';
|
|
2
|
+
import type { IFilter } from 'ag-grid-community';
|
|
3
|
+
/**
|
|
4
|
+
* Custom AG Grid filter component for numeric columns. AG Grid Community's
|
|
5
|
+
* built-in `agNumberColumnFilter` paints a stock browser-skinned
|
|
6
|
+
* `<input type="number">` that does not match the kit's form language —
|
|
7
|
+
* this wraps the DS `<NumberInput>` + `<Select>` so totals, prices,
|
|
8
|
+
* quantities, etc. line up visually with neighbouring DS-styled cells.
|
|
9
|
+
*
|
|
10
|
+
* Wire on a colDef:
|
|
11
|
+
* ```tsx
|
|
12
|
+
* {
|
|
13
|
+
* field: 'total',
|
|
14
|
+
* filter: NumberFilter,
|
|
15
|
+
* floatingFilterComponent: NumberFloatingFilter,
|
|
16
|
+
* filterParams: { defaultOperator: 'greaterThan', min: 0 },
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* The full-popover variant exposes the operator dropdown (equals,
|
|
21
|
+
* greaterThan, inRange, blank, …); the floating-filter row is a single
|
|
22
|
+
* compact input whose operator is fixed to `defaultOperator`. Both speak
|
|
23
|
+
* the same `NumberFilterModel` so server-side adapters can read either.
|
|
24
|
+
*
|
|
25
|
+
* Model shape `{ type, filter, filterTo? }` matches AG Grid's own
|
|
26
|
+
* `agNumberColumnFilter` vocabulary so adapters can interchange.
|
|
27
|
+
*/
|
|
28
|
+
export type NumberFilterOperator = 'equals' | 'notEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'inRange' | 'blank' | 'notBlank';
|
|
29
|
+
export interface NumberFilterModel {
|
|
30
|
+
type: NumberFilterOperator;
|
|
31
|
+
filter: number;
|
|
32
|
+
filterTo?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface NumberFilterParams {
|
|
35
|
+
defaultOperator?: NumberFilterOperator;
|
|
36
|
+
min?: number;
|
|
37
|
+
max?: number;
|
|
38
|
+
step?: number;
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function NumberFilter(props: CustomFilterProps<unknown, unknown, NumberFilterModel> & NumberFilterParams): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
/**
|
|
43
|
+
* Floating-filter companion for `NumberFilter`.
|
|
44
|
+
*
|
|
45
|
+
* Renders the kit's `<NumberInput>` directly as the inline filter input
|
|
46
|
+
* with a fixed operator (`defaultOperator`, or `'equals'`). The operator
|
|
47
|
+
* dropdown lives only in the full popover — the floating-filter row is
|
|
48
|
+
* deliberately compact, matching the way `agNumberColumnFilter` ships
|
|
49
|
+
* with AG Grid Community.
|
|
50
|
+
*
|
|
51
|
+
* Debounced commit at 200 ms so each keystroke does not re-run the grid
|
|
52
|
+
* filter. Empty input or invalid number commits `null` so the column
|
|
53
|
+
* reverts to "no filter" rather than `filter: NaN`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function NumberFloatingFilter(props: CustomFloatingFilterProps<IFilter, unknown, unknown, NumberFilterModel>): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
//# sourceMappingURL=number-filter.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { CustomFilterProps, CustomFloatingFilterProps } from 'ag-grid-react';
|
|
2
|
+
import type { IFilter } from 'ag-grid-community';
|
|
3
|
+
/**
|
|
4
|
+
* Custom AG Grid filter component — text-comparison filter.
|
|
5
|
+
*
|
|
6
|
+
* Fills the gap left by `agTextColumnFilter`'s stock browser-skinned
|
|
7
|
+
* input by wrapping the kit's `<TextInput>` and `<Select>` so the
|
|
8
|
+
* column-header menu (`TextFilter`) and the inline floating row
|
|
9
|
+
* (`TextFloatingFilter`) match the DS form language.
|
|
10
|
+
*
|
|
11
|
+
* Wire on a colDef:
|
|
12
|
+
* ```tsx
|
|
13
|
+
* {
|
|
14
|
+
* field: 'description',
|
|
15
|
+
* filter: TextFilter,
|
|
16
|
+
* floatingFilter: true,
|
|
17
|
+
* floatingFilterComponent: TextFloatingFilter,
|
|
18
|
+
* filterParams: { defaultOperator: 'contains' },
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Model shape `{ type, filter }` mirrors AG Grid's `agTextColumnFilter`
|
|
23
|
+
* text-operator vocabulary (`contains`, `equals`, `startsWith`,
|
|
24
|
+
* `endsWith`, `notContains`) so server-side adapters that already
|
|
25
|
+
* understand the stock filter can read this one identically.
|
|
26
|
+
*/
|
|
27
|
+
export type TextFilterOperator = 'contains' | 'equals' | 'startsWith' | 'endsWith' | 'notContains';
|
|
28
|
+
export interface TextFilterModel {
|
|
29
|
+
type: TextFilterOperator;
|
|
30
|
+
filter: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TextFilterParams {
|
|
33
|
+
placeholder?: string;
|
|
34
|
+
defaultOperator?: TextFilterOperator;
|
|
35
|
+
}
|
|
36
|
+
export declare function TextFilter(props: CustomFilterProps<unknown, unknown, TextFilterModel> & TextFilterParams): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* Floating-filter companion for `TextFilter`.
|
|
39
|
+
*
|
|
40
|
+
* Renders a `<TextInput size="sm">` directly as the inline floating
|
|
41
|
+
* filter — leading search icon, optional trailing clear button, fixed
|
|
42
|
+
* operator (the popover version owns operator selection so the inline
|
|
43
|
+
* row stays compact).
|
|
44
|
+
*
|
|
45
|
+
* Commits debounce at 200ms; empty input commits `null` so the grid
|
|
46
|
+
* stops filtering as soon as the field is blank.
|
|
47
|
+
*/
|
|
48
|
+
export declare function TextFloatingFilter(props: CustomFloatingFilterProps<IFilter, unknown, unknown, TextFilterModel>): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
//# sourceMappingURL=text-filter.d.ts.map
|
|
@@ -10,6 +10,10 @@ export { SelectFilter, SelectFloatingFilter } from './filters/select-filter';
|
|
|
10
10
|
export type { SelectFilterModel, SelectFilterOption, SelectFilterParams, } from './filters/select-filter';
|
|
11
11
|
export { TypeaheadFilter, TypeaheadFloatingFilter, } from './filters/typeahead-filter';
|
|
12
12
|
export type { TypeaheadFilterModel, TypeaheadFilterOption, TypeaheadFilterParams, } from './filters/typeahead-filter';
|
|
13
|
+
export { TextFilter, TextFloatingFilter } from './filters/text-filter';
|
|
14
|
+
export type { TextFilterModel, TextFilterOperator, TextFilterParams, } from './filters/text-filter';
|
|
15
|
+
export { NumberFilter, NumberFloatingFilter } from './filters/number-filter';
|
|
16
|
+
export type { NumberFilterModel, NumberFilterOperator, NumberFilterParams, } from './filters/number-filter';
|
|
13
17
|
export { StatusCellRenderer } from './cell-renderers/status-cell-renderer';
|
|
14
18
|
export type { BadgeVariant, StatusCellRendererParams, } from './cell-renderers/status-cell-renderer';
|
|
15
19
|
export { UserCellRenderer } from './cell-renderers/user-cell-renderer';
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
import { A as l, B as r, C as
|
|
1
|
+
import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-DJB5MxAI.js";
|
|
2
2
|
export {
|
|
3
3
|
l as ActionsCellRenderer,
|
|
4
4
|
r as BalanceCellRenderer,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
t as ColorDotCellRenderer,
|
|
6
|
+
s as CurrencyCellRenderer,
|
|
7
7
|
n as DataTable,
|
|
8
8
|
d as DateCellRenderer,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
i as DateRangeFilter,
|
|
10
|
+
o as DateRangeFloatingFilter,
|
|
11
|
+
C as EditableCurrencyCellRenderer,
|
|
12
12
|
R as EditableTextCellRenderer,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
b as
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
D as
|
|
20
|
-
|
|
21
|
-
p as
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
F as ImageCellRenderer,
|
|
14
|
+
g as LinkCellRenderer,
|
|
15
|
+
T as NumberFilter,
|
|
16
|
+
b as NumberFloatingFilter,
|
|
17
|
+
u as SelectFilter,
|
|
18
|
+
c as SelectFloatingFilter,
|
|
19
|
+
D as StatusCellRenderer,
|
|
20
|
+
m as TagListCellRenderer,
|
|
21
|
+
p as TextFilter,
|
|
22
|
+
x as TextFloatingFilter,
|
|
23
|
+
f as ToggleCellRenderer,
|
|
24
|
+
y as Toolbar,
|
|
25
|
+
E as ToolbarProvider,
|
|
26
|
+
S as TypeaheadFilter,
|
|
27
|
+
h as TypeaheadFloatingFilter,
|
|
28
|
+
A as UserCellRenderer,
|
|
29
|
+
L as dataTableAgent,
|
|
30
|
+
N as defaultExportPdf,
|
|
31
|
+
k as useTotalRow
|
|
28
32
|
};
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,29 @@
|
|
|
1
|
+
type LabelWidthPreset = 'auto' | 'fixed';
|
|
2
|
+
export type DescriptionListLabelWidth = LabelWidthPreset | (string & {});
|
|
1
3
|
export interface DescriptionListProps extends React.HTMLAttributes<HTMLDListElement> {
|
|
2
4
|
layout?: 'inline' | 'stacked' | 'responsive';
|
|
3
5
|
density?: 'default' | 'compact';
|
|
4
6
|
divider?: 'none' | 'between' | 'bordered';
|
|
7
|
+
/**
|
|
8
|
+
* Width of the term column in `inline` and `responsive` layouts.
|
|
9
|
+
*
|
|
10
|
+
* - `'auto'` (default): the term column sizes to its intrinsic content
|
|
11
|
+
* per row, so labels wrap at word boundaries in narrow contexts (carousel
|
|
12
|
+
* cards, sidebar panels) and the detail column takes the remaining inline
|
|
13
|
+
* space. **Sibling rows do NOT share column widths under this preset** —
|
|
14
|
+
* each row's columns size to its own content. Use this when intrinsic
|
|
15
|
+
* per-row sizing matters more than vertical alignment of values.
|
|
16
|
+
* - `'fixed'`: ⅓ / ⅔ split — term column is `minmax(0, 1fr)` and detail
|
|
17
|
+
* column is `minmax(0, 2fr)`. Sibling rows share the same proportional
|
|
18
|
+
* widths, so values align vertically across rows. Use this when shared
|
|
19
|
+
* value-column alignment matters (the typical use case for a list of
|
|
20
|
+
* contact rows, profile fields, or any tabular-feeling metadata).
|
|
21
|
+
* - any CSS track size (`'8rem'`, `'min-content'`, `'40%'`, …): pins the
|
|
22
|
+
* term column to that width and lets the detail column take the rest.
|
|
23
|
+
*
|
|
24
|
+
* Ignored when `layout="stacked"` (single content column).
|
|
25
|
+
*/
|
|
26
|
+
labelWidth?: DescriptionListLabelWidth;
|
|
5
27
|
}
|
|
6
28
|
export interface DescriptionListRowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
29
|
/** When true, shows a copy-to-clipboard button using KeyValuePair's established mechanism */
|
|
@@ -10,6 +32,23 @@ export interface DescriptionListRowProps extends React.HTMLAttributes<HTMLDivEle
|
|
|
10
32
|
copyText?: string;
|
|
11
33
|
/** Label used in the copy button's aria-label: "Copy {copyLabel}". Falls back to copyText. */
|
|
12
34
|
copyLabel?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Optional decorative icon rendered at the leading edge of the row.
|
|
37
|
+
* Pass a `lucide-react` icon (or any single React element) for visual
|
|
38
|
+
* consistency. The wrapper applies `aria-hidden="true"` and paints
|
|
39
|
+
* the icon with `var(--description-list-icon-color)` (defaults to
|
|
40
|
+
* `--muted-foreground`); consumers can recolour the slot via that
|
|
41
|
+
* token without forking the component.
|
|
42
|
+
*
|
|
43
|
+
* When any row in the list passes an `icon`, every row reserves a
|
|
44
|
+
* leading icon column so values align across siblings — including
|
|
45
|
+
* rows that did not pass an icon.
|
|
46
|
+
*
|
|
47
|
+
* Type is `ReactElement` (not the broader `ReactNode`) so the intent
|
|
48
|
+
* is clear at the call site: this slot is for a single SVG/icon,
|
|
49
|
+
* not arbitrary fragments, strings, or numbers.
|
|
50
|
+
*/
|
|
51
|
+
icon?: React.ReactElement | null;
|
|
13
52
|
}
|
|
14
53
|
export type DescriptionListTermProps = React.HTMLAttributes<HTMLElement>;
|
|
15
54
|
export interface DescriptionListDetailProps extends React.HTMLAttributes<HTMLElement> {
|
|
@@ -21,4 +60,5 @@ export declare const DescriptionList: import("react").ForwardRefExoticComponent<
|
|
|
21
60
|
Term: import("react").ForwardRefExoticComponent<DescriptionListTermProps & import("react").RefAttributes<HTMLElement>>;
|
|
22
61
|
Detail: import("react").ForwardRefExoticComponent<DescriptionListDetailProps & import("react").RefAttributes<HTMLElement>>;
|
|
23
62
|
};
|
|
63
|
+
export {};
|
|
24
64
|
//# sourceMappingURL=description-list.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { DescriptionList } from './description-list';
|
|
2
|
-
export type { DescriptionListProps, DescriptionListRowProps, DescriptionListTermProps, DescriptionListDetailProps, } from './description-list';
|
|
2
|
+
export type { DescriptionListProps, DescriptionListRowProps, DescriptionListTermProps, DescriptionListDetailProps, DescriptionListLabelWidth, } from './description-list';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|