@tdesign-react/chat 1.0.2 → 1.0.3-alpha.2
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/CHANGELOG.md +0 -4
- package/README.md +76 -22
- package/es/_chunks/dep-076af7c3.js +438 -0
- package/es/_chunks/dep-076af7c3.js.map +1 -0
- package/es/_chunks/dep-1007ac80.js +205 -0
- package/es/_chunks/dep-1007ac80.js.map +1 -0
- package/es/_chunks/dep-16520c2b.js +1247 -0
- package/es/_chunks/dep-16520c2b.js.map +1 -0
- package/es/_chunks/dep-1743bd61.js +438 -0
- package/es/_chunks/dep-1743bd61.js.map +1 -0
- package/es/_chunks/dep-1ca64fef.js +1247 -0
- package/es/_chunks/dep-1ca64fef.js.map +1 -0
- package/es/_chunks/dep-24472232.js +839 -0
- package/es/_chunks/dep-24472232.js.map +1 -0
- package/es/_chunks/dep-3864b369.js +839 -0
- package/es/_chunks/dep-3864b369.js.map +1 -0
- package/es/_chunks/dep-3e40d789.js +169 -0
- package/es/_chunks/dep-3e40d789.js.map +1 -0
- package/es/_chunks/dep-4dedfbef.js +438 -0
- package/es/_chunks/dep-4dedfbef.js.map +1 -0
- package/es/_chunks/dep-56f5e08e.js +448 -0
- package/es/_chunks/dep-56f5e08e.js.map +1 -0
- package/es/_chunks/dep-5b6b17d0.js +169 -0
- package/es/_chunks/dep-5b6b17d0.js.map +1 -0
- package/es/_chunks/dep-688e4aaa.js +438 -0
- package/es/_chunks/dep-688e4aaa.js.map +1 -0
- package/es/_chunks/dep-870f0d35.js +839 -0
- package/es/_chunks/dep-870f0d35.js.map +1 -0
- package/es/_chunks/dep-96eca06f.js +169 -0
- package/es/_chunks/dep-96eca06f.js.map +1 -0
- package/es/_chunks/dep-ba3bd553.js +169 -0
- package/es/_chunks/dep-ba3bd553.js.map +1 -0
- package/es/_chunks/dep-bcb234a1.js +839 -0
- package/es/_chunks/dep-bcb234a1.js.map +1 -0
- package/es/_chunks/dep-de8ac730.js +1247 -0
- package/es/_chunks/dep-de8ac730.js.map +1 -0
- package/es/_chunks/dep-e9dbff09.js +1247 -0
- package/es/_chunks/dep-e9dbff09.js.map +1 -0
- package/es/_chunks/dep-ebc4cf30.js +1247 -0
- package/es/_chunks/dep-ebc4cf30.js.map +1 -0
- package/es/_chunks/dep-f2051ebd.js +839 -0
- package/es/_chunks/dep-f2051ebd.js.map +1 -0
- package/es/_chunks/dep-f691a67e.js +438 -0
- package/es/_chunks/dep-f691a67e.js.map +1 -0
- package/es/_chunks/dep-f8016301.js +169 -0
- package/es/_chunks/dep-f8016301.js.map +1 -0
- package/es/_util/reactify.d.ts +1 -2
- package/es/_util/reactify.js +102 -232
- package/es/_util/reactify.js.map +1 -1
- package/es/attachments/index.js +3 -5
- package/es/attachments/index.js.map +1 -1
- package/es/chat-actionbar/index.js +3 -5
- package/es/chat-actionbar/index.js.map +1 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -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 +62 -0
- package/es/chat-engine/components/a2ui/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -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 +8 -4
- package/es/chat-engine/components/activity/index.js.map +1 -1
- package/es/chat-engine/components/activity/registry.d.ts +6 -40
- package/es/chat-engine/components/activity/registry.js +22 -76
- package/es/chat-engine/components/activity/registry.js.map +1 -1
- package/es/chat-engine/components/activity/render.d.ts +1 -1
- package/es/chat-engine/components/activity/render.js +21 -69
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/index.js +8 -4
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
- package/es/chat-engine/components/json-render/adapters/index.js +11 -0
- package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
- package/es/chat-engine/components/json-render/catalog/index.js +36 -0
- package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/input.js +36 -0
- package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog.js +779 -0
- package/es/chat-engine/components/json-render/catalog.js.map +1 -0
- package/es/chat-engine/components/json-render/config.d.ts +154 -0
- package/es/chat-engine/components/json-render/config.js +36 -0
- package/es/chat-engine/components/json-render/config.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
- package/es/chat-engine/components/json-render/contexts/data.js +183 -0
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
- package/es/chat-engine/components/json-render/contexts/index.js +27 -0
- package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
- package/es/chat-engine/components/json-render/contexts/store.js +104 -0
- package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
- package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
- package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
- package/es/chat-engine/components/json-render/engine.d.ts +58 -0
- package/es/chat-engine/components/json-render/engine.js +88 -0
- package/es/chat-engine/components/json-render/engine.js.map +1 -0
- package/es/chat-engine/components/json-render/index.d.ts +13 -0
- package/es/chat-engine/components/json-render/index.js +76 -0
- package/es/chat-engine/components/json-render/index.js.map +1 -0
- package/es/chat-engine/components/json-render/performance.d.ts +91 -0
- package/es/chat-engine/components/json-render/performance.js +135 -0
- package/es/chat-engine/components/json-render/performance.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
- package/es/chat-engine/components/json-render/registry/config.js +76 -0
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
- package/es/chat-engine/components/json-render/registry/index.js +76 -0
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
- package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/index.js +125 -0
- package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer.js +124 -0
- package/es/chat-engine/components/json-render/renderer.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +87 -0
- package/es/chat-engine/components/json-render/types.js +7 -0
- package/es/chat-engine/components/json-render/types.js.map +1 -0
- package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
- package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
- package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
- package/es/chat-engine/components/shared/createRegistry.js +72 -0
- package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
- package/es/chat-engine/components/shared/index.d.ts +4 -0
- package/es/chat-engine/components/shared/index.js +18 -0
- package/es/chat-engine/components/shared/index.js.map +1 -0
- package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
- package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
- package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
- package/es/chat-engine/components/toolcall/index.d.ts +1 -1
- package/es/chat-engine/components/toolcall/index.js +11 -7
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
- package/es/chat-engine/components/toolcall/registry.js +22 -66
- package/es/chat-engine/components/toolcall/registry.js.map +1 -1
- package/es/chat-engine/components/toolcall/render.js +27 -75
- package/es/chat-engine/components/toolcall/render.js.map +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 +770 -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/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
- package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
- package/es/chat-engine/core/adapters/agui/events.js +199 -0
- package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
- package/es/chat-engine/core/adapters/agui/index.js +200 -0
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
- package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
- package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
- package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
- package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
- package/es/chat-engine/core/adapters/agui/types.js +95 -0
- package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
- package/es/chat-engine/core/adapters/agui/utils.js +330 -0
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
- package/es/chat-engine/core/adapters/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/index.js +34 -0
- package/es/chat-engine/core/adapters/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
- package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
- package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
- package/es/chat-engine/core/adapters/json-render/index.js +18 -0
- package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
- 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 +147 -0
- package/es/chat-engine/core/index.js +760 -0
- package/es/chat-engine/core/index.js.map +1 -0
- package/es/chat-engine/core/processor/index.d.ts +20 -0
- package/es/chat-engine/core/processor/index.js +146 -0
- package/es/chat-engine/core/processor/index.js.map +1 -0
- package/es/chat-engine/core/server/batch-client.d.ts +20 -0
- package/es/chat-engine/core/server/batch-client.js +114 -0
- package/es/chat-engine/core/server/batch-client.js.map +1 -0
- package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
- package/es/chat-engine/core/server/connection-manager.js +84 -0
- package/es/chat-engine/core/server/connection-manager.js.map +1 -0
- package/es/chat-engine/core/server/errors.d.ts +22 -0
- package/es/chat-engine/core/server/errors.js +80 -0
- package/es/chat-engine/core/server/errors.js.map +1 -0
- package/es/chat-engine/core/server/index.d.ts +11 -0
- package/es/chat-engine/core/server/index.js +26 -0
- package/es/chat-engine/core/server/index.js.map +1 -0
- package/es/chat-engine/core/server/llm-service.d.ts +44 -0
- package/es/chat-engine/core/server/llm-service.js +200 -0
- package/es/chat-engine/core/server/llm-service.js.map +1 -0
- package/es/chat-engine/core/server/sse-client.d.ts +77 -0
- package/es/chat-engine/core/server/sse-client.js +362 -0
- package/es/chat-engine/core/server/sse-client.js.map +1 -0
- package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
- package/es/chat-engine/core/server/sse-parser.js +116 -0
- package/es/chat-engine/core/server/sse-parser.js.map +1 -0
- package/es/chat-engine/core/server/types.d.ts +54 -0
- package/es/chat-engine/core/server/types.js +28 -0
- package/es/chat-engine/core/server/types.js.map +1 -0
- package/es/chat-engine/core/store/message.d.ts +27 -0
- package/es/chat-engine/core/store/message.js +267 -0
- package/es/chat-engine/core/store/message.js.map +1 -0
- package/es/chat-engine/core/store/model.d.ts +8 -0
- package/es/chat-engine/core/store/model.js +66 -0
- package/es/chat-engine/core/store/model.js.map +1 -0
- package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
- package/es/chat-engine/core/store/reactiveState.js +139 -0
- package/es/chat-engine/core/store/reactiveState.js.map +1 -0
- package/es/chat-engine/core/type.d.ts +279 -0
- package/es/chat-engine/core/type.js +7 -0
- package/es/chat-engine/core/type.js.map +1 -0
- package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
- package/es/chat-engine/core/utils/eventEmitter.js +67 -0
- package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
- package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
- package/es/chat-engine/core/utils/immutable-patch.js +147 -0
- package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
- package/es/chat-engine/core/utils/index.d.ts +38 -0
- package/es/chat-engine/core/utils/index.js +125 -0
- package/es/chat-engine/core/utils/index.js.map +1 -0
- package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
- package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
- package/es/chat-engine/core/utils/json-patch/index.js +387 -0
- package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
- package/es/chat-engine/core/utils/logger.d.ts +30 -0
- package/es/chat-engine/core/utils/logger.js +87 -0
- package/es/chat-engine/core/utils/logger.js.map +1 -0
- package/es/chat-engine/core/utils/performance.d.ts +94 -0
- package/es/chat-engine/core/utils/performance.js +205 -0
- package/es/chat-engine/core/utils/performance.js.map +1 -0
- 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 +12 -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 +7 -0
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +9 -1
- package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +9 -1
- package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
- package/es/chat-engine/index.js +8 -4
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +3 -5
- package/es/chat-filecard/index.js.map +1 -1
- package/es/chat-loading/index.js +3 -5
- package/es/chat-loading/index.js.map +1 -1
- package/es/chat-markdown/index.js +3 -5
- package/es/chat-markdown/index.js.map +1 -1
- package/es/chat-message/index.js +3 -5
- package/es/chat-message/index.js.map +1 -1
- package/es/chat-sender/index.js +3 -5
- package/es/chat-sender/index.js.map +1 -1
- package/es/chat-thinking/index.js +3 -5
- package/es/chat-thinking/index.js.map +1 -1
- package/es/chatbot/docs/react-best-practice.d.ts +13 -0
- package/es/chatbot/index.js +3 -5
- package/es/chatbot/index.js.map +1 -1
- package/es/index.js +10 -7
- package/es/index.js.map +1 -1
- package/package.json +16 -11
- package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/catalog.ts"],"sourcesContent":["/**\n * TDesign Catalog 定义(约束层)\n * 用于定义组件 props schema 和 actions 白名单\n * \n * 概念区分:\n * - Catalog(本文件):约束层,定义组件 props 的 Zod schemas 和 actions 白名单(给 AI/服务端用)\n * - ComponentRegistry(catalog/index.ts):渲染层,映射组件名到 React 组件(给 Renderer 用)\n */\n\nimport { createCatalog } from '@json-render/core';\nimport { z } from 'zod';\n\n/**\n * TDesign 内置组件 Catalog\n * 定义所有内置组件的 props schema 和可用 actions\n * \n * 这个 Catalog 用于:\n * 1. 告诉 AI/LLM 可以生成哪些组件\n * 2. 约束每个组件的 props 类型\n * 3. 定义可触发的 actions 白名单\n */\nexport const tdesignCatalog = createCatalog({\n name: 'tdesign',\n components: {\n // ==================== 基础组件 ====================\n \n Button: {\n props: z.object({\n // 支持 label 或 children 两种方式传递按钮文本\n label: z.string().optional(),\n children: z.string().optional(),\n variant: z.enum(['base', 'outline', 'dashed', 'text']).nullable(),\n theme: z.enum(['default', 'primary', 'success', 'warning', 'danger']).nullable(),\n size: z.enum(['small', 'medium', 'large']).nullable(),\n disabled: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n block: z.boolean().nullable(),\n // action 支持字符串(action 名称)或 Action 对象 { name, params }\n action: z.union([\n z.string(),\n z.object({\n name: z.string(),\n params: z.record(z.any()).optional(),\n }),\n ]).nullable(),\n }),\n description: 'TDesign Button component with action support',\n },\n\n Input: {\n props: z.object({\n value: z.string().nullable(),\n placeholder: z.string().nullable(),\n type: z.enum(['text', 'password', 'number']).nullable(),\n disabled: z.boolean().nullable(),\n clearable: z.boolean().nullable(),\n maxlength: z.number().nullable(),\n showLimitNumber: z.boolean().nullable(),\n }),\n description: 'TDesign Input component',\n },\n\n TextField: {\n props: z.object({\n label: z.string(),\n name: z.string().optional(), // 表单字段名称(可选)\n valuePath: z.string(), // 数据绑定路径(必需)\n placeholder: z.string().nullable(),\n required: z.boolean().nullable(),\n type: z.enum(['text', 'password', 'email', 'number', 'tel']).nullable(),\n disabled: z.boolean().nullable(),\n helperText: z.string().nullable(),\n }),\n description: 'Form text field with label and data binding (combines Input + label)',\n },\n\n Text: {\n props: z.object({\n content: z.string(),\n variant: z.enum(['body', 'caption', 'label']).nullable(),\n color: z.enum(['default', 'primary', 'secondary', 'success', 'warning', 'error']).nullable(),\n weight: z.enum(['normal', 'medium', 'bold']).nullable(),\n }),\n description: 'Text display component',\n },\n\n Card: {\n props: z.object({\n title: z.string().nullable(),\n description: z.string().nullable(),\n bordered: z.boolean().nullable(),\n shadow: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n }),\n hasChildren: true,\n description: 'TDesign Card container',\n },\n\n // ==================== 布局组件 ====================\n\n Row: {\n props: z.object({\n gutter: z.number().nullable(),\n justify: z.enum(['start', 'end', 'center', 'space-around', 'space-between']).nullable(),\n align: z.enum(['top', 'middle', 'bottom']).nullable(),\n }),\n hasChildren: true,\n description: 'Grid row layout',\n },\n\n Col: {\n props: z.object({\n span: z.number().min(1).max(24).nullable(),\n offset: z.number().nullable(),\n }),\n hasChildren: true,\n description: 'Grid column layout',\n },\n\n Space: {\n props: z.object({\n direction: z.enum(['horizontal', 'vertical']).nullable(),\n // size 支持字符串枚举或数字\n size: z.union([\n z.enum(['small', 'medium', 'large']),\n z.number(),\n z.string(),\n ]).nullable(),\n align: z.enum(['start', 'center', 'end', 'baseline']).nullable(),\n }),\n hasChildren: true,\n description: 'Space layout component',\n },\n\n Column: {\n props: z.object({\n gap: z.number().nullable(),\n align: z.enum(['start', 'center', 'end', 'stretch']).nullable(),\n }),\n hasChildren: true,\n description: 'Vertical column layout',\n },\n\n Divider: {\n props: z.object({\n layout: z.enum(['horizontal', 'vertical']).nullable(),\n dashed: z.boolean().nullable(),\n }),\n description: 'Divider line',\n },\n },\n \n actions: {\n submit: { \n description: 'Submit form data to server' \n },\n reset: { \n description: 'Reset form to initial state (handled by Button component automatically)' \n },\n cancel: { \n description: 'Cancel current operation' \n },\n },\n \n validation: 'strict',\n});\n\n/**\n * 创建自定义 Catalog(扩展 TDesign 内置 Catalog)\n * \n * @param customConfig - 自定义 Catalog 配置\n * @returns 合并后的 Catalog\n * \n * @example\n * ```typescript\n * import { createCustomCatalog } from '@tdesign-react/chat';\n * import { z } from 'zod';\n * \n * const customCatalog = createCustomCatalog({\n * name: 'my-dashboard',\n * components: {\n * StatusCard: {\n * props: z.object({\n * title: z.string(),\n * status: z.enum(['success', 'warning', 'error', 'info']),\n * description: z.string().nullable(),\n * }),\n * description: 'Custom status card component',\n * },\n * ProgressBar: {\n * props: z.object({\n * label: z.string().nullable(),\n * percentage: z.number().min(0).max(100),\n * showInfo: z.boolean().nullable(),\n * }),\n * description: 'Custom progress bar component',\n * },\n * },\n * actions: {\n * refresh: { description: 'Refresh data' },\n * export: { description: 'Export to file' },\n * },\n * });\n * \n * // 使用自定义 Catalog\n * // 1. 在服务端:告诉 AI 可以生成哪些组件\n * // 2. 在前端:配合 createCustomRegistry 提供渲染能力\n * ```\n */\nexport function createCustomCatalog(customConfig: {\n name: string;\n components?: Record<string, any>;\n actions?: Record<string, { description: string }>;\n validation?: 'strict' | 'warn';\n}) {\n // 获取 TDesign 内置配置\n const tdesignComponents = tdesignCatalog.components;\n const tdesignActions = tdesignCatalog.actions;\n\n // 合并配置\n return createCatalog({\n name: customConfig.name,\n components: {\n ...tdesignComponents,\n ...(customConfig.components || {}),\n },\n actions: {\n ...tdesignActions,\n ...(customConfig.actions || {}),\n },\n validation: customConfig.validation || 'strict',\n });\n}\n\n/**\n * 导出 TDesign Catalog 的组件列表(给 AI prompt 用)\n */\nexport const tdesignComponentList = tdesignCatalog.componentNames as string[];\n\n/**\n * 导出 TDesign Catalog 的 actions 列表(给 AI prompt 用)\n */\nexport const tdesignActionList = tdesignCatalog.actionNames as string[];\n\n/**\n * 内置组件的详细 Props 文档(用于生成详细 prompt)\n */\nconst BUILTIN_COMPONENT_DOCS: Record<string, { \n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}> = {\n Button: {\n description: 'Button component with action support',\n props: {\n label: 'string - Button text (alternative to children)',\n children: 'string - Button text',\n variant: '\"base\" | \"outline\" | \"dashed\" | \"text\" - Button style variant',\n theme: '\"default\" | \"primary\" | \"success\" | \"warning\" | \"danger\" - Color theme',\n size: '\"small\" | \"medium\" | \"large\" - Button size',\n disabled: 'boolean - Whether button is disabled',\n loading: 'boolean - Whether to show loading state',\n block: 'boolean - Whether button should be full width',\n action: 'string | { name: string, params?: object } - Action to trigger on click',\n },\n },\n Input: {\n description: 'Input component for text entry',\n props: {\n value: 'string - Input value',\n placeholder: 'string - Placeholder text',\n type: '\"text\" | \"password\" | \"number\" - Input type',\n disabled: 'boolean - Whether input is disabled',\n clearable: 'boolean - Whether to show clear button',\n maxlength: 'number - Maximum input length',\n showLimitNumber: 'boolean - Whether to show character count',\n },\n },\n TextField: {\n description: 'Form text field with label and data binding',\n props: {\n label: 'string (required) - Field label',\n name: 'string - Form field name',\n valuePath: 'string (required) - Data binding path in data model',\n placeholder: 'string - Placeholder text',\n required: 'boolean - Whether field is required',\n type: '\"text\" | \"password\" | \"email\" | \"number\" | \"tel\" - Input type',\n disabled: 'boolean - Whether field is disabled',\n disabledPath: 'string - Data path to control disabled state dynamically',\n helperText: 'string - Helper text below the field',\n },\n },\n Text: {\n description: 'Text display component',\n props: {\n content: 'string (required) - Text content to display',\n variant: '\"body\" | \"caption\" | \"label\" - Text style variant',\n color: '\"default\" | \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"error\" - Text color',\n weight: '\"normal\" | \"medium\" | \"bold\" - Font weight',\n },\n },\n Card: {\n description: 'Card container component',\n props: {\n title: 'string - Card title',\n description: 'string - Card description',\n bordered: 'boolean - Whether to show border',\n shadow: 'boolean - Whether to show shadow',\n loading: 'boolean - Whether to show loading state',\n },\n hasChildren: true,\n },\n Row: {\n description: 'Grid row layout (24-column grid system)',\n props: {\n gutter: 'number - Gap between columns in pixels',\n justify: '\"start\" | \"end\" | \"center\" | \"space-around\" | \"space-between\" - Horizontal alignment',\n align: '\"top\" | \"middle\" | \"bottom\" - Vertical alignment',\n },\n hasChildren: true,\n },\n Col: {\n description: 'Grid column layout (use inside Row)',\n props: {\n span: 'number (1-24) - Column width, out of 24 total',\n offset: 'number - Column offset from left',\n },\n hasChildren: true,\n },\n Space: {\n description: 'Space layout component for spacing children',\n props: {\n direction: '\"horizontal\" | \"vertical\" - Layout direction',\n size: '\"small\" | \"medium\" | \"large\" | number - Gap size',\n align: '\"start\" | \"center\" | \"end\" | \"baseline\" - Alignment',\n },\n hasChildren: true,\n },\n Column: {\n description: 'Vertical column layout',\n props: {\n gap: 'number - Gap between children in pixels',\n align: '\"start\" | \"center\" | \"end\" | \"stretch\" - Horizontal alignment',\n },\n hasChildren: true,\n },\n Divider: {\n description: 'Divider line',\n props: {\n layout: '\"horizontal\" | \"vertical\" - Divider direction',\n dashed: 'boolean - Whether to use dashed line',\n },\n },\n};\n\n/**\n * Prompt 模板模式\n * - 'default': 默认模板,生成标准的 JSON Schema UI\n * - 'a2ui': A2UI 模板,使用 A2UI 特定的消息格式和协议\n * - 'custom': 自定义模板,完全由 customTemplate 参数控制\n */\nexport type PromptTemplateMode = 'default' | 'a2ui' | 'custom';\n\n/**\n * 组件文档定义类型\n * props 支持两种格式:\n * 1. Record<string, string> - 人可读的 props 描述,如 { label: 'string - Button text' }\n * 2. ZodObject - Zod schema 对象,会自动转换为描述\n */\nexport interface ComponentDoc {\n description: string;\n /** Props 定义:可以是字符串描述映射,也可以是 Zod schema */\n props: Record<string, string> | z.ZodObject<any>;\n hasChildren?: boolean;\n}\n\n/**\n * 内部使用的标准化组件文档类型(props 已转为字符串)\n */\nexport interface NormalizedComponentDoc {\n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}\n\n/**\n * 将 Zod schema 转换为 props 描述字符串\n */\nfunction zodSchemaToPropsDoc(schema: z.ZodObject<any>): Record<string, string> {\n const result: Record<string, string> = {};\n const shape = schema.shape;\n \n for (const [key, value] of Object.entries(shape)) {\n result[key] = zodTypeToString(value as z.ZodTypeAny);\n }\n \n return result;\n}\n\n/**\n * 将 Zod 类型转换为可读字符串\n */\nfunction zodTypeToString(type: z.ZodTypeAny): string {\n // 处理 nullable\n if (type instanceof z.ZodNullable) {\n return `${zodTypeToString(type.unwrap())} (nullable)`;\n }\n \n // 处理 optional\n if (type instanceof z.ZodOptional) {\n return `${zodTypeToString(type.unwrap())} (optional)`;\n }\n \n // 处理 enum\n if (type instanceof z.ZodEnum) {\n const values = type.options as string[];\n return values.map(v => `\"${v}\"`).join(' | ');\n }\n \n // 处理 union\n if (type instanceof z.ZodUnion) {\n const options = (type as any)._def.options as z.ZodTypeAny[];\n return options.map(o => zodTypeToString(o)).join(' | ');\n }\n \n // 处理基础类型\n if (type instanceof z.ZodString) return 'string';\n if (type instanceof z.ZodNumber) return 'number';\n if (type instanceof z.ZodBoolean) return 'boolean';\n if (type instanceof z.ZodObject) return 'object';\n if (type instanceof z.ZodArray) return 'array';\n \n return 'any';\n}\n\n/**\n * 标准化组件文档(将 Zod schema 转换为字符串描述)\n */\nfunction normalizeComponentDoc(doc: ComponentDoc): NormalizedComponentDoc {\n let props: Record<string, string>;\n \n if (doc.props instanceof z.ZodObject) {\n props = zodSchemaToPropsDoc(doc.props);\n } else {\n props = doc.props;\n }\n \n return {\n description: doc.description,\n props,\n hasChildren: doc.hasChildren,\n };\n}\n\n/**\n * 自定义模板生成器函数类型\n * 接收标准化后的组件文档(props 已转为字符串描述)\n */\nexport type CustomTemplateGenerator = (context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n}) => string;\n\n/**\n * 生成增强版 Catalog Prompt(包含完整 Props 文档和 Schema 示例)\n * \n * @param options - 配置选项\n * @returns 详细的 AI Prompt 字符串\n */\nexport function generateCatalogPrompt(options: {\n name?: string;\n components?: Record<string, ComponentDoc>;\n actions?: Record<string, { description: string }>;\n /** 是否包含 Schema 示例 */\n includeExample?: boolean;\n /** \n * Prompt 模板模式\n * - 'default': 标准 JSON Schema UI 模板\n * - 'a2ui': A2UI 协议模板(需服务端配合)\n * - 'custom': 使用自定义模板生成器\n */\n templateMode?: PromptTemplateMode;\n /**\n * 自定义模板生成器(仅当 templateMode='custom' 时使用)\n * 接收组件和 actions 上下文,返回完整的 prompt 字符串\n */\n customTemplate?: CustomTemplateGenerator;\n} = {}): string {\n const {\n name = 'tdesign',\n components = {},\n actions = {},\n includeExample = true,\n templateMode = 'default',\n customTemplate,\n } = options;\n\n // 合并内置组件和自定义组件,并标准化(将 Zod schema 转为字符串描述)\n const mergedComponents = { ...BUILTIN_COMPONENT_DOCS, ...components };\n const allComponents: Record<string, NormalizedComponentDoc> = {};\n for (const [key, doc] of Object.entries(mergedComponents)) {\n allComponents[key] = normalizeComponentDoc(doc);\n }\n \n // 合并内置 actions 和自定义 actions\n const builtinActions = {\n submit: { description: 'Submit form data to server' },\n reset: { description: 'Reset form to initial state' },\n cancel: { description: 'Cancel current operation' },\n };\n const allActions = { ...builtinActions, ...actions };\n\n // 自定义模板模式\n if (templateMode === 'custom' && customTemplate) {\n return customTemplate({ name, components: allComponents, actions: allActions });\n }\n\n // A2UI 模板模式 - 预留给服务端实现具体模板\n if (templateMode === 'a2ui') {\n return generateA2UIPrompt({ name, components: allComponents, actions: allActions, includeExample });\n }\n\n // 默认模板\n const lines: string[] = [\n `# ${name} UI Component Catalog`,\n '',\n 'You can generate dynamic UI using the following components and JSON schema format.',\n '',\n '## Output Format',\n '',\n 'Generate a JSON object with this structure:',\n '```json',\n '{',\n ' \"root\": \"element_id\", // ID of the root element',\n ' \"elements\": {',\n ' \"element_id\": {',\n ' \"key\": \"element_id\", // Same as the key in elements object',\n ' \"type\": \"ComponentName\", // One of the available components',\n ' \"props\": { ... }, // Component-specific props',\n ' \"children\": [\"child_id_1\", \"child_id_2\"] // Optional: IDs of child elements',\n ' }',\n ' },',\n ' \"data\": { // Optional: Initial data model for data binding',\n ' \"fieldName\": \"value\"',\n ' }',\n '}',\n '```',\n '',\n '## AG-UI ACTIVITY_DELTA Format (for Incremental Updates)',\n '',\n 'For updating existing UI, you can also generate AG-UI ACTIVITY_DELTA messages:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"unique_message_id\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/new-element\", \"value\": {...}},',\n ' {\"op\": \"replace\", \"path\": \"/elements/parent/children\", \"value\": [...]}',\n ' ]',\n '}',\n '```',\n '',\n '### JSON Patch Operations for ACTIVITY_DELTA',\n '',\n '**Add New Element:**',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/new-button\", \"value\": {',\n ' \"key\": \"new-button\",',\n ' \"type\": \"Button\",',\n ' \"props\": {\"children\": \"Click Me\", \"theme\": \"primary\"}',\n '}}',\n '```',\n '',\n '**Update Element Properties:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/my-card/props/title\", \"value\": \"Updated Title\"}',\n '```',\n '',\n '**Replace Children Array:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/container/children\", \"value\": [\"child1\", \"child2\", \"new-child\"]}',\n '```',\n '',\n '**Add Child to Parent:**',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/parent/children/-\", \"value\": \"new-child-id\"}',\n '```',\n '',\n '**Update Data Model:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/data/user/name\", \"value\": \"John Doe\"}',\n '```',\n '',\n '**Complete ACTIVITY_DELTA Example:**',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"update_123456\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/success-message\",',\n ' \"value\": {',\n ' \"key\": \"success-message\",',\n ' \"type\": \"Text\",',\n ' \"props\": {',\n ' \"content\": \"Operation completed successfully!\",',\n ' \"color\": \"success\"',\n ' }',\n ' }',\n ' },',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/main-container/children/-\",',\n ' \"value\": \"success-message\"',\n ' }',\n ' ]',\n '}',\n '```',\n '',\n '## JSON-Render Data Structure Details',\n '',\n 'Understanding the structure is crucial for generating valid UI:',\n '',\n '### Root Level Properties',\n '- `root`: String - ID of the root element (must exist in elements)',\n '- `elements`: Object - Contains all UI elements indexed by their IDs',\n '- `data`: Object - Optional data model for form bindings and dynamic content',\n '',\n '### Element Structure',\n 'Each element in the `elements` object has:',\n '- `key`: String - Unique identifier (should match the object key)',\n '- `type`: String - Component type name (must be from available components)',\n '- `props`: Object - Component-specific properties',\n '- `children`: Array<String> - Optional array of child element IDs',\n '',\n '### Element Hierarchy Rules',\n '1. **Root Element**: Must be specified in `root` and exist in `elements`',\n '2. **Parent-Child Relationship**: Parent elements reference children by ID in `children` array',\n '3. **Child Order**: Order in `children` array determines rendering order',\n '4. **Unique IDs**: Each element must have a unique ID across the entire structure',\n '5. **Container Components**: Only components marked with \"can have children\" support `children`',\n '',\n '### Data Binding Paths',\n 'Form components can bind to data using dot notation:',\n '- `\"valuePath\": \"user.name\"` → binds to `data.user.name`',\n '- `\"valuePath\": \"settings.theme\"` → binds to `data.settings.theme`',\n '- `\"disabledPath\": \"form.disabled\"` → controls disabled state from `data.form.disabled`',\n '',\n '### Element ID Best Practices',\n '- Use descriptive names: `\"user_name_field\"` instead of `\"field1\"`',\n '- Use consistent naming: `snake_case` or `kebab-case`',\n '- Include purpose: `\"submit_button\"`, `\"main_container\"`, `\"status_card\"`',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [name, doc] of Object.entries(allComponents)) {\n lines.push(`### ${name}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n lines.push('Actions can be triggered by Button components. Use the `action` prop:');\n lines.push('- Simple: `\"action\": \"actionName\"`');\n lines.push('- With params: `\"action\": { \"name\": \"actionName\", \"params\": { ... } }`');\n lines.push('');\n for (const [name, def] of Object.entries(allActions)) {\n lines.push(`- \\`${name}\\`: ${def.description}`);\n }\n lines.push('');\n\n // Data Binding\n lines.push('## Data Binding');\n lines.push('');\n lines.push('Use `valuePath` to bind form fields to the data model:');\n lines.push('- `\"valuePath\": \"user.name\"` binds to `data.user.name`');\n lines.push('- `\"disabledPath\": \"formDisabled\"` controls disabled state from `data.formDisabled`');\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Examples');\n lines.push('');\n \n lines.push('### 1. Simple Form Structure');\n lines.push('A basic form with validation and data binding:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'main_card',\n elements: {\n main_card: {\n key: 'main_card',\n type: 'Card',\n props: { title: 'User Registration', bordered: true },\n children: ['form_layout'],\n },\n form_layout: {\n key: 'form_layout',\n type: 'Column',\n props: { gap: 16 },\n children: ['name_field', 'email_field', 'button_group'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: {\n label: 'Full Name',\n valuePath: 'user.name',\n placeholder: 'Enter your full name',\n required: true,\n },\n },\n email_field: {\n key: 'email_field',\n type: 'TextField',\n props: {\n label: 'Email Address',\n valuePath: 'user.email',\n placeholder: 'Enter your email',\n type: 'email',\n required: true,\n },\n },\n button_group: {\n key: 'button_group',\n type: 'Space',\n props: { direction: 'horizontal', size: 'medium' },\n children: ['submit_btn', 'reset_btn'],\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: {\n children: 'Register',\n theme: 'primary',\n action: { name: 'submit', params: { form: 'registration' } },\n },\n },\n reset_btn: {\n key: 'reset_btn',\n type: 'Button',\n props: {\n children: 'Reset',\n variant: 'outline',\n action: 'reset',\n },\n },\n },\n data: {\n user: { name: '', email: '' },\n },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 2. Dashboard Layout');\n lines.push('A more complex layout with grid system and multiple components:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'dashboard',\n elements: {\n dashboard: {\n key: 'dashboard',\n type: 'Column',\n props: { gap: 24 },\n children: ['header', 'content_row'],\n },\n header: {\n key: 'header',\n type: 'Card',\n props: { title: 'Dashboard Overview' },\n children: ['status_text'],\n },\n status_text: {\n key: 'status_text',\n type: 'Text',\n props: {\n content: 'System is running normally',\n color: 'success',\n weight: 'medium',\n },\n },\n content_row: {\n key: 'content_row',\n type: 'Row',\n props: { gutter: 16 },\n children: ['left_col', 'right_col'],\n },\n left_col: {\n key: 'left_col',\n type: 'Col',\n props: { span: 16 },\n children: ['main_content'],\n },\n right_col: {\n key: 'right_col',\n type: 'Col',\n props: { span: 8 },\n children: ['sidebar_card'],\n },\n main_content: {\n key: 'main_content',\n type: 'Card',\n props: { title: 'Main Content', shadow: true },\n children: ['content_text'],\n },\n content_text: {\n key: 'content_text',\n type: 'Text',\n props: { content: 'This is the main content area.' },\n },\n sidebar_card: {\n key: 'sidebar_card',\n type: 'Card',\n props: { title: 'Quick Actions' },\n children: ['action_buttons'],\n },\n action_buttons: {\n key: 'action_buttons',\n type: 'Column',\n props: { gap: 8 },\n children: ['refresh_btn', 'export_btn'],\n },\n refresh_btn: {\n key: 'refresh_btn',\n type: 'Button',\n props: {\n children: 'Refresh Data',\n block: true,\n action: 'refresh',\n },\n },\n export_btn: {\n key: 'export_btn',\n type: 'Button',\n props: {\n children: 'Export Report',\n variant: 'outline',\n block: true,\n action: 'export',\n },\n },\n },\n data: {\n lastUpdated: new Date().toISOString(),\n },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 3. Dynamic Content with Data Binding');\n lines.push('Form with conditional disabled states:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'settings_form',\n elements: {\n settings_form: {\n key: 'settings_form',\n type: 'Card',\n props: { title: 'Settings' },\n children: ['form_fields'],\n },\n form_fields: {\n key: 'form_fields',\n type: 'Column',\n props: { gap: 16 },\n children: ['enable_notifications', 'email_field', 'save_btn'],\n },\n enable_notifications: {\n key: 'enable_notifications',\n type: 'TextField',\n props: {\n label: 'Enable Notifications',\n valuePath: 'settings.notifications',\n type: 'text',\n },\n },\n email_field: {\n key: 'email_field',\n type: 'TextField',\n props: {\n label: 'Notification Email',\n valuePath: 'settings.email',\n disabledPath: 'settings.emailDisabled',\n placeholder: 'Enter email for notifications',\n },\n },\n save_btn: {\n key: 'save_btn',\n type: 'Button',\n props: {\n children: 'Save Settings',\n theme: 'primary',\n action: 'submit',\n },\n },\n },\n data: {\n settings: {\n notifications: 'enabled',\n email: '',\n emailDisabled: false,\n },\n },\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * A2UI 协议专用 Prompt 生成器\n * 生成符合 A2UI 消息格式的系统提示词\n * \n * @internal 内部函数,由 generateDetailedCatalogPrompt 调用\n */\nfunction generateA2UIPrompt(context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n includeExample?: boolean;\n}): string {\n const { name, components, actions, includeExample = true } = context;\n\n const lines: string[] = [\n `# ${name} A2UI Component Catalog`,\n '',\n 'You can generate dynamic UI using A2UI protocol messages.',\n '',\n '## AG-UI ACTIVITY_DELTA Format',\n '',\n 'When generating UI updates, use the AG-UI ACTIVITY_DELTA message format:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"unique_message_id\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/element-id\", \"value\": {...}},',\n ' {\"op\": \"replace\", \"path\": \"/elements/parent/children\", \"value\": [...]}',\n ' ]',\n '}',\n '```',\n '',\n '## JSON Patch Operations for AG-UI ACTIVITY_DELTA',\n '',\n 'The `patch` array contains JSON Patch operations that modify the UI structure:',\n '',\n '### Add New Element',\n 'Create a new UI element in the elements object:',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/new-element-id\", \"value\": {',\n ' \"key\": \"new-element-id\",',\n ' \"type\": \"ComponentName\",',\n ' \"props\": {...},',\n ' \"children\": [\"child1\", \"child2\"] // optional',\n '}}',\n '```',\n '',\n '### Update Element Properties',\n 'Modify specific properties of an existing element:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/element-id/props/title\", \"value\": \"New Title\"}',\n '```',\n '',\n '### Replace Children Array',\n 'Update the children of a container element:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/parent-id/children\", \"value\": [\"child1\", \"child2\", \"new-child\"]}',\n '```',\n '',\n '### Add Child to Parent',\n 'Append a child to the end of parent\\'s children array:',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/parent-id/children/-\", \"value\": \"new-child-id\"}',\n '```',\n '',\n '### Remove Element',\n 'Delete an element (ensure it\\'s removed from parent\\'s children first):',\n '```json',\n '{\"op\": \"remove\", \"path\": \"/elements/element-id\"}',\n '```',\n '',\n '### Update Data Model',\n 'Modify the data model for form bindings:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/data/user/name\", \"value\": \"John Doe\"}',\n '```',\n '',\n '### Complete AG-UI ACTIVITY_DELTA Example',\n 'Adding a status card and updating container children:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"update_1234567890\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/status-card\",',\n ' \"value\": {',\n ' \"key\": \"status-card\",',\n ' \"type\": \"Card\",',\n ' \"props\": {',\n ' \"title\": \"Status Update\",',\n ' \"description\": \"Operation completed successfully\"',\n ' }',\n ' }',\n ' },',\n ' {',\n ' \"op\": \"replace\",',\n ' \"path\": \"/elements/main-container/children\",',\n ' \"value\": [\"existing-element\", \"status-card\"]',\n ' }',\n ' ]',\n '}',\n '```',\n '',\n '## A2UI Message Types (Alternative Formats)',\n '',\n 'Besides AG-UI ACTIVITY_DELTA, A2UI also supports these message types:',\n '',\n '### createSurface',\n 'Create a new UI surface with initial elements:',\n '```json',\n '{',\n ' \"type\": \"createSurface\",',\n ' \"surfaceId\": \"unique_surface_id\",',\n ' \"ui\": {',\n ' \"root\": \"element_id\",',\n ' \"elements\": { ... }',\n ' },',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### updateComponents',\n 'Update existing UI elements (similar to ACTIVITY_DELTA but different format):',\n '```json',\n '{',\n ' \"type\": \"updateComponents\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/new-element\", \"value\": {...}}',\n ' ]',\n '}',\n '```',\n '',\n '### updateDataModel',\n 'Update data model without changing UI:',\n '```json',\n '{',\n ' \"type\": \"updateDataModel\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### deleteSurface',\n 'Remove a UI surface:',\n '```json',\n '{',\n ' \"type\": \"deleteSurface\",',\n ' \"surfaceId\": \"surface_to_delete\"',\n '}',\n '```',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [compName, doc] of Object.entries(components)) {\n lines.push(`### ${compName}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n for (const [actionName, def] of Object.entries(actions)) {\n lines.push(`- \\`${actionName}\\`: ${def.description}`);\n }\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Examples');\n lines.push('');\n \n lines.push('### 1. Create a form surface:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'createSurface',\n surfaceId: 'user_form_1',\n ui: {\n root: 'form_card',\n elements: {\n form_card: {\n key: 'form_card',\n type: 'Card',\n props: { title: 'User Form' },\n children: ['name_field', 'submit_btn'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: { label: 'Name', valuePath: 'user.name' },\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: { children: 'Submit', theme: 'primary', action: 'submit' },\n },\n },\n },\n data: { user: { name: '' } },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 2. Update existing surface with JSON Patch:');\n lines.push('Add a status card and update the form title:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'updateComponents',\n surfaceId: 'user_form_1',\n patch: [\n {\n op: 'replace',\n path: '/elements/form_card/props/title',\n value: 'Updated User Form'\n },\n {\n op: 'add',\n path: '/elements/status_card',\n value: {\n key: 'status_card',\n type: 'Card',\n props: { \n title: 'Status',\n description: 'Form is ready for submission'\n }\n }\n },\n {\n op: 'add',\n path: '/elements/form_card/children/0',\n value: 'status_card'\n }\n ]\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 3. Update data model:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'updateDataModel',\n surfaceId: 'user_form_1',\n data: { \n user: { name: 'John Doe' },\n formStatus: 'ready'\n }\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n"],"names":["tdesignCatalog","createCatalog","name","components","Button","props","z","object","label","string","optional","children","variant","nullable","theme","size","disabled","loading","block","action","union","params","record","any","description","Input","value","placeholder","type","clearable","maxlength","number","showLimitNumber","TextField","valuePath","required","helperText","Text","content","color","weight","Card","title","bordered","shadow","hasChildren","Row","gutter","justify","align","Col","span","min","max","offset","Space","direction","Column","gap","Divider","layout","dashed","actions","submit","reset","cancel","validation","createCustomCatalog","customConfig","tdesignComponents","tdesignActions","_objectSpread","tdesignComponentList","componentNames","tdesignActionList","actionNames","BUILTIN_COMPONENT_DOCS","disabledPath","zodSchemaToPropsDoc","schema","result","shape","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","key","zodTypeToString","ZodNullable","concat","unwrap","ZodOptional","ZodEnum","values","options","map","v","join","ZodUnion","_def","o","ZodString","ZodNumber","ZodBoolean","ZodObject","ZodArray","normalizeComponentDoc","doc","generateCatalogPrompt","arguments","undefined","_options$name","_options$components","_options$actions","_options$includeExamp","includeExample","_options$templateMode","templateMode","customTemplate","mergedComponents","allComponents","_i2","_Object$entries2","_Object$entries2$_i","builtinActions","allActions","generateA2UIPrompt","lines","_i3","_Object$entries3","_Object$entries3$_i","push","_i4","_Object$entries4","_Object$entries4$_i","propName","propDesc","_i5","_Object$entries5","_Object$entries5$_i","def","JSON","stringify","root","elements","main_card","form_layout","name_field","email_field","button_group","submit_btn","form","reset_btn","data","user","email","dashboard","header","status_text","content_row","left_col","right_col","main_content","content_text","sidebar_card","action_buttons","refresh_btn","export_btn","lastUpdated","Date","toISOString","settings_form","form_fields","enable_notifications","save_btn","settings","notifications","emailDisabled","context","_context$includeExamp","_i6","_Object$entries6","_Object$entries6$_i","compName","_i7","_Object$entries7","_Object$entries7$_i","_i8","_Object$entries8","_Object$entries8$_i","actionName","surfaceId","ui","form_card","patch","op","path","formStatus"],"mappings":";;;;;;;;;;;;;AAqBaA,IAAAA,iBAAiBC,aAAc,CAAA;AAC1CC,EAAAA,IAAM,EAAA,SAAA;AACNC,EAAAA,UAAY,EAAA;AAGVC,IAAAA,MAAQ,EAAA;AACNC,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;QAEdC,KAAO,EAAAF,CAAA,CAAEG,MAAO,EAAA,CAAEC,QAAS,EAAA;QAC3BC,QAAU,EAAAL,CAAA,CAAEG,MAAO,EAAA,CAAEC,QAAS,EAAA;AAC9BE,QAAAA,OAAA,EAASN,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,MAAA,EAAQ,WAAW,QAAU,EAAA,MAAM,CAAC,CAAA,CAAEO,QAAS,EAAA;AAChEC,QAAAA,KAAA,EAAOR,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,SAAA,EAAW,SAAW,EAAA,SAAA,EAAW,SAAW,EAAA,QAAQ,CAAC,CAAA,CAAEO,QAAS,EAAA;AAC/EE,QAAAA,IAAA,EAAMT,EAAO,MAAA,CAAA,CAAA,CAAC,SAAS,QAAU,EAAA,OAAO,CAAC,CAAA,CAAEO,QAAS,EAAA;QACpDG,QAAU,EAAAV,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAC/BI,OAAS,EAAAX,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAC9BK,KAAO,EAAAZ,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;AAE5BM,QAAAA,MAAA,EAAQb,EAAEc,KAAM,CAAA,CACdd,EAAEG,MAAO,EAAA,EACTH,EAAEC,MAAO,CAAA;AACPL,UAAAA,IAAA,EAAMI,EAAEG,MAAO,EAAA;AACfY,UAAAA,QAAQf,CAAE,CAAAgB,MAAA,CAAOhB,EAAEiB,GAAI,EAAC,EAAEb,QAAS,EAAA;AACrC,SAAC,CAAA,CACF,EAAEG,QAAS,EAAA;AACd,OAAC,CAAA;AACDW,MAAAA,WAAa,EAAA,8CAAA;KACf;AAEAC,IAAAA,KAAO,EAAA;AACLpB,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;QACdmB,KAAO,EAAApB,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;QAC3Bc,WAAa,EAAArB,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;AACjCe,QAAAA,IAAA,EAAMtB,EAAO,MAAA,CAAA,CAAA,CAAC,QAAQ,UAAY,EAAA,QAAQ,CAAC,CAAA,CAAEO,QAAS,EAAA;QACtDG,QAAU,EAAAV,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAC/BgB,SAAW,EAAAvB,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAChCiB,SAAW,EAAAxB,CAAA,CAAEyB,MAAO,EAAA,CAAElB,QAAS,EAAA;AAC/BmB,QAAAA,eAAiB,EAAA1B,CAAA,CAAA,SAAA,CAAU,EAAA,CAAEO,QAAS,EAAA;AACxC,OAAC,CAAA;AACDW,MAAAA,WAAa,EAAA,yBAAA;KACf;AAEAS,IAAAA,SAAW,EAAA;AACT5B,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;AACdC,QAAAA,KAAA,EAAOF,EAAEG,MAAO,EAAA;QAChBP,IAAM,EAAAI,CAAA,CAAEG,MAAO,EAAA,CAAEC,QAAS,EAAA;AAC1BwB,QAAAA,SAAA,EAAW5B,EAAEG,MAAO,EAAA;QACpBkB,WAAa,EAAArB,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;QACjCsB,QAAU,EAAA7B,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;AAC/Be,QAAAA,IAAA,EAAMtB,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,MAAA,EAAQ,UAAY,EAAA,OAAA,EAAS,QAAU,EAAA,KAAK,CAAC,CAAA,CAAEO,QAAS,EAAA;QACtEG,QAAU,EAAAV,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAC/BuB,UAAY,EAAA9B,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;AAClC,OAAC,CAAA;AACDW,MAAAA,WAAa,EAAA,sEAAA;KACf;AAEAa,IAAAA,IAAM,EAAA;AACJhC,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;AACd+B,QAAAA,OAAA,EAAShC,EAAEG,MAAO,EAAA;AAClBG,QAAAA,OAAA,EAASN,EAAO,MAAA,CAAA,CAAA,CAAC,QAAQ,SAAW,EAAA,OAAO,CAAC,CAAA,CAAEO,QAAS,EAAA;QACvD0B,KAAO,EAAAjC,CAAA,CAAO,MAAA,CAAA,CAAA,CAAC,SAAW,EAAA,SAAA,EAAW,WAAa,EAAA,SAAA,EAAW,SAAW,EAAA,OAAO,CAAC,CAAA,CAAEO,QAAS,EAAA;AAC3F2B,QAAAA,MAAA,EAAQlC,EAAO,MAAA,CAAA,CAAA,CAAC,UAAU,QAAU,EAAA,MAAM,CAAC,CAAA,CAAEO,QAAS,EAAA;AACxD,OAAC,CAAA;AACDW,MAAAA,WAAa,EAAA,wBAAA;KACf;AAEAiB,IAAAA,IAAM,EAAA;AACJpC,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;QACdmC,KAAO,EAAApC,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;QAC3BW,WAAa,EAAAlB,CAAA,CAAEG,MAAO,EAAA,CAAEI,QAAS,EAAA;QACjC8B,QAAU,EAAArC,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;QAC/B+B,MAAQ,EAAAtC,CAAA,CAAU,SAAA,CAAA,EAAA,CAAEO,QAAS,EAAA;AAC7BI,QAAAA,OAAS,EAAAX,CAAA,CAAA,SAAA,CAAU,EAAA,CAAEO,QAAS,EAAA;AAChC,OAAC,CAAA;AACDgC,MAAAA,WAAa,EAAA,IAAA;AACbrB,MAAAA,WAAa,EAAA,wBAAA;KACf;AAIAsB,IAAAA,GAAK,EAAA;AACHzC,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;QACdwC,MAAQ,EAAAzC,CAAA,CAAEyB,MAAO,EAAA,CAAElB,QAAS,EAAA;AAC5BmC,QAAAA,OAAA,EAAS1C,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,OAAA,EAAS,KAAO,EAAA,QAAA,EAAU,cAAgB,EAAA,eAAe,CAAC,CAAA,CAAEO,QAAS,EAAA;AACtFoC,QAAAA,KAAA,EAAO3C,EAAO,MAAA,CAAA,CAAA,CAAC,OAAO,QAAU,EAAA,QAAQ,CAAC,CAAA,CAAEO,QAAS,EAAA;AACtD,OAAC,CAAA;AACDgC,MAAAA,WAAa,EAAA,IAAA;AACbrB,MAAAA,WAAa,EAAA,iBAAA;KACf;AAEA0B,IAAAA,GAAK,EAAA;AACH7C,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;AACd4C,QAAAA,IAAA,EAAM7C,CAAE,CAAAyB,MAAA,EAAS,CAAAqB,GAAA,CAAI,CAAC,CAAE,CAAAC,GAAA,CAAI,EAAE,CAAA,CAAExC,QAAS,EAAA;QACzCyC,MAAQ,EAAAhD,CAAA,CAAEyB,MAAO,EAAA,CAAElB,QAAS,EAAA;AAC9B,OAAC,CAAA;AACDgC,MAAAA,WAAa,EAAA,IAAA;AACbrB,MAAAA,WAAa,EAAA,oBAAA;KACf;AAEA+B,IAAAA,KAAO,EAAA;AACLlD,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;AACdiD,QAAAA,SAAA,EAAWlD,EAAO,MAAA,CAAA,CAAA,CAAC,cAAc,UAAU,CAAC,EAAEO,QAAS,EAAA;AAEvDE,QAAAA,IAAA,EAAMT,EAAEc,KAAM,CAAA,CACZd,EAAO,MAAA,CAAA,CAAA,CAAC,OAAS,EAAA,QAAA,EAAU,OAAO,CAAC,CAAA,EACnCA,EAAEyB,MAAO,EAAA,EACTzB,EAAEG,MAAO,EAAA,CACV,EAAEI,QAAS,EAAA;AACZoC,QAAAA,KAAA,EAAO3C,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,OAAA,EAAS,UAAU,KAAO,EAAA,UAAU,CAAC,CAAA,CAAEO,QAAS,EAAA;AACjE,OAAC,CAAA;AACDgC,MAAAA,WAAa,EAAA,IAAA;AACbrB,MAAAA,WAAa,EAAA,wBAAA;KACf;AAEAiC,IAAAA,MAAQ,EAAA;AACNpD,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;QACdmD,GAAK,EAAApD,CAAA,CAAEyB,MAAO,EAAA,CAAElB,QAAS,EAAA;AACzBoC,QAAAA,KAAA,EAAO3C,CAAE,CAAA,MAAA,CAAA,CAAK,CAAC,OAAA,EAAS,UAAU,KAAO,EAAA,SAAS,CAAC,CAAA,CAAEO,QAAS,EAAA;AAChE,OAAC,CAAA;AACDgC,MAAAA,WAAa,EAAA,IAAA;AACbrB,MAAAA,WAAa,EAAA,wBAAA;KACf;AAEAmC,IAAAA,OAAS,EAAA;AACPtD,MAAAA,KAAA,EAAOC,EAAEC,MAAO,CAAA;AACdqD,QAAAA,MAAA,EAAQtD,EAAO,MAAA,CAAA,CAAA,CAAC,cAAc,UAAU,CAAC,EAAEO,QAAS,EAAA;AACpDgD,QAAAA,MAAQ,EAAAvD,CAAA,CAAA,SAAA,CAAU,EAAA,CAAEO,QAAS,EAAA;AAC/B,OAAC,CAAA;AACDW,MAAAA,WAAa,EAAA,cAAA;AACf,KAAA;GACF;AAEAsC,EAAAA,OAAS,EAAA;AACPC,IAAAA,MAAQ,EAAA;AACNvC,MAAAA,WAAa,EAAA,4BAAA;KACf;AACAwC,IAAAA,KAAO,EAAA;AACLxC,MAAAA,WAAa,EAAA,yEAAA;KACf;AACAyC,IAAAA,MAAQ,EAAA;AACNzC,MAAAA,WAAa,EAAA,0BAAA;AACf,KAAA;GACF;AAEA0C,EAAAA,UAAY,EAAA,QAAA;AACd,CAAC,EAAA;AA4CM,SAASC,oBAAoBC,YAKjC,EAAA;AAED,EAAA,IAAMC,oBAAoBrE,cAAe,CAAAG,UAAA,CAAA;AACzC,EAAA,IAAMmE,iBAAiBtE,cAAe,CAAA8D,OAAA,CAAA;AAGtC,EAAA,OAAO7D,aAAc,CAAA;IACnBC,MAAMkE,YAAa,CAAAlE,IAAA;AACnBC,IAAAA,UAAY,EAAAoE,aAAA,CAAAA,aAAA,CACPF,EAAAA,EAAAA,iBAAA,CACCD,EAAAA,YAAa,CAAAjE,UAAA,IAAc,EAAC,CAClC;AACA2D,IAAAA,OAAS,EAAAS,aAAA,CAAAA,aAAA,CACJD,EAAAA,EAAAA,cAAA,CACCF,EAAAA,YAAa,CAAAN,OAAA,IAAW,EAAC,CAC/B;AACAI,IAAAA,UAAA,EAAYE,aAAaF,UAAc,IAAA,QAAA;AACzC,GAAC,CAAA,CAAA;AACH,CAAA;AAKaM,IAAAA,uBAAuBxE,cAAe,CAAAyE,eAAA;AAKtCC,IAAAA,oBAAoB1E,cAAe,CAAA2E,YAAA;AAKhD,IAAMC,sBAID,GAAA;AACHxE,EAAAA,MAAQ,EAAA;AACNoB,IAAAA,WAAa,EAAA,sCAAA;AACbnB,IAAAA,KAAO,EAAA;AACLG,MAAAA,KAAO,EAAA,gDAAA;AACPG,MAAAA,QAAU,EAAA,sBAAA;AACVC,MAAAA,OAAS,EAAA,+DAAA;AACTE,MAAAA,KAAO,EAAA,wEAAA;AACPC,MAAAA,IAAM,EAAA,4CAAA;AACNC,MAAAA,QAAU,EAAA,sCAAA;AACVC,MAAAA,OAAS,EAAA,yCAAA;AACTC,MAAAA,KAAO,EAAA,+CAAA;AACPC,MAAAA,MAAQ,EAAA,yEAAA;AACV,KAAA;GACF;AACAM,EAAAA,KAAO,EAAA;AACLD,IAAAA,WAAa,EAAA,gCAAA;AACbnB,IAAAA,KAAO,EAAA;AACLqB,MAAAA,KAAO,EAAA,sBAAA;AACPC,MAAAA,WAAa,EAAA,2BAAA;AACbC,MAAAA,IAAM,EAAA,6CAAA;AACNZ,MAAAA,QAAU,EAAA,qCAAA;AACVa,MAAAA,SAAW,EAAA,wCAAA;AACXC,MAAAA,SAAW,EAAA,+BAAA;AACXE,MAAAA,eAAiB,EAAA,2CAAA;AACnB,KAAA;GACF;AACAC,EAAAA,SAAW,EAAA;AACTT,IAAAA,WAAa,EAAA,6CAAA;AACbnB,IAAAA,KAAO,EAAA;AACLG,MAAAA,KAAO,EAAA,iCAAA;AACPN,MAAAA,IAAM,EAAA,0BAAA;AACNgC,MAAAA,SAAW,EAAA,qDAAA;AACXP,MAAAA,WAAa,EAAA,2BAAA;AACbQ,MAAAA,QAAU,EAAA,qCAAA;AACVP,MAAAA,IAAM,EAAA,+DAAA;AACNZ,MAAAA,QAAU,EAAA,qCAAA;AACV6D,MAAAA,YAAc,EAAA,0DAAA;AACdzC,MAAAA,UAAY,EAAA,sCAAA;AACd,KAAA;GACF;AACAC,EAAAA,IAAM,EAAA;AACJb,IAAAA,WAAa,EAAA,wBAAA;AACbnB,IAAAA,KAAO,EAAA;AACLiC,MAAAA,OAAS,EAAA,6CAAA;AACT1B,MAAAA,OAAS,EAAA,mDAAA;AACT2B,MAAAA,KAAO,EAAA,oFAAA;AACPC,MAAAA,MAAQ,EAAA,4CAAA;AACV,KAAA;GACF;AACAC,EAAAA,IAAM,EAAA;AACJjB,IAAAA,WAAa,EAAA,0BAAA;AACbnB,IAAAA,KAAO,EAAA;AACLqC,MAAAA,KAAO,EAAA,qBAAA;AACPlB,MAAAA,WAAa,EAAA,2BAAA;AACbmB,MAAAA,QAAU,EAAA,kCAAA;AACVC,MAAAA,MAAQ,EAAA,kCAAA;AACR3B,MAAAA,OAAS,EAAA,yCAAA;KACX;AACA4B,IAAAA,WAAa,EAAA,IAAA;GACf;AACAC,EAAAA,GAAK,EAAA;AACHtB,IAAAA,WAAa,EAAA,yCAAA;AACbnB,IAAAA,KAAO,EAAA;AACL0C,MAAAA,MAAQ,EAAA,wCAAA;AACRC,MAAAA,OAAS,EAAA,sFAAA;AACTC,MAAAA,KAAO,EAAA,kDAAA;KACT;AACAJ,IAAAA,WAAa,EAAA,IAAA;GACf;AACAK,EAAAA,GAAK,EAAA;AACH1B,IAAAA,WAAa,EAAA,qCAAA;AACbnB,IAAAA,KAAO,EAAA;AACL8C,MAAAA,IAAM,EAAA,+CAAA;AACNG,MAAAA,MAAQ,EAAA,kCAAA;KACV;AACAT,IAAAA,WAAa,EAAA,IAAA;GACf;AACAU,EAAAA,KAAO,EAAA;AACL/B,IAAAA,WAAa,EAAA,6CAAA;AACbnB,IAAAA,KAAO,EAAA;AACLmD,MAAAA,SAAW,EAAA,8CAAA;AACXzC,MAAAA,IAAM,EAAA,kDAAA;AACNkC,MAAAA,KAAO,EAAA,qDAAA;KACT;AACAJ,IAAAA,WAAa,EAAA,IAAA;GACf;AACAY,EAAAA,MAAQ,EAAA;AACNjC,IAAAA,WAAa,EAAA,wBAAA;AACbnB,IAAAA,KAAO,EAAA;AACLqD,MAAAA,GAAK,EAAA,yCAAA;AACLT,MAAAA,KAAO,EAAA,+DAAA;KACT;AACAJ,IAAAA,WAAa,EAAA,IAAA;GACf;AACAc,EAAAA,OAAS,EAAA;AACPnC,IAAAA,WAAa,EAAA,cAAA;AACbnB,IAAAA,KAAO,EAAA;AACLuD,MAAAA,MAAQ,EAAA,+CAAA;AACRC,MAAAA,MAAQ,EAAA,sCAAA;AACV,KAAA;AACF,GAAA;AACF,CAAA,CAAA;AAmCA,SAASiB,oBAAoBC,MAAkD,EAAA;EAC7E,IAAMC,SAAiC,EAAC,CAAA;AACxC,EAAA,IAAMC,QAAQF,MAAO,CAAAE,KAAA,CAAA;AAErB,EAAA,KAAA,IAAAC,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAA2BC,MAAO,CAAAC,OAAA,CAAQJ,KAAK,CAAG,EAAAC,EAAA,GAAAC,eAAA,CAAAG,MAAA,EAAAJ,EAAA,EAAA,EAAA;AAAlD,IAAA,IAAAK,kBAAA,GAAAC,cAAA,CAAAL,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAYO,MAAAA,GAAK,GAAAF,kBAAA,CAAA,CAAA,CAAA;AAAA7D,MAAAA,KAAK,GAAA6D,kBAAA,CAAA,CAAA,CAAA,CAAA;AACbP,IAAAA,MAAA,CAAAS,GAAA,CAAA,GAAOC,gBAAgBhE,KAAqB,CAAA,CAAA;AACrD,GAAA;AAEO,EAAA,OAAAsD,MAAA,CAAA;AACT,CAAA;AAKA,SAASU,gBAAgB9D,IAA4B,EAAA;AAE/C,EAAA,IAAAA,IAAA,YAAgBtB,EAAEqF,WAAa,EAAA;IACjC,OAAAC,EAAAA,CAAAA,MAAA,CAAUF,eAAA,CAAgB9D,IAAK,CAAAiE,MAAA,EAAQ,CAAA,EAAA,aAAA,CAAA,CAAA;AACzC,GAAA;AAGI,EAAA,IAAAjE,IAAA,YAAgBtB,EAAEwF,WAAa,EAAA;IACjC,OAAAF,EAAAA,CAAAA,MAAA,CAAUF,eAAA,CAAgB9D,IAAK,CAAAiE,MAAA,EAAQ,CAAA,EAAA,aAAA,CAAA,CAAA;AACzC,GAAA;AAGI,EAAA,IAAAjE,IAAA,YAAgBtB,EAAEyF,OAAS,EAAA;AAC7B,IAAA,IAAMC,SAASpE,IAAK,CAAAqE,OAAA,CAAA;AACpB,IAAA,OAAOD,OAAOE,GAAI,CAAA,UAAAC,CAAA,EAAA;MAAA,OAAAP,IAAAA,CAAAA,MAAA,CAASO,CAAI,EAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAEC,KAAK,KAAK,CAAA,CAAA;AAC7C,GAAA;AAGI,EAAA,IAAAxE,IAAA,YAAgBtB,EAAE+F,QAAU,EAAA;AACxB,IAAA,IAAAJ,OAAA,GAAWrE,KAAa0E,IAAK,CAAAL,OAAA,CAAA;AAC5B,IAAA,OAAAA,OAAA,CAAQC,IAAI,UAAKK,CAAA,EAAA;MAAA,OAAAb,eAAA,CAAgBa,CAAC,CAAC,CAAA;AAAA,KAAA,CAAA,CAAEH,KAAK,KAAK,CAAA,CAAA;AACxD,GAAA;AAGA,EAAA,IAAIxE,gBAAgBtB,CAAE,CAAAkG,SAAA,EAAkB,OAAA,QAAA,CAAA;AACxC,EAAA,IAAI5E,gBAAgBtB,CAAE,CAAAmG,SAAA,EAAkB,OAAA,QAAA,CAAA;AACxC,EAAA,IAAI7E,gBAAgBtB,CAAE,CAAAoG,UAAA,EAAmB,OAAA,SAAA,CAAA;AACzC,EAAA,IAAI9E,gBAAgBtB,CAAE,CAAAqG,SAAA,EAAkB,OAAA,QAAA,CAAA;AACxC,EAAA,IAAI/E,gBAAgBtB,CAAE,CAAAsG,QAAA,EAAiB,OAAA,OAAA,CAAA;AAEhC,EAAA,OAAA,KAAA,CAAA;AACT,CAAA;AAKA,SAASC,sBAAsBC,GAA2C,EAAA;AACpE,EAAA,IAAAzG,KAAA,CAAA;AAEA,EAAA,IAAAyG,GAAA,CAAIzG,KAAiB,YAAAC,CAAA,CAAEqG,SAAW,EAAA;AAC5BtG,IAAAA,KAAA,GAAAyE,mBAAA,CAAoBgC,IAAIzG,KAAK,CAAA,CAAA;AACvC,GAAO,MAAA;IACLA,KAAA,GAAQyG,GAAI,CAAAzG,KAAA,CAAA;AACd,GAAA;EAEO,OAAA;IACLmB,aAAasF,GAAI,CAAAtF,WAAA;AACjBnB,IAAAA,KAAA,EAAAA,KAAA;IACAwC,aAAaiE,GAAI,CAAAjE,WAAAA;GACnB,CAAA;AACF,CAAA;AAkBgB,SAAAkE,qBAAAA,GAkBA;AAAA,EAAA,IAlBsBd,OAkBlC,GAAAe,SAAA,CAAA1B,MAAA,GAAA,CAAA,IAAA0B,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAA,EAAY,CAAA;AACR,EAAA,IAAAE,aAAA,GAOFjB,OAAA,CANF/F,IAAO;AAAPA,IAAAA,IAAO,GAAAgH,aAAA,KAAA,KAAA,CAAA,GAAA,SAAA,GAAAA,aAAA;IAAAC,mBAAA,GAMLlB,OAAA,CALF9F;AAAAA,IAAAA,8CAAa,EAAC,GAAAgH,mBAAA;IAAAC,gBAAA,GAKZnB,OAAA,CAJFnC;AAAAA,IAAAA,wCAAU,EAAC,GAAAsD,gBAAA;IAAAC,qBAAA,GAITpB,OAAA,CAHFqB,cAAiB;AAAjBA,IAAAA,cAAiB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,IAAA,GAAAA,qBAAA;IAAAE,qBAAA,GAGftB,OAAA,CAFFuB,YAAe;AAAfA,IAAAA,YAAe,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,SAAA,GAAAA,qBAAA;IACfE,cAAA,GACExB,OAAA,CADFwB,cAAA,CAAA;EAIF,IAAMC,gBAAmB,GAAAnD,aAAA,CAAAA,aAAA,CAAKK,EAAAA,EAAAA,sBAAA,CAA2BzE,EAAAA,UAAW,CAAA,CAAA;EACpE,IAAMwH,gBAAwD,EAAC,CAAA;AAC/D,EAAA,KAAA,IAAAC,GAAA,GAAAC,CAAAA,EAAAA,gBAAA,GAAyBzC,MAAO,CAAAC,OAAA,CAAQqC,gBAAgB,CAAG,EAAAE,GAAA,GAAAC,gBAAA,CAAAvC,MAAA,EAAAsC,GAAA,EAAA,EAAA;AAA3D,IAAA,IAAAE,mBAAA,GAAAtC,cAAA,CAAAqC,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAYnC,MAAAA,GAAK,GAAAqC,mBAAA,CAAA,CAAA,CAAA;AAAAhB,MAAAA,GAAG,GAAAgB,mBAAA,CAAA,CAAA,CAAA,CAAA;AACJH,IAAAA,aAAA,CAAAlC,GAAA,CAAA,GAAOoB,sBAAsBC,GAAG,CAAA,CAAA;AAChD,GAAA;AAGA,EAAA,IAAMiB,cAAiB,GAAA;AACrBhE,IAAAA,MAAA,EAAQ;AAAEvC,MAAAA,WAAA,EAAa,4BAAA;KAA6B;AACpDwC,IAAAA,KAAA,EAAO;AAAExC,MAAAA,WAAA,EAAa,6BAAA;KAA8B;AACpDyC,IAAAA,MAAA,EAAQ;AAAEzC,MAAAA,WAAA,EAAa,0BAAA;AAA2B,KAAA;GACpD,CAAA;EACA,IAAMwG,UAAa,GAAAzD,aAAA,CAAAA,aAAA,CAAKwD,EAAAA,EAAAA,cAAA,CAAmBjE,EAAAA,OAAQ,CAAA,CAAA;AAG/C,EAAA,IAAA0D,YAAA,KAAiB,YAAYC,cAAgB,EAAA;AAC/C,IAAA,OAAOA,eAAe;AAAEvH,MAAAA,IAAA,EAAAA,IAAA;AAAMC,MAAAA,YAAYwH,aAAe;AAAA7D,MAAAA,OAAA,EAASkE,UAAAA;AAAW,KAAC,CAAA,CAAA;AAChF,GAAA;EAGA,IAAIR,iBAAiB,MAAQ,EAAA;AACpB,IAAA,OAAAS,kBAAA,CAAmB;AAAE/H,MAAAA,IAAM,EAANA,IAAM;AAAAC,MAAAA,UAAA,EAAYwH;AAAe7D,MAAAA,OAAS,EAAAkE,UAAA;AAAYV,MAAAA,gBAAAA,cAAAA;AAAe,KAAC,CAAA,CAAA;AACpG,GAAA;AAGA,EAAA,IAAMY,KAAkB,GAAA,CAAAtC,IAAAA,CAAAA,MAAA,CACjB1F,IAAA,EACL,uBAAA,CAAA,EAAA,EAAA,EACA,oFAAA,EACA,EAAA,EACA,kBAAA,EACA,EAAA,EACA,6CAAA,EACA,SAAA,EACA,GAAA,EACA,oDAAA,EACA,iBAAA,EACA,qBAAA,EACA,mEAAA,EACA,oEAAA,EACA,sDAAA,EACA,oFAAA,EACA,OAAA,EACA,MAAA,EACA,+DAAA,EACA,0BAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,0DAAA,EACA,EAAA,EACA,gFAAA,EACA,SAAA,EACA,GAAA,EACA,6BAAA,EACA,qCAAA,EACA,4CAAA,EACA,cAAA,EACA,qEAAA,EACA,4EAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,8CAAA,EACA,EAAA,EACA,sBAAA,EACA,SAAA,EACA,0DAAA,EACA,wBAAA,EACA,qBAAA,EACA,yDAAA,EACA,IAAA,EACA,KAAA,EACA,EAAA,EACA,gCAAA,EACA,SAAA,EACA,sFAAA,EACA,KAAA,EACA,EAAA,EACA,6BAAA,EACA,SAAA,EACA,uGAAA,EACA,KAAA,EACA,EAAA,EACA,0BAAA,EACA,SAAA,EACA,+EAAA,EACA,KAAA,EACA,EAAA,EACA,wBAAA,EACA,SAAA,EACA,mEAAA,EACA,KAAA,EACA,EAAA,EACA,sCAAA,EACA,SAAA,EACA,GAAA,EACA,6BAAA,EACA,iCAAA,EACA,4CAAA,EACA,cAAA,EACA,OAAA,EACA,oBAAA,EACA,4CAAA,EACA,kBAAA,EACA,mCAAA,EACA,yBAAA,EACA,oBAAA,EACA,2DAAA,EACA,8BAAA,EACA,WAAA,EACA,SAAA,EACA,QAAA,EACA,OAAA,EACA,oBAAA,EACA,sDAAA,EACA,kCAAA,EACA,OAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,uCAAA,EACA,EAAA,EACA,iEAAA,EACA,EAAA,EACA,2BAAA,EACA,oEAAA,EACA,sEAAA,EACA,8EAAA,EACA,EAAA,EACA,uBAAA,EACA,4CAAA,EACA,mEAAA,EACA,4EAAA,EACA,mDAAA,EACA,mEAAA,EACA,EAAA,EACA,6BAAA,EACA,0EAAA,EACA,gGAAA,EACA,0EAAA,EACA,mFAAA,EACA,iGAAA,EACA,EAAA,EACA,wBAAA,EACA,sDAAA,EACA,mEAAA,EACA,6EAAA,EACA,kGAAA,EACA,EAAA,EACA,+BAAA,EACA,oEAAA,EACA,uDAAA,EACA,2EAAA,EACA,EAAA,EACA,yBAAA,EACA,EAAA,CACF,CAAA;AAGA,EAAA,KAAA,IAAAiI,GAAA,GAAAC,CAAAA,EAAAA,gBAAA,GAA0BhD,MAAO,CAAAC,OAAA,CAAQsC,aAAa,CAAG,EAAAQ,GAAA,GAAAC,gBAAA,CAAA9C,MAAA,EAAA6C,GAAA,EAAA,EAAA;AAAzD,IAAA,IAAAE,mBAAA,GAAA7C,cAAA,CAAA4C,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAYjI,MAAAA,KAAM,GAAAmI,mBAAA,CAAA,CAAA,CAAA;AAAAvB,MAAAA,IAAG,GAAAuB,mBAAA,CAAA,CAAA,CAAA,CAAA;AACbH,IAAAA,KAAA,CAAAI,IAAA,CAAA,MAAA,CAAA1C,MAAA,CAAY1F,KAAM,CAAA,CAAA,CAAA;AAClBgI,IAAAA,KAAA,CAAAI,IAAA,CAAKxB,KAAItF,WAAW,CAAA,CAAA;IAC1B,IAAIsF,KAAIjE,WAAa,EAAA;AACnBqF,MAAAA,KAAA,CAAMI,KAAK,qCAAqC,CAAA,CAAA;AAClD,KAAA;AACAJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACbJ,IAAAA,KAAA,CAAMI,KAAK,YAAY,CAAA,CAAA;IACZ,KAAAC,IAAAA,GAAA,MAAAC,gBAAA,GAAwBpD,OAAOC,OAAQ,CAAAyB,IAAA,CAAIzG,KAAK,CAAG,EAAAkI,GAAA,GAAAC,gBAAA,CAAAlD,MAAA,EAAAiD,GAAA,EAAA,EAAA;AAAnD,MAAA,IAAAE,mBAAA,GAAAjD,cAAA,CAAAgD,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAACG,QAAAA;AAAUC,QAAAA,QAAQ,GAAAF,mBAAA,CAAA,CAAA,CAAA,CAAA;MACtBP,KAAA,CAAAI,IAAA,CAAA,KAAA,CAAA1C,MAAA,CAAY8C,QAAA,EAAA,KAAA,CAAA,CAAA9C,MAAA,CAAe+C,QAAU,CAAA,CAAA,CAAA;AAC7C,KAAA;AACAT,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACf,GAAA;AAGAJ,EAAAA,KAAA,CAAMI,KAAK,sBAAsB,CAAA,CAAA;AACjCJ,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACbJ,EAAAA,KAAA,CAAMI,KAAK,uEAAuE,CAAA,CAAA;AAClFJ,EAAAA,KAAA,CAAMI,KAAK,oCAAoC,CAAA,CAAA;AAC/CJ,EAAAA,KAAA,CAAMI,KAAK,wEAAwE,CAAA,CAAA;AACnFJ,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACb,EAAA,KAAA,IAAAM,GAAA,GAAAC,CAAAA,EAAAA,gBAAA,GAA0BzD,MAAO,CAAAC,OAAA,CAAQ2C,UAAU,CAAG,EAAAY,GAAA,GAAAC,gBAAA,CAAAvD,MAAA,EAAAsD,GAAA,EAAA,EAAA;AAAtD,IAAA,IAAAE,mBAAA,GAAAtD,cAAA,CAAAqD,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAY1I,MAAAA,KAAM,GAAA4I,mBAAA,CAAA,CAAA,CAAA;AAAAC,MAAAA,GAAG,GAAAD,mBAAA,CAAA,CAAA,CAAA,CAAA;AACnBZ,IAAAA,KAAA,CAAMI,IAAK,CAAA1C,KAAAA,CAAAA,MAAA,CAAO1F,KAAW,EAAA0F,KAAAA,CAAAA,CAAAA,MAAA,CAAAmD,GAAA,CAAIvH,WAAa,CAAA,CAAA,CAAA;AAChD,GAAA;AACA0G,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAGbJ,EAAAA,KAAA,CAAMI,KAAK,iBAAiB,CAAA,CAAA;AAC5BJ,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACbJ,EAAAA,KAAA,CAAMI,KAAK,wDAAwD,CAAA,CAAA;AACnEJ,EAAAA,KAAA,CAAMI,KAAK,wDAAwD,CAAA,CAAA;AACnEJ,EAAAA,KAAA,CAAMI,KAAK,qFAAqF,CAAA,CAAA;AAChGJ,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAGb,EAAA,IAAIhB,cAAgB,EAAA;AAClBY,IAAAA,KAAA,CAAMI,KAAK,aAAa,CAAA,CAAA;AACxBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,8BAA8B,CAAA,CAAA;AACzCJ,IAAAA,KAAA,CAAMI,KAAK,gDAAgD,CAAA,CAAA;AAC3DJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBC,MAAAA,IAAM,EAAA,WAAA;AACNC,MAAAA,QAAU,EAAA;AACRC,QAAAA,SAAW,EAAA;AACT3D,UAAAA,GAAK,EAAA,WAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAO,EAAA;AAAEqC,YAAAA,KAAO,EAAA,mBAAA;AAAqBC,YAAAA,UAAU,IAAA;WAAK;UACpDhC,QAAA,EAAU,CAAC,aAAa,CAAA;SAC1B;AACA0I,QAAAA,WAAa,EAAA;AACX5D,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqD,YAAAA,GAAA,EAAK,EAAA;WAAG;AACjB/C,UAAAA,QAAU,EAAA,CAAC,YAAc,EAAA,aAAA,EAAe,cAAc,CAAA;SACxD;AACA2I,QAAAA,UAAY,EAAA;AACV7D,UAAAA,GAAK,EAAA,YAAA;AACL7D,UAAAA,IAAM,EAAA,WAAA;AACNvB,UAAAA,KAAO,EAAA;AACLG,YAAAA,KAAO,EAAA,WAAA;AACP0B,YAAAA,SAAW,EAAA,WAAA;AACXP,YAAAA,WAAa,EAAA,sBAAA;AACbQ,YAAAA,QAAU,EAAA,IAAA;AACZ,WAAA;SACF;AACAoH,QAAAA,WAAa,EAAA;AACX9D,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,WAAA;AACNvB,UAAAA,KAAO,EAAA;AACLG,YAAAA,KAAO,EAAA,eAAA;AACP0B,YAAAA,SAAW,EAAA,YAAA;AACXP,YAAAA,WAAa,EAAA,kBAAA;AACbC,YAAAA,IAAM,EAAA,OAAA;AACNO,YAAAA,QAAU,EAAA,IAAA;AACZ,WAAA;SACF;AACAqH,QAAAA,YAAc,EAAA;AACZ/D,UAAAA,GAAK,EAAA,cAAA;AACL7D,UAAAA,IAAM,EAAA,OAAA;AACNvB,UAAAA,KAAO,EAAA;AAAEmD,YAAAA,SAAW,EAAA,YAAA;AAAczC,YAAAA,MAAM,QAAA;WAAS;AACjDJ,UAAAA,QAAA,EAAU,CAAC,YAAA,EAAc,WAAW,CAAA;SACtC;AACA8I,QAAAA,UAAY,EAAA;AACVhE,UAAAA,GAAK,EAAA,YAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAO,EAAA;AACLM,YAAAA,QAAU,EAAA,UAAA;AACVG,YAAAA,KAAO,EAAA,SAAA;AACPK,YAAAA,MAAA,EAAQ;AAAEjB,cAAAA,IAAM,EAAA,QAAA;AAAUmB,cAAAA,QAAQ;AAAEqI,gBAAAA,IAAA,EAAM,cAAA;AAAe,eAAA;AAAE,aAAA;AAC7D,WAAA;SACF;AACAC,QAAAA,SAAW,EAAA;AACTlE,UAAAA,GAAK,EAAA,WAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAO,EAAA;AACLM,YAAAA,QAAU,EAAA,OAAA;AACVC,YAAAA,OAAS,EAAA,SAAA;AACTO,YAAAA,MAAQ,EAAA,OAAA;AACV,WAAA;AACF,SAAA;OACF;AACAyI,MAAAA,IAAM,EAAA;AACJC,QAAAA,IAAM,EAAA;AAAE3J,UAAAA,IAAM,EAAA,EAAA;AAAI4J,UAAAA,OAAO,EAAA;AAAG,SAAA;AAC9B,OAAA;AACF,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACX5B,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAChBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,yBAAyB,CAAA,CAAA;AACpCJ,IAAAA,KAAA,CAAMI,KAAK,iEAAiE,CAAA,CAAA;AAC5EJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBC,MAAAA,IAAM,EAAA,WAAA;AACNC,MAAAA,QAAU,EAAA;AACRY,QAAAA,SAAW,EAAA;AACTtE,UAAAA,GAAK,EAAA,WAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqD,YAAAA,GAAA,EAAK,EAAA;WAAG;AACjB/C,UAAAA,QAAA,EAAU,CAAC,QAAA,EAAU,aAAa,CAAA;SACpC;AACAqJ,QAAAA,MAAQ,EAAA;AACNvE,UAAAA,GAAK,EAAA,QAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqC,YAAAA,KAAA,EAAO,oBAAA;WAAqB;UACrC/B,QAAA,EAAU,CAAC,aAAa,CAAA;SAC1B;AACAsJ,QAAAA,WAAa,EAAA;AACXxE,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAO,EAAA;AACLiC,YAAAA,OAAS,EAAA,4BAAA;AACTC,YAAAA,KAAO,EAAA,SAAA;AACPC,YAAAA,MAAQ,EAAA,QAAA;AACV,WAAA;SACF;AACA0H,QAAAA,WAAa,EAAA;AACXzE,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,KAAA;AACNvB,UAAAA,KAAA,EAAO;AAAE0C,YAAAA,MAAA,EAAQ,EAAA;WAAG;AACpBpC,UAAAA,QAAA,EAAU,CAAC,UAAA,EAAY,WAAW,CAAA;SACpC;AACAwJ,QAAAA,QAAU,EAAA;AACR1E,UAAAA,GAAK,EAAA,UAAA;AACL7D,UAAAA,IAAM,EAAA,KAAA;AACNvB,UAAAA,KAAA,EAAO;AAAE8C,YAAAA,IAAA,EAAM,EAAA;WAAG;UAClBxC,QAAA,EAAU,CAAC,cAAc,CAAA;SAC3B;AACAyJ,QAAAA,SAAW,EAAA;AACT3E,UAAAA,GAAK,EAAA,WAAA;AACL7D,UAAAA,IAAM,EAAA,KAAA;AACNvB,UAAAA,KAAA,EAAO;AAAE8C,YAAAA,IAAA,EAAM,CAAA;WAAE;UACjBxC,QAAA,EAAU,CAAC,cAAc,CAAA;SAC3B;AACA0J,QAAAA,YAAc,EAAA;AACZ5E,UAAAA,GAAK,EAAA,cAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAO,EAAA;AAAEqC,YAAAA,KAAO,EAAA,cAAA;AAAgBE,YAAAA,QAAQ,IAAA;WAAK;UAC7CjC,QAAA,EAAU,CAAC,cAAc,CAAA;SAC3B;AACA2J,QAAAA,YAAc,EAAA;AACZ7E,UAAAA,GAAK,EAAA,cAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEiC,YAAAA,OAAA,EAAS,gCAAA;AAAiC,WAAA;SACrD;AACAiI,QAAAA,YAAc,EAAA;AACZ9E,UAAAA,GAAK,EAAA,cAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqC,YAAAA,KAAA,EAAO,eAAA;WAAgB;UAChC/B,QAAA,EAAU,CAAC,gBAAgB,CAAA;SAC7B;AACA6J,QAAAA,cAAgB,EAAA;AACd/E,UAAAA,GAAK,EAAA,gBAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqD,YAAAA,GAAA,EAAK,CAAA;WAAE;AAChB/C,UAAAA,QAAA,EAAU,CAAC,aAAA,EAAe,YAAY,CAAA;SACxC;AACA8J,QAAAA,WAAa,EAAA;AACXhF,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAO,EAAA;AACLM,YAAAA,QAAU,EAAA,cAAA;AACVO,YAAAA,KAAO,EAAA,IAAA;AACPC,YAAAA,MAAQ,EAAA,SAAA;AACV,WAAA;SACF;AACAuJ,QAAAA,UAAY,EAAA;AACVjF,UAAAA,GAAK,EAAA,YAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAO,EAAA;AACLM,YAAAA,QAAU,EAAA,eAAA;AACVC,YAAAA,OAAS,EAAA,SAAA;AACTM,YAAAA,KAAO,EAAA,IAAA;AACPC,YAAAA,MAAQ,EAAA,QAAA;AACV,WAAA;AACF,SAAA;OACF;AACAyI,MAAAA,IAAM,EAAA;AACJe,QAAAA,WAAa,EAAA,IAAIC,IAAK,EAAA,CAAEC,WAAY,EAAA;AACtC,OAAA;AACF,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACX3C,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAChBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,0CAA0C,CAAA,CAAA;AACrDJ,IAAAA,KAAA,CAAMI,KAAK,wCAAwC,CAAA,CAAA;AACnDJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBC,MAAAA,IAAM,EAAA,eAAA;AACNC,MAAAA,QAAU,EAAA;AACR2B,QAAAA,aAAe,EAAA;AACbrF,UAAAA,GAAK,EAAA,eAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqC,YAAAA,KAAA,EAAO,UAAA;WAAW;UAC3B/B,QAAA,EAAU,CAAC,aAAa,CAAA;SAC1B;AACAoK,QAAAA,WAAa,EAAA;AACXtF,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAA,EAAO;AAAEqD,YAAAA,GAAA,EAAK,EAAA;WAAG;AACjB/C,UAAAA,QAAU,EAAA,CAAC,sBAAwB,EAAA,aAAA,EAAe,UAAU,CAAA;SAC9D;AACAqK,QAAAA,oBAAsB,EAAA;AACpBvF,UAAAA,GAAK,EAAA,sBAAA;AACL7D,UAAAA,IAAM,EAAA,WAAA;AACNvB,UAAAA,KAAO,EAAA;AACLG,YAAAA,KAAO,EAAA,sBAAA;AACP0B,YAAAA,SAAW,EAAA,wBAAA;AACXN,YAAAA,IAAM,EAAA,MAAA;AACR,WAAA;SACF;AACA2H,QAAAA,WAAa,EAAA;AACX9D,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,WAAA;AACNvB,UAAAA,KAAO,EAAA;AACLG,YAAAA,KAAO,EAAA,oBAAA;AACP0B,YAAAA,SAAW,EAAA,gBAAA;AACX2C,YAAAA,YAAc,EAAA,wBAAA;AACdlD,YAAAA,WAAa,EAAA,+BAAA;AACf,WAAA;SACF;AACAsJ,QAAAA,QAAU,EAAA;AACRxF,UAAAA,GAAK,EAAA,UAAA;AACL7D,UAAAA,IAAM,EAAA,QAAA;AACNvB,UAAAA,KAAO,EAAA;AACLM,YAAAA,QAAU,EAAA,eAAA;AACVG,YAAAA,KAAO,EAAA,SAAA;AACPK,YAAAA,MAAQ,EAAA,QAAA;AACV,WAAA;AACF,SAAA;OACF;AACAyI,MAAAA,IAAM,EAAA;AACJsB,QAAAA,QAAU,EAAA;AACRC,UAAAA,aAAe,EAAA,SAAA;AACfrB,UAAAA,KAAO,EAAA,EAAA;AACPsB,UAAAA,aAAe,EAAA,KAAA;AACjB,SAAA;AACF,OAAA;AACF,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACXlD,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAClB,GAAA;AAEO,EAAA,OAAAJ,KAAA,CAAM9B,KAAK,IAAI,CAAA,CAAA;AACxB,CAAA;AAQA,SAAS6B,mBAAmBoD,OAKjB,EAAA;AACT,EAAA,IAAQnL,IAAM,GAA+CmL,OAAA,CAArDnL,IAAM;IAAAC,UAAA,GAA+CkL,OAAA,CAA/ClL,UAAA;IAAY2D,OAAS,GAA0BuH,OAAA,CAAnCvH,OAAS;IAAAwH,qBAAA,GAA0BD,OAAA,CAA1B/D,cAAA;AAAAA,IAAAA,cAAA,GAAAgE,qBAAA,KAAiB,KAAA,CAAA,GAAA;AAEpD,EAAA,IAAMpD,KAAkB,GAAA,CAAAtC,IAAAA,CAAAA,MAAA,CACjB1F,IAAA,EAAA,yBAAA,CAAA,EACL,EAAA,EACA,2DAAA,EACA,EAAA,EACA,gCAAA,EACA,EAAA,EACA,0EAAA,EACA,SAAA,EACA,GAAA,EACA,6BAAA,EACA,qCAAA,EACA,4CAAA,EACA,cAAA,EACA,oEAAA,EACA,4EAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,mDAAA,EACA,EAAA,EACA,gFAAA,EACA,EAAA,EACA,qBAAA,EACA,iDAAA,EACA,SAAA,EACA,8DAAA,EACA,4BAAA,EACA,4BAAA,EACA,mBAAA,EACA,iDAAA,EACA,IAAA,EACA,KAAA,EACA,EAAA,EACA,+BAAA,EACA,oDAAA,EACA,SAAA,EACA,qFAAA,EACA,KAAA,EACA,EAAA,EACA,4BAAA,EACA,6CAAA,EACA,SAAA,EACA,uGAAA,EACA,KAAA,EACA,EAAA,EACA,yBAAA,EACA,uDAAA,EACA,SAAA,EACA,kFAAA,EACA,KAAA,EACA,EAAA,EACA,oBAAA,EACA,uEAAA,EACA,SAAA,EACA,kDAAA,EACA,KAAA,EACA,EAAA,EACA,uBAAA,EACA,0CAAA,EACA,SAAA,EACA,mEAAA,EACA,KAAA,EACA,EAAA,EACA,2CAAA,EACA,uDAAA,EACA,SAAA,EACA,GAAA,EACA,6BAAA,EACA,qCAAA,EACA,4CAAA,EACA,cAAA,EACA,OAAA,EACA,oBAAA,EACA,wCAAA,EACA,kBAAA,EACA,+BAAA,EACA,yBAAA,EACA,oBAAA,EACA,qCAAA,EACA,6DAAA,EACA,WAAA,EACA,SAAA,EACA,QAAA,EACA,OAAA,EACA,wBAAA,EACA,oDAAA,EACA,oDAAA,EACA,OAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,6CAAA,EACA,EAAA,EACA,uEAAA,EACA,EAAA,EACA,mBAAA,EACA,gDAAA,EACA,SAAA,EACA,GAAA,EACA,4BAAA,EACA,qCAAA,EACA,WAAA,EACA,2BAAA,EACA,yBAAA,EACA,MAAA,EACA,mBAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,sBAAA,EACA,+EAAA,EACA,SAAA,EACA,GAAA,EACA,+BAAA,EACA,uCAAA,EACA,cAAA,EACA,oEAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,qBAAA,EACA,wCAAA,EACA,SAAA,EACA,GAAA,EACA,8BAAA,EACA,uCAAA,EACA,mBAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,mBAAA,EACA,sBAAA,EACA,SAAA,EACA,GAAA,EACA,4BAAA,EACA,oCAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,yBAA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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-render Activity 配置工厂函数
|
|
3
|
+
* 便捷创建 ActivityConfig 用于注册
|
|
4
|
+
*/
|
|
5
|
+
import type { ComponentRegistry } from './renderer';
|
|
6
|
+
import type { ActivityConfig } from '../activity/types';
|
|
7
|
+
import type { JsonRenderActivityProps } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* json-render Activity 配置选项
|
|
10
|
+
*/
|
|
11
|
+
export interface JsonRenderActivityConfigOptions {
|
|
12
|
+
/** Activity 类型标识,默认 'json-render' */
|
|
13
|
+
activityType?: string;
|
|
14
|
+
/** 组件注册表,默认使用 tdesignRegistry */
|
|
15
|
+
registry?: ComponentRegistry;
|
|
16
|
+
/**
|
|
17
|
+
* Action 处理器映射表
|
|
18
|
+
*
|
|
19
|
+
* 重要:json-render 采用预定义 action 模式
|
|
20
|
+
* - AI/服务端只能生成在此预定义的 action 名称
|
|
21
|
+
* - 每个 action 对应一个具体的处理函数
|
|
22
|
+
* - 这确保了生成式 UI 的安全性和可控性
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* actionHandlers: {
|
|
27
|
+
* // 表单提交
|
|
28
|
+
* submit: async (params) => {
|
|
29
|
+
* await api.submitForm(params);
|
|
30
|
+
* MessagePlugin.success('提交成功');
|
|
31
|
+
* },
|
|
32
|
+
*
|
|
33
|
+
* // 表单重置
|
|
34
|
+
* reset: async (params) => {
|
|
35
|
+
* // 注意:如需清空表单,应在组件内部使用 useData().update()
|
|
36
|
+
* MessagePlugin.info('表单已重置');
|
|
37
|
+
* },
|
|
38
|
+
*
|
|
39
|
+
* // 删除操作
|
|
40
|
+
* delete: async (params) => {
|
|
41
|
+
* await api.deleteItem(params.id);
|
|
42
|
+
* },
|
|
43
|
+
*
|
|
44
|
+
* // 刷新数据
|
|
45
|
+
* refresh: async () => {
|
|
46
|
+
* await refetchData();
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;
|
|
52
|
+
/** 显示调试信息 */
|
|
53
|
+
debug?: boolean;
|
|
54
|
+
/** 描述信息 */
|
|
55
|
+
description?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 创建 json-render Activity 配置
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* 基础用法 - 预定义 action handlers
|
|
62
|
+
* ```tsx
|
|
63
|
+
* const jsonRenderConfig = createJsonRenderActivityConfig({
|
|
64
|
+
* activityType: 'json-render',
|
|
65
|
+
* actionHandlers: {
|
|
66
|
+
* submit: async (params) => {
|
|
67
|
+
* console.log('提交表单:', params);
|
|
68
|
+
* await api.submit(params);
|
|
69
|
+
* MessagePlugin.success('提交成功');
|
|
70
|
+
* },
|
|
71
|
+
* reset: async (params) => {
|
|
72
|
+
* MessagePlugin.info('表单已重置');
|
|
73
|
+
* },
|
|
74
|
+
* delete: async (params) => {
|
|
75
|
+
* await api.delete(params.id);
|
|
76
|
+
* }
|
|
77
|
+
* },
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* useAgentActivity(jsonRenderConfig);
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* 结合 ChatEngine 发送消息到服务端
|
|
85
|
+
* ```tsx
|
|
86
|
+
* const jsonRenderConfig = createJsonRenderActivityConfig({
|
|
87
|
+
* actionHandlers: {
|
|
88
|
+
* submit: async (params) => {
|
|
89
|
+
* // 发送到服务端处理
|
|
90
|
+
* await chatEngine.sendAIMessage({
|
|
91
|
+
* params: { userActionMessage: { name: 'submit', params } },
|
|
92
|
+
* sendRequest: true,
|
|
93
|
+
* });
|
|
94
|
+
* },
|
|
95
|
+
* reset: async (params) => {
|
|
96
|
+
* // 本地处理,不发送到服务端
|
|
97
|
+
* MessagePlugin.info('已重置');
|
|
98
|
+
* },
|
|
99
|
+
* },
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* 配合自定义组件注册表
|
|
105
|
+
* ```tsx
|
|
106
|
+
* import { createCustomRegistry } from './catalog';
|
|
107
|
+
*
|
|
108
|
+
* const jsonRenderConfig = createJsonRenderActivityConfig({
|
|
109
|
+
* registry: createCustomRegistry({
|
|
110
|
+
* MyCustomComponent: MyComponentRenderer,
|
|
111
|
+
* }),
|
|
112
|
+
* actionHandlers: {
|
|
113
|
+
* custom_action: async (params) => {
|
|
114
|
+
* // 处理自定义操作
|
|
115
|
+
* },
|
|
116
|
+
* },
|
|
117
|
+
* });
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare function createJsonRenderActivityConfig(options?: JsonRenderActivityConfigOptions): ActivityConfig<JsonRenderActivityProps['content']>;
|
|
121
|
+
/**
|
|
122
|
+
* 默认 json-render Activity 配置
|
|
123
|
+
* 使用默认 TDesign Catalog,适用于大多数场景
|
|
124
|
+
*/
|
|
125
|
+
export declare const defaultJsonRenderActivityConfig: ActivityConfig<import("./types").JsonRenderSchema>;
|
|
126
|
+
/**
|
|
127
|
+
* 创建 A2UI + json-render Activity 配置
|
|
128
|
+
* 支持将 A2UI 协议转换为 json-render Schema 渲染
|
|
129
|
+
*
|
|
130
|
+
* 注意:默认使用 a2uiRegistry,自动支持 valuePath/disabledPath/action.context 绑定
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```tsx
|
|
134
|
+
* const a2uiJsonRenderConfig = createA2UIJsonRenderActivityConfig({
|
|
135
|
+
* activityType: 'a2ui-json-render',
|
|
136
|
+
* actionHandlers: {
|
|
137
|
+
* submit: async (params) => {
|
|
138
|
+
* console.log('提交:', params);
|
|
139
|
+
* },
|
|
140
|
+
* cancel: async (params) => {
|
|
141
|
+
* console.log('取消');
|
|
142
|
+
* },
|
|
143
|
+
* },
|
|
144
|
+
* });
|
|
145
|
+
*
|
|
146
|
+
* useAgentActivity(a2uiJsonRenderConfig);
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export declare function createA2UIJsonRenderActivityConfig(options?: JsonRenderActivityConfigOptions): ActivityConfig<any>;
|
|
150
|
+
/**
|
|
151
|
+
* 默认 A2UI + json-render Activity 配置
|
|
152
|
+
*/
|
|
153
|
+
export declare const defaultA2UIJsonRenderActivityConfig: ActivityConfig<any>;
|
|
154
|
+
export default createJsonRenderActivityConfig;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.4
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
8
|
+
import 'react';
|
|
9
|
+
export { j as createA2UIJsonRenderActivityConfig, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig } from '../../../_chunks/dep-bcb234a1.js';
|
|
10
|
+
import '@babel/runtime/helpers/typeof';
|
|
11
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
12
|
+
import './adapters/index.js';
|
|
13
|
+
import './adapters/a2ui-to-jsonrender.js';
|
|
14
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
15
|
+
import './SurfaceStateManager.js';
|
|
16
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
17
|
+
import '@babel/runtime/helpers/createClass';
|
|
18
|
+
import './engine.js';
|
|
19
|
+
import './performance.js';
|
|
20
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
21
|
+
import './catalog/button.js';
|
|
22
|
+
import 'tdesign-react';
|
|
23
|
+
import '@json-render/core';
|
|
24
|
+
import './contexts/data.js';
|
|
25
|
+
import './catalog/card.js';
|
|
26
|
+
import './catalog/text.js';
|
|
27
|
+
import './catalog/layout.js';
|
|
28
|
+
import './catalog.js';
|
|
29
|
+
import 'zod';
|
|
30
|
+
import './contexts/visibility.js';
|
|
31
|
+
import './contexts/actions.js';
|
|
32
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
33
|
+
import '@babel/runtime/regenerator';
|
|
34
|
+
import './contexts/validation.js';
|
|
35
|
+
import './renderer.js';
|
|
36
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type Action, type ActionHandler, type ActionConfirm, type ResolvedAction } from "@json-render/core";
|
|
3
|
+
/**
|
|
4
|
+
* Pending confirmation state
|
|
5
|
+
*/
|
|
6
|
+
export interface PendingConfirmation {
|
|
7
|
+
/** The resolved action */
|
|
8
|
+
action: ResolvedAction;
|
|
9
|
+
/** The action handler */
|
|
10
|
+
handler: ActionHandler;
|
|
11
|
+
/** Resolve callback */
|
|
12
|
+
resolve: () => void;
|
|
13
|
+
/** Reject callback */
|
|
14
|
+
reject: () => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Action context value
|
|
18
|
+
*/
|
|
19
|
+
export interface ActionContextValue {
|
|
20
|
+
/** Registered action handlers */
|
|
21
|
+
handlers: Record<string, ActionHandler>;
|
|
22
|
+
/** Currently loading action names */
|
|
23
|
+
loadingActions: Set<string>;
|
|
24
|
+
/** Pending confirmation dialog */
|
|
25
|
+
pendingConfirmation: PendingConfirmation | null;
|
|
26
|
+
/** Execute an action */
|
|
27
|
+
execute: (action: Action) => Promise<void>;
|
|
28
|
+
/** Confirm the pending action */
|
|
29
|
+
confirm: () => void;
|
|
30
|
+
/** Cancel the pending action */
|
|
31
|
+
cancel: () => void;
|
|
32
|
+
/** Register an action handler */
|
|
33
|
+
registerHandler: (name: string, handler: ActionHandler) => void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Props for ActionProvider
|
|
37
|
+
*/
|
|
38
|
+
export interface ActionProviderProps {
|
|
39
|
+
/** Initial action handlers */
|
|
40
|
+
handlers?: Record<string, ActionHandler>;
|
|
41
|
+
/** Navigation function */
|
|
42
|
+
navigate?: (path: string) => void;
|
|
43
|
+
children: ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Provider for action execution
|
|
47
|
+
*
|
|
48
|
+
* 性能优化:
|
|
49
|
+
* - execute 函数使用 DataStore 延迟读取 data,避免 data 变化导致函数重建
|
|
50
|
+
* - handlers 和 navigate 通过 ref 访问,保持 execute 引用稳定
|
|
51
|
+
* - Context value 只在必要时更新
|
|
52
|
+
*/
|
|
53
|
+
export declare function ActionProvider({ handlers: initialHandlers, navigate, children, }: ActionProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* Hook to access action context
|
|
56
|
+
*/
|
|
57
|
+
export declare function useActions(): ActionContextValue;
|
|
58
|
+
/**
|
|
59
|
+
* Hook to execute an action
|
|
60
|
+
*/
|
|
61
|
+
export declare function useAction(action: Action): {
|
|
62
|
+
execute: () => Promise<void>;
|
|
63
|
+
isLoading: boolean;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Props for ConfirmDialog component
|
|
67
|
+
*/
|
|
68
|
+
export interface ConfirmDialogProps {
|
|
69
|
+
/** The confirmation config */
|
|
70
|
+
confirm: ActionConfirm;
|
|
71
|
+
/** Called when confirmed */
|
|
72
|
+
onConfirm: () => void;
|
|
73
|
+
/** Called when cancelled */
|
|
74
|
+
onCancel: () => void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Default confirmation dialog component
|
|
78
|
+
*/
|
|
79
|
+
export declare function ConfirmDialog({ confirm, onConfirm, onCancel, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
|