ionbase-ui 0.24.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/components/AgentActivity.d.ts +41 -0
- package/dist/components/AgentActivity.d.ts.map +1 -0
- package/dist/components/AgentActivity.js +84 -0
- package/dist/components/AgentActivity.js.map +1 -0
- package/dist/components/Citation.d.ts +51 -0
- package/dist/components/Citation.d.ts.map +1 -0
- package/dist/components/Citation.js +41 -0
- package/dist/components/Citation.js.map +1 -0
- package/dist/components/ConfidenceIndicator.d.ts +37 -0
- package/dist/components/ConfidenceIndicator.d.ts.map +1 -0
- package/dist/components/ConfidenceIndicator.js +41 -0
- package/dist/components/ConfidenceIndicator.js.map +1 -0
- package/dist/components/StreamingText.d.ts +47 -0
- package/dist/components/StreamingText.d.ts.map +1 -0
- package/dist/components/StreamingText.js +44 -0
- package/dist/components/StreamingText.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -1
- package/dist/figma-descriptions.json +29 -29
- package/dist/figma-map.json +1 -1
- package/dist/meta/AgentActivity.json +103 -0
- package/dist/meta/AgentActivityStep.json +117 -0
- package/dist/meta/Citation.json +101 -0
- package/dist/meta/CitationList.json +94 -0
- package/dist/meta/CitationListItem.json +88 -0
- package/dist/meta/ConfidenceIndicator.json +115 -0
- package/dist/meta/Input.json +2 -2
- package/dist/meta/PhoneInput.json +2 -2
- package/dist/meta/StreamingText.json +99 -0
- package/dist/meta/components.json +722 -5
- package/dist/meta/contrast.json +240 -0
- package/dist/meta/index.json +64 -1
- package/dist/meta/patterns/index.json +1 -1
- package/dist/styles/agent-activity.css +95 -0
- package/dist/styles/citation.css +93 -0
- package/dist/styles/confidence-indicator.css +97 -0
- package/dist/styles/index.css +4 -0
- package/dist/styles/streaming-text.css +56 -0
- package/llms.txt +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type AgentActivityStatus = 'pending' | 'active' | 'done' | 'failed' | 'skipped';
|
|
3
|
+
export interface AgentActivityProps extends React.HTMLAttributes<HTMLOListElement> {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* Announce the step that just became active, once, in a polite live region.
|
|
7
|
+
*
|
|
8
|
+
* On by default because the whole point of an activity log is knowing what
|
|
9
|
+
* the agent is doing without watching it. Turn it off when several logs are
|
|
10
|
+
* on screen at once, or they narrate over each other.
|
|
11
|
+
*/
|
|
12
|
+
announceActive?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AgentActivityStepProps extends React.LiHTMLAttributes<HTMLLIElement> {
|
|
15
|
+
/** What the agent did, in the user's language. Not a function name. */
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
status?: AgentActivityStatus;
|
|
18
|
+
/** The result, a tool name, a count — whatever makes the step checkable. */
|
|
19
|
+
detail?: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* AgentActivity — what the agent is doing, in plain language.
|
|
23
|
+
*
|
|
24
|
+
* An ordered list, because the steps happened in an order and a screen reader
|
|
25
|
+
* should say "3 of 7". Not a log viewer: this is the account a person reads to
|
|
26
|
+
* decide whether to let the run continue, so the text belongs in their
|
|
27
|
+
* language — "Searched the invoice archive", not `searchIndex(q, {limit:50})`.
|
|
28
|
+
*
|
|
29
|
+
* STATUS IS NEVER CARRIED BY THE ICON ALONE. Every step renders its status as
|
|
30
|
+
* text as well as a glyph. The glyphs differ in shape rather than only in
|
|
31
|
+
* colour, so the list survives greyscale, colour blindness and forced-colours
|
|
32
|
+
* mode — WCAG 1.4.1, which a row of coloured dots fails outright.
|
|
33
|
+
*
|
|
34
|
+
* ONE POLITE ANNOUNCEMENT PER STEP, not one per render. The active step's text
|
|
35
|
+
* is announced when it changes, so a user who is not watching still knows where
|
|
36
|
+
* the run has got to. Watching the DOM instead would re-announce on every
|
|
37
|
+
* unrelated update, which is the failure mode that makes people turn logs off.
|
|
38
|
+
*/
|
|
39
|
+
export declare const AgentActivity: React.ForwardRefExoticComponent<AgentActivityProps & React.RefAttributes<HTMLOListElement>>;
|
|
40
|
+
export declare const AgentActivityStep: React.ForwardRefExoticComponent<AgentActivityStepProps & React.RefAttributes<HTMLLIElement>>;
|
|
41
|
+
//# sourceMappingURL=AgentActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentActivity.d.ts","sourceRoot":"","sources":["../../src/components/AgentActivity.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAC7B,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAChF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACnF,uEAAuE;IACvE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAsED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,6FAyDzB,CAAC;AAIF,eAAO,MAAM,iBAAiB,8FA6B5B,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import React, { forwardRef, useEffect, useRef, useState } from 'react';
|
|
4
|
+
const STATUS_TEXT = {
|
|
5
|
+
pending: 'Not started',
|
|
6
|
+
active: 'In progress',
|
|
7
|
+
done: 'Done',
|
|
8
|
+
failed: 'Failed',
|
|
9
|
+
skipped: 'Skipped',
|
|
10
|
+
};
|
|
11
|
+
const Glyphs = {
|
|
12
|
+
pending: () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", focusable: "false", children: _jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }) })),
|
|
13
|
+
active: () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2", opacity: "0.3" }), _jsx("path", { d: "M21 12a9 9 0 0 0-9-9", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })] })),
|
|
14
|
+
done: () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }), _jsx("path", { d: "m8.5 12 2.5 2.5 4.5-5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] })),
|
|
15
|
+
failed: () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }), _jsx("path", { d: "m9 9 6 6M15 9l-6 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })] })),
|
|
16
|
+
skipped: () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }), _jsx("path", { d: "M8.5 12h7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })] })),
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* AgentActivity — what the agent is doing, in plain language.
|
|
20
|
+
*
|
|
21
|
+
* An ordered list, because the steps happened in an order and a screen reader
|
|
22
|
+
* should say "3 of 7". Not a log viewer: this is the account a person reads to
|
|
23
|
+
* decide whether to let the run continue, so the text belongs in their
|
|
24
|
+
* language — "Searched the invoice archive", not `searchIndex(q, {limit:50})`.
|
|
25
|
+
*
|
|
26
|
+
* STATUS IS NEVER CARRIED BY THE ICON ALONE. Every step renders its status as
|
|
27
|
+
* text as well as a glyph. The glyphs differ in shape rather than only in
|
|
28
|
+
* colour, so the list survives greyscale, colour blindness and forced-colours
|
|
29
|
+
* mode — WCAG 1.4.1, which a row of coloured dots fails outright.
|
|
30
|
+
*
|
|
31
|
+
* ONE POLITE ANNOUNCEMENT PER STEP, not one per render. The active step's text
|
|
32
|
+
* is announced when it changes, so a user who is not watching still knows where
|
|
33
|
+
* the run has got to. Watching the DOM instead would re-announce on every
|
|
34
|
+
* unrelated update, which is the failure mode that makes people turn logs off.
|
|
35
|
+
*/
|
|
36
|
+
export const AgentActivity = forwardRef(({ children, announceActive = true, className, ...rest }, ref) => {
|
|
37
|
+
/*
|
|
38
|
+
* Read the active step out of the children rather than asking the caller to
|
|
39
|
+
* repeat it in a prop. Two sources for one fact is how they disagree.
|
|
40
|
+
*/
|
|
41
|
+
const activeLabel = React.Children.toArray(children).reduce((found, child) => {
|
|
42
|
+
if (found)
|
|
43
|
+
return found;
|
|
44
|
+
if (!React.isValidElement(child))
|
|
45
|
+
return found;
|
|
46
|
+
if (child.props.status !== 'active')
|
|
47
|
+
return found;
|
|
48
|
+
return typeof child.props.children === 'string'
|
|
49
|
+
? child.props.children
|
|
50
|
+
: 'In progress';
|
|
51
|
+
}, '');
|
|
52
|
+
const [announcement, setAnnouncement] = useState('');
|
|
53
|
+
/*
|
|
54
|
+
* Seeded with '' rather than the current label, so the FIRST active step is
|
|
55
|
+
* announced too. Seeding it with `activeLabel` reads as "only announce
|
|
56
|
+
* changes" and silently swallows the one announcement that matters most —
|
|
57
|
+
* the log usually mounts at the moment the run starts, and that first step
|
|
58
|
+
* is exactly what a user who is not watching needs to hear.
|
|
59
|
+
*/
|
|
60
|
+
const previous = useRef('');
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (!announceActive)
|
|
63
|
+
return;
|
|
64
|
+
if (activeLabel && activeLabel !== previous.current)
|
|
65
|
+
setAnnouncement(activeLabel);
|
|
66
|
+
previous.current = activeLabel;
|
|
67
|
+
}, [activeLabel, announceActive]);
|
|
68
|
+
return (_jsxs(_Fragment, { children: [_jsx("ol", { ...rest, ref: ref, className: ['ion-agent-activity', className]
|
|
69
|
+
.filter(Boolean)
|
|
70
|
+
.join(' '), children: children }), announceActive && (_jsx("span", { className: "ion-visually-hidden", role: "status", "aria-live": "polite", children: announcement }))] }));
|
|
71
|
+
});
|
|
72
|
+
AgentActivity.displayName = 'AgentActivity';
|
|
73
|
+
export const AgentActivityStep = forwardRef(({ children, status = 'pending', detail, className, ...rest }, ref) => {
|
|
74
|
+
const Glyph = Glyphs[status];
|
|
75
|
+
return (_jsxs("li", { ...rest, ref: ref, "data-status": status, className: [
|
|
76
|
+
'ion-agent-activity__step',
|
|
77
|
+
`ion-agent-activity__step--${status}`,
|
|
78
|
+
className || '',
|
|
79
|
+
]
|
|
80
|
+
.filter(Boolean)
|
|
81
|
+
.join(' '), children: [_jsx("span", { className: "ion-agent-activity__glyph", "aria-hidden": "true", children: _jsx(Glyph, {}) }), _jsxs("span", { className: "ion-agent-activity__body", children: [_jsx("span", { className: "ion-agent-activity__label", children: children }), detail && _jsx("span", { className: "ion-agent-activity__detail", children: detail })] }), _jsx("span", { className: "ion-visually-hidden", children: STATUS_TEXT[status] })] }));
|
|
82
|
+
});
|
|
83
|
+
AgentActivityStep.displayName = 'AgentActivityStep';
|
|
84
|
+
//# sourceMappingURL=AgentActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentActivity.js","sourceRoot":"","sources":["../../src/components/AgentActivity.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAyBvE,MAAM,WAAW,GAAwC;IACvD,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,MAAM,GAA0D;IACpE,OAAO,EAAE,GAAG,EAAE,CAAC,CACb,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,YACvE,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG,GAClE,CACP;IACD,MAAM,EAAE,GAAG,EAAE,CAAC,CACZ,eAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,aACvE,iBACE,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,GAAG,EACL,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,OAAO,EAAC,KAAK,GACb,EACF,eACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP;IACD,IAAI,EAAE,GAAG,EAAE,CAAC,CACV,eAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,aACvE,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG,EACtE,eACE,CAAC,EAAC,uBAAuB,EACzB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,IACE,CACP;IACD,MAAM,EAAE,GAAG,EAAE,CAAC,CACZ,eAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,aACvE,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG,EACtE,eACE,CAAC,EAAC,oBAAoB,EACtB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP;IACD,OAAO,EAAE,GAAG,EAAE,CAAC,CACb,eAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,aACvE,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG,EACtE,eACE,CAAC,EAAC,WAAW,EACb,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,GACrB,IACE,CACP;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CACrC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D;;;OAGG;IACH,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACzD,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAyB,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAClD,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAC7C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,CAAC;IACpB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD;;;;;;OAMG;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO;YACjD,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;IACjC,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,OAAO,CACL,8BACE,gBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC;qBACzC,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,YAEX,QAAQ,GACN,EACJ,cAAc,IAAI,CACjB,eACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,QAAQ,eACH,QAAQ,YAEjB,YAAY,GACR,CACR,IACA,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CACL,iBACM,IAAI,EACR,GAAG,EAAE,GAAG,iBACK,MAAM,EACnB,SAAS,EAAE;YACT,0BAA0B;YAC1B,6BAA6B,MAAM,EAAE;YACrC,SAAS,IAAI,EAAE;SAChB;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,aAEZ,eAAM,SAAS,EAAC,2BAA2B,iBAAa,MAAM,YAC5D,KAAC,KAAK,KAAG,GACJ,EACP,gBAAM,SAAS,EAAC,0BAA0B,aACxC,eAAM,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAQ,EAC5D,MAAM,IAAI,eAAM,SAAS,EAAC,4BAA4B,YAAE,MAAM,GAAQ,IAClE,EAEP,eAAM,SAAS,EAAC,qBAAqB,YAAE,WAAW,CAAC,MAAM,CAAC,GAAQ,IAC/D,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CitationProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {
|
|
3
|
+
/** The marker shown inline — usually a number matching the footer list. */
|
|
4
|
+
index: number | string;
|
|
5
|
+
/**
|
|
6
|
+
* What is being cited. Required: it is the link's accessible name, and a
|
|
7
|
+
* citation a reader cannot identify without following it is not attribution.
|
|
8
|
+
*/
|
|
9
|
+
source: string;
|
|
10
|
+
/** Where it goes. Omit for a source with no address — a document, a call. */
|
|
11
|
+
href?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CitationListProps extends React.OlHTMLAttributes<HTMLOListElement> {
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
/** Heading above the list. Rendered as plain text, not a heading element. */
|
|
16
|
+
label?: React.ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export interface CitationListItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
|
|
19
|
+
index: number | string;
|
|
20
|
+
source: string;
|
|
21
|
+
href?: string;
|
|
22
|
+
/** The quoted or summarised passage this citation supports. */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Citation — the inline marker.
|
|
27
|
+
*
|
|
28
|
+
* THE MARKER IS NOT THE NAME. Rendered naively, a superscript "1" announces as
|
|
29
|
+
* "link, 1", which tells a screen-reader user nothing about whether to follow
|
|
30
|
+
* it. The visible marker stays a number; the accessible name is
|
|
31
|
+
* "Source 1: <source>". The number is for the sighted reader's eye and the
|
|
32
|
+
* sentence is for everyone.
|
|
33
|
+
*
|
|
34
|
+
* NOT A TOOLTIP. A tooltip cannot be reached on touch and closes on the way to
|
|
35
|
+
* it; attribution has to survive both. It is a real link, or a real
|
|
36
|
+
* non-interactive marker when there is nowhere to go.
|
|
37
|
+
*
|
|
38
|
+
* WITHOUT `href` IT IS NOT A LINK. A citation to a phone call or an internal
|
|
39
|
+
* document has no address, and rendering a dead anchor for it puts an
|
|
40
|
+
* unfollowable link in the page's link list. It becomes a plain marked-up
|
|
41
|
+
* reference instead.
|
|
42
|
+
*/
|
|
43
|
+
export declare const Citation: React.ForwardRefExoticComponent<CitationProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
44
|
+
/**
|
|
45
|
+
* The footer list. An `<ol>` so the numbering is structural rather than typed
|
|
46
|
+
* into each row, and so a screen reader can say how many sources there are
|
|
47
|
+
* before the reader commits to hearing them.
|
|
48
|
+
*/
|
|
49
|
+
export declare const CitationList: React.ForwardRefExoticComponent<CitationListProps & React.RefAttributes<HTMLOListElement>>;
|
|
50
|
+
export declare const CitationListItem: React.ForwardRefExoticComponent<CitationListItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
51
|
+
//# sourceMappingURL=Citation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Citation.d.ts","sourceRoot":"","sources":["../../src/components/Citation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,UAAU,CACX;IACC,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;IAClF,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,yFAmBpB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,YAAY,4FAexB,CAAC;AAIF,eAAO,MAAM,gBAAgB,6FAyB3B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Citation — the inline marker.
|
|
5
|
+
*
|
|
6
|
+
* THE MARKER IS NOT THE NAME. Rendered naively, a superscript "1" announces as
|
|
7
|
+
* "link, 1", which tells a screen-reader user nothing about whether to follow
|
|
8
|
+
* it. The visible marker stays a number; the accessible name is
|
|
9
|
+
* "Source 1: <source>". The number is for the sighted reader's eye and the
|
|
10
|
+
* sentence is for everyone.
|
|
11
|
+
*
|
|
12
|
+
* NOT A TOOLTIP. A tooltip cannot be reached on touch and closes on the way to
|
|
13
|
+
* it; attribution has to survive both. It is a real link, or a real
|
|
14
|
+
* non-interactive marker when there is nowhere to go.
|
|
15
|
+
*
|
|
16
|
+
* WITHOUT `href` IT IS NOT A LINK. A citation to a phone call or an internal
|
|
17
|
+
* document has no address, and rendering a dead anchor for it puts an
|
|
18
|
+
* unfollowable link in the page's link list. It becomes a plain marked-up
|
|
19
|
+
* reference instead.
|
|
20
|
+
*/
|
|
21
|
+
export const Citation = forwardRef(({ index, source, href, className, ...rest }, ref) => {
|
|
22
|
+
const name = `Source ${index}: ${source}`;
|
|
23
|
+
const classes = ['ion-citation', className].filter(Boolean).join(' ');
|
|
24
|
+
if (!href) {
|
|
25
|
+
return (_jsx("span", { className: classes, role: "note", "aria-label": name, children: _jsx("span", { "aria-hidden": "true", children: index }) }));
|
|
26
|
+
}
|
|
27
|
+
return (_jsx("a", { ...rest, ref: ref, href: href, className: classes, "aria-label": name, children: _jsx("span", { "aria-hidden": "true", children: index }) }));
|
|
28
|
+
});
|
|
29
|
+
Citation.displayName = 'Citation';
|
|
30
|
+
/**
|
|
31
|
+
* The footer list. An `<ol>` so the numbering is structural rather than typed
|
|
32
|
+
* into each row, and so a screen reader can say how many sources there are
|
|
33
|
+
* before the reader commits to hearing them.
|
|
34
|
+
*/
|
|
35
|
+
export const CitationList = forwardRef(({ children, label = 'Sources', className, ...rest }, ref) => (_jsxs("div", { className: "ion-citation-list", children: [label && _jsx("p", { className: "ion-citation-list__label", children: label }), _jsx("ol", { ...rest, ref: ref, className: ['ion-citation-list__items', className]
|
|
36
|
+
.filter(Boolean)
|
|
37
|
+
.join(' '), children: children })] })));
|
|
38
|
+
CitationList.displayName = 'CitationList';
|
|
39
|
+
export const CitationListItem = forwardRef(({ index, source, href, children, className, ...rest }, ref) => (_jsxs("li", { ...rest, ref: ref, className: ['ion-citation-list__item', className].filter(Boolean).join(' '), children: [_jsx("span", { className: "ion-citation-list__marker", "aria-hidden": "true", children: index }), _jsxs("span", { className: "ion-citation-list__body", children: [href ? (_jsx("a", { className: "ion-citation-list__source", href: href, children: source })) : (_jsx("span", { className: "ion-citation-list__source", children: source })), children && (_jsx("span", { className: "ion-citation-list__passage", children: children }))] })] })));
|
|
40
|
+
CitationListItem.displayName = 'CitationListItem';
|
|
41
|
+
//# sourceMappingURL=Citation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Citation.js","sourceRoot":"","sources":["../../src/components/Citation.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA+B1C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,UAAU,KAAK,KAAK,MAAM,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CACL,eAAM,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,gBAAa,IAAI,YACpD,8BAAkB,MAAM,YAAE,KAAK,GAAQ,GAClC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAO,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,gBAAc,IAAI,YACrE,8BAAkB,MAAM,YAAE,KAAK,GAAQ,GACrC,CACL,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5D,eAAK,SAAS,EAAC,mBAAmB,aAC/B,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,EAC7D,gBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC;iBAC/C,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,YAEX,QAAQ,GACN,IACD,CACP,CACF,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAGxC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChE,iBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAE3E,eAAM,SAAS,EAAC,2BAA2B,iBAAa,MAAM,YAC3D,KAAK,GACD,EACP,gBAAM,SAAS,EAAC,yBAAyB,aACtC,IAAI,CAAC,CAAC,CAAC,CACN,YAAG,SAAS,EAAC,2BAA2B,EAAC,IAAI,EAAE,IAAI,YAChD,MAAM,GACL,CACL,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,2BAA2B,YAAE,MAAM,GAAQ,CAC5D,EACA,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,4BAA4B,YAAE,QAAQ,GAAQ,CAC/D,IACI,IACJ,CACN,CAAC,CAAC;AAEH,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type ConfidenceLevel = 'low' | 'medium' | 'high';
|
|
3
|
+
export interface ConfidenceIndicatorProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
4
|
+
level: ConfidenceLevel;
|
|
5
|
+
/**
|
|
6
|
+
* What the level is based on. REQUIRED, and the reason this component exists
|
|
7
|
+
* rather than a coloured dot: a confidence with no stated basis is a number
|
|
8
|
+
* the reader has no way to weigh. "3 of 4 sources agree", "no matching
|
|
9
|
+
* records found", "single unverified source".
|
|
10
|
+
*/
|
|
11
|
+
basis: string;
|
|
12
|
+
/** Override the level's word. Keep it a word, not a percentage. */
|
|
13
|
+
label?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ConfidenceIndicator — how much to trust the thing next to it.
|
|
17
|
+
*
|
|
18
|
+
* THERE IS NO PERCENTAGE PROP, AND THERE WILL NOT BE ONE
|
|
19
|
+
*
|
|
20
|
+
* "87% confident" reads as a measurement. Almost nowhere is it one: it is
|
|
21
|
+
* usually a softmax score, a heuristic, or a number a model produced about
|
|
22
|
+
* itself — none of which are calibrated probabilities, and all of which invite
|
|
23
|
+
* a reader to treat two digits of precision as real. Three levels cannot
|
|
24
|
+
* overclaim in that way.
|
|
25
|
+
*
|
|
26
|
+
* `basis` IS REQUIRED FOR THE SAME REASON. A level with nothing behind it is
|
|
27
|
+
* decoration that changes behaviour: people act on "high confidence" whether or
|
|
28
|
+
* not anything justifies it. Making the justification a required prop is the
|
|
29
|
+
* only enforcement available here, and it is a type error rather than a policy
|
|
30
|
+
* — which is the strongest kind this system can offer.
|
|
31
|
+
*
|
|
32
|
+
* It renders as text plus a three-bar meter, never the meter alone. The bars
|
|
33
|
+
* differ in filled COUNT, not only in colour, so the reading survives greyscale
|
|
34
|
+
* and forced-colours mode.
|
|
35
|
+
*/
|
|
36
|
+
export declare const ConfidenceIndicator: React.ForwardRefExoticComponent<ConfidenceIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
|
|
37
|
+
//# sourceMappingURL=ConfidenceIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfidenceIndicator.d.ts","sourceRoot":"","sources":["../../src/components/ConfidenceIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CACpD,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EACrC,UAAU,CACX;IACC,KAAK,EAAE,eAAe,CAAC;IACvB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mBAAmB,kGAiC9B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
const LEVEL_TEXT = {
|
|
4
|
+
low: 'Low confidence',
|
|
5
|
+
medium: 'Medium confidence',
|
|
6
|
+
high: 'High confidence',
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* ConfidenceIndicator — how much to trust the thing next to it.
|
|
10
|
+
*
|
|
11
|
+
* THERE IS NO PERCENTAGE PROP, AND THERE WILL NOT BE ONE
|
|
12
|
+
*
|
|
13
|
+
* "87% confident" reads as a measurement. Almost nowhere is it one: it is
|
|
14
|
+
* usually a softmax score, a heuristic, or a number a model produced about
|
|
15
|
+
* itself — none of which are calibrated probabilities, and all of which invite
|
|
16
|
+
* a reader to treat two digits of precision as real. Three levels cannot
|
|
17
|
+
* overclaim in that way.
|
|
18
|
+
*
|
|
19
|
+
* `basis` IS REQUIRED FOR THE SAME REASON. A level with nothing behind it is
|
|
20
|
+
* decoration that changes behaviour: people act on "high confidence" whether or
|
|
21
|
+
* not anything justifies it. Making the justification a required prop is the
|
|
22
|
+
* only enforcement available here, and it is a type error rather than a policy
|
|
23
|
+
* — which is the strongest kind this system can offer.
|
|
24
|
+
*
|
|
25
|
+
* It renders as text plus a three-bar meter, never the meter alone. The bars
|
|
26
|
+
* differ in filled COUNT, not only in colour, so the reading survives greyscale
|
|
27
|
+
* and forced-colours mode.
|
|
28
|
+
*/
|
|
29
|
+
export const ConfidenceIndicator = forwardRef(({ level, basis, label, className, ...rest }, ref) => {
|
|
30
|
+
const filled = level === 'high' ? 3 : level === 'medium' ? 2 : 1;
|
|
31
|
+
return (_jsxs("span", { ...rest, ref: ref, "data-level": level, className: ['ion-confidence', `ion-confidence--${level}`, className || '']
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join(' '), children: [_jsx("span", { className: "ion-confidence__meter", "aria-hidden": "true", children: [0, 1, 2].map((i) => (_jsx("span", { className: [
|
|
34
|
+
'ion-confidence__bar',
|
|
35
|
+
i < filled ? 'ion-confidence__bar--on' : '',
|
|
36
|
+
]
|
|
37
|
+
.filter(Boolean)
|
|
38
|
+
.join(' ') }, i))) }), _jsx("span", { className: "ion-confidence__label", children: label ?? LEVEL_TEXT[level] }), _jsx("span", { className: "ion-confidence__basis", children: basis })] }));
|
|
39
|
+
});
|
|
40
|
+
ConfidenceIndicator.displayName = 'ConfidenceIndicator';
|
|
41
|
+
//# sourceMappingURL=ConfidenceIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfidenceIndicator.js","sourceRoot":"","sources":["../../src/components/ConfidenceIndicator.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAoB1C,MAAM,UAAU,GAAoC;IAClD,GAAG,EAAE,gBAAgB;IACrB,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAG3C,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,CACL,mBACM,IAAI,EACR,GAAG,EAAE,GAAG,gBACI,KAAK,EACjB,SAAS,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,KAAK,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aACvE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,aAEZ,eAAM,SAAS,EAAC,uBAAuB,iBAAa,MAAM,YACvD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,eAEE,SAAS,EAAE;wBACT,qBAAqB;wBACrB,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;qBAC5C;yBACE,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,IANP,CAAC,CAON,CACH,CAAC,GACG,EACP,eAAM,SAAS,EAAC,uBAAuB,YACpC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,GACtB,EACP,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAQ,IACjD,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface StreamingTextProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
3
|
+
/** The text so far. Re-render with more of it; this component appends nothing. */
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
/** More is still arriving. Shows the cursor and marks the region busy. */
|
|
6
|
+
isStreaming?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Rows of height to hold while the text is short, so the page below does not
|
|
9
|
+
* climb the screen as tokens arrive. Costs blank space at the start and buys
|
|
10
|
+
* a layout that does not move under a reader.
|
|
11
|
+
*/
|
|
12
|
+
minLines?: number;
|
|
13
|
+
/** Accessible name for the region. */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Hide the trailing cursor. The text still marks itself busy. */
|
|
16
|
+
hideCursor?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* StreamingText — model output arriving a token at a time.
|
|
20
|
+
*
|
|
21
|
+
* IT IS NOT A LIVE REGION, AND THAT IS THE WHOLE DESIGN
|
|
22
|
+
*
|
|
23
|
+
* The obvious implementation — `aria-live="polite"` on the container — is the
|
|
24
|
+
* one that makes a screen reader unusable. Every token mutation queues an
|
|
25
|
+
* announcement, so the user hears the answer re-read, stuttered, dozens of
|
|
26
|
+
* times, and cannot get ahead of it. `aria-live="off"` is not an oversight
|
|
27
|
+
* here; it is the accessible choice.
|
|
28
|
+
*
|
|
29
|
+
* What it does instead: `aria-busy` while streaming, so assistive tech knows
|
|
30
|
+
* the region is unsettled and can wait. The text is ordinary readable content
|
|
31
|
+
* throughout — a screen-reader user navigates into it whenever they want,
|
|
32
|
+
* exactly like sighted users reading ahead of the cursor.
|
|
33
|
+
*
|
|
34
|
+
* ANNOUNCING COMPLETION IS THE CALLER'S CALL, not this component's. Some
|
|
35
|
+
* surfaces want "response complete"; a chat with ten turns on screen does not
|
|
36
|
+
* want ten of them. Render your own `role="status"` when you want it.
|
|
37
|
+
*
|
|
38
|
+
* THE HEIGHT IS RESERVED, NOT ANIMATED. `minLines` holds space in `lh` units so
|
|
39
|
+
* the content below stays still. A container that grows token by token drags
|
|
40
|
+
* the whole page, which is worse for someone using magnification than the wait.
|
|
41
|
+
*
|
|
42
|
+
* The cursor is CSS and `aria-hidden`. It stops blinking under
|
|
43
|
+
* `prefers-reduced-motion` — a blinking element is a WCAG 2.3.1 concern and a
|
|
44
|
+
* genuine problem for some vestibular and attention conditions.
|
|
45
|
+
*/
|
|
46
|
+
export declare const StreamingText: React.ForwardRefExoticComponent<StreamingTextProps & React.RefAttributes<HTMLDivElement>>;
|
|
47
|
+
//# sourceMappingURL=StreamingText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingText.d.ts","sourceRoot":"","sources":["../../src/components/StreamingText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,UAAU,CACX;IACC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,aAAa,2FA4CzB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* StreamingText — model output arriving a token at a time.
|
|
5
|
+
*
|
|
6
|
+
* IT IS NOT A LIVE REGION, AND THAT IS THE WHOLE DESIGN
|
|
7
|
+
*
|
|
8
|
+
* The obvious implementation — `aria-live="polite"` on the container — is the
|
|
9
|
+
* one that makes a screen reader unusable. Every token mutation queues an
|
|
10
|
+
* announcement, so the user hears the answer re-read, stuttered, dozens of
|
|
11
|
+
* times, and cannot get ahead of it. `aria-live="off"` is not an oversight
|
|
12
|
+
* here; it is the accessible choice.
|
|
13
|
+
*
|
|
14
|
+
* What it does instead: `aria-busy` while streaming, so assistive tech knows
|
|
15
|
+
* the region is unsettled and can wait. The text is ordinary readable content
|
|
16
|
+
* throughout — a screen-reader user navigates into it whenever they want,
|
|
17
|
+
* exactly like sighted users reading ahead of the cursor.
|
|
18
|
+
*
|
|
19
|
+
* ANNOUNCING COMPLETION IS THE CALLER'S CALL, not this component's. Some
|
|
20
|
+
* surfaces want "response complete"; a chat with ten turns on screen does not
|
|
21
|
+
* want ten of them. Render your own `role="status"` when you want it.
|
|
22
|
+
*
|
|
23
|
+
* THE HEIGHT IS RESERVED, NOT ANIMATED. `minLines` holds space in `lh` units so
|
|
24
|
+
* the content below stays still. A container that grows token by token drags
|
|
25
|
+
* the whole page, which is worse for someone using magnification than the wait.
|
|
26
|
+
*
|
|
27
|
+
* The cursor is CSS and `aria-hidden`. It stops blinking under
|
|
28
|
+
* `prefers-reduced-motion` — a blinking element is a WCAG 2.3.1 concern and a
|
|
29
|
+
* genuine problem for some vestibular and attention conditions.
|
|
30
|
+
*/
|
|
31
|
+
export const StreamingText = forwardRef(({ children, isStreaming = false, minLines, label, hideCursor = false, className, style, ...rest }, ref) => (_jsxs("div", { ...rest, ref: ref, "aria-busy": isStreaming || undefined, "aria-live": "off", "aria-label": label, role: label ? 'region' : undefined, "data-streaming": isStreaming || undefined, style: minLines
|
|
32
|
+
? {
|
|
33
|
+
'--ion-streaming-min-lines': minLines,
|
|
34
|
+
...style,
|
|
35
|
+
}
|
|
36
|
+
: style, className: [
|
|
37
|
+
'ion-streaming-text',
|
|
38
|
+
minLines ? 'ion-streaming-text--reserved' : '',
|
|
39
|
+
className || '',
|
|
40
|
+
]
|
|
41
|
+
.filter(Boolean)
|
|
42
|
+
.join(' '), children: [children, isStreaming && !hideCursor && (_jsx("span", { className: "ion-streaming-text__cursor", "aria-hidden": "true" }))] })));
|
|
43
|
+
StreamingText.displayName = 'StreamingText';
|
|
44
|
+
//# sourceMappingURL=StreamingText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingText.js","sourceRoot":"","sources":["../../src/components/StreamingText.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAsB1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CACrC,CACE,EACE,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,QAAQ,EACR,KAAK,EACL,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE,CAAC,CACH,kBACM,IAAI,EACR,GAAG,EAAE,GAAG,eACG,WAAW,IAAI,SAAS,eACzB,KAAK,gBACH,KAAK,EACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,oBAClB,WAAW,IAAI,SAAS,EACxC,KAAK,EACH,QAAQ;QACN,CAAC,CAAE;YACC,2BAA2B,EAAE,QAAQ;YACrC,GAAG,KAAK;SACe;QAC3B,CAAC,CAAC,KAAK,EAEX,SAAS,EAAE;QACT,oBAAoB;QACpB,QAAQ,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE;QAC9C,SAAS,IAAI,EAAE;KAChB;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,aAEX,QAAQ,EACR,WAAW,IAAI,CAAC,UAAU,IAAI,CAC7B,eAAM,SAAS,EAAC,4BAA4B,iBAAa,MAAM,GAAG,CACnE,IACG,CACP,CACF,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
|
@@ -50,4 +50,12 @@ export { AgentStop } from './AgentStop.js';
|
|
|
50
50
|
export type { AgentStopProps, AgentStopSize } from './AgentStop.js';
|
|
51
51
|
export { ApprovalGate } from './ApprovalGate.js';
|
|
52
52
|
export type { ApprovalGateProps, ApprovalGateRisk, ApprovalGateStatus, } from './ApprovalGate.js';
|
|
53
|
+
export { StreamingText } from './StreamingText.js';
|
|
54
|
+
export type { StreamingTextProps } from './StreamingText.js';
|
|
55
|
+
export { AgentActivity, AgentActivityStep } from './AgentActivity.js';
|
|
56
|
+
export type { AgentActivityProps, AgentActivityStepProps, AgentActivityStatus, } from './AgentActivity.js';
|
|
57
|
+
export { Citation, CitationList, CitationListItem } from './Citation.js';
|
|
58
|
+
export type { CitationProps, CitationListProps, CitationListItemProps, } from './Citation.js';
|
|
59
|
+
export { ConfidenceIndicator } from './ConfidenceIndicator.js';
|
|
60
|
+
export type { ConfidenceIndicatorProps, ConfidenceLevel, } from './ConfidenceIndicator.js';
|
|
53
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -24,4 +24,8 @@ export { ScrollProgress } from './ScrollProgress.js';
|
|
|
24
24
|
export { FullCard } from './FullCard.js';
|
|
25
25
|
export { AgentStop } from './AgentStop.js';
|
|
26
26
|
export { ApprovalGate } from './ApprovalGate.js';
|
|
27
|
+
export { StreamingText } from './StreamingText.js';
|
|
28
|
+
export { AgentActivity, AgentActivityStep } from './AgentActivity.js';
|
|
29
|
+
export { Citation, CitationList, CitationListItem } from './Citation.js';
|
|
30
|
+
export { ConfidenceIndicator } from './ConfidenceIndicator.js';
|
|
27
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAOnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAOnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|