@reforma/components 0.3.2 → 0.3.3
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/chat/Message/turn/MessageAssistantBody.d.ts.map +1 -1
- package/dist/chat/Message/turn/MessageAssistantBody.js +53 -40
- package/dist/chat/Message/turn/MessageAssistantBody.js.map +1 -1
- package/dist/openui/functions/index.d.ts +59 -59
- package/dist/openui/functions/index.d.ts.map +1 -1
- package/package.json +5 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAssistantBody.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageAssistantBody.d.ts","sourceRoot":"","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"names":[],"mappings":"AAmJA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,uBAE9B;IACC,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;IAFG,kEAAkE;kBACpD,OAAO;;uCAFtB;QACC,kEAAkE;QAClE,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CA8EC,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ChevronDown as A } from "@reforma/icons/8";
|
|
2
2
|
import { cn as C } from "@reforma/lib";
|
|
3
|
-
import { observer as
|
|
4
|
-
import { Button as
|
|
5
|
-
import { Collapsible as
|
|
6
|
-
import { For as
|
|
7
|
-
import { Show as
|
|
3
|
+
import { observer as T } from "mobx-react-lite";
|
|
4
|
+
import { Button as F } from "../../../Button/Button.js";
|
|
5
|
+
import { Collapsible as y, useCollapsible as P, CollapsibleTrigger as L, CollapsibleContent as M } from "../../../Collapsible/Collapsible.js";
|
|
6
|
+
import { For as W } from "../../../For/For.js";
|
|
7
|
+
import { Show as w } from "../../../Show/Show.js";
|
|
8
8
|
import { ConversationPendingLoader as S } from "../../Conversation/ConversationPendingLoader.js";
|
|
9
|
-
import { streamingPhaseActiveIndex as
|
|
9
|
+
import { streamingPhaseActiveIndex as N, partsFromSegmentGroups as j } from "../normalize/normalizeMessageParts.js";
|
|
10
10
|
import { MessagePhaseSection as B } from "../segments/MessagePhaseSection.js";
|
|
11
11
|
import v from "./Message.module.css.js";
|
|
12
|
-
import { useMessageTurn as
|
|
13
|
-
import { splitFinishedWork as
|
|
12
|
+
import { useMessageTurn as E } from "./messageTurnContext.js";
|
|
13
|
+
import { splitFinishedWork as $, workedForLabel as D } from "./workedCollapse.js";
|
|
14
14
|
import { jsx as r, jsxs as d, Fragment as b } from "react/jsx-runtime";
|
|
15
15
|
function G(t) {
|
|
16
16
|
const e = [];
|
|
@@ -32,27 +32,27 @@ function k({
|
|
|
32
32
|
phaseActiveIndex: u,
|
|
33
33
|
getPhaseStats: o,
|
|
34
34
|
lastPart: p,
|
|
35
|
-
loaderParts:
|
|
35
|
+
loaderParts: f,
|
|
36
36
|
markTail: a
|
|
37
37
|
}) {
|
|
38
|
-
return /* @__PURE__ */ r(
|
|
38
|
+
return /* @__PURE__ */ r(W, {
|
|
39
39
|
each: t,
|
|
40
|
-
children: (i,
|
|
41
|
-
isLast:
|
|
40
|
+
children: (i, c, {
|
|
41
|
+
isLast: g
|
|
42
42
|
}) => {
|
|
43
|
-
const
|
|
43
|
+
const m = a && g;
|
|
44
44
|
return /* @__PURE__ */ r(B, {
|
|
45
45
|
segment: i,
|
|
46
46
|
messageId: e,
|
|
47
47
|
isStreaming: s,
|
|
48
48
|
isLiveMessage: n,
|
|
49
|
-
isLastSegment:
|
|
50
|
-
streamActive: l && (
|
|
49
|
+
isLastSegment: m,
|
|
50
|
+
streamActive: l && (m || c === u),
|
|
51
51
|
fileStats: i.layout === "grouped" ? o?.(j(i.groups)) : void 0,
|
|
52
|
-
children:
|
|
52
|
+
children: m && s ? /* @__PURE__ */ r(S, {
|
|
53
53
|
lastPart: p,
|
|
54
54
|
messageId: e,
|
|
55
|
-
parts:
|
|
55
|
+
parts: f
|
|
56
56
|
}) : null
|
|
57
57
|
}, `${e}-${i.index}`);
|
|
58
58
|
}
|
|
@@ -63,10 +63,10 @@ function I({
|
|
|
63
63
|
}) {
|
|
64
64
|
const {
|
|
65
65
|
state: e
|
|
66
|
-
} =
|
|
67
|
-
return /* @__PURE__ */ r(
|
|
66
|
+
} = P();
|
|
67
|
+
return /* @__PURE__ */ r(L, {
|
|
68
68
|
asChild: !0,
|
|
69
|
-
children: /* @__PURE__ */ d(
|
|
69
|
+
children: /* @__PURE__ */ d(F, {
|
|
70
70
|
type: "button",
|
|
71
71
|
variant: "inline",
|
|
72
72
|
color: "secondary",
|
|
@@ -80,24 +80,37 @@ function I({
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
function O({
|
|
83
|
+
children: t
|
|
84
|
+
}) {
|
|
85
|
+
const {
|
|
86
|
+
state: e
|
|
87
|
+
} = P();
|
|
88
|
+
return /* @__PURE__ */ r(w, {
|
|
89
|
+
when: e.isExpanded,
|
|
90
|
+
children: /* @__PURE__ */ r(M, {
|
|
91
|
+
className: v.workedPanel,
|
|
92
|
+
children: t
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function R({
|
|
83
97
|
label: t,
|
|
84
98
|
children: e
|
|
85
99
|
}) {
|
|
86
|
-
return /* @__PURE__ */ d(
|
|
100
|
+
return /* @__PURE__ */ d(y, {
|
|
87
101
|
className: v.worked,
|
|
88
102
|
defaultOpen: !1,
|
|
89
103
|
children: [/* @__PURE__ */ r(I, {
|
|
90
104
|
label: t
|
|
91
|
-
}), /* @__PURE__ */ r(
|
|
92
|
-
className: v.workedPanel,
|
|
105
|
+
}), /* @__PURE__ */ r(O, {
|
|
93
106
|
children: e
|
|
94
107
|
})]
|
|
95
108
|
});
|
|
96
109
|
}
|
|
97
|
-
const
|
|
110
|
+
const te = T(({
|
|
98
111
|
hideSources: t = !1
|
|
99
112
|
} = {}) => {
|
|
100
|
-
const e =
|
|
113
|
+
const e = E();
|
|
101
114
|
if (e?.role !== "assistant" || e.message.role !== "assistant")
|
|
102
115
|
return null;
|
|
103
116
|
const {
|
|
@@ -107,31 +120,31 @@ const re = P(({
|
|
|
107
120
|
turnActive: u,
|
|
108
121
|
isStreaming: o,
|
|
109
122
|
isLastMessage: p,
|
|
110
|
-
getPhaseStats:
|
|
111
|
-
} = e, a = t ? G(n) : n, i = e.message.parts,
|
|
123
|
+
getPhaseStats: f
|
|
124
|
+
} = e, a = t ? G(n) : n, i = e.message.parts, c = e.message.metadata;
|
|
112
125
|
if (a.length === 0 && !o)
|
|
113
126
|
return null;
|
|
114
|
-
const
|
|
127
|
+
const g = N(a, o), m = $(a, {
|
|
115
128
|
streaming: o,
|
|
116
|
-
cancelled:
|
|
129
|
+
cancelled: c?.stopReason === "cancelled"
|
|
117
130
|
}), h = {
|
|
118
131
|
messageId: s,
|
|
119
132
|
isStreaming: o,
|
|
120
133
|
isLiveMessage: p,
|
|
121
134
|
turnActive: u,
|
|
122
|
-
phaseActiveIndex:
|
|
123
|
-
getPhaseStats:
|
|
135
|
+
phaseActiveIndex: g,
|
|
136
|
+
getPhaseStats: f,
|
|
124
137
|
lastPart: l,
|
|
125
138
|
loaderParts: i
|
|
126
139
|
};
|
|
127
|
-
return /* @__PURE__ */ r(
|
|
128
|
-
when:
|
|
140
|
+
return /* @__PURE__ */ r(w, {
|
|
141
|
+
when: m,
|
|
129
142
|
fallback: /* @__PURE__ */ d(b, {
|
|
130
143
|
children: [/* @__PURE__ */ r(k, {
|
|
131
144
|
...h,
|
|
132
145
|
segments: a,
|
|
133
146
|
markTail: !0
|
|
134
|
-
}), /* @__PURE__ */ r(
|
|
147
|
+
}), /* @__PURE__ */ r(w, {
|
|
135
148
|
when: o && a.length === 0,
|
|
136
149
|
children: /* @__PURE__ */ r(S, {
|
|
137
150
|
lastPart: l,
|
|
@@ -140,23 +153,23 @@ const re = P(({
|
|
|
140
153
|
})
|
|
141
154
|
})]
|
|
142
155
|
}),
|
|
143
|
-
children: (
|
|
144
|
-
children: [/* @__PURE__ */ r(
|
|
145
|
-
label:
|
|
156
|
+
children: (x) => /* @__PURE__ */ d(b, {
|
|
157
|
+
children: [/* @__PURE__ */ r(R, {
|
|
158
|
+
label: D(c?.startedAt, c?.endedAt),
|
|
146
159
|
children: /* @__PURE__ */ r(k, {
|
|
147
160
|
...h,
|
|
148
|
-
segments:
|
|
161
|
+
segments: x.work,
|
|
149
162
|
markTail: !1
|
|
150
163
|
})
|
|
151
164
|
}), /* @__PURE__ */ r(k, {
|
|
152
165
|
...h,
|
|
153
|
-
segments: [
|
|
166
|
+
segments: [x.answer],
|
|
154
167
|
markTail: !0
|
|
155
168
|
})]
|
|
156
169
|
})
|
|
157
170
|
});
|
|
158
171
|
});
|
|
159
172
|
export {
|
|
160
|
-
|
|
173
|
+
te as MessageAssistantBody
|
|
161
174
|
};
|
|
162
175
|
//# sourceMappingURL=MessageAssistantBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAssistantBody.js","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDown } from '@reforma/icons/8';\nimport { cn } from '@reforma/lib';\nimport { observer } from 'mobx-react-lite';\n\nimport { Button } from '../../../Button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n useCollapsible,\n} from '../../../Collapsible';\nimport { For } from '../../../For';\nimport { Show } from '../../../Show';\nimport { ConversationPendingLoader } from '../../Conversation/ConversationPendingLoader';\nimport { partsFromSegmentGroups, streamingPhaseActiveIndex } from '../normalize/normalizeMessageParts';\nimport { MessagePhaseSection } from '../segments';\nimport styles from './Message.module.css';\nimport { useMessageTurn } from './messageTurnContext';\nimport { splitFinishedWork, workedForLabel } from './workedCollapse';\n\nimport type { ReactNode } from 'react';\nimport type { MessageSegment } from '../normalize/normalizeMessageParts';\nimport type { ReformaUIMessagePart } from '../types';\nimport type { GetPhaseStats } from './messageTurnContext';\n\nfunction segmentsWithoutSources(segments: readonly MessageSegment[]): MessageSegment[] {\n const next: MessageSegment[] = [];\n\n for (const segment of segments) {\n const groups = segment.groups.filter(group => group.kind !== 'sources');\n\n if (groups.length > 0) {\n next.push({ ...segment, groups });\n }\n }\n\n return next;\n}\n\ntype SegmentListProps = {\n segments: readonly MessageSegment[];\n messageId: string;\n isStreaming: boolean;\n isLiveMessage: boolean;\n turnActive: boolean;\n phaseActiveIndex: number;\n getPhaseStats: GetPhaseStats | undefined;\n lastPart: ReformaUIMessagePart | undefined;\n loaderParts: readonly ReformaUIMessagePart[];\n /** Work under the spoiler is not the message tail, so its phases stay closed. */\n markTail: boolean;\n};\n\nfunction AssistantSegments({\n segments,\n messageId,\n isStreaming,\n isLiveMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n markTail,\n}: SegmentListProps) {\n return (\n <For each={ segments }>\n { (segment, segIndex, { isLast }) => {\n const isLastSegment = markTail && isLast;\n\n return (\n <MessagePhaseSection\n key={ `${ messageId }-${ segment.index }` }\n segment={ segment }\n messageId={ messageId }\n isStreaming={ isStreaming }\n isLiveMessage={ isLiveMessage }\n isLastSegment={ isLastSegment }\n streamActive={ turnActive && (isLastSegment || segIndex === phaseActiveIndex) }\n fileStats={\n segment.layout === 'grouped'\n ? getPhaseStats?.(partsFromSegmentGroups(segment.groups))\n : undefined\n }\n >\n { isLastSegment && isStreaming\n ? (\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n )\n : null }\n </MessagePhaseSection>\n );\n } }\n </For>\n );\n}\n\nfunction WorkedTrigger({ label }: { label: string }) {\n const { state } = useCollapsible();\n\n return (\n <CollapsibleTrigger asChild>\n <Button\n type=\"button\"\n variant=\"inline\"\n color=\"secondary\"\n className={ styles.workedTrigger }\n >\n { label }\n <ChevronDown\n className={ cn('chevron', 'next') }\n aria-expanded={ state.isExpanded }\n aria-hidden\n />\n </Button>\n </CollapsibleTrigger>\n );\n}\n\nfunction WorkedFor({ label, children }: { label: string; children: ReactNode }) {\n return (\n <Collapsible className={ styles.worked } defaultOpen={ false }>\n <WorkedTrigger label={ label } />\n <CollapsibleContent className={ styles.workedPanel }>\n { children }\n </CollapsibleContent>\n </Collapsible>\n );\n}\n\n/**\n * Assistant turn segments and streaming pending loader.\n * A finished text answer folds the work into one \"Worked for …\" disclosure.\n * Cancelled turns and turns that do not end on text keep the phase rows open.\n */\nexport const MessageAssistantBody = observer(({\n hideSources = false,\n}: {\n /** Editor footer owns citations — drop in-body Sources groups. */\n hideSources?: boolean;\n} = {}) => {\n const turn = useMessageTurn();\n\n if (turn?.role !== 'assistant' || turn.message.role !== 'assistant') {\n return null;\n }\n\n const {\n messageId,\n segments: rawSegments,\n lastPart,\n turnActive,\n isStreaming,\n isLastMessage,\n getPhaseStats,\n } = turn;\n const segments = hideSources ? segmentsWithoutSources(rawSegments) : rawSegments;\n const loaderParts = turn.message.parts;\n const metadata = turn.message.metadata;\n\n if (segments.length === 0 && !isStreaming) {\n return null;\n }\n\n const phaseActiveIndex = streamingPhaseActiveIndex(segments, isStreaming);\n const finished = splitFinishedWork(segments, {\n streaming: isStreaming,\n cancelled: metadata?.stopReason === 'cancelled',\n });\n const listProps = {\n messageId,\n isStreaming,\n isLiveMessage: isLastMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n };\n\n return (\n <Show\n when={ finished }\n fallback={ (\n <>\n <AssistantSegments\n { ...listProps }\n segments={ segments }\n markTail\n />\n <Show when={ isStreaming && segments.length === 0 }>\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n </Show>\n </>\n ) }\n >\n { split => (\n <>\n <WorkedFor label={ workedForLabel(metadata?.startedAt, metadata?.endedAt) }>\n <AssistantSegments\n { ...listProps }\n segments={ split.work }\n markTail={ false }\n />\n </WorkedFor>\n <AssistantSegments\n { ...listProps }\n segments={ [split.answer] }\n markTail\n />\n </>\n ) }\n </Show>\n );\n});\n"],"names":["segmentsWithoutSources","segments","next","segment","groups","group","AssistantSegments","messageId","isStreaming","isLiveMessage","turnActive","phaseActiveIndex","getPhaseStats","lastPart","loaderParts","markTail","For","segIndex","isLast","isLastSegment","MessagePhaseSection","partsFromSegmentGroups","_jsx","ConversationPendingLoader","WorkedTrigger","label","state","useCollapsible","CollapsibleTrigger","Button","styles","ChevronDown","cn","WorkedFor","children","Collapsible","CollapsibleContent","MessageAssistantBody","observer","hideSources","turn","useMessageTurn","rawSegments","isLastMessage","metadata","streamingPhaseActiveIndex","finished","splitFinishedWork","listProps","Show","_Fragment","split","_jsxs","workedForLabel"],"mappings":";;;;;;;;;;;;;;AAgBA,SAASA,EAAuBC,GAAU;AACxC,QAAMC,IAAO,CAAA;AACb,aAAWC,KAAWF,GAAU;AAC9B,UAAMG,IAASD,EAAQ,OAAO,OAAO,CAAAE,MAASA,EAAM,SAAS,SAAS;AACtE,IAAID,EAAO,SAAS,KAClBF,EAAK,KAAK;AAAA,MACR,GAAGC;AAAA,MACH,QAAAC;AAAA,IAAA,CACD;AAAA,EAEL;AACA,SAAOF;AACT;AACA,SAASI,EAAkB;AAAA,EACzB,UAAAL;AAAA,EACA,WAAAM;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACD,2BAAyBC,GAAK;AAAA,IAC5B,MAAMf;AAAA,IACN,UAAU,CAACE,GAASc,GAAU;AAAA,MAC5B,QAAAC;AAAA,IAAA,MACI;AACJ,YAAMC,IAAgBJ,KAAYG;AAClC,+BAAyBE,GAAqB;AAAA,QAC5C,SAAAjB;AAAA,QACA,WAAAI;AAAA,QACA,aAAAC;AAAA,QACA,eAAAC;AAAA,QACA,eAAAU;AAAA,QACA,cAAcT,MAAeS,KAAiBF,MAAaN;AAAA,QAC3D,WAAWR,EAAQ,WAAW,YAAYS,IAAgBS,EAAuBlB,EAAQ,MAAM,CAAC,IAAI;AAAA,QACpG,UAAUgB,KAAiBX,IAA2Bc,gBAAAA,EAAKC,GAA2B;AAAA,UACpF,UAAAV;AAAA,UACA,WAAAN;AAAA,UACA,OAAOO;AAAA,QAAA,CACR,IAAI;AAAA,MAAA,GACJ,GAAGP,CAAS,IAAIJ,EAAQ,KAAK,EAAE;AAAA,IACpC;AAAA,EAAA,CACD;AACH;AACA,SAASqB,EAAc;AAAA,EACrB,OAAAC;AACF,GAAG;AACD,QAAM;AAAA,IACJ,OAAAC;AAAA,EAAA,IACEC,EAAA;AACJ,2BAAyBC,GAAoB;AAAA,IAC3C,SAAS;AAAA,IACT,4BAA6BC,GAAQ;AAAA,MACnC,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,WAAWC,EAAO;AAAA,MAClB,UAAU,CAACL,GAAoBH,gBAAAA,EAAKS,GAAa;AAAA,QAC/C,WAAWC,EAAG,WAAW,MAAM;AAAA,QAC/B,iBAAiBN,EAAM;AAAA,QACvB,eAAe;AAAA,MAAA,CAChB,CAAC;AAAA,IAAA,CACH;AAAA,EAAA,CACF;AACH;AACA,SAASO,EAAU;AAAA,EACjB,OAAAR;AAAA,EACA,UAAAS;AACF,GAAG;AACD,2BAA0BC,GAAa;AAAA,IACrC,WAAWL,EAAO;AAAA,IAClB,aAAa;AAAA,IACb,UAAU,CAAcR,gBAAAA,EAAKE,GAAe;AAAA,MAC1C,OAAAC;AAAA,IAAA,CACD,GAAgBH,gBAAAA,EAAKc,GAAoB;AAAA,MACxC,WAAWN,EAAO;AAAA,MAClB,UAAAI;AAAA,IAAA,CACD,CAAC;AAAA,EAAA,CACH;AACH;AAOO,MAAMG,KAAuBC,EAAS,CAAC;AAAA,EAC5C,aAAAC,IAAc;AAChB,IAAI,OAAO;AACT,QAAMC,IAAOC,EAAA;AACb,MAAID,GAAM,SAAS,eAAeA,EAAK,QAAQ,SAAS;AACtD,WAAO;AAET,QAAM;AAAA,IACJ,WAAAjC;AAAA,IACA,UAAUmC;AAAA,IACV,UAAA7B;AAAA,IACA,YAAAH;AAAA,IACA,aAAAF;AAAA,IACA,eAAAmC;AAAA,IACA,eAAA/B;AAAA,EAAA,IACE4B,GACEvC,IAAWsC,IAAcvC,EAAuB0C,CAAW,IAAIA,GAC/D5B,IAAc0B,EAAK,QAAQ,OAC3BI,IAAWJ,EAAK,QAAQ;AAC9B,MAAIvC,EAAS,WAAW,KAAK,CAACO;AAC5B,WAAO;AAET,QAAMG,IAAmBkC,EAA0B5C,GAAUO,CAAW,GAClEsC,IAAWC,EAAkB9C,GAAU;AAAA,IAC3C,WAAWO;AAAA,IACX,WAAWoC,GAAU,eAAe;AAAA,EAAA,CACrC,GACKI,IAAY;AAAA,IAChB,WAAAzC;AAAA,IACA,aAAAC;AAAA,IACA,eAAemC;AAAA,IACf,YAAAjC;AAAA,IACA,kBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,EAAA;AAEF,2BAAyBmC,GAAM;AAAA,IAC7B,MAAMH;AAAA,IACN,4BAA6BI,GAAW;AAAA,MACtC,UAAU,CAAc5B,gBAAAA,EAAKhB,GAAmB;AAAA,QAC9C,GAAG0C;AAAA,QACH,UAAA/C;AAAA,QACA,UAAU;AAAA,MAAA,CACX,GAAgBqB,gBAAAA,EAAK2B,GAAM;AAAA,QAC1B,MAAMzC,KAAeP,EAAS,WAAW;AAAA,QACzC,4BAA4BsB,GAA2B;AAAA,UACrD,UAAAV;AAAA,UACA,WAAAN;AAAA,UACA,OAAOO;AAAA,QAAA,CACR;AAAA,MAAA,CACF,CAAC;AAAA,IAAA,CACH;AAAA,IACD,UAAU,CAAAqC,MAAsBC,gBAAAA,EAAMF,GAAW;AAAA,MAC/C,UAAU,CAAc5B,gBAAAA,EAAKW,GAAW;AAAA,QACtC,OAAOoB,EAAeT,GAAU,WAAWA,GAAU,OAAO;AAAA,QAC5D,4BAA4BtC,GAAmB;AAAA,UAC7C,GAAG0C;AAAA,UACH,UAAUG,EAAM;AAAA,UAChB,UAAU;AAAA,QAAA,CACX;AAAA,MAAA,CACF,GAAgB7B,gBAAAA,EAAKhB,GAAmB;AAAA,QACvC,GAAG0C;AAAA,QACH,UAAU,CAACG,EAAM,MAAM;AAAA,QACvB,UAAU;AAAA,MAAA,CACX,CAAC;AAAA,IAAA,CACH;AAAA,EAAA,CACF;AACH,CAAC;"}
|
|
1
|
+
{"version":3,"file":"MessageAssistantBody.js","sources":["../../../../src/chat/Message/turn/MessageAssistantBody.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDown } from '@reforma/icons/8';\nimport { cn } from '@reforma/lib';\nimport { observer } from 'mobx-react-lite';\n\nimport { Button } from '../../../Button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n useCollapsible,\n} from '../../../Collapsible';\nimport { For } from '../../../For';\nimport { Show } from '../../../Show';\nimport { ConversationPendingLoader } from '../../Conversation/ConversationPendingLoader';\nimport { partsFromSegmentGroups, streamingPhaseActiveIndex } from '../normalize/normalizeMessageParts';\nimport { MessagePhaseSection } from '../segments';\nimport styles from './Message.module.css';\nimport { useMessageTurn } from './messageTurnContext';\nimport { splitFinishedWork, workedForLabel } from './workedCollapse';\n\nimport type { ReactNode } from 'react';\nimport type { MessageSegment } from '../normalize/normalizeMessageParts';\nimport type { ReformaUIMessagePart } from '../types';\nimport type { GetPhaseStats } from './messageTurnContext';\n\nfunction segmentsWithoutSources(segments: readonly MessageSegment[]): MessageSegment[] {\n const next: MessageSegment[] = [];\n\n for (const segment of segments) {\n const groups = segment.groups.filter(group => group.kind !== 'sources');\n\n if (groups.length > 0) {\n next.push({ ...segment, groups });\n }\n }\n\n return next;\n}\n\ntype SegmentListProps = {\n segments: readonly MessageSegment[];\n messageId: string;\n isStreaming: boolean;\n isLiveMessage: boolean;\n turnActive: boolean;\n phaseActiveIndex: number;\n getPhaseStats: GetPhaseStats | undefined;\n lastPart: ReformaUIMessagePart | undefined;\n loaderParts: readonly ReformaUIMessagePart[];\n /** Work under the spoiler is not the message tail, so its phases stay closed. */\n markTail: boolean;\n};\n\nfunction AssistantSegments({\n segments,\n messageId,\n isStreaming,\n isLiveMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n markTail,\n}: SegmentListProps) {\n return (\n <For each={ segments }>\n { (segment, segIndex, { isLast }) => {\n const isLastSegment = markTail && isLast;\n\n return (\n <MessagePhaseSection\n key={ `${ messageId }-${ segment.index }` }\n segment={ segment }\n messageId={ messageId }\n isStreaming={ isStreaming }\n isLiveMessage={ isLiveMessage }\n isLastSegment={ isLastSegment }\n streamActive={ turnActive && (isLastSegment || segIndex === phaseActiveIndex) }\n fileStats={\n segment.layout === 'grouped'\n ? getPhaseStats?.(partsFromSegmentGroups(segment.groups))\n : undefined\n }\n >\n { isLastSegment && isStreaming\n ? (\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n )\n : null }\n </MessagePhaseSection>\n );\n } }\n </For>\n );\n}\n\nfunction WorkedTrigger({ label }: { label: string }) {\n const { state } = useCollapsible();\n\n return (\n <CollapsibleTrigger asChild>\n <Button\n type=\"button\"\n variant=\"inline\"\n color=\"secondary\"\n className={ styles.workedTrigger }\n >\n { label }\n <ChevronDown\n className={ cn('chevron', 'next') }\n aria-expanded={ state.isExpanded }\n aria-hidden\n />\n </Button>\n </CollapsibleTrigger>\n );\n}\n\n/** Closed panel stays out of the DOM. `hidden=until-found` is still a flex item and keeps `.worked`'s gap. */\nfunction WorkedPanel({ children }: { children: ReactNode }) {\n const { state } = useCollapsible();\n\n return (\n <Show when={ state.isExpanded }>\n <CollapsibleContent className={ styles.workedPanel }>\n { children }\n </CollapsibleContent>\n </Show>\n );\n}\n\nfunction WorkedFor({ label, children }: { label: string; children: ReactNode }) {\n return (\n <Collapsible className={ styles.worked } defaultOpen={ false }>\n <WorkedTrigger label={ label } />\n <WorkedPanel>{ children }</WorkedPanel>\n </Collapsible>\n );\n}\n\n/**\n * Assistant turn segments and streaming pending loader.\n * A finished text answer folds the work into one \"Worked for …\" disclosure.\n * Cancelled turns and turns that do not end on text keep the phase rows open.\n */\nexport const MessageAssistantBody = observer(({\n hideSources = false,\n}: {\n /** Editor footer owns citations — drop in-body Sources groups. */\n hideSources?: boolean;\n} = {}) => {\n const turn = useMessageTurn();\n\n if (turn?.role !== 'assistant' || turn.message.role !== 'assistant') {\n return null;\n }\n\n const {\n messageId,\n segments: rawSegments,\n lastPart,\n turnActive,\n isStreaming,\n isLastMessage,\n getPhaseStats,\n } = turn;\n const segments = hideSources ? segmentsWithoutSources(rawSegments) : rawSegments;\n const loaderParts = turn.message.parts;\n const metadata = turn.message.metadata;\n\n if (segments.length === 0 && !isStreaming) {\n return null;\n }\n\n const phaseActiveIndex = streamingPhaseActiveIndex(segments, isStreaming);\n const finished = splitFinishedWork(segments, {\n streaming: isStreaming,\n cancelled: metadata?.stopReason === 'cancelled',\n });\n const listProps = {\n messageId,\n isStreaming,\n isLiveMessage: isLastMessage,\n turnActive,\n phaseActiveIndex,\n getPhaseStats,\n lastPart,\n loaderParts,\n };\n\n return (\n <Show\n when={ finished }\n fallback={ (\n <>\n <AssistantSegments\n { ...listProps }\n segments={ segments }\n markTail\n />\n <Show when={ isStreaming && segments.length === 0 }>\n <ConversationPendingLoader\n lastPart={ lastPart }\n messageId={ messageId }\n parts={ loaderParts }\n />\n </Show>\n </>\n ) }\n >\n { split => (\n <>\n <WorkedFor label={ workedForLabel(metadata?.startedAt, metadata?.endedAt) }>\n <AssistantSegments\n { ...listProps }\n segments={ split.work }\n markTail={ false }\n />\n </WorkedFor>\n <AssistantSegments\n { ...listProps }\n segments={ [split.answer] }\n markTail\n />\n </>\n ) }\n </Show>\n );\n});\n"],"names":["segmentsWithoutSources","segments","next","segment","groups","group","AssistantSegments","messageId","isStreaming","isLiveMessage","turnActive","phaseActiveIndex","getPhaseStats","lastPart","loaderParts","markTail","For","segIndex","isLast","isLastSegment","MessagePhaseSection","partsFromSegmentGroups","_jsx","ConversationPendingLoader","WorkedTrigger","label","state","useCollapsible","CollapsibleTrigger","Button","styles","ChevronDown","cn","WorkedPanel","children","Show","CollapsibleContent","WorkedFor","Collapsible","MessageAssistantBody","observer","hideSources","turn","useMessageTurn","rawSegments","isLastMessage","metadata","streamingPhaseActiveIndex","finished","splitFinishedWork","listProps","_Fragment","split","_jsxs","workedForLabel"],"mappings":"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"}
|
|
@@ -5,6 +5,64 @@
|
|
|
5
5
|
* and @Now. Bad arguments, or a throw, make a call evaluate to null.
|
|
6
6
|
*/
|
|
7
7
|
export declare const functions: (import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
8
|
+
list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
|
|
9
|
+
item: import("zod/v4").ZodAny;
|
|
10
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodBoolean> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
11
|
+
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
12
|
+
item: import("zod/v4").ZodAny;
|
|
13
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
14
|
+
list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
|
|
15
|
+
start: import("zod/v4").ZodNumber;
|
|
16
|
+
end: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
17
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
18
|
+
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
19
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodAny>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
20
|
+
start: import("zod/v4").ZodNumber;
|
|
21
|
+
end: import("zod/v4").ZodNumber;
|
|
22
|
+
step: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
23
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
24
|
+
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
25
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
26
|
+
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
27
|
+
size: import("zod/v4").ZodNumber;
|
|
28
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodArray<import("zod/v4").ZodAny>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
29
|
+
base: import("zod/v4").ZodNumber;
|
|
30
|
+
exponent: import("zod/v4").ZodNumber;
|
|
31
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
32
|
+
number: import("zod/v4").ZodNumber;
|
|
33
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
34
|
+
min: import("zod/v4").ZodNumber;
|
|
35
|
+
max: import("zod/v4").ZodNumber;
|
|
36
|
+
integer: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
|
|
37
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
38
|
+
part: import("zod/v4").ZodNumber;
|
|
39
|
+
total: import("zod/v4").ZodNumber;
|
|
40
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
41
|
+
a: import("zod/v4").ZodNumber;
|
|
42
|
+
b: import("zod/v4").ZodNumber;
|
|
43
|
+
t: import("zod/v4").ZodNumber;
|
|
44
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
45
|
+
total: import("zod/v4").ZodNumber;
|
|
46
|
+
weights: import("zod/v4").ZodArray<import("zod/v4").ZodNumber>;
|
|
47
|
+
decimals: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
48
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
49
|
+
principal: import("zod/v4").ZodNumber;
|
|
50
|
+
rate: import("zod/v4").ZodNumber;
|
|
51
|
+
periods: import("zod/v4").ZodNumber;
|
|
52
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
53
|
+
value: import("zod/v4").ZodNumber;
|
|
54
|
+
from: import("zod/v4").ZodString;
|
|
55
|
+
to: import("zod/v4").ZodString;
|
|
56
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
57
|
+
text: import("zod/v4").ZodString;
|
|
58
|
+
sep: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
59
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodString>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
60
|
+
value: import("zod/v4").ZodOptional<import("zod/v4").ZodAny>;
|
|
61
|
+
fallback: import("zod/v4").ZodAny;
|
|
62
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{}, import("zod/v4/core").$strip>, import("zod/v4").ZodString> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
63
|
+
from: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
|
|
64
|
+
to: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
|
|
65
|
+
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
8
66
|
rows: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
9
67
|
key: import("zod/v4").ZodString;
|
|
10
68
|
field: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
@@ -74,63 +132,5 @@ export declare const functions: (import("@openuidev/lang-core").DefinedFunction<
|
|
|
74
132
|
mean: import("zod/v4").ZodNumber;
|
|
75
133
|
median: import("zod/v4").ZodNumber;
|
|
76
134
|
stdev: import("zod/v4").ZodNumber;
|
|
77
|
-
}, import("zod/v4/core").$strip>>
|
|
78
|
-
list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
|
|
79
|
-
item: import("zod/v4").ZodAny;
|
|
80
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodBoolean> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
81
|
-
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
82
|
-
item: import("zod/v4").ZodAny;
|
|
83
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
84
|
-
list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
|
|
85
|
-
start: import("zod/v4").ZodNumber;
|
|
86
|
-
end: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
87
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
88
|
-
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
89
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodAny>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
90
|
-
start: import("zod/v4").ZodNumber;
|
|
91
|
-
end: import("zod/v4").ZodNumber;
|
|
92
|
-
step: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
93
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
94
|
-
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
95
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
96
|
-
list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
|
|
97
|
-
size: import("zod/v4").ZodNumber;
|
|
98
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodArray<import("zod/v4").ZodAny>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
99
|
-
base: import("zod/v4").ZodNumber;
|
|
100
|
-
exponent: import("zod/v4").ZodNumber;
|
|
101
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
102
|
-
number: import("zod/v4").ZodNumber;
|
|
103
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
104
|
-
min: import("zod/v4").ZodNumber;
|
|
105
|
-
max: import("zod/v4").ZodNumber;
|
|
106
|
-
integer: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
|
|
107
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
108
|
-
part: import("zod/v4").ZodNumber;
|
|
109
|
-
total: import("zod/v4").ZodNumber;
|
|
110
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
111
|
-
a: import("zod/v4").ZodNumber;
|
|
112
|
-
b: import("zod/v4").ZodNumber;
|
|
113
|
-
t: import("zod/v4").ZodNumber;
|
|
114
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
115
|
-
total: import("zod/v4").ZodNumber;
|
|
116
|
-
weights: import("zod/v4").ZodArray<import("zod/v4").ZodNumber>;
|
|
117
|
-
decimals: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
|
|
118
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
119
|
-
principal: import("zod/v4").ZodNumber;
|
|
120
|
-
rate: import("zod/v4").ZodNumber;
|
|
121
|
-
periods: import("zod/v4").ZodNumber;
|
|
122
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
123
|
-
value: import("zod/v4").ZodNumber;
|
|
124
|
-
from: import("zod/v4").ZodString;
|
|
125
|
-
to: import("zod/v4").ZodString;
|
|
126
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
127
|
-
text: import("zod/v4").ZodString;
|
|
128
|
-
sep: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
|
|
129
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodString>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
130
|
-
value: import("zod/v4").ZodOptional<import("zod/v4").ZodAny>;
|
|
131
|
-
fallback: import("zod/v4").ZodAny;
|
|
132
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{}, import("zod/v4/core").$strip>, import("zod/v4").ZodString> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
|
|
133
|
-
from: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
|
|
134
|
-
to: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
|
|
135
|
-
}, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber>)[];
|
|
135
|
+
}, import("zod/v4/core").$strip>>)[];
|
|
136
136
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openui/functions/index.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openui/functions/index.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAkH,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@reforma/components",
|
|
3
3
|
"description": "A components library for Reforma",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.3.
|
|
5
|
+
"version": "0.3.3",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"author": "Reforma, Inc. <dev@reforma.ai>",
|
|
8
8
|
"repository": {
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
"@openuidev/react-lang": "^1.0.1",
|
|
70
70
|
"@react-aria/dnd": "^3.11.6",
|
|
71
71
|
"@react-stately/utils": "^3.11.0",
|
|
72
|
-
"@reforma/constants": "
|
|
73
|
-
"@reforma/icons": "
|
|
74
|
-
"@reforma/lib": "
|
|
75
|
-
"@reforma/types": "
|
|
72
|
+
"@reforma/constants": "1.0.1",
|
|
73
|
+
"@reforma/icons": "0.1.0",
|
|
74
|
+
"@reforma/lib": "0.1.5",
|
|
75
|
+
"@reforma/types": "1.2.1",
|
|
76
76
|
"@shikijs/transformers": "^4.0.2",
|
|
77
77
|
"@streamdown/cjk": "1.0.3",
|
|
78
78
|
"@streamdown/code": "1.1.1",
|
|
@@ -114,14 +114,6 @@
|
|
|
114
114
|
"streamdown": "2.5.0",
|
|
115
115
|
"zod": "^4.4.3"
|
|
116
116
|
},
|
|
117
|
-
"devDependencies": {
|
|
118
|
-
"@babel/preset-react": "^7.26.3",
|
|
119
|
-
"@reforma/styles": "workspace:*",
|
|
120
|
-
"@vitejs/plugin-react-swc": "^3.7.0",
|
|
121
|
-
"vite": "^7.0.0",
|
|
122
|
-
"vite-plugin-babel": "^1.3.0",
|
|
123
|
-
"vite-plugin-dts": "4.5.4"
|
|
124
|
-
},
|
|
125
117
|
"peerDependencies": {
|
|
126
118
|
"react": "^19.2.8",
|
|
127
119
|
"react-dom": "^19.2.8"
|