@copilotkit/a2ui-renderer 1.55.0-next.8 → 1.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/a2ui-types.cjs +2 -3
- package/dist/a2ui-types.cjs.map +1 -1
- package/dist/a2ui-types.d.cts +21 -5
- package/dist/a2ui-types.d.cts.map +1 -1
- package/dist/a2ui-types.d.mts +21 -5
- package/dist/a2ui-types.d.mts.map +1 -1
- package/dist/a2ui-types.mjs +2 -3
- package/dist/a2ui-types.mjs.map +1 -1
- package/dist/index.cjs +40 -61
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +10 -39
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +10 -39
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +12 -29
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +1743 -2783
- package/dist/index.umd.js.map +1 -1
- package/dist/react-renderer/a2ui-react/A2uiSurface.cjs +110 -0
- package/dist/react-renderer/a2ui-react/A2uiSurface.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/A2uiSurface.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/A2uiSurface.d.mts +3 -0
- package/dist/react-renderer/a2ui-react/A2uiSurface.mjs +107 -0
- package/dist/react-renderer/a2ui-react/A2uiSurface.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/adapter.cjs +63 -0
- package/dist/react-renderer/a2ui-react/adapter.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/adapter.d.cts +23 -0
- package/dist/react-renderer/a2ui-react/adapter.d.cts.map +1 -0
- package/dist/react-renderer/a2ui-react/adapter.d.mts +23 -0
- package/dist/react-renderer/a2ui-react/adapter.d.mts.map +1 -0
- package/dist/react-renderer/a2ui-react/adapter.mjs +61 -0
- package/dist/react-renderer/a2ui-react/adapter.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.cjs +53 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.mjs +36 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/AudioPlayer.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.cjs +48 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.mjs +31 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Button.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.cjs +39 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.mjs +22 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Card.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.cjs +73 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.mjs +71 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/CheckBox.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.cjs +36 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.mjs +34 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChildList.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.cjs +110 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.mjs +108 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/ChoicePicker.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.cjs +45 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.mjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Column.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.cjs +69 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.mjs +67 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/DateTimeInput.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.cjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.mjs +27 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Divider.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.cjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.mjs +27 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Icon.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.cjs +59 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.mjs +42 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Image.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.cjs +49 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.mjs +32 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/List.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.cjs +81 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.mjs +80 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Modal.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.cjs +45 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.mjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Row.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.cjs +74 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.mjs +72 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Slider.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.cjs +63 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.mjs +62 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Tabs.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.cjs +69 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.mjs +52 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Text.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.cjs +88 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.mjs +86 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/TextField.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.cjs +40 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.d.cts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.d.mts +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.mjs +23 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/components/Video.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.cjs +63 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.d.cts +26 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.d.cts.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.d.mts +26 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.d.mts.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.mjs +62 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/index.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/utils.cjs +52 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/utils.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/utils.mjs +45 -0
- package/dist/react-renderer/a2ui-react/catalog/basic/utils.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.cjs +51 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.d.mts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.mjs +34 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Button.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.cjs +36 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.mjs +34 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/ChildList.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.cjs +85 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.d.mts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.mjs +84 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Column.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.cjs +84 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.d.mts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.mjs +83 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Row.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.cjs +54 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.d.mts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.mjs +53 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/Text.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.cjs +85 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.d.cts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.d.mts +2 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.mjs +68 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/components/TextField.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.cjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.cjs.map +1 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.d.cts +7 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.d.mts +7 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.mjs +44 -0
- package/dist/react-renderer/a2ui-react/catalog/minimal/index.mjs.map +1 -0
- package/dist/react-renderer/a2ui-react/index.cjs +22 -0
- package/dist/react-renderer/a2ui-react/index.d.cts +4 -0
- package/dist/react-renderer/a2ui-react/index.d.mts +4 -0
- package/dist/react-renderer/a2ui-react/index.mjs +24 -0
- package/dist/react-renderer/catalog-utils.cjs +84 -0
- package/dist/react-renderer/catalog-utils.cjs.map +1 -0
- package/dist/react-renderer/catalog-utils.d.cts +39 -0
- package/dist/react-renderer/catalog-utils.d.cts.map +1 -0
- package/dist/react-renderer/catalog-utils.d.mts +39 -0
- package/dist/react-renderer/catalog-utils.d.mts.map +1 -0
- package/dist/react-renderer/catalog-utils.mjs +79 -0
- package/dist/react-renderer/catalog-utils.mjs.map +1 -0
- package/dist/react-renderer/core/A2UIProvider.cjs +48 -70
- package/dist/react-renderer/core/A2UIProvider.cjs.map +1 -1
- package/dist/react-renderer/core/A2UIProvider.d.cts +13 -47
- package/dist/react-renderer/core/A2UIProvider.d.cts.map +1 -1
- package/dist/react-renderer/core/A2UIProvider.d.mts +13 -47
- package/dist/react-renderer/core/A2UIProvider.d.mts.map +1 -1
- package/dist/react-renderer/core/A2UIProvider.mjs +48 -71
- package/dist/react-renderer/core/A2UIProvider.mjs.map +1 -1
- package/dist/react-renderer/core/A2UIRenderer.cjs +8 -56
- package/dist/react-renderer/core/A2UIRenderer.cjs.map +1 -1
- package/dist/react-renderer/core/A2UIRenderer.d.cts +5 -19
- package/dist/react-renderer/core/A2UIRenderer.d.cts.map +1 -1
- package/dist/react-renderer/core/A2UIRenderer.d.mts +5 -19
- package/dist/react-renderer/core/A2UIRenderer.d.mts.map +1 -1
- package/dist/react-renderer/core/A2UIRenderer.mjs +9 -57
- package/dist/react-renderer/core/A2UIRenderer.mjs.map +1 -1
- package/dist/react-renderer/core/store.d.cts +6 -17
- package/dist/react-renderer/core/store.d.cts.map +1 -1
- package/dist/react-renderer/core/store.d.mts +6 -17
- package/dist/react-renderer/core/store.d.mts.map +1 -1
- package/dist/react-renderer/create-catalog.cjs +115 -0
- package/dist/react-renderer/create-catalog.cjs.map +1 -0
- package/dist/react-renderer/create-catalog.d.cts +107 -0
- package/dist/react-renderer/create-catalog.d.cts.map +1 -0
- package/dist/react-renderer/create-catalog.d.mts +107 -0
- package/dist/react-renderer/create-catalog.d.mts.map +1 -0
- package/dist/react-renderer/create-catalog.mjs +111 -0
- package/dist/react-renderer/create-catalog.mjs.map +1 -0
- package/dist/react-renderer/hooks/useA2UI.cjs +1 -26
- package/dist/react-renderer/hooks/useA2UI.cjs.map +1 -1
- package/dist/react-renderer/hooks/useA2UI.d.cts +5 -33
- package/dist/react-renderer/hooks/useA2UI.d.cts.map +1 -1
- package/dist/react-renderer/hooks/useA2UI.d.mts +5 -33
- package/dist/react-renderer/hooks/useA2UI.d.mts.map +1 -1
- package/dist/react-renderer/hooks/useA2UI.mjs +1 -26
- package/dist/react-renderer/hooks/useA2UI.mjs.map +1 -1
- package/dist/react-renderer/index.cjs +21 -27
- package/dist/react-renderer/index.cjs.map +1 -0
- package/dist/react-renderer/index.d.cts +17 -27
- package/dist/react-renderer/index.d.cts.map +1 -0
- package/dist/react-renderer/index.d.mts +17 -27
- package/dist/react-renderer/index.d.mts.map +1 -0
- package/dist/react-renderer/index.mjs +15 -27
- package/dist/react-renderer/index.mjs.map +1 -0
- package/dist/react-renderer/lib/utils.cjs +0 -25
- package/dist/react-renderer/lib/utils.cjs.map +1 -1
- package/dist/react-renderer/lib/utils.d.cts +0 -8
- package/dist/react-renderer/lib/utils.d.cts.map +1 -1
- package/dist/react-renderer/lib/utils.d.mts +0 -8
- package/dist/react-renderer/lib/utils.d.mts.map +1 -1
- package/dist/react-renderer/lib/utils.mjs +1 -25
- package/dist/react-renderer/lib/utils.mjs.map +1 -1
- package/dist/react-renderer/styles/index.cjs +4 -459
- package/dist/react-renderer/styles/index.cjs.map +1 -1
- package/dist/react-renderer/styles/index.d.mts +2 -18
- package/dist/react-renderer/styles/index.d.mts.map +1 -1
- package/dist/react-renderer/styles/index.mjs +4 -459
- package/dist/react-renderer/styles/index.mjs.map +1 -1
- package/dist/react-renderer/theme/ThemeContext.cjs +2 -19
- package/dist/react-renderer/theme/ThemeContext.cjs.map +1 -1
- package/dist/react-renderer/theme/ThemeContext.d.cts +4 -23
- package/dist/react-renderer/theme/ThemeContext.d.cts.map +1 -1
- package/dist/react-renderer/theme/ThemeContext.d.mts +4 -23
- package/dist/react-renderer/theme/ThemeContext.d.mts.map +1 -1
- package/dist/react-renderer/theme/ThemeContext.mjs +2 -19
- package/dist/react-renderer/theme/ThemeContext.mjs.map +1 -1
- package/dist/react-renderer/types.d.cts +24 -29
- package/dist/react-renderer/types.d.cts.map +1 -1
- package/dist/react-renderer/types.d.mts +24 -29
- package/dist/react-renderer/types.d.mts.map +1 -1
- package/package.json +29 -29
- package/dist/A2UIViewer.cjs +0 -154
- package/dist/A2UIViewer.cjs.map +0 -1
- package/dist/A2UIViewer.d.cts +0 -39
- package/dist/A2UIViewer.d.cts.map +0 -1
- package/dist/A2UIViewer.d.mts +0 -39
- package/dist/A2UIViewer.d.mts.map +0 -1
- package/dist/A2UIViewer.mjs +0 -152
- package/dist/A2UIViewer.mjs.map +0 -1
- package/dist/react-renderer/components/content/AudioPlayer.cjs +0 -34
- package/dist/react-renderer/components/content/AudioPlayer.cjs.map +0 -1
- package/dist/react-renderer/components/content/AudioPlayer.d.cts +0 -12
- package/dist/react-renderer/components/content/AudioPlayer.d.cts.map +0 -1
- package/dist/react-renderer/components/content/AudioPlayer.d.mts +0 -12
- package/dist/react-renderer/components/content/AudioPlayer.d.mts.map +0 -1
- package/dist/react-renderer/components/content/AudioPlayer.mjs +0 -33
- package/dist/react-renderer/components/content/AudioPlayer.mjs.map +0 -1
- package/dist/react-renderer/components/content/Divider.cjs +0 -31
- package/dist/react-renderer/components/content/Divider.cjs.map +0 -1
- package/dist/react-renderer/components/content/Divider.d.cts +0 -17
- package/dist/react-renderer/components/content/Divider.d.cts.map +0 -1
- package/dist/react-renderer/components/content/Divider.d.mts +0 -17
- package/dist/react-renderer/components/content/Divider.d.mts.map +0 -1
- package/dist/react-renderer/components/content/Divider.mjs +0 -30
- package/dist/react-renderer/components/content/Divider.mjs.map +0 -1
- package/dist/react-renderer/components/content/Icon.cjs +0 -50
- package/dist/react-renderer/components/content/Icon.cjs.map +0 -1
- package/dist/react-renderer/components/content/Icon.d.cts +0 -20
- package/dist/react-renderer/components/content/Icon.d.cts.map +0 -1
- package/dist/react-renderer/components/content/Icon.d.mts +0 -20
- package/dist/react-renderer/components/content/Icon.d.mts.map +0 -1
- package/dist/react-renderer/components/content/Icon.mjs +0 -49
- package/dist/react-renderer/components/content/Icon.mjs.map +0 -1
- package/dist/react-renderer/components/content/Image.cjs +0 -43
- package/dist/react-renderer/components/content/Image.cjs.map +0 -1
- package/dist/react-renderer/components/content/Image.d.cts +0 -15
- package/dist/react-renderer/components/content/Image.d.cts.map +0 -1
- package/dist/react-renderer/components/content/Image.d.mts +0 -15
- package/dist/react-renderer/components/content/Image.d.mts.map +0 -1
- package/dist/react-renderer/components/content/Image.mjs +0 -42
- package/dist/react-renderer/components/content/Image.mjs.map +0 -1
- package/dist/react-renderer/components/content/Text.cjs +0 -131
- package/dist/react-renderer/components/content/Text.cjs.map +0 -1
- package/dist/react-renderer/components/content/Text.d.cts +0 -32
- package/dist/react-renderer/components/content/Text.d.cts.map +0 -1
- package/dist/react-renderer/components/content/Text.d.mts +0 -32
- package/dist/react-renderer/components/content/Text.d.mts.map +0 -1
- package/dist/react-renderer/components/content/Text.mjs +0 -129
- package/dist/react-renderer/components/content/Text.mjs.map +0 -1
- package/dist/react-renderer/components/content/Video.cjs +0 -56
- package/dist/react-renderer/components/content/Video.cjs.map +0 -1
- package/dist/react-renderer/components/content/Video.d.cts +0 -14
- package/dist/react-renderer/components/content/Video.d.cts.map +0 -1
- package/dist/react-renderer/components/content/Video.d.mts +0 -14
- package/dist/react-renderer/components/content/Video.d.mts.map +0 -1
- package/dist/react-renderer/components/content/Video.mjs +0 -55
- package/dist/react-renderer/components/content/Video.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/Button.cjs +0 -39
- package/dist/react-renderer/components/interactive/Button.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/Button.d.cts +0 -15
- package/dist/react-renderer/components/interactive/Button.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/Button.d.mts +0 -15
- package/dist/react-renderer/components/interactive/Button.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/Button.mjs +0 -38
- package/dist/react-renderer/components/interactive/Button.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/CheckBox.cjs +0 -58
- package/dist/react-renderer/components/interactive/CheckBox.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/CheckBox.d.cts +0 -14
- package/dist/react-renderer/components/interactive/CheckBox.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/CheckBox.d.mts +0 -14
- package/dist/react-renderer/components/interactive/CheckBox.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/CheckBox.mjs +0 -57
- package/dist/react-renderer/components/interactive/CheckBox.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/DateTimeInput.cjs +0 -65
- package/dist/react-renderer/components/interactive/DateTimeInput.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/DateTimeInput.d.cts +0 -14
- package/dist/react-renderer/components/interactive/DateTimeInput.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/DateTimeInput.d.mts +0 -14
- package/dist/react-renderer/components/interactive/DateTimeInput.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/DateTimeInput.mjs +0 -64
- package/dist/react-renderer/components/interactive/DateTimeInput.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/MultipleChoice.cjs +0 -54
- package/dist/react-renderer/components/interactive/MultipleChoice.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/MultipleChoice.d.cts +0 -15
- package/dist/react-renderer/components/interactive/MultipleChoice.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/MultipleChoice.d.mts +0 -15
- package/dist/react-renderer/components/interactive/MultipleChoice.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/MultipleChoice.mjs +0 -53
- package/dist/react-renderer/components/interactive/MultipleChoice.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/Slider.cjs +0 -72
- package/dist/react-renderer/components/interactive/Slider.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/Slider.d.cts +0 -14
- package/dist/react-renderer/components/interactive/Slider.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/Slider.d.mts +0 -14
- package/dist/react-renderer/components/interactive/Slider.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/Slider.mjs +0 -71
- package/dist/react-renderer/components/interactive/Slider.mjs.map +0 -1
- package/dist/react-renderer/components/interactive/TextField.cjs +0 -74
- package/dist/react-renderer/components/interactive/TextField.cjs.map +0 -1
- package/dist/react-renderer/components/interactive/TextField.d.cts +0 -14
- package/dist/react-renderer/components/interactive/TextField.d.cts.map +0 -1
- package/dist/react-renderer/components/interactive/TextField.d.mts +0 -14
- package/dist/react-renderer/components/interactive/TextField.d.mts.map +0 -1
- package/dist/react-renderer/components/interactive/TextField.mjs +0 -73
- package/dist/react-renderer/components/interactive/TextField.mjs.map +0 -1
- package/dist/react-renderer/components/layout/Card.cjs +0 -46
- package/dist/react-renderer/components/layout/Card.cjs.map +0 -1
- package/dist/react-renderer/components/layout/Card.d.cts +0 -21
- package/dist/react-renderer/components/layout/Card.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/Card.d.mts +0 -21
- package/dist/react-renderer/components/layout/Card.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/Card.mjs +0 -45
- package/dist/react-renderer/components/layout/Card.mjs.map +0 -1
- package/dist/react-renderer/components/layout/Column.cjs +0 -43
- package/dist/react-renderer/components/layout/Column.cjs.map +0 -1
- package/dist/react-renderer/components/layout/Column.d.cts +0 -14
- package/dist/react-renderer/components/layout/Column.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/Column.d.mts +0 -14
- package/dist/react-renderer/components/layout/Column.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/Column.mjs +0 -42
- package/dist/react-renderer/components/layout/Column.mjs.map +0 -1
- package/dist/react-renderer/components/layout/List.cjs +0 -41
- package/dist/react-renderer/components/layout/List.cjs.map +0 -1
- package/dist/react-renderer/components/layout/List.d.cts +0 -14
- package/dist/react-renderer/components/layout/List.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/List.d.mts +0 -14
- package/dist/react-renderer/components/layout/List.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/List.mjs +0 -40
- package/dist/react-renderer/components/layout/List.mjs.map +0 -1
- package/dist/react-renderer/components/layout/Modal.cjs +0 -92
- package/dist/react-renderer/components/layout/Modal.cjs.map +0 -1
- package/dist/react-renderer/components/layout/Modal.d.cts +0 -19
- package/dist/react-renderer/components/layout/Modal.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/Modal.d.mts +0 -19
- package/dist/react-renderer/components/layout/Modal.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/Modal.mjs +0 -91
- package/dist/react-renderer/components/layout/Modal.mjs.map +0 -1
- package/dist/react-renderer/components/layout/Row.cjs +0 -43
- package/dist/react-renderer/components/layout/Row.cjs.map +0 -1
- package/dist/react-renderer/components/layout/Row.d.cts +0 -14
- package/dist/react-renderer/components/layout/Row.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/Row.d.mts +0 -14
- package/dist/react-renderer/components/layout/Row.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/Row.mjs +0 -42
- package/dist/react-renderer/components/layout/Row.mjs.map +0 -1
- package/dist/react-renderer/components/layout/Tabs.cjs +0 -47
- package/dist/react-renderer/components/layout/Tabs.cjs.map +0 -1
- package/dist/react-renderer/components/layout/Tabs.d.cts +0 -12
- package/dist/react-renderer/components/layout/Tabs.d.cts.map +0 -1
- package/dist/react-renderer/components/layout/Tabs.d.mts +0 -12
- package/dist/react-renderer/components/layout/Tabs.d.mts.map +0 -1
- package/dist/react-renderer/components/layout/Tabs.mjs +0 -46
- package/dist/react-renderer/components/layout/Tabs.mjs.map +0 -1
- package/dist/react-renderer/core/A2UIViewer.cjs +0 -11
- package/dist/react-renderer/core/A2UIViewer.d.cts +0 -16
- package/dist/react-renderer/core/A2UIViewer.d.cts.map +0 -1
- package/dist/react-renderer/core/A2UIViewer.d.mts +0 -16
- package/dist/react-renderer/core/A2UIViewer.d.mts.map +0 -1
- package/dist/react-renderer/core/A2UIViewer.mjs +0 -11
- package/dist/react-renderer/core/ComponentNode.cjs +0 -53
- package/dist/react-renderer/core/ComponentNode.cjs.map +0 -1
- package/dist/react-renderer/core/ComponentNode.d.cts +0 -29
- package/dist/react-renderer/core/ComponentNode.d.cts.map +0 -1
- package/dist/react-renderer/core/ComponentNode.d.mts +0 -29
- package/dist/react-renderer/core/ComponentNode.d.mts.map +0 -1
- package/dist/react-renderer/core/ComponentNode.mjs +0 -52
- package/dist/react-renderer/core/ComponentNode.mjs.map +0 -1
- package/dist/react-renderer/hooks/useA2UIComponent.cjs +0 -173
- package/dist/react-renderer/hooks/useA2UIComponent.cjs.map +0 -1
- package/dist/react-renderer/hooks/useA2UIComponent.d.cts +0 -56
- package/dist/react-renderer/hooks/useA2UIComponent.d.cts.map +0 -1
- package/dist/react-renderer/hooks/useA2UIComponent.d.mts +0 -56
- package/dist/react-renderer/hooks/useA2UIComponent.d.mts.map +0 -1
- package/dist/react-renderer/hooks/useA2UIComponent.mjs +0 -172
- package/dist/react-renderer/hooks/useA2UIComponent.mjs.map +0 -1
- package/dist/react-renderer/registry/ComponentRegistry.cjs +0 -114
- package/dist/react-renderer/registry/ComponentRegistry.cjs.map +0 -1
- package/dist/react-renderer/registry/ComponentRegistry.d.cts +0 -82
- package/dist/react-renderer/registry/ComponentRegistry.d.cts.map +0 -1
- package/dist/react-renderer/registry/ComponentRegistry.d.mts +0 -82
- package/dist/react-renderer/registry/ComponentRegistry.d.mts.map +0 -1
- package/dist/react-renderer/registry/ComponentRegistry.mjs +0 -113
- package/dist/react-renderer/registry/ComponentRegistry.mjs.map +0 -1
- package/dist/react-renderer/registry/defaultCatalog.cjs +0 -58
- package/dist/react-renderer/registry/defaultCatalog.cjs.map +0 -1
- package/dist/react-renderer/registry/defaultCatalog.d.cts +0 -17
- package/dist/react-renderer/registry/defaultCatalog.d.cts.map +0 -1
- package/dist/react-renderer/registry/defaultCatalog.d.mts +0 -17
- package/dist/react-renderer/registry/defaultCatalog.d.mts.map +0 -1
- package/dist/react-renderer/registry/defaultCatalog.mjs +0 -57
- package/dist/react-renderer/registry/defaultCatalog.mjs.map +0 -1
- package/dist/react-renderer/styles/reset.cjs +0 -29
- package/dist/react-renderer/styles/reset.cjs.map +0 -1
- package/dist/react-renderer/styles/reset.mjs +0 -28
- package/dist/react-renderer/styles/reset.mjs.map +0 -1
- package/dist/react-renderer/theme/litTheme.cjs +0 -386
- package/dist/react-renderer/theme/litTheme.cjs.map +0 -1
- package/dist/react-renderer/theme/litTheme.d.cts +0 -12
- package/dist/react-renderer/theme/litTheme.d.cts.map +0 -1
- package/dist/react-renderer/theme/litTheme.d.mts +0 -12
- package/dist/react-renderer/theme/litTheme.d.mts.map +0 -1
- package/dist/react-renderer/theme/litTheme.mjs +0 -384
- package/dist/react-renderer/theme/litTheme.mjs.map +0 -1
- package/dist/react-renderer/theme/utils.cjs +0 -41
- package/dist/react-renderer/theme/utils.cjs.map +0 -1
- package/dist/react-renderer/theme/utils.d.cts +0 -26
- package/dist/react-renderer/theme/utils.d.cts.map +0 -1
- package/dist/react-renderer/theme/utils.d.mts +0 -26
- package/dist/react-renderer/theme/utils.d.mts.map +0 -1
- package/dist/react-renderer/theme/utils.mjs +0 -39
- package/dist/react-renderer/theme/utils.mjs.map +0 -1
- package/dist/theme/viewer-theme.cjs +0 -395
- package/dist/theme/viewer-theme.cjs.map +0 -1
- package/dist/theme/viewer-theme.d.cts +0 -7
- package/dist/theme/viewer-theme.d.cts.map +0 -1
- package/dist/theme/viewer-theme.d.mts +0 -7
- package/dist/theme/viewer-theme.d.mts.map +0 -1
- package/dist/theme/viewer-theme.mjs +0 -394
- package/dist/theme/viewer-theme.mjs.map +0 -1
package/dist/A2UIViewer.mjs
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { A2UIProvider, useA2UIActions } from "./react-renderer/core/A2UIProvider.mjs";
|
|
4
|
-
import A2UIRenderer from "./react-renderer/core/A2UIRenderer.mjs";
|
|
5
|
-
import { initializeDefaultCatalog } from "./react-renderer/registry/defaultCatalog.mjs";
|
|
6
|
-
import { injectStyles } from "./react-renderer/styles/index.mjs";
|
|
7
|
-
import { theme } from "./theme/viewer-theme.mjs";
|
|
8
|
-
import React, { useEffect, useId, useMemo, useRef } from "react";
|
|
9
|
-
import { jsx } from "react/jsx-runtime";
|
|
10
|
-
|
|
11
|
-
//#region src/A2UIViewer.tsx
|
|
12
|
-
let initialized = false;
|
|
13
|
-
function ensureInitialized() {
|
|
14
|
-
if (!initialized) {
|
|
15
|
-
initializeDefaultCatalog();
|
|
16
|
-
injectStyles();
|
|
17
|
-
initialized = true;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* A2UIViewer renders an A2UI component tree from a JSON definition and data.
|
|
22
|
-
* It re-renders cleanly when props change, discarding previous state.
|
|
23
|
-
*/
|
|
24
|
-
function A2UIViewer({ root, components, data, onAction, styles, className }) {
|
|
25
|
-
ensureInitialized();
|
|
26
|
-
const baseId = useId();
|
|
27
|
-
const surfaceId = useMemo(() => {
|
|
28
|
-
const definitionKey = `${root}-${JSON.stringify(components)}`;
|
|
29
|
-
let hash = 0;
|
|
30
|
-
for (let i = 0; i < definitionKey.length; i++) {
|
|
31
|
-
const char = definitionKey.charCodeAt(i);
|
|
32
|
-
hash = (hash << 5) - hash + char;
|
|
33
|
-
hash = hash & hash;
|
|
34
|
-
}
|
|
35
|
-
return `surface${baseId.replace(/:/g, "-")}${hash}`;
|
|
36
|
-
}, [
|
|
37
|
-
baseId,
|
|
38
|
-
root,
|
|
39
|
-
components
|
|
40
|
-
]);
|
|
41
|
-
const handleAction = useMemo(() => {
|
|
42
|
-
if (!onAction) return void 0;
|
|
43
|
-
return (message) => {
|
|
44
|
-
const userAction = message.userAction;
|
|
45
|
-
if (userAction) onAction({
|
|
46
|
-
actionName: userAction.name,
|
|
47
|
-
sourceComponentId: userAction.sourceComponentId,
|
|
48
|
-
timestamp: userAction.timestamp,
|
|
49
|
-
context: userAction.context ?? {}
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
}, [onAction]);
|
|
53
|
-
if (!components || components.length === 0) return /* @__PURE__ */ jsx("div", {
|
|
54
|
-
className,
|
|
55
|
-
style: {
|
|
56
|
-
padding: 16,
|
|
57
|
-
color: "#666",
|
|
58
|
-
fontFamily: "system-ui"
|
|
59
|
-
},
|
|
60
|
-
children: "No content to display"
|
|
61
|
-
});
|
|
62
|
-
return /* @__PURE__ */ jsx(A2UIProvider, {
|
|
63
|
-
onAction: handleAction,
|
|
64
|
-
theme,
|
|
65
|
-
children: /* @__PURE__ */ jsx(A2UIViewerInner, {
|
|
66
|
-
surfaceId,
|
|
67
|
-
root,
|
|
68
|
-
components,
|
|
69
|
-
data: data ?? {},
|
|
70
|
-
styles,
|
|
71
|
-
className
|
|
72
|
-
})
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Inner component that processes messages within the provider context.
|
|
77
|
-
*/
|
|
78
|
-
function A2UIViewerInner({ surfaceId, root, components, data, styles, className }) {
|
|
79
|
-
const { processMessages } = useA2UIActions();
|
|
80
|
-
const lastProcessedRef = useRef("");
|
|
81
|
-
useEffect(() => {
|
|
82
|
-
const key = `${surfaceId}-${JSON.stringify(components)}-${JSON.stringify(data)}`;
|
|
83
|
-
if (key === lastProcessedRef.current) return;
|
|
84
|
-
lastProcessedRef.current = key;
|
|
85
|
-
const messages = [{ beginRendering: {
|
|
86
|
-
surfaceId,
|
|
87
|
-
root,
|
|
88
|
-
styles: styles ?? {}
|
|
89
|
-
} }, { surfaceUpdate: {
|
|
90
|
-
surfaceId,
|
|
91
|
-
components
|
|
92
|
-
} }];
|
|
93
|
-
if (data && Object.keys(data).length > 0) {
|
|
94
|
-
const contents = objectToValueMaps(data);
|
|
95
|
-
if (contents.length > 0) messages.push({ dataModelUpdate: {
|
|
96
|
-
surfaceId,
|
|
97
|
-
path: "/",
|
|
98
|
-
contents
|
|
99
|
-
} });
|
|
100
|
-
}
|
|
101
|
-
processMessages(messages);
|
|
102
|
-
}, [
|
|
103
|
-
processMessages,
|
|
104
|
-
surfaceId,
|
|
105
|
-
root,
|
|
106
|
-
components,
|
|
107
|
-
data,
|
|
108
|
-
styles
|
|
109
|
-
]);
|
|
110
|
-
return /* @__PURE__ */ jsx("div", {
|
|
111
|
-
className,
|
|
112
|
-
children: /* @__PURE__ */ jsx(A2UIRenderer, { surfaceId })
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Converts a nested JavaScript object to the ValueMap[] format
|
|
117
|
-
* expected by A2UI's dataModelUpdate message.
|
|
118
|
-
*/
|
|
119
|
-
function objectToValueMaps(obj) {
|
|
120
|
-
return Object.entries(obj).map(([key, value]) => valueToValueMap(key, value));
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Converts a single key-value pair to a ValueMap.
|
|
124
|
-
*/
|
|
125
|
-
function valueToValueMap(key, value) {
|
|
126
|
-
if (typeof value === "string") return {
|
|
127
|
-
key,
|
|
128
|
-
valueString: value
|
|
129
|
-
};
|
|
130
|
-
if (typeof value === "number") return {
|
|
131
|
-
key,
|
|
132
|
-
valueNumber: value
|
|
133
|
-
};
|
|
134
|
-
if (typeof value === "boolean") return {
|
|
135
|
-
key,
|
|
136
|
-
valueBoolean: value
|
|
137
|
-
};
|
|
138
|
-
if (value === null || value === void 0) return { key };
|
|
139
|
-
if (Array.isArray(value)) return {
|
|
140
|
-
key,
|
|
141
|
-
valueMap: value.map((item, index) => valueToValueMap(String(index), item))
|
|
142
|
-
};
|
|
143
|
-
if (typeof value === "object") return {
|
|
144
|
-
key,
|
|
145
|
-
valueMap: objectToValueMaps(value)
|
|
146
|
-
};
|
|
147
|
-
return { key };
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
//#endregion
|
|
151
|
-
export { A2UIViewer };
|
|
152
|
-
//# sourceMappingURL=A2UIViewer.mjs.map
|
package/dist/A2UIViewer.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"A2UIViewer.mjs","names":["viewerTheme"],"sources":["../src/A2UIViewer.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useId, useMemo, useEffect, useRef } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport { v0_8 } from \"@a2ui/lit\";\nimport {\n A2UIProvider,\n useA2UIActions,\n} from \"./react-renderer/core/A2UIProvider\";\nimport { A2UIRenderer } from \"./react-renderer/core/A2UIRenderer\";\nimport { initializeDefaultCatalog } from \"./react-renderer/registry/defaultCatalog\";\nimport { litTheme } from \"./react-renderer/theme/litTheme\";\nimport { injectStyles } from \"./react-renderer/styles\";\nimport { theme as viewerTheme } from \"./theme/viewer-theme.js\";\n\n// Re-export types that consumers may need\nexport interface ComponentInstance {\n id: string;\n component: Record<string, unknown>;\n}\n\nexport interface A2UIActionEvent {\n actionName: string;\n sourceComponentId: string;\n timestamp: string;\n context: Record<string, unknown>;\n}\n\nexport interface A2UIViewerProps {\n /** ID of the root component to render */\n root: string;\n /** Component definitions - array of ComponentInstance */\n components: v0_8.Types.ComponentInstance[];\n /** Data model - nested object, e.g. { user: { name: \"John\" }, items: [\"a\", \"b\"] } */\n data?: Record<string, unknown>;\n /** Called when user triggers an action (button click, etc.) */\n onAction?: (action: A2UIActionEvent) => void;\n /** Surface styles (primaryColor, font, logoUrl) */\n styles?: Record<string, string>;\n /** Optional className for the container */\n className?: string;\n}\n\n// Initialize the React renderer's component catalog and styles once\nlet initialized = false;\nfunction ensureInitialized() {\n if (!initialized) {\n initializeDefaultCatalog();\n injectStyles();\n initialized = true;\n }\n}\n\n/**\n * A2UIViewer renders an A2UI component tree from a JSON definition and data.\n * It re-renders cleanly when props change, discarding previous state.\n */\nexport function A2UIViewer({\n root,\n components,\n data,\n onAction,\n styles,\n className,\n}: A2UIViewerProps): React.JSX.Element {\n ensureInitialized();\n\n // Use React's useId for SSR-safe base ID\n const baseId = useId();\n\n // Generate a stable surfaceId that changes when definition changes\n const surfaceId = useMemo(() => {\n const definitionKey = `${root}-${JSON.stringify(components)}`;\n let hash = 0;\n for (let i = 0; i < definitionKey.length; i++) {\n const char = definitionKey.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return `surface${baseId.replace(/:/g, \"-\")}${hash}`;\n }, [baseId, root, components]);\n\n // Convert onAction callback to internal format\n const handleAction = useMemo(() => {\n if (!onAction) return undefined;\n\n return (message: Types.A2UIClientEventMessage) => {\n const userAction = message.userAction;\n if (userAction) {\n onAction({\n actionName: userAction.name,\n sourceComponentId: userAction.sourceComponentId,\n timestamp: userAction.timestamp,\n context: userAction.context ?? {},\n });\n }\n };\n }, [onAction]);\n\n // Show placeholder if no components provided\n if (!components || components.length === 0) {\n return (\n <div\n className={className}\n style={{ padding: 16, color: \"#666\", fontFamily: \"system-ui\" }}\n >\n No content to display\n </div>\n );\n }\n\n return (\n <A2UIProvider onAction={handleAction} theme={viewerTheme}>\n <A2UIViewerInner\n surfaceId={surfaceId}\n root={root}\n components={components}\n data={data ?? {}}\n styles={styles}\n className={className}\n />\n </A2UIProvider>\n );\n}\n\n/**\n * Inner component that processes messages within the provider context.\n */\nfunction A2UIViewerInner({\n surfaceId,\n root,\n components,\n data,\n styles,\n className,\n}: {\n surfaceId: string;\n root: string;\n components: v0_8.Types.ComponentInstance[];\n data: Record<string, unknown>;\n styles?: Record<string, string>;\n className?: string;\n}) {\n const { processMessages } = useA2UIActions();\n const lastProcessedRef = useRef<string>(\"\");\n\n // Process messages when props change\n useEffect(() => {\n const key = `${surfaceId}-${JSON.stringify(components)}-${JSON.stringify(data)}`;\n if (key === lastProcessedRef.current) return;\n lastProcessedRef.current = key;\n\n const messages: Types.ServerToClientMessage[] = [\n { beginRendering: { surfaceId, root, styles: styles ?? {} } },\n { surfaceUpdate: { surfaceId, components } },\n ];\n\n // Add data model updates\n if (data && Object.keys(data).length > 0) {\n const contents = objectToValueMaps(data);\n if (contents.length > 0) {\n messages.push({\n dataModelUpdate: { surfaceId, path: \"/\", contents },\n });\n }\n }\n\n processMessages(messages);\n }, [processMessages, surfaceId, root, components, data, styles]);\n\n return (\n <div className={className}>\n <A2UIRenderer surfaceId={surfaceId} />\n </div>\n );\n}\n\n/**\n * Converts a nested JavaScript object to the ValueMap[] format\n * expected by A2UI's dataModelUpdate message.\n */\nfunction objectToValueMaps(obj: Record<string, unknown>): Types.ValueMap[] {\n return Object.entries(obj).map(([key, value]) => valueToValueMap(key, value));\n}\n\n/**\n * Converts a single key-value pair to a ValueMap.\n */\nfunction valueToValueMap(key: string, value: unknown): Types.ValueMap {\n if (typeof value === \"string\") {\n return { key, valueString: value };\n }\n if (typeof value === \"number\") {\n return { key, valueNumber: value };\n }\n if (typeof value === \"boolean\") {\n return { key, valueBoolean: value };\n }\n if (value === null || value === undefined) {\n return { key };\n }\n if (Array.isArray(value)) {\n const valueMap = value.map((item, index) =>\n valueToValueMap(String(index), item),\n );\n return { key, valueMap };\n }\n if (typeof value === \"object\") {\n const valueMap = objectToValueMaps(value as Record<string, unknown>);\n return { key, valueMap };\n }\n return { key };\n}\n"],"mappings":";;;;;;;;;;;AA4CA,IAAI,cAAc;AAClB,SAAS,oBAAoB;AAC3B,KAAI,CAAC,aAAa;AAChB,4BAA0B;AAC1B,gBAAc;AACd,gBAAc;;;;;;;AAQlB,SAAgB,WAAW,EACzB,MACA,YACA,MACA,UACA,QACA,aACqC;AACrC,oBAAmB;CAGnB,MAAM,SAAS,OAAO;CAGtB,MAAM,YAAY,cAAc;EAC9B,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,UAAU,WAAW;EAC3D,IAAI,OAAO;AACX,OAAK,IAAI,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;GAC7C,MAAM,OAAO,cAAc,WAAW,EAAE;AACxC,WAAQ,QAAQ,KAAK,OAAO;AAC5B,UAAO,OAAO;;AAEhB,SAAO,UAAU,OAAO,QAAQ,MAAM,IAAI,GAAG;IAC5C;EAAC;EAAQ;EAAM;EAAW,CAAC;CAG9B,MAAM,eAAe,cAAc;AACjC,MAAI,CAAC,SAAU,QAAO;AAEtB,UAAQ,YAA0C;GAChD,MAAM,aAAa,QAAQ;AAC3B,OAAI,WACF,UAAS;IACP,YAAY,WAAW;IACvB,mBAAmB,WAAW;IAC9B,WAAW,WAAW;IACtB,SAAS,WAAW,WAAW,EAAE;IAClC,CAAC;;IAGL,CAAC,SAAS,CAAC;AAGd,KAAI,CAAC,cAAc,WAAW,WAAW,EACvC,QACE,oBAAC;EACY;EACX,OAAO;GAAE,SAAS;GAAI,OAAO;GAAQ,YAAY;GAAa;YAC/D;GAEK;AAIV,QACE,oBAAC;EAAa,UAAU;EAAqBA;YAC3C,oBAAC;GACY;GACL;GACM;GACZ,MAAM,QAAQ,EAAE;GACR;GACG;IACX;GACW;;;;;AAOnB,SAAS,gBAAgB,EACvB,WACA,MACA,YACA,MACA,QACA,aAQC;CACD,MAAM,EAAE,oBAAoB,gBAAgB;CAC5C,MAAM,mBAAmB,OAAe,GAAG;AAG3C,iBAAgB;EACd,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,UAAU,WAAW,CAAC,GAAG,KAAK,UAAU,KAAK;AAC9E,MAAI,QAAQ,iBAAiB,QAAS;AACtC,mBAAiB,UAAU;EAE3B,MAAM,WAA0C,CAC9C,EAAE,gBAAgB;GAAE;GAAW;GAAM,QAAQ,UAAU,EAAE;GAAE,EAAE,EAC7D,EAAE,eAAe;GAAE;GAAW;GAAY,EAAE,CAC7C;AAGD,MAAI,QAAQ,OAAO,KAAK,KAAK,CAAC,SAAS,GAAG;GACxC,MAAM,WAAW,kBAAkB,KAAK;AACxC,OAAI,SAAS,SAAS,EACpB,UAAS,KAAK,EACZ,iBAAiB;IAAE;IAAW,MAAM;IAAK;IAAU,EACpD,CAAC;;AAIN,kBAAgB,SAAS;IACxB;EAAC;EAAiB;EAAW;EAAM;EAAY;EAAM;EAAO,CAAC;AAEhE,QACE,oBAAC;EAAe;YACd,oBAAC,gBAAwB,YAAa;GAClC;;;;;;AAQV,SAAS,kBAAkB,KAAgD;AACzE,QAAO,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,gBAAgB,KAAK,MAAM,CAAC;;;;;AAM/E,SAAS,gBAAgB,KAAa,OAAgC;AACpE,KAAI,OAAO,UAAU,SACnB,QAAO;EAAE;EAAK,aAAa;EAAO;AAEpC,KAAI,OAAO,UAAU,SACnB,QAAO;EAAE;EAAK,aAAa;EAAO;AAEpC,KAAI,OAAO,UAAU,UACnB,QAAO;EAAE;EAAK,cAAc;EAAO;AAErC,KAAI,UAAU,QAAQ,UAAU,OAC9B,QAAO,EAAE,KAAK;AAEhB,KAAI,MAAM,QAAQ,MAAM,CAItB,QAAO;EAAE;EAAK,UAHG,MAAM,KAAK,MAAM,UAChC,gBAAgB,OAAO,MAAM,EAAE,KAAK,CACrC;EACuB;AAE1B,KAAI,OAAO,UAAU,SAEnB,QAAO;EAAE;EAAK,UADG,kBAAkB,MAAiC;EAC5C;AAE1B,QAAO,EAAE,KAAK"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
const require_utils = require('../../theme/utils.cjs');
|
|
3
|
-
require('../../lib/utils.cjs');
|
|
4
|
-
const require_useA2UIComponent = require('../../hooks/useA2UIComponent.cjs');
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
|
|
8
|
-
//#region src/react-renderer/components/content/AudioPlayer.tsx
|
|
9
|
-
/**
|
|
10
|
-
* AudioPlayer component - renders an audio player with optional description.
|
|
11
|
-
*/
|
|
12
|
-
const AudioPlayer = (0, react.memo)(function AudioPlayer({ node, surfaceId }) {
|
|
13
|
-
const { theme, resolveString } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
14
|
-
const props = node.properties;
|
|
15
|
-
const url = resolveString(props.url);
|
|
16
|
-
const description = resolveString(props.description ?? null);
|
|
17
|
-
if (!url) return null;
|
|
18
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
19
|
-
className: "a2ui-audio",
|
|
20
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
21
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
22
|
-
className: require_utils.classMapToString(theme.components.AudioPlayer),
|
|
23
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.AudioPlayer),
|
|
24
|
-
children: [description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: description }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("audio", {
|
|
25
|
-
src: url,
|
|
26
|
-
controls: true
|
|
27
|
-
})]
|
|
28
|
-
})
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
//#endregion
|
|
33
|
-
exports.default = AudioPlayer;
|
|
34
|
-
//# sourceMappingURL=AudioPlayer.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.cjs","names":["useA2UIComponent","classMapToString","stylesToObject"],"sources":["../../../../src/react-renderer/components/content/AudioPlayer.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * AudioPlayer component - renders an audio player with optional description.\n */\nexport const AudioPlayer = memo(function AudioPlayer({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.AudioPlayerNode>) {\n const { theme, resolveString } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n const url = resolveString(props.url);\n const description = resolveString(props.description ?? null);\n\n if (!url) {\n return null;\n }\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-audio\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.AudioPlayer)}\n style={stylesToObject(theme.additionalStyles?.AudioPlayer)}\n >\n {description && <p>{description}</p>}\n <audio src={url} controls />\n </section>\n </div>\n );\n});\n\nexport default AudioPlayer;\n"],"mappings":";;;;;;;;;;;AASA,MAAa,8BAAmB,SAAS,YAAY,EACnD,MACA,aAC4C;CAC5C,MAAM,EAAE,OAAO,kBAAkBA,0CAAiB,MAAM,UAAU;CAClE,MAAM,QAAQ,KAAK;CAEnB,MAAM,MAAM,cAAc,MAAM,IAAI;CACpC,MAAM,cAAc,cAAc,MAAM,eAAe,KAAK;AAE5D,KAAI,CAAC,IACH,QAAO;AAST,QACE,2CAAC;EAAI,WAAU;EAAa,OAL5B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,4CAAC;GACC,WAAWC,+BAAiB,MAAM,WAAW,YAAY;GACzD,OAAOC,6BAAe,MAAM,kBAAkB,YAAY;cAEzD,eAAe,2CAAC,iBAAG,cAAgB,EACpC,2CAAC;IAAM,KAAK;IAAK;KAAW;IACpB;GACN;EAER"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.cjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/AudioPlayer.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* AudioPlayer component - renders an audio player with optional description.
|
|
8
|
-
*/
|
|
9
|
-
declare const AudioPlayer: react.NamedExoticComponent<A2UIComponentProps<Types.AudioPlayerNode>>;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { AudioPlayer };
|
|
12
|
-
//# sourceMappingURL=AudioPlayer.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.d.cts","names":[],"sources":["../../../../src/react-renderer/components/content/AudioPlayer.tsx"],"mappings":";;;;;;;;cASa,WAAA,EAAW,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,eAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.mjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/AudioPlayer.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* AudioPlayer component - renders an audio player with optional description.
|
|
8
|
-
*/
|
|
9
|
-
declare const AudioPlayer: react.NamedExoticComponent<A2UIComponentProps<Types.AudioPlayerNode>>;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { AudioPlayer };
|
|
12
|
-
//# sourceMappingURL=AudioPlayer.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.d.mts","names":[],"sources":["../../../../src/react-renderer/components/content/AudioPlayer.tsx"],"mappings":";;;;;;;;cASa,WAAA,EAAW,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,eAAA"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { classMapToString, stylesToObject } from "../../theme/utils.mjs";
|
|
2
|
-
import "../../lib/utils.mjs";
|
|
3
|
-
import { useA2UIComponent } from "../../hooks/useA2UIComponent.mjs";
|
|
4
|
-
import { memo } from "react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/content/AudioPlayer.tsx
|
|
8
|
-
/**
|
|
9
|
-
* AudioPlayer component - renders an audio player with optional description.
|
|
10
|
-
*/
|
|
11
|
-
const AudioPlayer = memo(function AudioPlayer({ node, surfaceId }) {
|
|
12
|
-
const { theme, resolveString } = useA2UIComponent(node, surfaceId);
|
|
13
|
-
const props = node.properties;
|
|
14
|
-
const url = resolveString(props.url);
|
|
15
|
-
const description = resolveString(props.description ?? null);
|
|
16
|
-
if (!url) return null;
|
|
17
|
-
return /* @__PURE__ */ jsx("div", {
|
|
18
|
-
className: "a2ui-audio",
|
|
19
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
20
|
-
children: /* @__PURE__ */ jsxs("section", {
|
|
21
|
-
className: classMapToString(theme.components.AudioPlayer),
|
|
22
|
-
style: stylesToObject(theme.additionalStyles?.AudioPlayer),
|
|
23
|
-
children: [description && /* @__PURE__ */ jsx("p", { children: description }), /* @__PURE__ */ jsx("audio", {
|
|
24
|
-
src: url,
|
|
25
|
-
controls: true
|
|
26
|
-
})]
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
//#endregion
|
|
32
|
-
export { AudioPlayer as default };
|
|
33
|
-
//# sourceMappingURL=AudioPlayer.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.mjs","names":[],"sources":["../../../../src/react-renderer/components/content/AudioPlayer.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * AudioPlayer component - renders an audio player with optional description.\n */\nexport const AudioPlayer = memo(function AudioPlayer({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.AudioPlayerNode>) {\n const { theme, resolveString } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n const url = resolveString(props.url);\n const description = resolveString(props.description ?? null);\n\n if (!url) {\n return null;\n }\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-audio\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.AudioPlayer)}\n style={stylesToObject(theme.additionalStyles?.AudioPlayer)}\n >\n {description && <p>{description}</p>}\n <audio src={url} controls />\n </section>\n </div>\n );\n});\n\nexport default AudioPlayer;\n"],"mappings":";;;;;;;;;;AASA,MAAa,cAAc,KAAK,SAAS,YAAY,EACnD,MACA,aAC4C;CAC5C,MAAM,EAAE,OAAO,kBAAkB,iBAAiB,MAAM,UAAU;CAClE,MAAM,QAAQ,KAAK;CAEnB,MAAM,MAAM,cAAc,MAAM,IAAI;CACpC,MAAM,cAAc,cAAc,MAAM,eAAe,KAAK;AAE5D,KAAI,CAAC,IACH,QAAO;AAST,QACE,oBAAC;EAAI,WAAU;EAAa,OAL5B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,qBAAC;GACC,WAAW,iBAAiB,MAAM,WAAW,YAAY;GACzD,OAAO,eAAe,MAAM,kBAAkB,YAAY;cAEzD,eAAe,oBAAC,iBAAG,cAAgB,EACpC,oBAAC;IAAM,KAAK;IAAK;KAAW;IACpB;GACN;EAER"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
const require_utils = require('../../theme/utils.cjs');
|
|
3
|
-
require('../../lib/utils.cjs');
|
|
4
|
-
const require_useA2UIComponent = require('../../hooks/useA2UIComponent.cjs');
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
|
|
8
|
-
//#region src/react-renderer/components/content/Divider.tsx
|
|
9
|
-
/**
|
|
10
|
-
* Divider component - renders a visual separator line.
|
|
11
|
-
*
|
|
12
|
-
* Structure mirrors Lit's Divider component:
|
|
13
|
-
* <div class="a2ui-divider"> ← :host equivalent
|
|
14
|
-
* <hr class="..."> ← internal element
|
|
15
|
-
* </div>
|
|
16
|
-
*/
|
|
17
|
-
const Divider = (0, react.memo)(function Divider({ node, surfaceId }) {
|
|
18
|
-
const { theme } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
19
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
20
|
-
className: "a2ui-divider",
|
|
21
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
22
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
|
|
23
|
-
className: require_utils.classMapToString(theme.components.Divider),
|
|
24
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.Divider)
|
|
25
|
-
})
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
//#endregion
|
|
30
|
-
exports.default = Divider;
|
|
31
|
-
//# sourceMappingURL=Divider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.cjs","names":["useA2UIComponent","classMapToString","stylesToObject"],"sources":["../../../../src/react-renderer/components/content/Divider.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * Divider component - renders a visual separator line.\n *\n * Structure mirrors Lit's Divider component:\n * <div class=\"a2ui-divider\"> ← :host equivalent\n * <hr class=\"...\"> ← internal element\n * </div>\n */\nexport const Divider = memo(function Divider({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.DividerNode>) {\n const { theme } = useA2UIComponent(node, surfaceId);\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-divider\" style={hostStyle}>\n <hr\n className={classMapToString(theme.components.Divider)}\n style={stylesToObject(theme.additionalStyles?.Divider)}\n />\n </div>\n );\n});\n\nexport default Divider;\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAa,0BAAe,SAAS,QAAQ,EAC3C,MACA,aACwC;CACxC,MAAM,EAAE,UAAUA,0CAAiB,MAAM,UAAU;AAQnD,QACE,2CAAC;EAAI,WAAU;EAAe,OAL9B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,2CAAC;GACC,WAAWC,+BAAiB,MAAM,WAAW,QAAQ;GACrD,OAAOC,6BAAe,MAAM,kBAAkB,QAAQ;IACtD;GACE;EAER"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.cjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/Divider.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Divider component - renders a visual separator line.
|
|
8
|
-
*
|
|
9
|
-
* Structure mirrors Lit's Divider component:
|
|
10
|
-
* <div class="a2ui-divider"> ← :host equivalent
|
|
11
|
-
* <hr class="..."> ← internal element
|
|
12
|
-
* </div>
|
|
13
|
-
*/
|
|
14
|
-
declare const Divider: react.NamedExoticComponent<A2UIComponentProps<Types.DividerNode>>;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { Divider };
|
|
17
|
-
//# sourceMappingURL=Divider.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.d.cts","names":[],"sources":["../../../../src/react-renderer/components/content/Divider.tsx"],"mappings":";;;;;;;;AAcA;;;;;cAAa,OAAA,EAAO,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,WAAA"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.mjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/Divider.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Divider component - renders a visual separator line.
|
|
8
|
-
*
|
|
9
|
-
* Structure mirrors Lit's Divider component:
|
|
10
|
-
* <div class="a2ui-divider"> ← :host equivalent
|
|
11
|
-
* <hr class="..."> ← internal element
|
|
12
|
-
* </div>
|
|
13
|
-
*/
|
|
14
|
-
declare const Divider: react.NamedExoticComponent<A2UIComponentProps<Types.DividerNode>>;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { Divider };
|
|
17
|
-
//# sourceMappingURL=Divider.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.d.mts","names":[],"sources":["../../../../src/react-renderer/components/content/Divider.tsx"],"mappings":";;;;;;;;AAcA;;;;;cAAa,OAAA,EAAO,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,WAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { classMapToString, stylesToObject } from "../../theme/utils.mjs";
|
|
2
|
-
import "../../lib/utils.mjs";
|
|
3
|
-
import { useA2UIComponent } from "../../hooks/useA2UIComponent.mjs";
|
|
4
|
-
import { memo } from "react";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/content/Divider.tsx
|
|
8
|
-
/**
|
|
9
|
-
* Divider component - renders a visual separator line.
|
|
10
|
-
*
|
|
11
|
-
* Structure mirrors Lit's Divider component:
|
|
12
|
-
* <div class="a2ui-divider"> ← :host equivalent
|
|
13
|
-
* <hr class="..."> ← internal element
|
|
14
|
-
* </div>
|
|
15
|
-
*/
|
|
16
|
-
const Divider = memo(function Divider({ node, surfaceId }) {
|
|
17
|
-
const { theme } = useA2UIComponent(node, surfaceId);
|
|
18
|
-
return /* @__PURE__ */ jsx("div", {
|
|
19
|
-
className: "a2ui-divider",
|
|
20
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
21
|
-
children: /* @__PURE__ */ jsx("hr", {
|
|
22
|
-
className: classMapToString(theme.components.Divider),
|
|
23
|
-
style: stylesToObject(theme.additionalStyles?.Divider)
|
|
24
|
-
})
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
//#endregion
|
|
29
|
-
export { Divider as default };
|
|
30
|
-
//# sourceMappingURL=Divider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.mjs","names":[],"sources":["../../../../src/react-renderer/components/content/Divider.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * Divider component - renders a visual separator line.\n *\n * Structure mirrors Lit's Divider component:\n * <div class=\"a2ui-divider\"> ← :host equivalent\n * <hr class=\"...\"> ← internal element\n * </div>\n */\nexport const Divider = memo(function Divider({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.DividerNode>) {\n const { theme } = useA2UIComponent(node, surfaceId);\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-divider\" style={hostStyle}>\n <hr\n className={classMapToString(theme.components.Divider)}\n style={stylesToObject(theme.additionalStyles?.Divider)}\n />\n </div>\n );\n});\n\nexport default Divider;\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAa,UAAU,KAAK,SAAS,QAAQ,EAC3C,MACA,aACwC;CACxC,MAAM,EAAE,UAAU,iBAAiB,MAAM,UAAU;AAQnD,QACE,oBAAC;EAAI,WAAU;EAAe,OAL9B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,oBAAC;GACC,WAAW,iBAAiB,MAAM,WAAW,QAAQ;GACrD,OAAO,eAAe,MAAM,kBAAkB,QAAQ;IACtD;GACE;EAER"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
const require_utils = require('../../theme/utils.cjs');
|
|
3
|
-
require('../../lib/utils.cjs');
|
|
4
|
-
const require_useA2UIComponent = require('../../hooks/useA2UIComponent.cjs');
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
|
|
8
|
-
//#region src/react-renderer/components/content/Icon.tsx
|
|
9
|
-
/**
|
|
10
|
-
* Convert camelCase to snake_case for Material Symbols font.
|
|
11
|
-
* e.g., "shoppingCart" -> "shopping_cart"
|
|
12
|
-
* This matches the Lit renderer's approach.
|
|
13
|
-
*/
|
|
14
|
-
function toSnakeCase(str) {
|
|
15
|
-
return str.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Icon component - renders an icon using Material Symbols Outlined font.
|
|
19
|
-
*
|
|
20
|
-
* This matches the Lit renderer's approach using the g-icon class with
|
|
21
|
-
* Material Symbols Outlined font.
|
|
22
|
-
*
|
|
23
|
-
* @example Add Material Symbols font to your HTML:
|
|
24
|
-
* ```html
|
|
25
|
-
* <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
const Icon = (0, react.memo)(function Icon({ node, surfaceId }) {
|
|
29
|
-
const { theme, resolveString } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
30
|
-
const props = node.properties;
|
|
31
|
-
const iconName = resolveString(props.name);
|
|
32
|
-
if (!iconName) return null;
|
|
33
|
-
const snakeCaseName = toSnakeCase(iconName);
|
|
34
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
35
|
-
className: "a2ui-icon",
|
|
36
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
37
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
|
|
38
|
-
className: require_utils.classMapToString(theme.components.Icon),
|
|
39
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.Icon),
|
|
40
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
41
|
-
className: "g-icon",
|
|
42
|
-
children: snakeCaseName
|
|
43
|
-
})
|
|
44
|
-
})
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
//#endregion
|
|
49
|
-
exports.default = Icon;
|
|
50
|
-
//# sourceMappingURL=Icon.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.cjs","names":["useA2UIComponent","classMapToString","stylesToObject"],"sources":["../../../../src/react-renderer/components/content/Icon.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * Convert camelCase to snake_case for Material Symbols font.\n * e.g., \"shoppingCart\" -> \"shopping_cart\"\n * This matches the Lit renderer's approach.\n */\nfunction toSnakeCase(str: string): string {\n return str.replace(/([A-Z])/g, \"_$1\").toLowerCase();\n}\n\n/**\n * Icon component - renders an icon using Material Symbols Outlined font.\n *\n * This matches the Lit renderer's approach using the g-icon class with\n * Material Symbols Outlined font.\n *\n * @example Add Material Symbols font to your HTML:\n * ```html\n * <link href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\" rel=\"stylesheet\">\n * ```\n */\nexport const Icon = memo(function Icon({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.IconNode>) {\n const { theme, resolveString } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n const iconName = resolveString(props.name);\n\n if (!iconName) {\n return null;\n }\n\n // Convert camelCase to snake_case for Material Symbols\n const snakeCaseName = toSnakeCase(iconName);\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-icon\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.Icon)}\n style={stylesToObject(theme.additionalStyles?.Icon)}\n >\n <span className=\"g-icon\">{snakeCaseName}</span>\n </section>\n </div>\n );\n});\n\nexport default Icon;\n"],"mappings":";;;;;;;;;;;;;AAWA,SAAS,YAAY,KAAqB;AACxC,QAAO,IAAI,QAAQ,YAAY,MAAM,CAAC,aAAa;;;;;;;;;;;;;AAcrD,MAAa,uBAAY,SAAS,KAAK,EACrC,MACA,aACqC;CACrC,MAAM,EAAE,OAAO,kBAAkBA,0CAAiB,MAAM,UAAU;CAClE,MAAM,QAAQ,KAAK;CAEnB,MAAM,WAAW,cAAc,MAAM,KAAK;AAE1C,KAAI,CAAC,SACH,QAAO;CAIT,MAAM,gBAAgB,YAAY,SAAS;AAQ3C,QACE,2CAAC;EAAI,WAAU;EAAY,OAL3B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,2CAAC;GACC,WAAWC,+BAAiB,MAAM,WAAW,KAAK;GAClD,OAAOC,6BAAe,MAAM,kBAAkB,KAAK;aAEnD,2CAAC;IAAK,WAAU;cAAU;KAAqB;IACvC;GACN;EAER"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.cjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/Icon.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Icon component - renders an icon using Material Symbols Outlined font.
|
|
8
|
-
*
|
|
9
|
-
* This matches the Lit renderer's approach using the g-icon class with
|
|
10
|
-
* Material Symbols Outlined font.
|
|
11
|
-
*
|
|
12
|
-
* @example Add Material Symbols font to your HTML:
|
|
13
|
-
* ```html
|
|
14
|
-
* <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
declare const Icon: react.NamedExoticComponent<A2UIComponentProps<Types.IconNode>>;
|
|
18
|
-
//#endregion
|
|
19
|
-
export { Icon };
|
|
20
|
-
//# sourceMappingURL=Icon.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.cts","names":[],"sources":["../../../../src/react-renderer/components/content/Icon.tsx"],"mappings":";;;;;;;;AA0BA;;;;;;;;cAAa,IAAA,EAAI,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,QAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { A2UIComponentProps } from "../../types.mjs";
|
|
2
|
-
import * as react from "react";
|
|
3
|
-
import { Types } from "@a2ui/lit/0.8";
|
|
4
|
-
|
|
5
|
-
//#region src/react-renderer/components/content/Icon.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Icon component - renders an icon using Material Symbols Outlined font.
|
|
8
|
-
*
|
|
9
|
-
* This matches the Lit renderer's approach using the g-icon class with
|
|
10
|
-
* Material Symbols Outlined font.
|
|
11
|
-
*
|
|
12
|
-
* @example Add Material Symbols font to your HTML:
|
|
13
|
-
* ```html
|
|
14
|
-
* <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
declare const Icon: react.NamedExoticComponent<A2UIComponentProps<Types.IconNode>>;
|
|
18
|
-
//#endregion
|
|
19
|
-
export { Icon };
|
|
20
|
-
//# sourceMappingURL=Icon.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.mts","names":[],"sources":["../../../../src/react-renderer/components/content/Icon.tsx"],"mappings":";;;;;;;;AA0BA;;;;;;;;cAAa,IAAA,EAAI,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,QAAA"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { classMapToString, stylesToObject } from "../../theme/utils.mjs";
|
|
2
|
-
import "../../lib/utils.mjs";
|
|
3
|
-
import { useA2UIComponent } from "../../hooks/useA2UIComponent.mjs";
|
|
4
|
-
import { memo } from "react";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/content/Icon.tsx
|
|
8
|
-
/**
|
|
9
|
-
* Convert camelCase to snake_case for Material Symbols font.
|
|
10
|
-
* e.g., "shoppingCart" -> "shopping_cart"
|
|
11
|
-
* This matches the Lit renderer's approach.
|
|
12
|
-
*/
|
|
13
|
-
function toSnakeCase(str) {
|
|
14
|
-
return str.replace(/([A-Z])/g, "_$1").toLowerCase();
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Icon component - renders an icon using Material Symbols Outlined font.
|
|
18
|
-
*
|
|
19
|
-
* This matches the Lit renderer's approach using the g-icon class with
|
|
20
|
-
* Material Symbols Outlined font.
|
|
21
|
-
*
|
|
22
|
-
* @example Add Material Symbols font to your HTML:
|
|
23
|
-
* ```html
|
|
24
|
-
* <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet">
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
const Icon = memo(function Icon({ node, surfaceId }) {
|
|
28
|
-
const { theme, resolveString } = useA2UIComponent(node, surfaceId);
|
|
29
|
-
const props = node.properties;
|
|
30
|
-
const iconName = resolveString(props.name);
|
|
31
|
-
if (!iconName) return null;
|
|
32
|
-
const snakeCaseName = toSnakeCase(iconName);
|
|
33
|
-
return /* @__PURE__ */ jsx("div", {
|
|
34
|
-
className: "a2ui-icon",
|
|
35
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
36
|
-
children: /* @__PURE__ */ jsx("section", {
|
|
37
|
-
className: classMapToString(theme.components.Icon),
|
|
38
|
-
style: stylesToObject(theme.additionalStyles?.Icon),
|
|
39
|
-
children: /* @__PURE__ */ jsx("span", {
|
|
40
|
-
className: "g-icon",
|
|
41
|
-
children: snakeCaseName
|
|
42
|
-
})
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
//#endregion
|
|
48
|
-
export { Icon as default };
|
|
49
|
-
//# sourceMappingURL=Icon.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.mjs","names":[],"sources":["../../../../src/react-renderer/components/content/Icon.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport { classMapToString, stylesToObject } from \"../../lib/utils\";\n\n/**\n * Convert camelCase to snake_case for Material Symbols font.\n * e.g., \"shoppingCart\" -> \"shopping_cart\"\n * This matches the Lit renderer's approach.\n */\nfunction toSnakeCase(str: string): string {\n return str.replace(/([A-Z])/g, \"_$1\").toLowerCase();\n}\n\n/**\n * Icon component - renders an icon using Material Symbols Outlined font.\n *\n * This matches the Lit renderer's approach using the g-icon class with\n * Material Symbols Outlined font.\n *\n * @example Add Material Symbols font to your HTML:\n * ```html\n * <link href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\" rel=\"stylesheet\">\n * ```\n */\nexport const Icon = memo(function Icon({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.IconNode>) {\n const { theme, resolveString } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n const iconName = resolveString(props.name);\n\n if (!iconName) {\n return null;\n }\n\n // Convert camelCase to snake_case for Material Symbols\n const snakeCaseName = toSnakeCase(iconName);\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-icon\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.Icon)}\n style={stylesToObject(theme.additionalStyles?.Icon)}\n >\n <span className=\"g-icon\">{snakeCaseName}</span>\n </section>\n </div>\n );\n});\n\nexport default Icon;\n"],"mappings":";;;;;;;;;;;;AAWA,SAAS,YAAY,KAAqB;AACxC,QAAO,IAAI,QAAQ,YAAY,MAAM,CAAC,aAAa;;;;;;;;;;;;;AAcrD,MAAa,OAAO,KAAK,SAAS,KAAK,EACrC,MACA,aACqC;CACrC,MAAM,EAAE,OAAO,kBAAkB,iBAAiB,MAAM,UAAU;CAClE,MAAM,QAAQ,KAAK;CAEnB,MAAM,WAAW,cAAc,MAAM,KAAK;AAE1C,KAAI,CAAC,SACH,QAAO;CAIT,MAAM,gBAAgB,YAAY,SAAS;AAQ3C,QACE,oBAAC;EAAI,WAAU;EAAY,OAL3B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,oBAAC;GACC,WAAW,iBAAiB,MAAM,WAAW,KAAK;GAClD,OAAO,eAAe,MAAM,kBAAkB,KAAK;aAEnD,oBAAC;IAAK,WAAU;cAAU;KAAqB;IACvC;GACN;EAER"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
const require_utils = require('../../theme/utils.cjs');
|
|
3
|
-
const require_utils$1 = require('../../lib/utils.cjs');
|
|
4
|
-
const require_useA2UIComponent = require('../../hooks/useA2UIComponent.cjs');
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
|
|
8
|
-
//#region src/react-renderer/components/content/Image.tsx
|
|
9
|
-
/**
|
|
10
|
-
* Image component - renders an image from a URL with optional sizing and fit modes.
|
|
11
|
-
*
|
|
12
|
-
* Supports usageHint values: icon, avatar, smallFeature, mediumFeature, largeFeature, header
|
|
13
|
-
* Supports fit values: contain, cover, fill, none, scale-down (maps to object-fit via CSS variable)
|
|
14
|
-
*/
|
|
15
|
-
const Image = (0, react.memo)(function Image({ node, surfaceId }) {
|
|
16
|
-
const { theme, resolveString } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
17
|
-
const props = node.properties;
|
|
18
|
-
const url = resolveString(props.url)?.replace("//via.placeholder.com/", "//placehold.co/");
|
|
19
|
-
const usageHint = props.usageHint;
|
|
20
|
-
const fit = props.fit ?? "fill";
|
|
21
|
-
const classes = require_utils$1.mergeClassMaps(theme.components.Image.all, usageHint ? theme.components.Image[usageHint] : {});
|
|
22
|
-
const style = {
|
|
23
|
-
...require_utils.stylesToObject(theme.additionalStyles?.Image),
|
|
24
|
-
"--object-fit": fit
|
|
25
|
-
};
|
|
26
|
-
if (!url) return null;
|
|
27
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
28
|
-
className: "a2ui-image",
|
|
29
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
30
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
|
|
31
|
-
className: require_utils.classMapToString(classes),
|
|
32
|
-
style,
|
|
33
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
34
|
-
src: url,
|
|
35
|
-
alt: ""
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
//#endregion
|
|
42
|
-
exports.default = Image;
|
|
43
|
-
//# sourceMappingURL=Image.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Image.cjs","names":["useA2UIComponent","mergeClassMaps","stylesToObject","classMapToString"],"sources":["../../../../src/react-renderer/components/content/Image.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { Types } from \"@a2ui/lit/0.8\";\nimport type { A2UIComponentProps } from \"../../types\";\nimport { useA2UIComponent } from \"../../hooks/useA2UIComponent\";\nimport {\n classMapToString,\n stylesToObject,\n mergeClassMaps,\n} from \"../../lib/utils\";\n\ntype UsageHint =\n | \"icon\"\n | \"avatar\"\n | \"smallFeature\"\n | \"mediumFeature\"\n | \"largeFeature\"\n | \"header\";\ntype FitMode = \"contain\" | \"cover\" | \"fill\" | \"none\" | \"scale-down\";\n\n/**\n * Image component - renders an image from a URL with optional sizing and fit modes.\n *\n * Supports usageHint values: icon, avatar, smallFeature, mediumFeature, largeFeature, header\n * Supports fit values: contain, cover, fill, none, scale-down (maps to object-fit via CSS variable)\n */\nexport const Image = memo(function Image({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.ImageNode>) {\n const { theme, resolveString } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n const rawUrl = resolveString(props.url);\n // Rewrite known-dead placeholder services to working alternatives\n const url = rawUrl?.replace(\"//via.placeholder.com/\", \"//placehold.co/\");\n const usageHint = props.usageHint as UsageHint | undefined;\n const fit = (props.fit as FitMode) ?? \"fill\";\n\n // Get merged classes for section (matches Lit's Styles.merge)\n const classes = mergeClassMaps(\n theme.components.Image.all,\n usageHint ? theme.components.Image[usageHint] : {},\n );\n\n // Build style object with object-fit as CSS variable (matches Lit)\n const style: React.CSSProperties = {\n ...stylesToObject(theme.additionalStyles?.Image),\n \"--object-fit\": fit,\n } as React.CSSProperties;\n\n if (!url) {\n return null;\n }\n\n // Apply --weight CSS variable on root div (:host equivalent) for flex layouts\n const hostStyle: React.CSSProperties =\n node.weight !== undefined\n ? ({ \"--weight\": node.weight } as React.CSSProperties)\n : {};\n\n return (\n <div className=\"a2ui-image\" style={hostStyle}>\n <section className={classMapToString(classes)} style={style}>\n <img src={url} alt=\"\" />\n </section>\n </div>\n );\n});\n\nexport default Image;\n"],"mappings":";;;;;;;;;;;;;;AAyBA,MAAa,wBAAa,SAAS,MAAM,EACvC,MACA,aACsC;CACtC,MAAM,EAAE,OAAO,kBAAkBA,0CAAiB,MAAM,UAAU;CAClE,MAAM,QAAQ,KAAK;CAInB,MAAM,MAFS,cAAc,MAAM,IAAI,EAEnB,QAAQ,0BAA0B,kBAAkB;CACxE,MAAM,YAAY,MAAM;CACxB,MAAM,MAAO,MAAM,OAAmB;CAGtC,MAAM,UAAUC,+BACd,MAAM,WAAW,MAAM,KACvB,YAAY,MAAM,WAAW,MAAM,aAAa,EAAE,CACnD;CAGD,MAAM,QAA6B;EACjC,GAAGC,6BAAe,MAAM,kBAAkB,MAAM;EAChD,gBAAgB;EACjB;AAED,KAAI,CAAC,IACH,QAAO;AAST,QACE,2CAAC;EAAI,WAAU;EAAa,OAL5B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,2CAAC;GAAQ,WAAWC,+BAAiB,QAAQ;GAAS;aACpD,2CAAC;IAAI,KAAK;IAAK,KAAI;KAAK;IAChB;GACN;EAER"}
|