@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,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.11
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import React, { useEffect, useState, useMemo, useCallback } from 'react';
|
|
9
|
+
import '../../../core/index.js';
|
|
10
|
+
import { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer.js';
|
|
11
|
+
import { surfaceStateManager } from '../../../core/adapters/json-render/SurfaceStateManager.js';
|
|
12
|
+
import { convertA2UIMessagesToJsonRender } from '../../../core/adapters/json-render/a2ui-to-jsonrender.js';
|
|
13
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
14
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
15
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
16
|
+
import '@babel/runtime/helpers/createClass';
|
|
17
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
18
|
+
import '@babel/runtime/regenerator';
|
|
19
|
+
import '../../../core/adapters/agui/index.js';
|
|
20
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
21
|
+
import '../../../core/adapters/agui/event-mapper.js';
|
|
22
|
+
import '../../../core/adapters/agui/types/index.js';
|
|
23
|
+
import 'zod';
|
|
24
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
25
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
26
|
+
import '@babel/runtime/helpers/inherits';
|
|
27
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
28
|
+
import '../../../core/adapters/agui/StateManager.js';
|
|
29
|
+
import '@babel/runtime/helpers/typeof';
|
|
30
|
+
import '../../../core/utils/index.js';
|
|
31
|
+
import '../../../core/utils/immutable-patch.js';
|
|
32
|
+
import '@babel/runtime/helpers/toArray';
|
|
33
|
+
import '../../../core/adapters/agui/ActivityManager.js';
|
|
34
|
+
import '../../../core/adapters/agui/utils.js';
|
|
35
|
+
import '../../../core/store/message.js';
|
|
36
|
+
import '@babel/runtime/helpers/get';
|
|
37
|
+
import '../../../core/store/reactiveState.js';
|
|
38
|
+
import '../../../../_chunks/dep-1ca64fef.js';
|
|
39
|
+
import '../../../core/event-bus/index.js';
|
|
40
|
+
import '../../../core/event-bus/ChatEventBus.js';
|
|
41
|
+
import '../../../core/event-bus/types.js';
|
|
42
|
+
import '../../../core/processor/index.js';
|
|
43
|
+
import '../../../core/server/index.js';
|
|
44
|
+
import '../../../core/server/llm-service.js';
|
|
45
|
+
import '../../../core/utils/logger.js';
|
|
46
|
+
import '../../../core/server/batch-client.js';
|
|
47
|
+
import '../../../core/utils/eventEmitter.js';
|
|
48
|
+
import '../../../core/server/errors.js';
|
|
49
|
+
import '../../../core/server/sse-client.js';
|
|
50
|
+
import '../../../core/server/connection-manager.js';
|
|
51
|
+
import '../../../core/server/sse-parser.js';
|
|
52
|
+
import '../../../core/server/types.js';
|
|
53
|
+
import '../../../core/adapters/index.js';
|
|
54
|
+
import '../../../core/adapters/json-render/index.js';
|
|
55
|
+
import '../../../core/adapters/json-render/types/a2ui.js';
|
|
56
|
+
import '../../../core/adapters/json-render/types/index.js';
|
|
57
|
+
import '../../../core/adapters/json-render/types/core.js';
|
|
58
|
+
import '../../../../_chunks/dep-5b6b17d0.js';
|
|
59
|
+
import './JsonUIRenderer.js';
|
|
60
|
+
import '../contexts/index.js';
|
|
61
|
+
import '../contexts/data.js';
|
|
62
|
+
import '@json-render/core';
|
|
63
|
+
import '../contexts/store.js';
|
|
64
|
+
import '../contexts/visibility.js';
|
|
65
|
+
import '../contexts/actions.js';
|
|
66
|
+
import '../contexts/validation.js';
|
|
67
|
+
import '../contexts/tree.js';
|
|
68
|
+
|
|
69
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
70
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
71
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
72
|
+
function extractSurfaceId(messages) {
|
|
73
|
+
var _iterator = _createForOfIteratorHelper(messages),
|
|
74
|
+
_step;
|
|
75
|
+
try {
|
|
76
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
77
|
+
var msg = _step.value;
|
|
78
|
+
if (msg.createSurface) return msg.createSurface.surfaceId;
|
|
79
|
+
if (msg.updateComponents) return msg.updateComponents.surfaceId;
|
|
80
|
+
if (msg.updateDataModel) return msg.updateDataModel.surfaceId;
|
|
81
|
+
if (msg.deleteSurface) return msg.deleteSurface.surfaceId;
|
|
82
|
+
}
|
|
83
|
+
} catch (err) {
|
|
84
|
+
_iterator.e(err);
|
|
85
|
+
} finally {
|
|
86
|
+
_iterator.f();
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
function isUIMessages(messages) {
|
|
91
|
+
return messages.some(function (msg) {
|
|
92
|
+
return msg.createSurface || msg.updateComponents || msg.deleteSurface;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function hasDeletionMessages(messages) {
|
|
96
|
+
return messages.some(function (msg) {
|
|
97
|
+
return msg.deleteSurface;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function hasCreationMessages(messages) {
|
|
101
|
+
return messages.some(function (msg) {
|
|
102
|
+
return msg.createSurface || msg.updateComponents;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
var A2UIJsonRenderActivityRenderer = function A2UIJsonRenderActivityRenderer(_ref) {
|
|
106
|
+
var activityType = _ref.activityType,
|
|
107
|
+
content = _ref.content,
|
|
108
|
+
messageId = _ref.messageId,
|
|
109
|
+
ext = _ref.ext,
|
|
110
|
+
registry = _ref.registry,
|
|
111
|
+
actionHandlers = _ref.actionHandlers,
|
|
112
|
+
_ref$debug = _ref.debug,
|
|
113
|
+
debug = _ref$debug === void 0 ? false : _ref$debug;
|
|
114
|
+
useEffect(function () {
|
|
115
|
+
surfaceStateManager.setDebug(debug);
|
|
116
|
+
}, [debug]);
|
|
117
|
+
var _useState = useState(0),
|
|
118
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
119
|
+
schemaVersion = _useState2[0],
|
|
120
|
+
setSchemaVersion = _useState2[1];
|
|
121
|
+
var _useMemo = useMemo(function () {
|
|
122
|
+
var msgs = content.messages;
|
|
123
|
+
if (!Array.isArray(msgs) || msgs.length === 0) {
|
|
124
|
+
return {
|
|
125
|
+
surfaceId: null,
|
|
126
|
+
isUI: false,
|
|
127
|
+
isDeletion: false,
|
|
128
|
+
isCreation: false,
|
|
129
|
+
messages: []
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
surfaceId: extractSurfaceId(msgs),
|
|
134
|
+
isUI: isUIMessages(msgs),
|
|
135
|
+
isDeletion: hasDeletionMessages(msgs),
|
|
136
|
+
isCreation: hasCreationMessages(msgs),
|
|
137
|
+
messages: msgs
|
|
138
|
+
};
|
|
139
|
+
}, [content.messages]),
|
|
140
|
+
surfaceId = _useMemo.surfaceId,
|
|
141
|
+
isUI = _useMemo.isUI,
|
|
142
|
+
isDeletion = _useMemo.isDeletion,
|
|
143
|
+
isCreation = _useMemo.isCreation,
|
|
144
|
+
messages = _useMemo.messages;
|
|
145
|
+
var initialSchema = useMemo(function () {
|
|
146
|
+
if (!surfaceId || messages.length === 0) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
if (debug) {
|
|
150
|
+
console.log("[A2UI Adapter] \u5904\u7406\u6D88\u606F:", {
|
|
151
|
+
messageId: messageId,
|
|
152
|
+
surfaceId: surfaceId,
|
|
153
|
+
messagesCount: messages.length,
|
|
154
|
+
messageTypes: messages.map(function (m) {
|
|
155
|
+
return Object.keys(m).filter(function (k) {
|
|
156
|
+
return ["createSurface", "updateComponents", "updateDataModel", "deleteSurface"].includes(k);
|
|
157
|
+
})[0];
|
|
158
|
+
}),
|
|
159
|
+
isUI: isUI,
|
|
160
|
+
isCreation: isCreation,
|
|
161
|
+
isDeletion: isDeletion,
|
|
162
|
+
cachedSurfaces: surfaceStateManager.getAllSurfaceIds()
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
if (isDeletion) {
|
|
166
|
+
surfaceStateManager.deleteSurface(surfaceId);
|
|
167
|
+
if (debug) {
|
|
168
|
+
console.log("[A2UI Adapter] \u5220\u9664 Surface:", surfaceId);
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
if (isCreation) {
|
|
173
|
+
var schema = convertA2UIMessagesToJsonRender(messages);
|
|
174
|
+
if (schema) {
|
|
175
|
+
var _messages$find;
|
|
176
|
+
var catalogId = (_messages$find = messages.find(function (m) {
|
|
177
|
+
return m.createSurface;
|
|
178
|
+
})) === null || _messages$find === void 0 || (_messages$find = _messages$find.createSurface) === null || _messages$find === void 0 ? void 0 : _messages$find.catalogId;
|
|
179
|
+
surfaceStateManager.registerSurface(surfaceId, schema, catalogId);
|
|
180
|
+
if (debug) {
|
|
181
|
+
console.log("[A2UI Adapter] \u521B\u5EFA\u578B\u6D88\u606F\uFF0C\u6CE8\u518C Surface:", {
|
|
182
|
+
surfaceId: surfaceId,
|
|
183
|
+
elementsCount: Object.keys(schema.elements).length,
|
|
184
|
+
data: schema.data
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return schema;
|
|
189
|
+
}
|
|
190
|
+
var _iterator2 = _createForOfIteratorHelper(messages),
|
|
191
|
+
_step2;
|
|
192
|
+
try {
|
|
193
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
194
|
+
var msg = _step2.value;
|
|
195
|
+
if (msg.updateDataModel) {
|
|
196
|
+
var _msg$updateDataModel = msg.updateDataModel,
|
|
197
|
+
path = _msg$updateDataModel.path,
|
|
198
|
+
op = _msg$updateDataModel.op,
|
|
199
|
+
value = _msg$updateDataModel.value;
|
|
200
|
+
var success = surfaceStateManager.updateData(surfaceId, path, op || "replace", value);
|
|
201
|
+
if (debug) {
|
|
202
|
+
console.log("[A2UI Adapter] \u66F4\u65B0\u578B\u6D88\u606F\uFF0C\u66F4\u65B0\u6570\u636E:", {
|
|
203
|
+
surfaceId: surfaceId,
|
|
204
|
+
path: path,
|
|
205
|
+
op: op || "replace",
|
|
206
|
+
value: value,
|
|
207
|
+
success: success
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
} catch (err) {
|
|
213
|
+
_iterator2.e(err);
|
|
214
|
+
} finally {
|
|
215
|
+
_iterator2.f();
|
|
216
|
+
}
|
|
217
|
+
return null;
|
|
218
|
+
}, [messages, surfaceId, isCreation, isDeletion, isUI, debug, messageId]);
|
|
219
|
+
var handleSchemaUpdate = useCallback(function () {
|
|
220
|
+
if (debug) {
|
|
221
|
+
console.log("[A2UI Adapter] \u6536\u5230\u72B6\u6001\u66F4\u65B0\u901A\u77E5\uFF0C\u89E6\u53D1\u91CD\u6E32\u67D3");
|
|
222
|
+
}
|
|
223
|
+
setSchemaVersion(function (v) {
|
|
224
|
+
return v + 1;
|
|
225
|
+
});
|
|
226
|
+
}, [debug]);
|
|
227
|
+
useEffect(function () {
|
|
228
|
+
if (!isCreation || !surfaceId) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
if (debug) {
|
|
232
|
+
console.log("[A2UI Adapter] \u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
|
|
233
|
+
}
|
|
234
|
+
var unsubscribe = surfaceStateManager.subscribe(surfaceId, handleSchemaUpdate);
|
|
235
|
+
return function () {
|
|
236
|
+
if (debug) {
|
|
237
|
+
console.log("[A2UI Adapter] \u53D6\u6D88\u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
|
|
238
|
+
}
|
|
239
|
+
unsubscribe();
|
|
240
|
+
};
|
|
241
|
+
}, [isCreation, surfaceId, handleSchemaUpdate, debug]);
|
|
242
|
+
var currentSchema = useMemo(function () {
|
|
243
|
+
if (!isCreation || !surfaceId) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
return surfaceStateManager.getSchema(surfaceId) || initialSchema;
|
|
247
|
+
}, [isCreation, surfaceId, initialSchema, schemaVersion]);
|
|
248
|
+
if (!isUI) {
|
|
249
|
+
if (debug && messages.length > 0) {
|
|
250
|
+
console.log("[A2UI Adapter] \u7EAF\u6570\u636E\u66F4\u65B0\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
if (isDeletion && !isCreation) {
|
|
255
|
+
if (debug) {
|
|
256
|
+
console.log("[A2UI Adapter] \u5220\u9664\u578B\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
|
|
257
|
+
}
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, {
|
|
261
|
+
activityType: activityType,
|
|
262
|
+
content: currentSchema,
|
|
263
|
+
messageId: messageId,
|
|
264
|
+
ext: ext,
|
|
265
|
+
registry: registry,
|
|
266
|
+
actionHandlers: actionHandlers
|
|
267
|
+
});
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
export { A2UIJsonRenderActivityRenderer, A2UIJsonRenderActivityRenderer as default };
|
|
271
|
+
//# sourceMappingURL=A2UIJsonRenderActivityRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A2UIJsonRenderActivityRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.tsx"],"sourcesContent":["/**\n * A2UI v0.9 + json-render Activity 渲染器\n * 将 A2UI v0.9 协议转换为 json-render Schema 进行渲染\n * \n * 工作流程:\n * 1. 接收 ACTIVITY_SNAPSHOT/DELTA 中的 A2UI content\n * 2. 区分消息类型:UI型 vs 纯数据型\n * 3. UI型:转换为 Schema 并注册到 SurfaceStateManager,渲染 UI\n * 4. 纯数据型:通过 SurfaceStateManager 更新数据,触发订阅者重渲染,本组件不渲染\n * \n * 消息分类:\n * - UI型消息:包含 createSurface / updateComponents / deleteSurface → 需要渲染/更新 UI\n * - 纯数据型消息:仅包含 updateDataModel → 只更新状态,不渲染新 UI\n */\n\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport { convertA2UIMessagesToJsonRender, surfaceStateManager } from '../../../core';\nimport type { A2UIMessage, JsonRenderSchema } from '../../../core';\nimport type { JsonRenderActivityProps, ComponentRegistry } from '../types';\nimport { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer';\n\n\nexport interface A2UIJsonRenderActivityRendererProps extends Omit<JsonRenderActivityProps, 'content'> {\n /** A2UI content(包含 messages 数组) */\n content: {\n messages?: A2UIMessage[];\n [key: string]: any;\n };\n /** 组件注册表(必须) */\n registry: ComponentRegistry;\n /** Action 处理器(可选) */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n}\n\n/**\n * 从消息中提取 surfaceId\n */\nfunction extractSurfaceId(messages: A2UIMessage[]): string | null {\n for (const msg of messages) {\n if (msg.createSurface) return msg.createSurface.surfaceId;\n if (msg.updateComponents) return msg.updateComponents.surfaceId;\n if (msg.updateDataModel) return msg.updateDataModel.surfaceId;\n if (msg.deleteSurface) return msg.deleteSurface.surfaceId;\n }\n return null;\n}\n\n/**\n * 判断消息是否为\"UI型\"(需要渲染/更新 UI)\n * 包括 createSurface / updateComponents / deleteSurface\n * 只有纯 updateDataModel 消息不需要渲染\n */\nfunction isUIMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.createSurface || msg.updateComponents || msg.deleteSurface);\n}\n\n/**\n * 判断消息是否包含删除操作\n */\nfunction hasDeletionMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.deleteSurface);\n}\n\n/**\n * 判断消息是否包含创建/更新操作(需要渲染 UI 的)\n */\nfunction hasCreationMessages(messages: A2UIMessage[]): boolean {\n return messages.some(msg => msg.createSurface || msg.updateComponents);\n}\n\n/**\n * A2UI v0.9 + json-render Activity 渲染器组件\n */\nexport const A2UIJsonRenderActivityRenderer: React.FC<A2UIJsonRenderActivityRendererProps> = ({\n activityType,\n content,\n messageId,\n ext,\n registry,\n actionHandlers,\n debug = false,\n}) => {\n // 设置调试模式\n useEffect(() => {\n surfaceStateManager.setDebug(debug);\n }, [debug]);\n\n // 用于触发重渲染的版本号\n const [schemaVersion, setSchemaVersion] = useState(0);\n\n // 分析消息类型\n const { surfaceId, isUI, isDeletion, isCreation, messages } = useMemo(() => {\n const msgs = content.messages;\n if (!Array.isArray(msgs) || msgs.length === 0) {\n return { surfaceId: null, isUI: false, isDeletion: false, isCreation: false, messages: [] };\n }\n return {\n surfaceId: extractSurfaceId(msgs),\n isUI: isUIMessages(msgs),\n isDeletion: hasDeletionMessages(msgs),\n isCreation: hasCreationMessages(msgs),\n messages: msgs,\n };\n }, [content.messages]);\n\n // 处理消息并获取 Schema\n const initialSchema = useMemo<JsonRenderSchema | null>(() => {\n if (!surfaceId || messages.length === 0) {\n return null;\n }\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 处理消息:', {\n messageId,\n surfaceId,\n messagesCount: messages.length,\n messageTypes: messages.map(m => \n Object.keys(m).filter(k => ['createSurface', 'updateComponents', 'updateDataModel', 'deleteSurface'].includes(k))[0]\n ),\n isUI,\n isCreation,\n isDeletion,\n cachedSurfaces: surfaceStateManager.getAllSurfaceIds(),\n });\n }\n\n // 删除型消息:清理缓存\n if (isDeletion) {\n surfaceStateManager.deleteSurface(surfaceId);\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 删除 Surface:', surfaceId);\n }\n return null;\n }\n\n // 创建型消息:转换并注册\n if (isCreation) {\n const schema = convertA2UIMessagesToJsonRender(messages);\n if (schema) {\n // 提取 catalogId\n const catalogId = messages.find(m => m.createSurface)?.createSurface?.catalogId;\n surfaceStateManager.registerSurface(surfaceId, schema, catalogId);\n \n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 创建型消息,注册 Surface:', {\n surfaceId,\n elementsCount: Object.keys(schema.elements).length,\n data: schema.data,\n });\n }\n }\n return schema;\n }\n\n // 更新型消息:通过 SurfaceStateManager 更新数据\n for (const msg of messages) {\n if (msg.updateDataModel) {\n const { path, op, value } = msg.updateDataModel;\n const success = surfaceStateManager.updateData(surfaceId, path, op || 'replace', value);\n \n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 更新型消息,更新数据:', {\n surfaceId,\n path,\n op: op || 'replace',\n value,\n success,\n });\n }\n }\n }\n\n // 更新型消息不需要渲染,返回 null\n return null;\n }, [messages, surfaceId, isCreation, isDeletion, isUI, debug, messageId]);\n\n // 订阅状态变化的回调\n const handleSchemaUpdate = useCallback(() => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 收到状态更新通知,触发重渲染');\n }\n setSchemaVersion(v => v + 1);\n }, [debug]);\n\n // 订阅 Surface 状态变化(仅当是创建型消息时)\n useEffect(() => {\n if (!isCreation || !surfaceId) {\n return;\n }\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 订阅 Surface 状态:', surfaceId);\n }\n\n const unsubscribe = surfaceStateManager.subscribe(surfaceId, handleSchemaUpdate);\n\n return () => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 取消订阅 Surface 状态:', surfaceId);\n }\n unsubscribe();\n };\n }, [isCreation, surfaceId, handleSchemaUpdate, debug]);\n\n // 获取当前 Schema(考虑版本变化)\n const currentSchema = useMemo(() => {\n if (!isCreation || !surfaceId) {\n return null;\n }\n // schemaVersion 变化时从缓存获取最新 Schema\n return surfaceStateManager.getSchema(surfaceId) || initialSchema;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCreation, surfaceId, initialSchema, schemaVersion]);\n\n // 非 UI 型消息不渲染(仅 updateDataModel 的消息)\n if (!isUI) {\n if (debug && messages.length > 0) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 纯数据更新消息,跳过渲染');\n }\n return null;\n }\n\n // 删除型消息:返回 null(UI 已被删除)\n if (isDeletion && !isCreation) {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log('[A2UI Adapter] 删除型消息,跳过渲染');\n }\n return null;\n }\n\n // 渲染 UI\n return (\n <JsonRenderActivityRenderer\n activityType={activityType}\n content={currentSchema}\n messageId={messageId}\n ext={ext}\n registry={registry}\n actionHandlers={actionHandlers}\n />\n );\n};\n\nexport default A2UIJsonRenderActivityRenderer;\n"],"names":["extractSurfaceId","messages","_iterator","_createForOfIteratorHelper","_step","s","n","done","msg","createSurface","surfaceId","updateComponents","updateDataModel","deleteSurface","err","e","f","isUIMessages","some","hasDeletionMessages","hasCreationMessages","A2UIJsonRenderActivityRenderer","activityType","_ref","content","messageId","ext","registry","actionHandlers","_ref$debug","debug","useEffect","surfaceStateManager","setDebug","_useState","useState","_useState2","_slicedToArray","schemaVersion","setSchemaVersion","_useMemo","useMemo","msgs","Array","isArray","length","isUI","isDeletion","isCreation","initialSchema","console","log","messagesCount","messageTypes","map","Object","keys","m","filter","k","includes","cachedSurfaces","getAllSurfaceIds","schema","convertA2UIMessagesToJsonRender","_messages$find","catalogId","find","registerSurface","elementsCount","elements","data","_iterator2","_step2","_msg$updateDataModel","path","op","value","success","updateData","handleSchemaUpdate","useCallback","v","unsubscribe","subscribe","currentSchema","getSchema","React","createElement","JsonRenderActivityRenderer"],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-render Activity 渲染器
|
|
3
|
+
* 基于 TDesign ChatEngine 的 Activity 机制集成 json-render
|
|
4
|
+
*
|
|
5
|
+
* 核心特性:
|
|
6
|
+
* 1. 支持 ACTIVITY_SNAPSHOT 全量渲染
|
|
7
|
+
* 2. 支持 ACTIVITY_DELTA 增量更新(Delta Merge 由数据层完成,此处接收完整 Schema)
|
|
8
|
+
* 3. 使用 React.memo + react-fast-compare 优化渲染性能
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import type { JsonRenderActivityProps, ComponentRegistry } from '../types';
|
|
13
|
+
export interface JsonRenderActivityRendererProps extends JsonRenderActivityProps {
|
|
14
|
+
/** 组件注册表(必须) */
|
|
15
|
+
registry: ComponentRegistry;
|
|
16
|
+
/**
|
|
17
|
+
* Action 处理器映射表
|
|
18
|
+
*
|
|
19
|
+
* 示例:
|
|
20
|
+
* ```tsx
|
|
21
|
+
* const actionHandlers = {
|
|
22
|
+
* submit: async (params) => { ... },
|
|
23
|
+
* reset: async (params) => { ... },
|
|
24
|
+
* cancel: async (params) => { ... },
|
|
25
|
+
* };
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;
|
|
29
|
+
/** 显示调试信息 */
|
|
30
|
+
debug?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 使用 React.memo 包装,配合 react-fast-compare 进行高效的深比较
|
|
34
|
+
*
|
|
35
|
+
* 对比策略:
|
|
36
|
+
* 1. registry 引用比较(通常是稳定的)
|
|
37
|
+
* 2. actionHandlers 引用比较(建议使用 useMemo 稳定化)
|
|
38
|
+
* 3. content 使用 react-fast-compare 深比较(比 JSON.stringify 快 3-5 倍)
|
|
39
|
+
*/
|
|
40
|
+
export declare const JsonRenderActivityRenderer: React.NamedExoticComponent<JsonRenderActivityRendererProps>;
|
|
41
|
+
/**
|
|
42
|
+
* 默认导出
|
|
43
|
+
*/
|
|
44
|
+
export default JsonRenderActivityRenderer;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.11
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React, { useMemo } from 'react';
|
|
8
|
+
import { r as reactFastCompare } from '../../../../_chunks/dep-5b6b17d0.js';
|
|
9
|
+
import { JsonRenderElement } from './JsonUIRenderer.js';
|
|
10
|
+
import '../contexts/index.js';
|
|
11
|
+
import { DataProvider } from '../contexts/data.js';
|
|
12
|
+
import { VisibilityProvider } from '../contexts/visibility.js';
|
|
13
|
+
import { ActionProvider } from '../contexts/actions.js';
|
|
14
|
+
import '@babel/runtime/helpers/typeof';
|
|
15
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
16
|
+
import '../contexts/tree.js';
|
|
17
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
18
|
+
import '@babel/runtime/helpers/createClass';
|
|
19
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
20
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
21
|
+
import '@babel/runtime/helpers/inherits';
|
|
22
|
+
import '../contexts/store.js';
|
|
23
|
+
import '../contexts/validation.js';
|
|
24
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
25
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
26
|
+
import '@json-render/core';
|
|
27
|
+
import '../../../../_chunks/dep-1ca64fef.js';
|
|
28
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
29
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
30
|
+
import '@babel/runtime/regenerator';
|
|
31
|
+
|
|
32
|
+
var JsonRenderActivityRendererInner = function JsonRenderActivityRendererInner(_ref) {
|
|
33
|
+
var activityType = _ref.activityType,
|
|
34
|
+
content = _ref.content,
|
|
35
|
+
messageId = _ref.messageId,
|
|
36
|
+
registry = _ref.registry,
|
|
37
|
+
_ref$actionHandlers = _ref.actionHandlers,
|
|
38
|
+
actionHandlers = _ref$actionHandlers === void 0 ? {} : _ref$actionHandlers;
|
|
39
|
+
var isValidSchema = content && content.root && content.elements && content.elements[content.root];
|
|
40
|
+
var renderData = useMemo(function () {
|
|
41
|
+
return (content === null || content === void 0 ? void 0 : content.data) || {};
|
|
42
|
+
}, [content === null || content === void 0 ? void 0 : content.data]);
|
|
43
|
+
return /* @__PURE__ */React.createElement("div", {
|
|
44
|
+
"data-activity-type": activityType,
|
|
45
|
+
"data-message-id": messageId
|
|
46
|
+
}, /* @__PURE__ */React.createElement(DataProvider, {
|
|
47
|
+
initialData: renderData
|
|
48
|
+
}, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
|
|
49
|
+
handlers: actionHandlers
|
|
50
|
+
}, /* @__PURE__ */React.createElement(JsonRenderElement, {
|
|
51
|
+
tree: content,
|
|
52
|
+
registry: registry
|
|
53
|
+
})))));
|
|
54
|
+
};
|
|
55
|
+
var JsonRenderActivityRenderer = /*#__PURE__*/React.memo(JsonRenderActivityRendererInner, function (prevProps, nextProps) {
|
|
56
|
+
if (prevProps.registry !== nextProps.registry) return false;
|
|
57
|
+
if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;
|
|
58
|
+
if (prevProps.content === nextProps.content) return true;
|
|
59
|
+
return reactFastCompare(prevProps.content, nextProps.content);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
export { JsonRenderActivityRenderer, JsonRenderActivityRenderer as default };
|
|
63
|
+
//# sourceMappingURL=JsonRenderActivityRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonRenderActivityRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.tsx"],"sourcesContent":["/**\n * json-render Activity 渲染器\n * 基于 TDesign ChatEngine 的 Activity 机制集成 json-render\n * \n * 核心特性:\n * 1. 支持 ACTIVITY_SNAPSHOT 全量渲染\n * 2. 支持 ACTIVITY_DELTA 增量更新(Delta Merge 由数据层完成,此处接收完整 Schema)\n * 3. 使用 React.memo + react-fast-compare 优化渲染性能\n * \n */\n\nimport React, { useMemo } from 'react';\nimport isEqual from 'react-fast-compare';\nimport { JsonRenderElement } from './JsonUIRenderer';\nimport { DataProvider, ActionProvider, VisibilityProvider } from '../contexts';\nimport type { JsonRenderActivityProps, ComponentRegistry } from '../types';\n\nexport interface JsonRenderActivityRendererProps extends JsonRenderActivityProps {\n /** 组件注册表(必须) */\n registry: ComponentRegistry;\n /** \n * Action 处理器映射表\n * \n * 示例:\n * ```tsx\n * const actionHandlers = {\n * submit: async (params) => { ... },\n * reset: async (params) => { ... },\n * cancel: async (params) => { ... },\n * };\n * ```\n */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n}\n\n/**\n * json-render Activity 渲染器组件\n */\nconst JsonRenderActivityRendererInner: React.FC<JsonRenderActivityRendererProps> = ({\n activityType,\n content,\n messageId,\n registry,\n actionHandlers = {},\n}) => {\n // 直接在渲染阶段做校验\n const isValidSchema = content && content.root && content.elements && content.elements[content.root];\n\n // 数据处理:使用 useMemo 缓存,只在 content.data 变化时重新计算\n const renderData = useMemo(() => content?.data || {}, [content?.data]);\n\n // todo: Schema 无效时显示加载状态\n // if (!isValidSchema) {\n // return (\n // <div style={{ padding: '16px', color: 'var(--td-text-color-secondary)' }}>\n // 数据初始化中...\n // </div>\n // );\n // }\n return (\n <div data-activity-type={activityType} data-message-id={messageId}>\n <DataProvider initialData={renderData}>\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers}>\n <JsonRenderElement tree={content} registry={registry} />\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n </div>\n );\n};\n\n/**\n * 使用 React.memo 包装,配合 react-fast-compare 进行高效的深比较\n * \n * 对比策略:\n * 1. registry 引用比较(通常是稳定的)\n * 2. actionHandlers 引用比较(建议使用 useMemo 稳定化)\n * 3. content 使用 react-fast-compare 深比较(比 JSON.stringify 快 3-5 倍)\n */\nexport const JsonRenderActivityRenderer = React.memo(\n JsonRenderActivityRendererInner,\n (prevProps, nextProps) => {\n // registry 变化必须重渲染\n if (prevProps.registry !== nextProps.registry) return false;\n \n // actionHandlers 变化必须重渲染\n if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;\n\n // content 引用相同,跳过渲染\n if (prevProps.content === nextProps.content) return true;\n\n // 使用 react-fast-compare 进行高效深比较\n // 比 JSON.stringify 快 3-5 倍,且能正确处理循环引用\n return isEqual(prevProps.content, nextProps.content);\n },\n);\n\n/**\n * 默认导出\n */\nexport default JsonRenderActivityRenderer;\n"],"names":["JsonRenderActivityRendererInner","activityType","_ref","content","messageId","registry","_ref$actionHandlers","actionHandlers","isValidSchema","root","elements","renderData","useMemo","data","React","createElement","DataProvider","initialData","VisibilityProvider","ActionProvider","handlers","JsonRenderElement","tree","JsonRenderActivityRenderer","memo","prevProps","nextProps","isEqual"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAMA,kCAA6E,SAA7EA,sCAMA;AAAA,EAAA,IALJC,YAAA,GAAAC,IAAA,CAAAD,YAAA;IACAE,OAAA,GAAAD,IAAA,CAAAC,OAAA;IACAC,SAAA,GAAAF,IAAA,CAAAE,SAAA;IACAC,QAAA,GAAAH,IAAA,CAAAG,QAAA;IAAAC,mBAAA,GAAAJ,IAAA,CACAK;AAAAA,IAAAA,kDAAiB,EAAC,GAAAD,mBAAA,CAAA;AAGZ,EAAA,IAAAE,aAAA,GAAgBL,WAAWA,OAAQ,CAAAM,IAAA,IAAQN,QAAQO,QAAY,IAAAP,OAAA,CAAQO,SAASP,OAAQ,CAAAM,IAAA,CAAA,CAAA;EAGxF,IAAAE,UAAA,GAAaC,OAAQ,CAAA,YAAA;IAAA,OAAM,CAAAT,OAAS,KAAA,IAAA,IAATA,OAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,OAAS,CAAAU,IAAA,KAAQ,EAAI,CAAA;GAAA,EAAA,CAACV,OAAS,KAATA,IAAAA,IAAAA,OAAS,uBAATA,OAAS,CAAAU,IAAI,CAAC,CAAA,CAAA;AAUrE,EAAA,sBACGC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAI,IAAA,oBAAoB,EAAAd,YAAA;AAAc,IAAA,iBAAiB,EAAAG,SAAAA;AAAA,GAAA,iBACrDU,KAAA,CAAAC,aAAA,CAAAC,YAAA,EAAA;AAAaC,IAAAA,WAAa,EAAAN,UAAAA;AACzB,GAAA,iBAAAG,KAAA,CAAAC,aAAA,CAACG,yCACEJ,KAAA,CAAAC,aAAA,CAAAI,cAAA,EAAA;AAAeC,IAAAA,QAAU,EAAAb,cAAAA;AAAA,GAAA,iBACvBO,KAAA,CAAAC,aAAA,CAAAM,iBAAA,EAAA;AAAkBC,IAAAA,IAAM,EAAAnB,OAAA;AAASE,IAAAA,QAAA,EAAAA,QAAAA;AAAoB,GAAA,CACxD,CACF,CACF,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAUakB,IAAAA,0CAA6BT,KAAM,CAAAU,IAAA,CAC9CxB,+BAAA,EACA,UAACyB,WAAWC,SAAc,EAAA;EAEpB,IAAAD,SAAA,CAAUpB,aAAaqB,SAAU,CAAArB,QAAA,EAAiB,OAAA,KAAA,CAAA;EAGlD,IAAAoB,SAAA,CAAUlB,mBAAmBmB,SAAU,CAAAnB,cAAA,EAAuB,OAAA,KAAA,CAAA;EAG9D,IAAAkB,SAAA,CAAUtB,YAAYuB,SAAU,CAAAvB,OAAA,EAAgB,OAAA,IAAA,CAAA;EAIpD,OAAOwB,gBAAQ,CAAAF,SAAA,CAAUtB,OAAS,EAAAuB,SAAA,CAAUvB,OAAO,CAAA,CAAA;AACrD,CACF;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ComponentType, type ReactNode } from "react";
|
|
2
|
+
import type { Catalog, ComponentDefinition } from "@json-render/core";
|
|
3
|
+
import type { ComponentRegistry, RendererProps } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Main renderer component
|
|
6
|
+
*
|
|
7
|
+
* 架构说明:
|
|
8
|
+
* - JsonRenderElement 作为入口,不因 tree 变化而重渲染
|
|
9
|
+
* - tree 更新通过 store.setTree() 通知订阅者
|
|
10
|
+
* - 每个 ElementRenderer 独立订阅自己的 element
|
|
11
|
+
* - 配合上游 Structural Sharing,只有真正变化的节点才重渲染
|
|
12
|
+
*/
|
|
13
|
+
export declare function JsonRenderElement({ tree, registry, loading, fallback }: RendererProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Props for JSONUIProvider
|
|
16
|
+
*/
|
|
17
|
+
export interface JSONUIProviderProps {
|
|
18
|
+
/** Component registry */
|
|
19
|
+
registry: ComponentRegistry;
|
|
20
|
+
/** Initial data model */
|
|
21
|
+
initialData?: Record<string, unknown>;
|
|
22
|
+
/** Auth state */
|
|
23
|
+
authState?: {
|
|
24
|
+
isSignedIn: boolean;
|
|
25
|
+
user?: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
/** Action handlers */
|
|
28
|
+
actionHandlers?: Record<string, (params: Record<string, unknown>) => Promise<unknown> | unknown>;
|
|
29
|
+
/** Navigation function */
|
|
30
|
+
navigate?: (path: string) => void;
|
|
31
|
+
/** Custom validation functions */
|
|
32
|
+
validationFunctions?: Record<string, (value: unknown, args?: Record<string, unknown>) => boolean>;
|
|
33
|
+
/** Callback when data changes */
|
|
34
|
+
onDataChange?: (path: string, value: unknown) => void;
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Combined provider for all JSONUI contexts
|
|
39
|
+
*/
|
|
40
|
+
export declare function JSONUIProvider({ registry, initialData, authState, actionHandlers, navigate, validationFunctions, onDataChange, children, }: JSONUIProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* Helper to create a renderer component from a catalog
|
|
43
|
+
*/
|
|
44
|
+
export declare function createRendererFromCatalog<C extends Catalog<Record<string, ComponentDefinition>>>(_catalog: C, registry: ComponentRegistry): ComponentType<Omit<RendererProps, "registry">>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.11
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
8
|
+
import React, { useRef, useLayoutEffect, useMemo } from 'react';
|
|
9
|
+
import '../contexts/index.js';
|
|
10
|
+
import { useRenderContext, useElement, useRoot, TreeStore, RenderContext } from '../contexts/tree.js';
|
|
11
|
+
import { useIsVisible, VisibilityProvider } from '../contexts/visibility.js';
|
|
12
|
+
import { useActions, ActionProvider } from '../contexts/actions.js';
|
|
13
|
+
import { DataProvider } from '../contexts/data.js';
|
|
14
|
+
import { ValidationProvider } from '../contexts/validation.js';
|
|
15
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
16
|
+
import '@babel/runtime/helpers/createClass';
|
|
17
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
18
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
19
|
+
import '@babel/runtime/helpers/inherits';
|
|
20
|
+
import '../contexts/store.js';
|
|
21
|
+
import '@json-render/core';
|
|
22
|
+
import '@babel/runtime/helpers/typeof';
|
|
23
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
24
|
+
import '../../../../_chunks/dep-1ca64fef.js';
|
|
25
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
26
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
27
|
+
import '@babel/runtime/regenerator';
|
|
28
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
29
|
+
|
|
30
|
+
"use client";
|
|
31
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
33
|
+
var ElementRenderer = /*#__PURE__*/React.memo(function ElementRenderer2(_ref) {
|
|
34
|
+
var _registry$element$typ, _element$children;
|
|
35
|
+
var elementKey = _ref.elementKey;
|
|
36
|
+
var _useRenderContext = useRenderContext(),
|
|
37
|
+
registry = _useRenderContext.registry,
|
|
38
|
+
loading = _useRenderContext.loading,
|
|
39
|
+
fallback = _useRenderContext.fallback;
|
|
40
|
+
var element = useElement(elementKey);
|
|
41
|
+
var isVisible = useIsVisible(element === null || element === void 0 ? void 0 : element.visible);
|
|
42
|
+
var _useActions = useActions(),
|
|
43
|
+
execute = _useActions.execute;
|
|
44
|
+
if (!element || !isVisible) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
var Component = (_registry$element$typ = registry[element.type]) !== null && _registry$element$typ !== void 0 ? _registry$element$typ : fallback;
|
|
48
|
+
if (!Component) {
|
|
49
|
+
console.warn("No renderer for component type: ".concat(element.type));
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
console.count("ElementRenderer-".concat(element.type));
|
|
53
|
+
var children = (_element$children = element.children) === null || _element$children === void 0 ? void 0 : _element$children.map(function (childKey) {
|
|
54
|
+
return /* @__PURE__ */React.createElement(ElementRenderer2, {
|
|
55
|
+
key: childKey,
|
|
56
|
+
elementKey: childKey
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
return /* @__PURE__ */React.createElement(Component, {
|
|
60
|
+
element: element,
|
|
61
|
+
onAction: execute,
|
|
62
|
+
loading: loading
|
|
63
|
+
}, children);
|
|
64
|
+
});
|
|
65
|
+
function RootRenderer() {
|
|
66
|
+
var root = useRoot();
|
|
67
|
+
if (!root) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return /* @__PURE__ */React.createElement(ElementRenderer, {
|
|
71
|
+
elementKey: root
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function JsonRenderElement(_ref2) {
|
|
75
|
+
var tree = _ref2.tree,
|
|
76
|
+
registry = _ref2.registry,
|
|
77
|
+
loading = _ref2.loading,
|
|
78
|
+
fallback = _ref2.fallback;
|
|
79
|
+
if (!tree || !tree.root) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
var storeRef = useRef(null);
|
|
83
|
+
if (!storeRef.current) {
|
|
84
|
+
storeRef.current = new TreeStore();
|
|
85
|
+
}
|
|
86
|
+
var store = storeRef.current;
|
|
87
|
+
useLayoutEffect(function () {
|
|
88
|
+
store.setTree(tree);
|
|
89
|
+
}, [tree, store]);
|
|
90
|
+
var contextValue = useMemo(function () {
|
|
91
|
+
return {
|
|
92
|
+
store: store,
|
|
93
|
+
registry: registry,
|
|
94
|
+
loading: loading,
|
|
95
|
+
fallback: fallback
|
|
96
|
+
};
|
|
97
|
+
}, [store, registry, loading, fallback]);
|
|
98
|
+
return /* @__PURE__ */React.createElement(RenderContext.Provider, {
|
|
99
|
+
value: contextValue
|
|
100
|
+
}, /* @__PURE__ */React.createElement(RootRenderer, null));
|
|
101
|
+
}
|
|
102
|
+
function JSONUIProvider(_ref3) {
|
|
103
|
+
var registry = _ref3.registry,
|
|
104
|
+
initialData = _ref3.initialData,
|
|
105
|
+
authState = _ref3.authState,
|
|
106
|
+
actionHandlers = _ref3.actionHandlers,
|
|
107
|
+
navigate = _ref3.navigate,
|
|
108
|
+
validationFunctions = _ref3.validationFunctions,
|
|
109
|
+
onDataChange = _ref3.onDataChange,
|
|
110
|
+
children = _ref3.children;
|
|
111
|
+
return /* @__PURE__ */React.createElement(DataProvider, {
|
|
112
|
+
initialData: initialData,
|
|
113
|
+
authState: authState,
|
|
114
|
+
onDataChange: onDataChange
|
|
115
|
+
}, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
|
|
116
|
+
handlers: actionHandlers,
|
|
117
|
+
navigate: navigate
|
|
118
|
+
}, /* @__PURE__ */React.createElement(ValidationProvider, {
|
|
119
|
+
customFunctions: validationFunctions
|
|
120
|
+
}, children, /* @__PURE__ */React.createElement(ConfirmationDialogManager, null)))));
|
|
121
|
+
}
|
|
122
|
+
function createRendererFromCatalog(_catalog, registry) {
|
|
123
|
+
return function CatalogRenderer(props) {
|
|
124
|
+
return /* @__PURE__ */React.createElement(JsonRenderElement, _objectSpread(_objectSpread({}, props), {}, {
|
|
125
|
+
registry: registry
|
|
126
|
+
}));
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export { JSONUIProvider, JsonRenderElement, createRendererFromCatalog };
|
|
131
|
+
//# sourceMappingURL=JsonUIRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonUIRenderer.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/renderer/JsonUIRenderer.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { type ComponentType, type ReactNode, useRef, useLayoutEffect, useMemo } from \"react\";\nimport type {\n Catalog,\n ComponentDefinition,\n} from \"@json-render/core\";\nimport { \n useIsVisible, \n useActions,\n DataProvider, \n ValidationProvider, \n ActionProvider, \n VisibilityProvider,\n} from \"../contexts\";\n\nimport {\n useElement,\n useRoot,\n useRenderContext,\n TreeStore,\n RenderContext,\n} from \"../contexts/tree\";\n\nimport type { ComponentRegistry, RendererProps } from \"../types\";\n\n/**\n * ElementRenderer - 使用 selector 模式订阅特定 element\n * \n * 性能优化原理:\n * 1. 上游使用 Structural Sharing,未修改的节点保持原引用\n * 2. useSyncExternalStore 的 getSnapshot 返回 element 引用\n * 3. 引用相同 → 不重渲染;引用不同 → 重渲染\n */\nconst ElementRenderer = React.memo(function ElementRenderer({\n elementKey,\n}: {\n elementKey: string;\n}) {\n const { registry, loading, fallback } = useRenderContext();\n const element = useElement(elementKey);\n const isVisible = useIsVisible(element?.visible);\n const { execute } = useActions();\n\n // Don't render if element doesn't exist or not visible\n if (!element || !isVisible) {\n return null;\n }\n\n // Get the component renderer\n const Component = registry[element.type] ?? fallback;\n\n if (!Component) {\n console.warn(`No renderer for component type: ${element.type}`);\n return null;\n }\n\n console.count(`ElementRenderer-${element.type}`);\n\n // 子组件独立订阅\n const children = element.children?.map((childKey) => (\n <ElementRenderer key={childKey} elementKey={childKey} />\n ));\n\n return (\n <Component element={element} onAction={execute} loading={loading}>\n {children}\n </Component>\n );\n});\n\n/**\n * Root renderer - 订阅 root 变化\n */\nfunction RootRenderer() {\n const root = useRoot();\n \n if (!root) {\n return null;\n }\n \n return <ElementRenderer elementKey={root} />;\n}\n\n/**\n * Main renderer component\n * \n * 架构说明:\n * - JsonRenderElement 作为入口,不因 tree 变化而重渲染\n * - tree 更新通过 store.setTree() 通知订阅者\n * - 每个 ElementRenderer 独立订阅自己的 element\n * - 配合上游 Structural Sharing,只有真正变化的节点才重渲染\n */\nexport function JsonRenderElement({ tree, registry, loading, fallback }: RendererProps) {\n // 边界保护\n if (!tree || !tree.root) {\n return null;\n }\n // 创建稳定的 store 引用\n const storeRef = useRef<TreeStore | null>(null);\n if (!storeRef.current) {\n storeRef.current = new TreeStore();\n }\n const store = storeRef.current;\n \n // 确保子组件在 useEffect 或布局计算前能获取到最新的 tree。\n useLayoutEffect(() => {\n store.setTree(tree);\n }, [tree, store]);\n \n const contextValue = useMemo(() => ({\n store,\n registry,\n loading,\n fallback,\n }), [store, registry, loading, fallback]);\n\n\n\n return (\n <RenderContext.Provider value={contextValue}>\n <RootRenderer />\n </RenderContext.Provider>\n );\n}\n\n/**\n * Props for JSONUIProvider\n */\nexport interface JSONUIProviderProps {\n /** Component registry */\n registry: ComponentRegistry;\n /** Initial data model */\n initialData?: Record<string, unknown>;\n /** Auth state */\n authState?: { isSignedIn: boolean; user?: Record<string, unknown> };\n /** Action handlers */\n actionHandlers?: Record<\n string,\n (params: Record<string, unknown>) => Promise<unknown> | unknown\n >;\n /** Navigation function */\n navigate?: (path: string) => void;\n /** Custom validation functions */\n validationFunctions?: Record<\n string,\n (value: unknown, args?: Record<string, unknown>) => boolean\n >;\n /** Callback when data changes */\n onDataChange?: (path: string, value: unknown) => void;\n children: ReactNode;\n}\n\n\n/**\n * Combined provider for all JSONUI contexts\n */\nexport function JSONUIProvider({\n registry,\n initialData,\n authState,\n actionHandlers,\n navigate,\n validationFunctions,\n onDataChange,\n children,\n}: JSONUIProviderProps) {\n return (\n <DataProvider\n initialData={initialData}\n authState={authState}\n onDataChange={onDataChange}\n >\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers} navigate={navigate}>\n <ValidationProvider customFunctions={validationFunctions}>\n {children}\n <ConfirmationDialogManager />\n </ValidationProvider>\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n );\n}\n\n/**\n * Helper to create a renderer component from a catalog\n */\nexport function createRendererFromCatalog<\n C extends Catalog<Record<string, ComponentDefinition>>,\n>(\n _catalog: C,\n registry: ComponentRegistry,\n): ComponentType<Omit<RendererProps, \"registry\">> {\n return function CatalogRenderer(props: Omit<RendererProps, \"registry\">) {\n return <JsonRenderElement {...props} registry={registry} />;\n };\n}\n"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ElementRenderer","React","memo","ElementRenderer2","_ref","_registry$element$typ","_element$children","elementKey","_useRenderContext","useRenderContext","registry","loading","fallback","element","useElement","isVisible","useIsVisible","visible","_useActions","useActions","execute","Component","type","console","warn","concat","count","children","map","childKey","key","createElement","onAction","RootRenderer","root","useRoot","JsonRenderElement","tree","_ref2","storeRef","useRef","current","TreeStore","store","useLayoutEffect","setTree","contextValue","useMemo","RenderContext","Provider","value","JSONUIProvider","_ref3","initialData","authState","actionHandlers","navigate","validationFunctions","onDataChange","DataProvider","VisibilityProvider","ActionProvider","handlers","ValidationProvider","customFunctions","ConfirmationDialogManager","createRendererFromCatalog","_catalog","CatalogRenderer","props"],"mappings":"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"}
|