@tdesign-react/chat 1.0.2-alpha.11 → 1.0.2-alpha.13
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/es/_util/reactify.js +4 -4
- package/es/_util/reactify.js.map +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +91 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +236 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
- package/es/chat-engine/components/a2ui/containers/index.js +30 -0
- package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/index.d.ts +11 -0
- package/es/chat-engine/components/a2ui/index.js +60 -0
- package/es/chat-engine/components/a2ui/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +31 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +76 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
- package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
- package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
- package/es/chat-engine/components/a2ui/registry.js +74 -0
- package/es/chat-engine/components/a2ui/registry.js.map +1 -0
- package/es/chat-engine/components/activity/index.js +1 -1
- package/es/chat-engine/components/activity/registry.js +4 -4
- package/es/chat-engine/components/activity/registry.js.map +1 -1
- package/es/chat-engine/components/activity/render.js +6 -6
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +4 -1
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/provider/agent-state.js +6 -3
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +4 -1
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.js +4 -4
- package/es/chat-engine/components/toolcall/registry.js.map +1 -1
- package/es/chat-engine/components/toolcall/render.js +14 -11
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/a2ui/index.js +24 -0
- package/es/chat-engine/core/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/types.d.ts +769 -0
- package/es/chat-engine/core/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +16 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js +60 -6
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/events.js +1 -1
- package/es/chat-engine/core/adapters/agui/index.d.ts +1 -1
- package/es/chat-engine/core/adapters/agui/index.js +1 -1
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
- package/es/chat-engine/core/adapters/agui/types.js +1 -1
- package/es/chat-engine/core/adapters/agui/utils.d.ts +5 -1
- package/es/chat-engine/core/adapters/agui/utils.js +6 -2
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
- package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
- package/es/chat-engine/core/event-bus/index.d.ts +5 -0
- package/es/chat-engine/core/event-bus/index.js +13 -0
- package/es/chat-engine/core/event-bus/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/types.d.ts +230 -0
- package/es/chat-engine/core/event-bus/types.js +32 -0
- package/es/chat-engine/core/event-bus/types.js.map +1 -0
- package/es/chat-engine/core/index.d.ts +8 -1
- package/es/chat-engine/core/index.js +128 -10
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +17 -15
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +1 -1
- package/es/chat-engine/core/store/model.js +1 -1
- package/es/chat-engine/core/store/reactiveState.js +1 -1
- package/es/chat-engine/core/type.d.ts +18 -2
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/index.d.ts +7 -0
- package/es/chat-engine/hooks/a2ui/index.js +19 -0
- package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
- package/es/chat-engine/hooks/index.js +4 -1
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js +4 -1
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +4 -1
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/index.js +4 -1
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/docs/react-best-practice.d.ts +13 -0
- package/es/chatbot/index.js +1 -1
- package/es/index.js +4 -1
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import React__default, { useState } from 'react';
|
|
9
|
+
import { Tabs } from 'tdesign-react';
|
|
10
|
+
import { useDataBinding } from '../../../hooks/a2ui/useDataBinding.js';
|
|
11
|
+
import { A2UIComponentRenderer } from '../A2UIComponentRenderer.js';
|
|
12
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
13
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
14
|
+
import '../../../core/a2ui/utils/index.js';
|
|
15
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
16
|
+
import '@babel/runtime/helpers/typeof';
|
|
17
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
18
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
19
|
+
import '../A2UIErrorBoundary.js';
|
|
20
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
21
|
+
import '@babel/runtime/helpers/createClass';
|
|
22
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
23
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
24
|
+
import '@babel/runtime/helpers/inherits';
|
|
25
|
+
|
|
26
|
+
var TabPanel = Tabs.TabPanel;
|
|
27
|
+
var TabTitle = function TabTitle(_ref) {
|
|
28
|
+
var title = _ref.title;
|
|
29
|
+
var resolvedTitle = useDataBinding(title);
|
|
30
|
+
return /* @__PURE__ */React__default.createElement(React__default.Fragment, null, resolvedTitle);
|
|
31
|
+
};
|
|
32
|
+
var A2UITabs = function A2UITabs(_ref2) {
|
|
33
|
+
var id = _ref2.id,
|
|
34
|
+
tabItems = _ref2.tabItems,
|
|
35
|
+
resolvedChildren = _ref2.resolvedChildren,
|
|
36
|
+
className = _ref2.className,
|
|
37
|
+
style = _ref2.style;
|
|
38
|
+
var _useState = useState("0"),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
activeTab = _useState2[0],
|
|
41
|
+
setActiveTab = _useState2[1];
|
|
42
|
+
if (!tabItems || !Array.isArray(tabItems) || tabItems.length === 0) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
var handleChange = function handleChange(value) {
|
|
46
|
+
setActiveTab(String(value));
|
|
47
|
+
};
|
|
48
|
+
return /* @__PURE__ */React__default.createElement(Tabs, {
|
|
49
|
+
className: className,
|
|
50
|
+
style: style,
|
|
51
|
+
value: activeTab,
|
|
52
|
+
onChange: handleChange
|
|
53
|
+
}, tabItems.map(function (item, index) {
|
|
54
|
+
var childComponent = resolvedChildren === null || resolvedChildren === void 0 ? void 0 : resolvedChildren[index];
|
|
55
|
+
return /* @__PURE__ */React__default.createElement(TabPanel, {
|
|
56
|
+
key: index,
|
|
57
|
+
value: String(index),
|
|
58
|
+
label: /* @__PURE__ */React__default.createElement(TabTitle, {
|
|
59
|
+
title: item.title
|
|
60
|
+
})
|
|
61
|
+
}, childComponent && /* @__PURE__ */React__default.createElement(A2UIComponentRenderer, {
|
|
62
|
+
component: childComponent
|
|
63
|
+
}));
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
A2UITabs.displayName = "A2UITabs";
|
|
67
|
+
|
|
68
|
+
export { A2UITabs, A2UITabs as default };
|
|
69
|
+
//# sourceMappingURL=A2UITabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UITabs.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/containers/A2UITabs.tsx"],"sourcesContent":["/**\n * A2UI Tabs 容器组件\n * A2UI v0.9 标准标签页组件\n */\n\nimport React, { useState } from 'react';\nimport { Tabs } from 'tdesign-react';\nimport { useDataBinding } from '../../../hooks/a2ui/useDataBinding';\nimport { A2UIComponentRenderer } from '../A2UIComponentRenderer';\nimport type { A2UITabsComponent, A2UITabItem, ResolvedComponent, Bindable } from '../../../core/a2ui';\n\nconst { TabPanel } = Tabs;\n\nexport interface A2UITabsProps extends Omit<A2UITabsComponent, 'component'> {\n /** 解析后的子组件(由 ComponentRenderer 传入) */\n resolvedChildren?: ResolvedComponent[];\n className?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * Tab 标题组件(支持数据绑定)\n */\nconst TabTitle: React.FC<{ title: Bindable<string> }> = ({ title }) => {\n const resolvedTitle = useDataBinding<string>(title);\n return <>{resolvedTitle}</>;\n};\n\nexport const A2UITabs: React.FC<A2UITabsProps> = ({\n id,\n tabItems,\n resolvedChildren,\n className,\n style,\n}) => {\n const [activeTab, setActiveTab] = useState<string>('0');\n\n // 如果没有 tabItems,返回 null\n if (!tabItems || !Array.isArray(tabItems) || tabItems.length === 0) {\n return null;\n }\n\n // 处理 tab 切换\n const handleChange = (value: string | number) => {\n setActiveTab(String(value));\n };\n\n return (\n <Tabs\n className={className}\n style={style}\n value={activeTab}\n onChange={handleChange}\n >\n {tabItems.map((item, index) => {\n // 从 resolvedChildren 中找到对应的子组件\n const childComponent = resolvedChildren?.[index];\n\n return (\n <TabPanel\n key={index}\n value={String(index)}\n label={<TabTitle title={item.title} />}\n >\n {childComponent && (\n <A2UIComponentRenderer component={childComponent} />\n )}\n </TabPanel>\n );\n })}\n </Tabs>\n );\n};\n\nA2UITabs.displayName = 'A2UITabs';\n\nexport default A2UITabs;\n"],"names":["TabPanel","Tabs","TabTitle","_ref","title","resolvedTitle","useDataBinding","A2UITabs","id","_ref2","tabItems","resolvedChildren","className","style","_useState","useState","_useState2","_slicedToArray","activeTab","setActiveTab","Array","isArray","length","handleChange","value","String","React","createElement","onChange","map","item","index","childComponent","key","label","A2UIComponentRenderer","component","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAQA,WAAaC,IAAA,CAAbD;AAYR,IAAME,QAAkD,GAAA,SAAlDA,QAAkDA,CAAAC,IAAA,EAAe;AAAA,EAAA,IAAZC,KAAA,GAAAD,IAAA,CAAAC,KAAA,CAAA;AACnD,EAAA,IAAAC,aAAA,GAAgBC,eAAuBF,KAAK,CAAA,CAAA;AAClD,EAAA,kFAAUC,aAAc,CAAA,CAAA;AAC1B,CAAA,CAAA;IAEaE,WAAoC,SAApCA,gBAMP;AAAA,EAAA,IALJC,EAAA,GAAAC,KAAA,CAAAD,EAAA;IACAE,QAAA,GAAAD,KAAA,CAAAC,QAAA;IACAC,gBAAA,GAAAF,KAAA,CAAAE,gBAAA;IACAC,SAAA,GAAAH,KAAA,CAAAG,SAAA;IACAC,KAAA,GAAAJ,KAAA,CAAAI,KAAA,CAAA;AAEA,EAAA,IAAAC,SAAA,GAAkCC,SAAiB,GAAG,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA/CI,IAAAA,SAAA,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAWG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAG1B,EAAA,IAAA,CAACN,YAAY,CAACU,KAAA,CAAMC,QAAQX,QAAQ,CAAA,IAAKA,QAAS,CAAAY,MAAA,KAAW,CAAG,EAAA;AAC3D,IAAA,OAAA,IAAA,CAAA;AACT,GAAA;AAGM,EAAA,IAAAC,YAAA,GAAe,SAAfA,YAAAA,CAAgBC,KAA2B,EAAA;AAClCL,IAAAA,YAAA,CAAAM,MAAA,CAAOD,KAAK,CAAC,CAAA,CAAA;GAC5B,CAAA;AAEA,EAAA,sBACGE,cAAA,CAAAC,aAAA,CAAA1B,IAAA,EAAA;AACCW,IAAAA,SAAA,EAAAA,SAAA;AACAC,IAAAA,KAAA,EAAAA,KAAA;AACAW,IAAAA,KAAO,EAAAN,SAAA;AACPU,IAAAA,QAAU,EAAAL,YAAAA;GAAA,EAETb,QAAS,CAAAmB,GAAA,CAAI,UAACC,IAAA,EAAMC,KAAU,EAAA;IAE7B,IAAMC,iBAAiBrB,gBAAmB,KAAA,IAAA,IAAnBA,gBAAmB,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAmB,CAAAoB,KAAA,CAAA,CAAA;AAE1C,IAAA,sBACGL,cAAA,CAAAC,aAAA,CAAA3B,QAAA,EAAA;AACCiC,MAAAA,GAAK,EAAAF,KAAA;AACLP,MAAAA,KAAA,EAAOC,OAAOM,KAAK,CAAA;AACnBG,MAAAA,sBAAQR,cAAA,CAAAC,aAAA,CAAAzB,QAAA,EAAA;QAASE,OAAO0B,IAAK,CAAA1B,KAAAA;OAAO,CAAA;KAAA,EAEnC4B,iCACEN,cAAA,CAAAC,aAAA,CAAAQ,qBAAA,EAAA;AAAsBC,MAAAA,SAAW,EAAAJ,cAAAA;AAAA,KAAgB,CAEtD,CAAA,CAAA;AAEJ,GAAC,CACH,CAAA,CAAA;AAEJ,EAAA;AAEAzB,QAAA,CAAS8B,WAAc,GAAA,UAAA;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI 容器组件导出
|
|
3
|
+
*/
|
|
4
|
+
export { A2UICard, type A2UICardProps } from './A2UICard';
|
|
5
|
+
export { A2UIRow, type A2UIRowProps } from './A2UIRow';
|
|
6
|
+
export { A2UIColumn, type A2UIColumnProps } from './A2UIColumn';
|
|
7
|
+
export { A2UIList, type A2UIListProps } from './A2UIList';
|
|
8
|
+
export { A2UITabs, type A2UITabsProps } from './A2UITabs';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { A2UICard } from './A2UICard.js';
|
|
8
|
+
export { A2UIRow } from './A2UIRow.js';
|
|
9
|
+
export { A2UIColumn } from './A2UIColumn.js';
|
|
10
|
+
export { A2UIList } from './A2UIList.js';
|
|
11
|
+
export { A2UITabs } from './A2UITabs.js';
|
|
12
|
+
import 'react';
|
|
13
|
+
import 'tdesign-react';
|
|
14
|
+
import '../../../hooks/a2ui/useDataBinding.js';
|
|
15
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
16
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
17
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
18
|
+
import '../../../core/a2ui/utils/index.js';
|
|
19
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
20
|
+
import '@babel/runtime/helpers/typeof';
|
|
21
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
22
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
23
|
+
import '../A2UIComponentRenderer.js';
|
|
24
|
+
import '../A2UIErrorBoundary.js';
|
|
25
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
26
|
+
import '@babel/runtime/helpers/createClass';
|
|
27
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
28
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
29
|
+
import '@babel/runtime/helpers/inherits';
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI 组件层导出
|
|
3
|
+
*/
|
|
4
|
+
export { A2UIComponentRenderer, A2UIChildrenRenderer, type A2UIComponentRendererProps, } from './A2UIComponentRenderer';
|
|
5
|
+
export { A2UISurfaceRenderer, type A2UISurfaceRendererProps, } from './A2UISurfaceRenderer';
|
|
6
|
+
export { A2UIActivityRenderer, createA2UIActivityConfig, type A2UIActivityRendererProps, type A2UIActivityContent, type DeltaInfo, } from './A2UIActivityRenderer';
|
|
7
|
+
export { A2UIErrorBoundary, withA2UIErrorBoundary, type A2UIErrorBoundaryProps, } from './A2UIErrorBoundary';
|
|
8
|
+
export { A2UISkeleton, A2UISurfaceSkeleton, type A2UISkeletonProps, type A2UISurfaceSkeletonProps, } from './A2UISkeleton';
|
|
9
|
+
export { defaultComponentRegistry, createComponentRegistry, extendComponentRegistry, } from './registry';
|
|
10
|
+
export * from './primitives';
|
|
11
|
+
export * from './containers';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { A2UIChildrenRenderer, A2UIComponentRenderer } from './A2UIComponentRenderer.js';
|
|
8
|
+
export { A2UISurfaceRenderer } from './A2UISurfaceRenderer.js';
|
|
9
|
+
export { A2UIActivityRenderer, createA2UIActivityConfig } from './A2UIActivityRenderer.js';
|
|
10
|
+
export { A2UIErrorBoundary, withA2UIErrorBoundary } from './A2UIErrorBoundary.js';
|
|
11
|
+
export { A2UISkeleton, A2UISurfaceSkeleton } from './A2UISkeleton.js';
|
|
12
|
+
export { createComponentRegistry, defaultComponentRegistry, extendComponentRegistry } from './registry.js';
|
|
13
|
+
import './primitives/index.js';
|
|
14
|
+
import './containers/index.js';
|
|
15
|
+
export { A2UIText } from './primitives/A2UIText.js';
|
|
16
|
+
export { A2UIImage } from './primitives/A2UIImage.js';
|
|
17
|
+
export { A2UIIcon } from './primitives/A2UIIcon.js';
|
|
18
|
+
export { A2UIButton } from './primitives/A2UIButton.js';
|
|
19
|
+
export { A2UIInput } from './primitives/A2UIInput.js';
|
|
20
|
+
export { A2UITextField } from './primitives/A2UITextField.js';
|
|
21
|
+
export { A2UICheckBox } from './primitives/A2UICheckBox.js';
|
|
22
|
+
export { A2UIChoicePicker } from './primitives/A2UIChoicePicker.js';
|
|
23
|
+
export { A2UISlider } from './primitives/A2UISlider.js';
|
|
24
|
+
export { A2UIRadioGroup } from './primitives/A2UIRadioGroup.js';
|
|
25
|
+
export { A2UICheckboxGroup } from './primitives/A2UICheckboxGroup.js';
|
|
26
|
+
export { A2UIDivider } from './primitives/A2UIDivider.js';
|
|
27
|
+
export { A2UICard } from './containers/A2UICard.js';
|
|
28
|
+
export { A2UIRow } from './containers/A2UIRow.js';
|
|
29
|
+
export { A2UIColumn } from './containers/A2UIColumn.js';
|
|
30
|
+
export { A2UIList } from './containers/A2UIList.js';
|
|
31
|
+
export { A2UITabs } from './containers/A2UITabs.js';
|
|
32
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
33
|
+
import 'react';
|
|
34
|
+
import '../../hooks/a2ui/A2UIContext.js';
|
|
35
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
36
|
+
import '@babel/runtime/helpers/createClass';
|
|
37
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
38
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
39
|
+
import '@babel/runtime/helpers/inherits';
|
|
40
|
+
import '../../hooks/a2ui/useA2UISurface.js';
|
|
41
|
+
import 'tdesign-react';
|
|
42
|
+
import 'classnames';
|
|
43
|
+
import '../../hooks/a2ui/useDataBinding.js';
|
|
44
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
45
|
+
import '../../core/a2ui/utils/index.js';
|
|
46
|
+
import '../../core/a2ui/utils/binding.js';
|
|
47
|
+
import '@babel/runtime/helpers/typeof';
|
|
48
|
+
import '../../core/a2ui/utils/validation.js';
|
|
49
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
50
|
+
import '../../hooks/a2ui/useA2UIAction.js';
|
|
51
|
+
import '../../core/a2ui/index.js';
|
|
52
|
+
import '../../core/a2ui/types/index.js';
|
|
53
|
+
import '../../core/a2ui/types/types.js';
|
|
54
|
+
import 'zod';
|
|
55
|
+
import '../../core/a2ui/processor/A2uiMessageProcessor.js';
|
|
56
|
+
import '../../core/a2ui/processor/DataStore.js';
|
|
57
|
+
import '@babel/runtime/helpers/toArray';
|
|
58
|
+
import '../../core/a2ui/processor/ComponentTree.js';
|
|
59
|
+
import '../../core/a2ui/processor/PathResolver.js';
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI Button 组件
|
|
3
|
+
* 复用 TDesign Button,支持 A2UI v0.9 child 模式
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { A2UIAction, Bindable, ResolvedComponent } from '../../../core/a2ui';
|
|
7
|
+
type ButtonTheme = 'default' | 'primary' | 'danger' | 'warning' | 'success';
|
|
8
|
+
type ButtonVariant = 'base' | 'outline' | 'dashed' | 'text';
|
|
9
|
+
export interface A2UIButtonProps {
|
|
10
|
+
id?: string;
|
|
11
|
+
/** A2UI v0.9: child 是内容组件 ID(已解析为 resolvedChildren) */
|
|
12
|
+
child?: string;
|
|
13
|
+
/** 解析后的子组件(由 ComponentRenderer 传入) */
|
|
14
|
+
resolvedChildren?: ResolvedComponent[];
|
|
15
|
+
/** A2UI v0.9: primary 属性 */
|
|
16
|
+
primary?: boolean;
|
|
17
|
+
/** Action 定义 */
|
|
18
|
+
action?: A2UIAction;
|
|
19
|
+
disabled?: Bindable<boolean>;
|
|
20
|
+
loading?: Bindable<boolean>;
|
|
21
|
+
/** TDesign 扩展属性 */
|
|
22
|
+
theme?: Bindable<ButtonTheme>;
|
|
23
|
+
variant?: Bindable<ButtonVariant>;
|
|
24
|
+
size?: 'small' | 'medium' | 'large';
|
|
25
|
+
/** 向后兼容:label 属性 */
|
|
26
|
+
label?: Bindable<string>;
|
|
27
|
+
className?: string;
|
|
28
|
+
style?: React.CSSProperties;
|
|
29
|
+
}
|
|
30
|
+
export declare const A2UIButton: React.FC<A2UIButtonProps>;
|
|
31
|
+
export default A2UIButton;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
import { Button } from 'tdesign-react';
|
|
9
|
+
import { useDataBinding } from '../../../hooks/a2ui/useDataBinding.js';
|
|
10
|
+
import { useActionCallback } from '../../../hooks/a2ui/useA2UIAction.js';
|
|
11
|
+
import { A2UIComponentRenderer } from '../A2UIComponentRenderer.js';
|
|
12
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
13
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
14
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
15
|
+
import '../../../core/a2ui/utils/index.js';
|
|
16
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
17
|
+
import '@babel/runtime/helpers/typeof';
|
|
18
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
19
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
20
|
+
import '../A2UIErrorBoundary.js';
|
|
21
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
22
|
+
import '@babel/runtime/helpers/createClass';
|
|
23
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
24
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
25
|
+
import '@babel/runtime/helpers/inherits';
|
|
26
|
+
|
|
27
|
+
var A2UIButton = function A2UIButton(_ref) {
|
|
28
|
+
var id = _ref.id,
|
|
29
|
+
child = _ref.child,
|
|
30
|
+
resolvedChildren = _ref.resolvedChildren,
|
|
31
|
+
primary = _ref.primary,
|
|
32
|
+
action = _ref.action,
|
|
33
|
+
disabled = _ref.disabled,
|
|
34
|
+
loading = _ref.loading,
|
|
35
|
+
_ref$theme = _ref.theme,
|
|
36
|
+
theme = _ref$theme === void 0 ? "default" : _ref$theme,
|
|
37
|
+
_ref$variant = _ref.variant,
|
|
38
|
+
variant = _ref$variant === void 0 ? "base" : _ref$variant,
|
|
39
|
+
_ref$size = _ref.size,
|
|
40
|
+
size = _ref$size === void 0 ? "medium" : _ref$size,
|
|
41
|
+
label = _ref.label,
|
|
42
|
+
className = _ref.className,
|
|
43
|
+
style = _ref.style;
|
|
44
|
+
var resolvedLabel = useDataBinding(label);
|
|
45
|
+
var resolvedDisabled = useDataBinding(disabled);
|
|
46
|
+
var resolvedLoading = useDataBinding(loading);
|
|
47
|
+
var resolvedTheme = useDataBinding(theme) || "default";
|
|
48
|
+
var resolvedVariant = useDataBinding(variant) || "base";
|
|
49
|
+
var handleClick = useActionCallback(action, id);
|
|
50
|
+
var finalTheme = primary ? "primary" : resolvedTheme;
|
|
51
|
+
var renderContent = function renderContent() {
|
|
52
|
+
if (resolvedChildren && resolvedChildren.length > 0) {
|
|
53
|
+
return resolvedChildren.map(function (comp, index) {
|
|
54
|
+
return /* @__PURE__ */React__default.createElement(A2UIComponentRenderer, {
|
|
55
|
+
key: comp.id || index,
|
|
56
|
+
component: comp
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return resolvedLabel;
|
|
61
|
+
};
|
|
62
|
+
return /* @__PURE__ */React__default.createElement(Button, {
|
|
63
|
+
className: className,
|
|
64
|
+
style: style,
|
|
65
|
+
theme: finalTheme,
|
|
66
|
+
variant: resolvedVariant,
|
|
67
|
+
size: size,
|
|
68
|
+
disabled: !!resolvedDisabled,
|
|
69
|
+
loading: !!resolvedLoading,
|
|
70
|
+
onClick: handleClick
|
|
71
|
+
}, renderContent());
|
|
72
|
+
};
|
|
73
|
+
A2UIButton.displayName = "A2UIButton";
|
|
74
|
+
|
|
75
|
+
export { A2UIButton, A2UIButton as default };
|
|
76
|
+
//# sourceMappingURL=A2UIButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UIButton.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/primitives/A2UIButton.tsx"],"sourcesContent":["/**\n * A2UI Button 组件\n * 复用 TDesign Button,支持 A2UI v0.9 child 模式\n */\n\nimport React from 'react';\nimport { Button } from 'tdesign-react';\nimport { useDataBinding } from '../../../hooks/a2ui/useDataBinding';\nimport { useActionCallback } from '../../../hooks/a2ui/useA2UIAction';\nimport { A2UIComponentRenderer } from '../A2UIComponentRenderer';\nimport type { A2UIAction, Bindable, ResolvedComponent } from '../../../core/a2ui';\n\ntype ButtonTheme = 'default' | 'primary' | 'danger' | 'warning' | 'success';\ntype ButtonVariant = 'base' | 'outline' | 'dashed' | 'text';\n\nexport interface A2UIButtonProps {\n id?: string;\n /** A2UI v0.9: child 是内容组件 ID(已解析为 resolvedChildren) */\n child?: string;\n /** 解析后的子组件(由 ComponentRenderer 传入) */\n resolvedChildren?: ResolvedComponent[];\n /** A2UI v0.9: primary 属性 */\n primary?: boolean;\n /** Action 定义 */\n action?: A2UIAction;\n disabled?: Bindable<boolean>;\n loading?: Bindable<boolean>;\n /** TDesign 扩展属性 */\n theme?: Bindable<ButtonTheme>;\n variant?: Bindable<ButtonVariant>;\n size?: 'small' | 'medium' | 'large';\n /** 向后兼容:label 属性 */\n label?: Bindable<string>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const A2UIButton: React.FC<A2UIButtonProps> = ({\n id,\n child,\n resolvedChildren,\n primary,\n action,\n disabled,\n loading,\n theme = 'default',\n variant = 'base',\n size = 'medium',\n label,\n className,\n style,\n}) => {\n // 解析绑定值\n const resolvedLabel = useDataBinding<string | undefined>(label);\n const resolvedDisabled = useDataBinding<boolean | undefined>(disabled);\n const resolvedLoading = useDataBinding<boolean | undefined>(loading);\n const resolvedTheme = useDataBinding<ButtonTheme>(theme as Bindable<ButtonTheme>) || 'default';\n const resolvedVariant = useDataBinding<ButtonVariant>(variant as Bindable<ButtonVariant>) || 'base';\n\n // 创建 action 回调\n const handleClick = useActionCallback(action, id);\n\n // 根据 primary 属性设置主题\n const finalTheme = primary ? 'primary' : resolvedTheme;\n\n // 渲染内容:优先使用 resolvedChildren(A2UI v0.9),其次使用 label(向后兼容)\n const renderContent = () => {\n if (resolvedChildren && resolvedChildren.length > 0) {\n return resolvedChildren.map((comp, index) => (\n <A2UIComponentRenderer key={comp.id || index} component={comp} />\n ));\n }\n return resolvedLabel;\n };\n\n return (\n <Button\n className={className}\n style={style}\n theme={finalTheme}\n variant={resolvedVariant}\n size={size}\n disabled={!!resolvedDisabled}\n loading={!!resolvedLoading}\n onClick={handleClick}\n >\n {renderContent()}\n </Button>\n );\n};\n\nA2UIButton.displayName = 'A2UIButton';\n\nexport default A2UIButton;\n"],"names":["A2UIButton","id","_ref","child","resolvedChildren","primary","action","disabled","loading","_ref$theme","theme","_ref$variant","variant","_ref$size","size","label","className","style","resolvedLabel","useDataBinding","resolvedDisabled","resolvedLoading","resolvedTheme","resolvedVariant","handleClick","useActionCallback","finalTheme","renderContent","length","map","comp","index","React","createElement","A2UIComponentRenderer","key","component","Button","onClick","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAqCaA,aAAwC,SAAxCA,iBAcP;AAAA,EAAA,IAbJC,EAAA,GAAAC,IAAA,CAAAD,EAAA;IACAE,KAAA,GAAAD,IAAA,CAAAC,KAAA;IACAC,gBAAA,GAAAF,IAAA,CAAAE,gBAAA;IACAC,OAAA,GAAAH,IAAA,CAAAG,OAAA;IACAC,MAAA,GAAAJ,IAAA,CAAAI,MAAA;IACAC,QAAA,GAAAL,IAAA,CAAAK,QAAA;IACAC,OAAA,GAAAN,IAAA,CAAAM,OAAA;IAAAC,UAAA,GAAAP,IAAA,CACAQ,KAAQ;AAARA,IAAAA,KAAQ,GAAAD,UAAA,KAAA,KAAA,CAAA,GAAA,SAAA,GAAAA,UAAA;IAAAE,YAAA,GAAAT,IAAA,CACRU,OAAU;AAAVA,IAAAA,OAAU,GAAAD,YAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,YAAA;IAAAE,SAAA,GAAAX,IAAA,CACVY,IAAO;AAAPA,IAAAA,IAAO,GAAAD,SAAA,KAAA,KAAA,CAAA,GAAA,QAAA,GAAAA,SAAA;IACPE,KAAA,GAAAb,IAAA,CAAAa,KAAA;IACAC,SAAA,GAAAd,IAAA,CAAAc,SAAA;IACAC,KAAA,GAAAf,IAAA,CAAAe,KAAA,CAAA;AAGM,EAAA,IAAAC,aAAA,GAAgBC,eAAmCJ,KAAK,CAAA,CAAA;AACxD,EAAA,IAAAK,gBAAA,GAAmBD,eAAoCZ,QAAQ,CAAA,CAAA;AAC/D,EAAA,IAAAc,eAAA,GAAkBF,eAAoCX,OAAO,CAAA,CAAA;AAC7D,EAAA,IAAAc,aAAA,GAAgBH,cAA4B,CAAAT,KAA8B,CAAK,IAAA,SAAA,CAAA;AAC/E,EAAA,IAAAa,eAAA,GAAkBJ,cAA8B,CAAAP,OAAkC,CAAK,IAAA,MAAA,CAAA;AAGvF,EAAA,IAAAY,WAAA,GAAcC,iBAAkB,CAAAnB,MAAA,EAAQL,EAAE,CAAA,CAAA;AAG1C,EAAA,IAAAyB,UAAA,GAAarB,UAAU,SAAY,GAAAiB,aAAA,CAAA;AAGzC,EAAA,IAAMK,gBAAgB,SAAhBA,gBAAsB;AACtB,IAAA,IAAAvB,gBAAA,IAAoBA,gBAAiB,CAAAwB,MAAA,GAAS,CAAG,EAAA;AACnD,MAAA,OAAOxB,gBAAiB,CAAAyB,GAAA,CAAI,UAACC,IAAA,EAAMC;8BAChCC,cAAA,CAAAC,aAAA,CAAAC,qBAAA,EAAA;AAAsBC,UAAAA,GAAA,EAAKL,KAAK7B,EAAM,IAAA8B,KAAA;AAAOK,UAAAA,SAAW,EAAAN,IAAAA;AAAA,SAAM,CAChE,CAAA;OAAA,CAAA,CAAA;AACH,KAAA;AACO,IAAA,OAAAZ,aAAA,CAAA;GACT,CAAA;AAEA,EAAA,sBACGc,cAAA,CAAAC,aAAA,CAAAI,MAAA,EAAA;AACCrB,IAAAA,SAAA,EAAAA,SAAA;AACAC,IAAAA,KAAA,EAAAA,KAAA;AACAP,IAAAA,KAAO,EAAAgB,UAAA;AACPd,IAAAA,OAAS,EAAAW,eAAA;AACTT,IAAAA,IAAA,EAAAA,IAAA;IACAP,QAAA,EAAU,CAAC,CAACa,gBAAA;IACZZ,OAAA,EAAS,CAAC,CAACa,eAAA;AACXiB,IAAAA,OAAS,EAAAd,WAAAA;AAAA,GAAA,EAERG,eACH,CAAA,CAAA;AAEJ,EAAA;AAEA3B,UAAA,CAAWuC,WAAc,GAAA,YAAA;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI CheckBox 组件
|
|
3
|
+
* A2UI v0.9 标准复选框组件
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { A2UICheckBoxComponent } from '../../../core/a2ui';
|
|
7
|
+
export interface A2UICheckBoxProps extends Omit<A2UICheckBoxComponent, 'component'> {
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
}
|
|
11
|
+
export declare const A2UICheckBox: React.FC<A2UICheckBoxProps>;
|
|
12
|
+
export default A2UICheckBox;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import React__default, { useCallback } from 'react';
|
|
9
|
+
import { Checkbox } from 'tdesign-react';
|
|
10
|
+
import { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding.js';
|
|
11
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
12
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
13
|
+
import '../../../core/a2ui/utils/index.js';
|
|
14
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
15
|
+
import '@babel/runtime/helpers/typeof';
|
|
16
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
17
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
18
|
+
|
|
19
|
+
var A2UICheckBox = function A2UICheckBox(_ref) {
|
|
20
|
+
var id = _ref.id,
|
|
21
|
+
label = _ref.label,
|
|
22
|
+
value = _ref.value,
|
|
23
|
+
className = _ref.className,
|
|
24
|
+
style = _ref.style;
|
|
25
|
+
var resolvedLabel = useDataBinding(label);
|
|
26
|
+
var _useTwoWayBinding = useTwoWayBinding(value, false),
|
|
27
|
+
_useTwoWayBinding2 = _slicedToArray(_useTwoWayBinding, 2),
|
|
28
|
+
checked = _useTwoWayBinding2[0],
|
|
29
|
+
setChecked = _useTwoWayBinding2[1];
|
|
30
|
+
var handleChange = useCallback(function (val) {
|
|
31
|
+
setChecked(val);
|
|
32
|
+
}, [setChecked]);
|
|
33
|
+
return /* @__PURE__ */React__default.createElement(Checkbox, {
|
|
34
|
+
className: className,
|
|
35
|
+
style: style,
|
|
36
|
+
checked: checked,
|
|
37
|
+
onChange: handleChange
|
|
38
|
+
}, resolvedLabel);
|
|
39
|
+
};
|
|
40
|
+
A2UICheckBox.displayName = "A2UICheckBox";
|
|
41
|
+
|
|
42
|
+
export { A2UICheckBox, A2UICheckBox as default };
|
|
43
|
+
//# sourceMappingURL=A2UICheckBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UICheckBox.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/primitives/A2UICheckBox.tsx"],"sourcesContent":["/**\n * A2UI CheckBox 组件\n * A2UI v0.9 标准复选框组件\n */\n\nimport React, { useCallback } from 'react';\nimport { Checkbox } from 'tdesign-react';\nimport { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding';\nimport type { A2UICheckBoxComponent } from '../../../core/a2ui';\n\nexport interface A2UICheckBoxProps extends Omit<A2UICheckBoxComponent, 'component'> {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const A2UICheckBox: React.FC<A2UICheckBoxProps> = ({\n id,\n label,\n value,\n className,\n style,\n}) => {\n // 解析标签\n const resolvedLabel = useDataBinding<React.ReactNode>(label);\n // 双向绑定选中状态\n const [checked, setChecked] = useTwoWayBinding<boolean>(value, false);\n\n // 处理 onChange\n const handleChange = useCallback(\n (val: boolean) => {\n setChecked(val);\n },\n [setChecked]\n );\n\n return (\n <Checkbox\n className={className}\n style={style}\n checked={checked}\n onChange={handleChange}\n >\n {resolvedLabel}\n </Checkbox>\n );\n};\n\nA2UICheckBox.displayName = 'A2UICheckBox';\n\nexport default A2UICheckBox;\n"],"names":["A2UICheckBox","id","_ref","label","value","className","style","resolvedLabel","useDataBinding","_useTwoWayBinding","useTwoWayBinding","_useTwoWayBinding2","_slicedToArray","checked","setChecked","handleChange","useCallback","val","React","createElement","Checkbox","onChange","displayName"],"mappings":";;;;;;;;;;;;;;;;;;IAeaA,eAA4C,SAA5CA,mBAMP;AAAA,EAAA,IALJC,EAAA,GAAAC,IAAA,CAAAD,EAAA;IACAE,KAAA,GAAAD,IAAA,CAAAC,KAAA;IACAC,KAAA,GAAAF,IAAA,CAAAE,KAAA;IACAC,SAAA,GAAAH,IAAA,CAAAG,SAAA;IACAC,KAAA,GAAAJ,IAAA,CAAAI,KAAA,CAAA;AAGM,EAAA,IAAAC,aAAA,GAAgBC,eAAgCL,KAAK,CAAA,CAAA;AAE3D,EAAA,IAAAM,iBAAA,GAA8BC,gBAAA,CAA0BN,OAAO,KAAK,CAAA;IAAAO,kBAAA,GAAAC,cAAA,CAAAH,iBAAA,EAAA,CAAA,CAAA;AAA7DI,IAAAA,OAAS,GAAAF,kBAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,UAAU,GAAAH,kBAAA,CAAA,CAAA,CAAA,CAAA;AAG1B,EAAA,IAAMI,YAAe,GAAAC,WAAA,CACnB,UAACC,GAAiB,EAAA;IAChBH,UAAA,CAAWG,GAAG,CAAA,CAAA;AAChB,GAAA,EACA,CAACH,UAAU,CACb,CAAA,CAAA;AAEA,EAAA,sBACGI,cAAA,CAAAC,aAAA,CAAAC,QAAA,EAAA;AACCf,IAAAA,SAAA,EAAAA,SAAA;AACAC,IAAAA,KAAA,EAAAA,KAAA;AACAO,IAAAA,OAAA,EAAAA,OAAA;AACAQ,IAAAA,QAAU,EAAAN,YAAAA;GAAA,EAETR,aACH,CAAA,CAAA;AAEJ,EAAA;AAEAP,YAAA,CAAasB,WAAc,GAAA,cAAA;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI CheckboxGroup 组件
|
|
3
|
+
* 复用 TDesign CheckboxGroup,支持双向数据绑定
|
|
4
|
+
*
|
|
5
|
+
* 用于多选场景,选中状态自动同步到数据模型
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { CheckboxGroupValue } from 'tdesign-react';
|
|
9
|
+
import type { Bindable } from '../../../core/a2ui';
|
|
10
|
+
/** 选项定义 */
|
|
11
|
+
export interface A2UICheckboxOption {
|
|
12
|
+
/** 选项显示文本 */
|
|
13
|
+
label: Bindable<string>;
|
|
14
|
+
/** 选项值 */
|
|
15
|
+
value: string | number;
|
|
16
|
+
/** 是否禁用 */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface A2UICheckboxGroupProps {
|
|
20
|
+
id?: string;
|
|
21
|
+
/** 选中值数组,支持数据绑定 */
|
|
22
|
+
value?: Bindable<CheckboxGroupValue>;
|
|
23
|
+
/** 选项列表 */
|
|
24
|
+
options: A2UICheckboxOption[];
|
|
25
|
+
/** 是否禁用 */
|
|
26
|
+
disabled?: Bindable<boolean>;
|
|
27
|
+
/** 最多可选数量 */
|
|
28
|
+
max?: number;
|
|
29
|
+
className?: string;
|
|
30
|
+
style?: React.CSSProperties;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A2UI CheckboxGroup
|
|
34
|
+
*
|
|
35
|
+
* 使用示例(A2UI 协议):
|
|
36
|
+
* ```json
|
|
37
|
+
* {
|
|
38
|
+
* "component": "CheckboxGroup",
|
|
39
|
+
* "id": "features",
|
|
40
|
+
* "value": { "path": "/form/selectedFeatures" },
|
|
41
|
+
* "options": [
|
|
42
|
+
* { "label": "深色模式", "value": "dark-mode" },
|
|
43
|
+
* { "label": "消息通知", "value": "notifications" },
|
|
44
|
+
* { "label": "数据同步", "value": "sync" }
|
|
45
|
+
* ]
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare const A2UICheckboxGroup: React.FC<A2UICheckboxGroupProps>;
|
|
50
|
+
export default A2UICheckboxGroup;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
8
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
9
|
+
import React__default, { useCallback } from 'react';
|
|
10
|
+
import { CheckboxGroup } from 'tdesign-react';
|
|
11
|
+
import { useTwoWayBinding, useDataBinding } from '../../../hooks/a2ui/useDataBinding.js';
|
|
12
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
13
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
14
|
+
import '../../../core/a2ui/utils/index.js';
|
|
15
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
16
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
17
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
18
|
+
|
|
19
|
+
var A2UICheckboxGroup = function A2UICheckboxGroup(_ref) {
|
|
20
|
+
var value = _ref.value,
|
|
21
|
+
options = _ref.options,
|
|
22
|
+
disabled = _ref.disabled,
|
|
23
|
+
max = _ref.max,
|
|
24
|
+
className = _ref.className,
|
|
25
|
+
style = _ref.style;
|
|
26
|
+
var _useTwoWayBinding = useTwoWayBinding(value, []),
|
|
27
|
+
_useTwoWayBinding2 = _slicedToArray(_useTwoWayBinding, 2),
|
|
28
|
+
selectedValues = _useTwoWayBinding2[0],
|
|
29
|
+
setSelectedValues = _useTwoWayBinding2[1];
|
|
30
|
+
var resolvedDisabled = useDataBinding(disabled);
|
|
31
|
+
var handleChange = useCallback(function (val) {
|
|
32
|
+
setSelectedValues(val);
|
|
33
|
+
}, [setSelectedValues]);
|
|
34
|
+
var resolvedOptions = options.map(function (opt) {
|
|
35
|
+
return {
|
|
36
|
+
label: _typeof(opt.label) === "object" && "path" in opt.label ? opt.label : opt.label,
|
|
37
|
+
value: opt.value,
|
|
38
|
+
disabled: opt.disabled
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
return /* @__PURE__ */React__default.createElement(CheckboxGroup, {
|
|
42
|
+
className: className,
|
|
43
|
+
style: style,
|
|
44
|
+
value: selectedValues,
|
|
45
|
+
options: resolvedOptions,
|
|
46
|
+
disabled: resolvedDisabled,
|
|
47
|
+
max: max,
|
|
48
|
+
onChange: handleChange
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
A2UICheckboxGroup.displayName = "A2UICheckboxGroup";
|
|
52
|
+
|
|
53
|
+
export { A2UICheckboxGroup, A2UICheckboxGroup as default };
|
|
54
|
+
//# sourceMappingURL=A2UICheckboxGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UICheckboxGroup.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.tsx"],"sourcesContent":["/**\n * A2UI CheckboxGroup 组件\n * 复用 TDesign CheckboxGroup,支持双向数据绑定\n * \n * 用于多选场景,选中状态自动同步到数据模型\n */\n\nimport React, { useCallback } from 'react';\nimport { CheckboxGroup, CheckboxGroupValue } from 'tdesign-react';\nimport { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding';\nimport type { Bindable } from '../../../core/a2ui';\n\n/** 选项定义 */\nexport interface A2UICheckboxOption {\n /** 选项显示文本 */\n label: Bindable<string>;\n /** 选项值 */\n value: string | number;\n /** 是否禁用 */\n disabled?: boolean;\n}\n\nexport interface A2UICheckboxGroupProps {\n id?: string;\n /** 选中值数组,支持数据绑定 */\n value?: Bindable<CheckboxGroupValue>;\n /** 选项列表 */\n options: A2UICheckboxOption[];\n /** 是否禁用 */\n disabled?: Bindable<boolean>;\n /** 最多可选数量 */\n max?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * A2UI CheckboxGroup\n * \n * 使用示例(A2UI 协议):\n * ```json\n * {\n * \"component\": \"CheckboxGroup\",\n * \"id\": \"features\",\n * \"value\": { \"path\": \"/form/selectedFeatures\" },\n * \"options\": [\n * { \"label\": \"深色模式\", \"value\": \"dark-mode\" },\n * { \"label\": \"消息通知\", \"value\": \"notifications\" },\n * { \"label\": \"数据同步\", \"value\": \"sync\" }\n * ]\n * }\n * ```\n */\nexport const A2UICheckboxGroup: React.FC<A2UICheckboxGroupProps> = ({\n value,\n options,\n disabled,\n max,\n className,\n style,\n}) => {\n // 双向绑定值\n const [selectedValues, setSelectedValues] = useTwoWayBinding(value, []);\n \n // 解析禁用状态\n const resolvedDisabled = useDataBinding(disabled);\n\n // 处理选中变化\n const handleChange = useCallback(\n (val: CheckboxGroupValue) => {\n setSelectedValues(val);\n },\n [setSelectedValues]\n );\n\n // 转换选项格式\n const resolvedOptions = options.map((opt) => ({\n label: typeof opt.label === 'object' && 'path' in opt.label ? opt.label : opt.label,\n value: opt.value,\n disabled: opt.disabled,\n }));\n\n return (\n <CheckboxGroup\n className={className}\n style={style}\n value={selectedValues}\n options={resolvedOptions as any}\n disabled={resolvedDisabled}\n max={max}\n onChange={handleChange}\n />\n );\n};\n\nA2UICheckboxGroup.displayName = 'A2UICheckboxGroup';\n\nexport default A2UICheckboxGroup;\n"],"names":["A2UICheckboxGroup","value","_ref","options","disabled","max","className","style","_useTwoWayBinding","useTwoWayBinding","_useTwoWayBinding2","_slicedToArray","selectedValues","setSelectedValues","resolvedDisabled","useDataBinding","handleChange","useCallback","val","resolvedOptions","map","opt","label","_typeof","React","createElement","CheckboxGroup","onChange","displayName"],"mappings":";;;;;;;;;;;;;;;;;;IAqDaA,oBAAsD,SAAtDA,wBAOP;AAAA,EAAA,IANJC,KAAA,GAAAC,IAAA,CAAAD,KAAA;IACAE,OAAA,GAAAD,IAAA,CAAAC,OAAA;IACAC,QAAA,GAAAF,IAAA,CAAAE,QAAA;IACAC,GAAA,GAAAH,IAAA,CAAAG,GAAA;IACAC,SAAA,GAAAJ,IAAA,CAAAI,SAAA;IACAC,KAAA,GAAAL,IAAA,CAAAK,KAAA,CAAA;AAGA,EAAA,IAAAC,iBAAA,GAA4CC,gBAAiB,CAAAR,KAAA,EAAO,EAAE,CAAA;IAAAS,kBAAA,GAAAC,cAAA,CAAAH,iBAAA,EAAA,CAAA,CAAA;AAA/DI,IAAAA,cAAgB,GAAAF,kBAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,iBAAiB,GAAAH,kBAAA,CAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAI,gBAAA,GAAmBC,eAAeX,QAAQ,CAAA,CAAA;AAGhD,EAAA,IAAMY,YAAe,GAAAC,WAAA,CACnB,UAACC,GAA4B,EAAA;IAC3BL,iBAAA,CAAkBK,GAAG,CAAA,CAAA;AACvB,GAAA,EACA,CAACL,iBAAiB,CACpB,CAAA,CAAA;AAGA,EAAA,IAAMM,eAAkB,GAAAhB,OAAA,CAAQiB,GAAI,CAAA,UAACC,GAAS,EAAA;IAAA,OAAA;MAC5CC,KAAA,EAAOC,OAAA,CAAOF,GAAA,CAAIC,KAAU,CAAA,KAAA,QAAA,IAAY,UAAUD,GAAI,CAAAC,KAAA,GAAQD,GAAI,CAAAC,KAAA,GAAQD,GAAI,CAAAC,KAAA;MAC9ErB,OAAOoB,GAAI,CAAApB,KAAA;MACXG,UAAUiB,GAAI,CAAAjB,QAAAA;KACd,CAAA;AAAA,GAAA,CAAA,CAAA;AAEF,EAAA,sBACGoB,cAAA,CAAAC,aAAA,CAAAC,aAAA,EAAA;AACCpB,IAAAA,SAAA,EAAAA,SAAA;AACAC,IAAAA,KAAA,EAAAA,KAAA;AACAN,IAAAA,KAAO,EAAAW,cAAA;AACPT,IAAAA,OAAS,EAAAgB,eAAA;AACTf,IAAAA,QAAU,EAAAU,gBAAA;AACVT,IAAAA,GAAA,EAAAA,GAAA;AACAsB,IAAAA,QAAU,EAAAX,YAAAA;AACZ,GAAA,CAAA,CAAA;AAEJ,EAAA;AAEAhB,iBAAA,CAAkB4B,WAAc,GAAA,mBAAA;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI ChoicePicker 组件
|
|
3
|
+
* A2UI v0.9 标准选择器组件
|
|
4
|
+
* 支持单选(mutuallyExclusive)和多选(multipleSelection)
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import type { A2UIChoicePickerComponent } from '../../../core/a2ui';
|
|
8
|
+
export interface A2UIChoicePickerProps extends Omit<A2UIChoicePickerComponent, 'component'> {
|
|
9
|
+
className?: string;
|
|
10
|
+
style?: React.CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
export declare const A2UIChoicePicker: React.FC<A2UIChoicePickerProps>;
|
|
13
|
+
export default A2UIChoicePicker;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.12
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import React__default, { useCallback } from 'react';
|
|
9
|
+
import { RadioGroup, Radio, CheckboxGroup, Checkbox } from 'tdesign-react';
|
|
10
|
+
import { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding.js';
|
|
11
|
+
import '../../../hooks/a2ui/A2UIContext.js';
|
|
12
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
13
|
+
import '../../../core/a2ui/utils/index.js';
|
|
14
|
+
import '../../../core/a2ui/utils/binding.js';
|
|
15
|
+
import '@babel/runtime/helpers/typeof';
|
|
16
|
+
import '../../../core/a2ui/utils/validation.js';
|
|
17
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
18
|
+
|
|
19
|
+
var A2UIChoicePicker = function A2UIChoicePicker(_ref) {
|
|
20
|
+
var id = _ref.id,
|
|
21
|
+
label = _ref.label,
|
|
22
|
+
usageHint = _ref.usageHint,
|
|
23
|
+
options = _ref.options,
|
|
24
|
+
value = _ref.value,
|
|
25
|
+
className = _ref.className,
|
|
26
|
+
style = _ref.style;
|
|
27
|
+
var resolvedLabel = useDataBinding(label);
|
|
28
|
+
var _useTwoWayBinding = useTwoWayBinding(value, []),
|
|
29
|
+
_useTwoWayBinding2 = _slicedToArray(_useTwoWayBinding, 2),
|
|
30
|
+
selectedValue = _useTwoWayBinding2[0],
|
|
31
|
+
setSelectedValue = _useTwoWayBinding2[1];
|
|
32
|
+
if (usageHint === "mutuallyExclusive") {
|
|
33
|
+
var handleChange = useCallback(function (val) {
|
|
34
|
+
setSelectedValue([val]);
|
|
35
|
+
}, [setSelectedValue]);
|
|
36
|
+
return /* @__PURE__ */React__default.createElement("div", {
|
|
37
|
+
className: className,
|
|
38
|
+
style: style
|
|
39
|
+
}, resolvedLabel && /* @__PURE__ */React__default.createElement("label", {
|
|
40
|
+
style: {
|
|
41
|
+
display: "block",
|
|
42
|
+
marginBottom: 8,
|
|
43
|
+
fontWeight: 500
|
|
44
|
+
}
|
|
45
|
+
}, resolvedLabel), /* @__PURE__ */React__default.createElement(RadioGroup, {
|
|
46
|
+
value: selectedValue[0] || "",
|
|
47
|
+
onChange: handleChange
|
|
48
|
+
}, Array.isArray(options) && options.map(function (option) {
|
|
49
|
+
return /* @__PURE__ */React__default.createElement(Radio, {
|
|
50
|
+
key: option.value,
|
|
51
|
+
value: option.value
|
|
52
|
+
}, /* @__PURE__ */React__default.createElement(OptionLabel, {
|
|
53
|
+
option: option
|
|
54
|
+
}));
|
|
55
|
+
})));
|
|
56
|
+
}
|
|
57
|
+
var handleMultiChange = useCallback(function (vals) {
|
|
58
|
+
setSelectedValue(vals.map(String));
|
|
59
|
+
}, [setSelectedValue]);
|
|
60
|
+
return /* @__PURE__ */React__default.createElement("div", {
|
|
61
|
+
className: className,
|
|
62
|
+
style: style
|
|
63
|
+
}, resolvedLabel && /* @__PURE__ */React__default.createElement("label", {
|
|
64
|
+
style: {
|
|
65
|
+
display: "block",
|
|
66
|
+
marginBottom: 8,
|
|
67
|
+
fontWeight: 500
|
|
68
|
+
}
|
|
69
|
+
}, resolvedLabel), /* @__PURE__ */React__default.createElement(CheckboxGroup, {
|
|
70
|
+
value: selectedValue,
|
|
71
|
+
onChange: handleMultiChange
|
|
72
|
+
}, Array.isArray(options) && options.map(function (option) {
|
|
73
|
+
return /* @__PURE__ */React__default.createElement(Checkbox, {
|
|
74
|
+
key: option.value,
|
|
75
|
+
value: option.value
|
|
76
|
+
}, /* @__PURE__ */React__default.createElement(OptionLabel, {
|
|
77
|
+
option: option
|
|
78
|
+
}));
|
|
79
|
+
})));
|
|
80
|
+
};
|
|
81
|
+
var OptionLabel = function OptionLabel(_ref2) {
|
|
82
|
+
var option = _ref2.option;
|
|
83
|
+
var resolvedLabel = useDataBinding(option.label);
|
|
84
|
+
return /* @__PURE__ */React__default.createElement(React__default.Fragment, null, resolvedLabel);
|
|
85
|
+
};
|
|
86
|
+
A2UIChoicePicker.displayName = "A2UIChoicePicker";
|
|
87
|
+
|
|
88
|
+
export { A2UIChoicePicker, A2UIChoicePicker as default };
|
|
89
|
+
//# sourceMappingURL=A2UIChoicePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UIChoicePicker.js","sources":["../../../../../../pro-components/chat/chat-engine/components/a2ui/primitives/A2UIChoicePicker.tsx"],"sourcesContent":["/**\n * A2UI ChoicePicker 组件\n * A2UI v0.9 标准选择器组件\n * 支持单选(mutuallyExclusive)和多选(multipleSelection)\n */\n\nimport React, { useCallback } from 'react';\nimport { RadioGroup, Radio, CheckboxGroup, Checkbox } from 'tdesign-react';\nimport { useDataBinding, useTwoWayBinding } from '../../../hooks/a2ui/useDataBinding';\nimport type { A2UIChoicePickerComponent, A2UIChoiceOption } from '../../../core/a2ui';\n\nexport interface A2UIChoicePickerProps extends Omit<A2UIChoicePickerComponent, 'component'> {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const A2UIChoicePicker: React.FC<A2UIChoicePickerProps> = ({\n id,\n label,\n usageHint,\n options,\n value,\n className,\n style,\n}) => {\n // 解析标签\n const resolvedLabel = useDataBinding<React.ReactNode>(label);\n // 双向绑定选中值\n const [selectedValue, setSelectedValue] = useTwoWayBinding<string[]>(value, []);\n\n // 单选模式\n if (usageHint === 'mutuallyExclusive') {\n const handleChange = useCallback(\n (val: string) => {\n setSelectedValue([val]);\n },\n [setSelectedValue]\n );\n\n return (\n <div className={className} style={style}>\n {resolvedLabel && (\n <label style={{ display: 'block', marginBottom: 8, fontWeight: 500 }}>\n {resolvedLabel}\n </label>\n )}\n <RadioGroup\n value={selectedValue[0] || ''}\n onChange={handleChange}\n >\n {Array.isArray(options) && options.map((option) => (\n <Radio key={option.value} value={option.value}>\n <OptionLabel option={option} />\n </Radio>\n ))}\n </RadioGroup>\n </div>\n );\n }\n\n // 多选模式\n const handleMultiChange = useCallback(\n (vals: (string | number | boolean)[]) => {\n setSelectedValue(vals.map(String));\n },\n [setSelectedValue]\n );\n\n return (\n <div className={className} style={style}>\n {resolvedLabel && (\n <label style={{ display: 'block', marginBottom: 8, fontWeight: 500 }}>\n {resolvedLabel}\n </label>\n )}\n <CheckboxGroup\n value={selectedValue}\n onChange={handleMultiChange}\n >\n {Array.isArray(options) && options.map((option) => (\n <Checkbox key={option.value} value={option.value}>\n <OptionLabel option={option} />\n </Checkbox>\n ))}\n </CheckboxGroup>\n </div>\n );\n};\n\n/**\n * 选项标签组件(支持数据绑定)\n */\nconst OptionLabel: React.FC<{ option: A2UIChoiceOption }> = ({ option }) => {\n const resolvedLabel = useDataBinding<React.ReactNode>(option.label);\n return <>{resolvedLabel}</>;\n};\n\nA2UIChoicePicker.displayName = 'A2UIChoicePicker';\n\nexport default A2UIChoicePicker;\n"],"names":["A2UIChoicePicker","id","_ref","label","usageHint","options","value","className","style","resolvedLabel","useDataBinding","_useTwoWayBinding","useTwoWayBinding","_useTwoWayBinding2","_slicedToArray","selectedValue","setSelectedValue","handleChange","useCallback","val","React","createElement","display","marginBottom","fontWeight","RadioGroup","onChange","Array","isArray","map","option","Radio","key","OptionLabel","handleMultiChange","vals","String","CheckboxGroup","Checkbox","_ref2","displayName"],"mappings":"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"}
|