@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
|
@@ -1,53 +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, useCallback, useId } from "react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/interactive/MultipleChoice.tsx
|
|
8
|
-
/**
|
|
9
|
-
* MultipleChoice component - a selection component using a dropdown.
|
|
10
|
-
*
|
|
11
|
-
* Renders a <select> element with options, matching the Lit renderer's behavior.
|
|
12
|
-
* Supports two-way data binding for the selected value.
|
|
13
|
-
*/
|
|
14
|
-
const MultipleChoice = memo(function MultipleChoice({ node, surfaceId }) {
|
|
15
|
-
const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);
|
|
16
|
-
const props = node.properties;
|
|
17
|
-
const id = useId();
|
|
18
|
-
const options = props.options ?? [];
|
|
19
|
-
const selectionsPath = props.selections?.path;
|
|
20
|
-
const description = resolveString(props.description) ?? "Select an item";
|
|
21
|
-
const handleChange = useCallback((e) => {
|
|
22
|
-
if (selectionsPath) setValue(selectionsPath, [e.target.value]);
|
|
23
|
-
}, [selectionsPath, setValue]);
|
|
24
|
-
return /* @__PURE__ */ jsx("div", {
|
|
25
|
-
className: "a2ui-multiplechoice",
|
|
26
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
27
|
-
children: /* @__PURE__ */ jsxs("section", {
|
|
28
|
-
className: classMapToString(theme.components.MultipleChoice.container),
|
|
29
|
-
children: [/* @__PURE__ */ jsx("label", {
|
|
30
|
-
htmlFor: id,
|
|
31
|
-
className: classMapToString(theme.components.MultipleChoice.label),
|
|
32
|
-
children: description
|
|
33
|
-
}), /* @__PURE__ */ jsx("select", {
|
|
34
|
-
name: "data",
|
|
35
|
-
id,
|
|
36
|
-
className: classMapToString(theme.components.MultipleChoice.element),
|
|
37
|
-
style: stylesToObject(theme.additionalStyles?.MultipleChoice),
|
|
38
|
-
onChange: handleChange,
|
|
39
|
-
children: options.map((option) => {
|
|
40
|
-
const label = resolveString(option.label);
|
|
41
|
-
return /* @__PURE__ */ jsx("option", {
|
|
42
|
-
value: option.value,
|
|
43
|
-
children: label
|
|
44
|
-
}, option.value);
|
|
45
|
-
})
|
|
46
|
-
})]
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
//#endregion
|
|
52
|
-
export { MultipleChoice as default };
|
|
53
|
-
//# sourceMappingURL=MultipleChoice.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultipleChoice.mjs","names":[],"sources":["../../../../src/react-renderer/components/interactive/MultipleChoice.tsx"],"sourcesContent":["import { useCallback, useId, 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 * MultipleChoice component - a selection component using a dropdown.\n *\n * Renders a <select> element with options, matching the Lit renderer's behavior.\n * Supports two-way data binding for the selected value.\n */\nexport const MultipleChoice = memo(function MultipleChoice({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.MultipleChoiceNode>) {\n const { theme, resolveString, setValue } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n const id = useId();\n\n const options =\n (props.options as {\n label: { literalString?: string; path?: string };\n value: string;\n }[]) ?? [];\n const selectionsPath = props.selections?.path;\n\n // Access description from props (Lit component supports it)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const description =\n resolveString((props as any).description) ?? \"Select an item\";\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLSelectElement>) => {\n // Two-way binding: update data model with array (matches Lit behavior)\n if (selectionsPath) {\n setValue(selectionsPath, [e.target.value]);\n }\n },\n [selectionsPath, setValue],\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 // Structure mirrors Lit's MultipleChoice component:\n // <div class=\"a2ui-multiplechoice\"> ← :host equivalent\n // <section class=\"...\"> ← container theme classes\n // <label>...</label> ← description label\n // <select>...</select> ← dropdown element\n // </section>\n // </div>\n return (\n <div className=\"a2ui-multiplechoice\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.MultipleChoice.container)}\n >\n <label\n htmlFor={id}\n className={classMapToString(theme.components.MultipleChoice.label)}\n >\n {description}\n </label>\n <select\n name=\"data\"\n id={id}\n className={classMapToString(theme.components.MultipleChoice.element)}\n style={stylesToObject(theme.additionalStyles?.MultipleChoice)}\n onChange={handleChange}\n >\n {options.map((option) => {\n const label = resolveString(option.label);\n return (\n <option key={option.value} value={option.value}>\n {label}\n </option>\n );\n })}\n </select>\n </section>\n </div>\n );\n});\n\nexport default MultipleChoice;\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,iBAAiB,KAAK,SAAS,eAAe,EACzD,MACA,aAC+C;CAC/C,MAAM,EAAE,OAAO,eAAe,aAAa,iBAAiB,MAAM,UAAU;CAC5E,MAAM,QAAQ,KAAK;CACnB,MAAM,KAAK,OAAO;CAElB,MAAM,UACH,MAAM,WAGC,EAAE;CACZ,MAAM,iBAAiB,MAAM,YAAY;CAIzC,MAAM,cACJ,cAAe,MAAc,YAAY,IAAI;CAE/C,MAAM,eAAe,aAClB,MAA4C;AAE3C,MAAI,eACF,UAAS,gBAAgB,CAAC,EAAE,OAAO,MAAM,CAAC;IAG9C,CAAC,gBAAgB,SAAS,CAC3B;AAeD,QACE,oBAAC;EAAI,WAAU;EAAsB,OAZrC,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAWJ,qBAAC;GACC,WAAW,iBAAiB,MAAM,WAAW,eAAe,UAAU;cAEtE,oBAAC;IACC,SAAS;IACT,WAAW,iBAAiB,MAAM,WAAW,eAAe,MAAM;cAEjE;KACK,EACR,oBAAC;IACC,MAAK;IACD;IACJ,WAAW,iBAAiB,MAAM,WAAW,eAAe,QAAQ;IACpE,OAAO,eAAe,MAAM,kBAAkB,eAAe;IAC7D,UAAU;cAET,QAAQ,KAAK,WAAW;KACvB,MAAM,QAAQ,cAAc,OAAO,MAAM;AACzC,YACE,oBAAC;MAA0B,OAAO,OAAO;gBACtC;QADU,OAAO,MAEX;MAEX;KACK;IACD;GACN;EAER"}
|
|
@@ -1,72 +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/interactive/Slider.tsx
|
|
9
|
-
/**
|
|
10
|
-
* Slider component - a numeric value selector with a range.
|
|
11
|
-
*
|
|
12
|
-
* Supports two-way data binding for the value.
|
|
13
|
-
*/
|
|
14
|
-
const Slider = (0, react.memo)(function Slider({ node, surfaceId }) {
|
|
15
|
-
const { theme, resolveNumber, resolveString, setValue, getValue } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
16
|
-
const props = node.properties;
|
|
17
|
-
const id = (0, react.useId)();
|
|
18
|
-
const valuePath = props.value?.path;
|
|
19
|
-
const initialValue = resolveNumber(props.value) ?? 0;
|
|
20
|
-
const minValue = props.minValue ?? 0;
|
|
21
|
-
const maxValue = props.maxValue ?? 0;
|
|
22
|
-
const [value, setLocalValue] = (0, react.useState)(initialValue);
|
|
23
|
-
(0, react.useEffect)(() => {
|
|
24
|
-
if (valuePath) {
|
|
25
|
-
const externalValue = getValue(valuePath);
|
|
26
|
-
if (externalValue !== null && Number(externalValue) !== value) setLocalValue(Number(externalValue));
|
|
27
|
-
}
|
|
28
|
-
}, [valuePath, getValue]);
|
|
29
|
-
(0, react.useEffect)(() => {
|
|
30
|
-
if (props.value?.literalNumber !== void 0) setLocalValue(props.value.literalNumber);
|
|
31
|
-
}, [props.value?.literalNumber]);
|
|
32
|
-
const handleChange = (0, react.useCallback)((e) => {
|
|
33
|
-
const newValue = Number(e.target.value);
|
|
34
|
-
setLocalValue(newValue);
|
|
35
|
-
if (valuePath) setValue(valuePath, newValue);
|
|
36
|
-
}, [valuePath, setValue]);
|
|
37
|
-
const labelValue = props.label;
|
|
38
|
-
const label = labelValue ? resolveString(labelValue) : "";
|
|
39
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
40
|
-
className: "a2ui-slider",
|
|
41
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
42
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
43
|
-
className: require_utils.classMapToString(theme.components.Slider.container),
|
|
44
|
-
children: [
|
|
45
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
46
|
-
htmlFor: id,
|
|
47
|
-
className: require_utils.classMapToString(theme.components.Slider.label),
|
|
48
|
-
children: label
|
|
49
|
-
}),
|
|
50
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
51
|
-
type: "range",
|
|
52
|
-
id,
|
|
53
|
-
name: "data",
|
|
54
|
-
value,
|
|
55
|
-
min: minValue,
|
|
56
|
-
max: maxValue,
|
|
57
|
-
onChange: handleChange,
|
|
58
|
-
className: require_utils.classMapToString(theme.components.Slider.element),
|
|
59
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.Slider)
|
|
60
|
-
}),
|
|
61
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
62
|
-
className: require_utils.classMapToString(theme.components.Slider.label),
|
|
63
|
-
children: value
|
|
64
|
-
})
|
|
65
|
-
]
|
|
66
|
-
})
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
//#endregion
|
|
71
|
-
exports.default = Slider;
|
|
72
|
-
//# sourceMappingURL=Slider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.cjs","names":["useA2UIComponent","classMapToString","stylesToObject"],"sources":["../../../../src/react-renderer/components/interactive/Slider.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, useId, 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 * Slider component - a numeric value selector with a range.\n *\n * Supports two-way data binding for the value.\n */\nexport const Slider = memo(function Slider({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.SliderNode>) {\n const { theme, resolveNumber, resolveString, setValue, getValue } =\n useA2UIComponent(node, surfaceId);\n const props = node.properties;\n const id = useId();\n\n const valuePath = props.value?.path;\n const initialValue = resolveNumber(props.value) ?? 0;\n // Match Lit's default values (minValue=0, maxValue=0)\n const minValue = props.minValue ?? 0;\n const maxValue = props.maxValue ?? 0;\n\n const [value, setLocalValue] = useState(initialValue);\n\n // Sync with external data model changes (path binding)\n useEffect(() => {\n if (valuePath) {\n const externalValue = getValue(valuePath);\n if (externalValue !== null && Number(externalValue) !== value) {\n setLocalValue(Number(externalValue));\n }\n }\n }, [valuePath, getValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Sync when literal value changes from props (server-driven updates via surfaceUpdate)\n useEffect(() => {\n if (props.value?.literalNumber !== undefined) {\n setLocalValue(props.value.literalNumber);\n }\n }, [props.value?.literalNumber]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = Number(e.target.value);\n setLocalValue(newValue);\n\n // Two-way binding: update data model\n if (valuePath) {\n setValue(valuePath, newValue);\n }\n },\n [valuePath, setValue],\n );\n\n // Access label from props if it exists (Lit component supports it but type doesn't define it)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const labelValue = (props as any).label;\n const label = labelValue ? resolveString(labelValue) : \"\";\n\n // Structure mirrors Lit's Slider component:\n // <div class=\"a2ui-slider\"> ← :host equivalent\n // <section class=\"...\"> ← internal element\n // <label>...</label>\n // <input>...</input>\n // <span>value</span>\n // </section>\n // </div>\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-slider\" style={hostStyle}>\n <section className={classMapToString(theme.components.Slider.container)}>\n <label\n htmlFor={id}\n className={classMapToString(theme.components.Slider.label)}\n >\n {label}\n </label>\n <input\n type=\"range\"\n id={id}\n name=\"data\"\n value={value}\n min={minValue}\n max={maxValue}\n onChange={handleChange}\n className={classMapToString(theme.components.Slider.element)}\n style={stylesToObject(theme.additionalStyles?.Slider)}\n />\n <span className={classMapToString(theme.components.Slider.label)}>\n {value}\n </span>\n </section>\n </div>\n );\n});\n\nexport default Slider;\n"],"mappings":";;;;;;;;;;;;;AAWA,MAAa,yBAAc,SAAS,OAAO,EACzC,MACA,aACuC;CACvC,MAAM,EAAE,OAAO,eAAe,eAAe,UAAU,aACrDA,0CAAiB,MAAM,UAAU;CACnC,MAAM,QAAQ,KAAK;CACnB,MAAM,uBAAY;CAElB,MAAM,YAAY,MAAM,OAAO;CAC/B,MAAM,eAAe,cAAc,MAAM,MAAM,IAAI;CAEnD,MAAM,WAAW,MAAM,YAAY;CACnC,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,CAAC,OAAO,qCAA0B,aAAa;AAGrD,4BAAgB;AACd,MAAI,WAAW;GACb,MAAM,gBAAgB,SAAS,UAAU;AACzC,OAAI,kBAAkB,QAAQ,OAAO,cAAc,KAAK,MACtD,eAAc,OAAO,cAAc,CAAC;;IAGvC,CAAC,WAAW,SAAS,CAAC;AAGzB,4BAAgB;AACd,MAAI,MAAM,OAAO,kBAAkB,OACjC,eAAc,MAAM,MAAM,cAAc;IAEzC,CAAC,MAAM,OAAO,cAAc,CAAC;CAEhC,MAAM,uCACH,MAA2C;EAC1C,MAAM,WAAW,OAAO,EAAE,OAAO,MAAM;AACvC,gBAAc,SAAS;AAGvB,MAAI,UACF,UAAS,WAAW,SAAS;IAGjC,CAAC,WAAW,SAAS,CACtB;CAID,MAAM,aAAc,MAAc;CAClC,MAAM,QAAQ,aAAa,cAAc,WAAW,GAAG;AAiBvD,QACE,2CAAC;EAAI,WAAU;EAAc,OAL7B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,4CAAC;GAAQ,WAAWC,+BAAiB,MAAM,WAAW,OAAO,UAAU;;IACrE,2CAAC;KACC,SAAS;KACT,WAAWA,+BAAiB,MAAM,WAAW,OAAO,MAAM;eAEzD;MACK;IACR,2CAAC;KACC,MAAK;KACD;KACJ,MAAK;KACE;KACP,KAAK;KACL,KAAK;KACL,UAAU;KACV,WAAWA,+BAAiB,MAAM,WAAW,OAAO,QAAQ;KAC5D,OAAOC,6BAAe,MAAM,kBAAkB,OAAO;MACrD;IACF,2CAAC;KAAK,WAAWD,+BAAiB,MAAM,WAAW,OAAO,MAAM;eAC7D;MACI;;IACC;GACN;EAER"}
|
|
@@ -1,14 +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/interactive/Slider.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Slider component - a numeric value selector with a range.
|
|
8
|
-
*
|
|
9
|
-
* Supports two-way data binding for the value.
|
|
10
|
-
*/
|
|
11
|
-
declare const Slider: react.NamedExoticComponent<A2UIComponentProps<Types.SliderNode>>;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { Slider };
|
|
14
|
-
//# sourceMappingURL=Slider.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.d.cts","names":[],"sources":["../../../../src/react-renderer/components/interactive/Slider.tsx"],"mappings":";;;;;;;;AAWA;;cAAa,MAAA,EAAM,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,UAAA"}
|
|
@@ -1,14 +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/interactive/Slider.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Slider component - a numeric value selector with a range.
|
|
8
|
-
*
|
|
9
|
-
* Supports two-way data binding for the value.
|
|
10
|
-
*/
|
|
11
|
-
declare const Slider: react.NamedExoticComponent<A2UIComponentProps<Types.SliderNode>>;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { Slider };
|
|
14
|
-
//# sourceMappingURL=Slider.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.d.mts","names":[],"sources":["../../../../src/react-renderer/components/interactive/Slider.tsx"],"mappings":";;;;;;;;AAWA;;cAAa,MAAA,EAAM,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,UAAA"}
|
|
@@ -1,71 +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, useCallback, useEffect, useId, useState } from "react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/interactive/Slider.tsx
|
|
8
|
-
/**
|
|
9
|
-
* Slider component - a numeric value selector with a range.
|
|
10
|
-
*
|
|
11
|
-
* Supports two-way data binding for the value.
|
|
12
|
-
*/
|
|
13
|
-
const Slider = memo(function Slider({ node, surfaceId }) {
|
|
14
|
-
const { theme, resolveNumber, resolveString, setValue, getValue } = useA2UIComponent(node, surfaceId);
|
|
15
|
-
const props = node.properties;
|
|
16
|
-
const id = useId();
|
|
17
|
-
const valuePath = props.value?.path;
|
|
18
|
-
const initialValue = resolveNumber(props.value) ?? 0;
|
|
19
|
-
const minValue = props.minValue ?? 0;
|
|
20
|
-
const maxValue = props.maxValue ?? 0;
|
|
21
|
-
const [value, setLocalValue] = useState(initialValue);
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
if (valuePath) {
|
|
24
|
-
const externalValue = getValue(valuePath);
|
|
25
|
-
if (externalValue !== null && Number(externalValue) !== value) setLocalValue(Number(externalValue));
|
|
26
|
-
}
|
|
27
|
-
}, [valuePath, getValue]);
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
if (props.value?.literalNumber !== void 0) setLocalValue(props.value.literalNumber);
|
|
30
|
-
}, [props.value?.literalNumber]);
|
|
31
|
-
const handleChange = useCallback((e) => {
|
|
32
|
-
const newValue = Number(e.target.value);
|
|
33
|
-
setLocalValue(newValue);
|
|
34
|
-
if (valuePath) setValue(valuePath, newValue);
|
|
35
|
-
}, [valuePath, setValue]);
|
|
36
|
-
const labelValue = props.label;
|
|
37
|
-
const label = labelValue ? resolveString(labelValue) : "";
|
|
38
|
-
return /* @__PURE__ */ jsx("div", {
|
|
39
|
-
className: "a2ui-slider",
|
|
40
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
41
|
-
children: /* @__PURE__ */ jsxs("section", {
|
|
42
|
-
className: classMapToString(theme.components.Slider.container),
|
|
43
|
-
children: [
|
|
44
|
-
/* @__PURE__ */ jsx("label", {
|
|
45
|
-
htmlFor: id,
|
|
46
|
-
className: classMapToString(theme.components.Slider.label),
|
|
47
|
-
children: label
|
|
48
|
-
}),
|
|
49
|
-
/* @__PURE__ */ jsx("input", {
|
|
50
|
-
type: "range",
|
|
51
|
-
id,
|
|
52
|
-
name: "data",
|
|
53
|
-
value,
|
|
54
|
-
min: minValue,
|
|
55
|
-
max: maxValue,
|
|
56
|
-
onChange: handleChange,
|
|
57
|
-
className: classMapToString(theme.components.Slider.element),
|
|
58
|
-
style: stylesToObject(theme.additionalStyles?.Slider)
|
|
59
|
-
}),
|
|
60
|
-
/* @__PURE__ */ jsx("span", {
|
|
61
|
-
className: classMapToString(theme.components.Slider.label),
|
|
62
|
-
children: value
|
|
63
|
-
})
|
|
64
|
-
]
|
|
65
|
-
})
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
//#endregion
|
|
70
|
-
export { Slider as default };
|
|
71
|
-
//# sourceMappingURL=Slider.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.mjs","names":[],"sources":["../../../../src/react-renderer/components/interactive/Slider.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, useId, 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 * Slider component - a numeric value selector with a range.\n *\n * Supports two-way data binding for the value.\n */\nexport const Slider = memo(function Slider({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.SliderNode>) {\n const { theme, resolveNumber, resolveString, setValue, getValue } =\n useA2UIComponent(node, surfaceId);\n const props = node.properties;\n const id = useId();\n\n const valuePath = props.value?.path;\n const initialValue = resolveNumber(props.value) ?? 0;\n // Match Lit's default values (minValue=0, maxValue=0)\n const minValue = props.minValue ?? 0;\n const maxValue = props.maxValue ?? 0;\n\n const [value, setLocalValue] = useState(initialValue);\n\n // Sync with external data model changes (path binding)\n useEffect(() => {\n if (valuePath) {\n const externalValue = getValue(valuePath);\n if (externalValue !== null && Number(externalValue) !== value) {\n setLocalValue(Number(externalValue));\n }\n }\n }, [valuePath, getValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Sync when literal value changes from props (server-driven updates via surfaceUpdate)\n useEffect(() => {\n if (props.value?.literalNumber !== undefined) {\n setLocalValue(props.value.literalNumber);\n }\n }, [props.value?.literalNumber]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = Number(e.target.value);\n setLocalValue(newValue);\n\n // Two-way binding: update data model\n if (valuePath) {\n setValue(valuePath, newValue);\n }\n },\n [valuePath, setValue],\n );\n\n // Access label from props if it exists (Lit component supports it but type doesn't define it)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const labelValue = (props as any).label;\n const label = labelValue ? resolveString(labelValue) : \"\";\n\n // Structure mirrors Lit's Slider component:\n // <div class=\"a2ui-slider\"> ← :host equivalent\n // <section class=\"...\"> ← internal element\n // <label>...</label>\n // <input>...</input>\n // <span>value</span>\n // </section>\n // </div>\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-slider\" style={hostStyle}>\n <section className={classMapToString(theme.components.Slider.container)}>\n <label\n htmlFor={id}\n className={classMapToString(theme.components.Slider.label)}\n >\n {label}\n </label>\n <input\n type=\"range\"\n id={id}\n name=\"data\"\n value={value}\n min={minValue}\n max={maxValue}\n onChange={handleChange}\n className={classMapToString(theme.components.Slider.element)}\n style={stylesToObject(theme.additionalStyles?.Slider)}\n />\n <span className={classMapToString(theme.components.Slider.label)}>\n {value}\n </span>\n </section>\n </div>\n );\n});\n\nexport default Slider;\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,SAAS,KAAK,SAAS,OAAO,EACzC,MACA,aACuC;CACvC,MAAM,EAAE,OAAO,eAAe,eAAe,UAAU,aACrD,iBAAiB,MAAM,UAAU;CACnC,MAAM,QAAQ,KAAK;CACnB,MAAM,KAAK,OAAO;CAElB,MAAM,YAAY,MAAM,OAAO;CAC/B,MAAM,eAAe,cAAc,MAAM,MAAM,IAAI;CAEnD,MAAM,WAAW,MAAM,YAAY;CACnC,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,CAAC,OAAO,iBAAiB,SAAS,aAAa;AAGrD,iBAAgB;AACd,MAAI,WAAW;GACb,MAAM,gBAAgB,SAAS,UAAU;AACzC,OAAI,kBAAkB,QAAQ,OAAO,cAAc,KAAK,MACtD,eAAc,OAAO,cAAc,CAAC;;IAGvC,CAAC,WAAW,SAAS,CAAC;AAGzB,iBAAgB;AACd,MAAI,MAAM,OAAO,kBAAkB,OACjC,eAAc,MAAM,MAAM,cAAc;IAEzC,CAAC,MAAM,OAAO,cAAc,CAAC;CAEhC,MAAM,eAAe,aAClB,MAA2C;EAC1C,MAAM,WAAW,OAAO,EAAE,OAAO,MAAM;AACvC,gBAAc,SAAS;AAGvB,MAAI,UACF,UAAS,WAAW,SAAS;IAGjC,CAAC,WAAW,SAAS,CACtB;CAID,MAAM,aAAc,MAAc;CAClC,MAAM,QAAQ,aAAa,cAAc,WAAW,GAAG;AAiBvD,QACE,oBAAC;EAAI,WAAU;EAAc,OAL7B,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,qBAAC;GAAQ,WAAW,iBAAiB,MAAM,WAAW,OAAO,UAAU;;IACrE,oBAAC;KACC,SAAS;KACT,WAAW,iBAAiB,MAAM,WAAW,OAAO,MAAM;eAEzD;MACK;IACR,oBAAC;KACC,MAAK;KACD;KACJ,MAAK;KACE;KACP,KAAK;KACL,KAAK;KACL,UAAU;KACV,WAAW,iBAAiB,MAAM,WAAW,OAAO,QAAQ;KAC5D,OAAO,eAAe,MAAM,kBAAkB,OAAO;MACrD;IACF,oBAAC;KAAK,WAAW,iBAAiB,MAAM,WAAW,OAAO,MAAM;eAC7D;MACI;;IACC;GACN;EAER"}
|
|
@@ -1,74 +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/interactive/TextField.tsx
|
|
9
|
-
/**
|
|
10
|
-
* TextField component - an input field for text entry.
|
|
11
|
-
*
|
|
12
|
-
* Supports various input types and two-way data binding.
|
|
13
|
-
*/
|
|
14
|
-
const TextField = (0, react.memo)(function TextField({ node, surfaceId }) {
|
|
15
|
-
const { theme, resolveString, setValue, getValue } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
16
|
-
const props = node.properties;
|
|
17
|
-
const id = (0, react.useId)();
|
|
18
|
-
const label = resolveString(props.label);
|
|
19
|
-
const textPath = props.text?.path;
|
|
20
|
-
const initialValue = resolveString(props.text) ?? "";
|
|
21
|
-
const fieldType = props.type;
|
|
22
|
-
const validationRegexp = props.validationRegexp;
|
|
23
|
-
const [value, setLocalValue] = (0, react.useState)(initialValue);
|
|
24
|
-
const [_isValid, setIsValid] = (0, react.useState)(true);
|
|
25
|
-
(0, react.useEffect)(() => {
|
|
26
|
-
if (textPath) {
|
|
27
|
-
const externalValue = getValue(textPath);
|
|
28
|
-
if (externalValue !== null && String(externalValue) !== value) setLocalValue(String(externalValue));
|
|
29
|
-
}
|
|
30
|
-
}, [textPath, getValue]);
|
|
31
|
-
const handleChange = (0, react.useCallback)((e) => {
|
|
32
|
-
const newValue = e.target.value;
|
|
33
|
-
setLocalValue(newValue);
|
|
34
|
-
if (validationRegexp) setIsValid(new RegExp(validationRegexp).test(newValue));
|
|
35
|
-
if (textPath) setValue(textPath, newValue);
|
|
36
|
-
}, [
|
|
37
|
-
validationRegexp,
|
|
38
|
-
textPath,
|
|
39
|
-
setValue
|
|
40
|
-
]);
|
|
41
|
-
const inputType = fieldType === "number" ? "number" : fieldType === "date" ? "date" : "text";
|
|
42
|
-
const isTextArea = fieldType === "longText";
|
|
43
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
44
|
-
className: "a2ui-textfield",
|
|
45
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
46
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
47
|
-
className: require_utils.classMapToString(theme.components.TextField.container),
|
|
48
|
-
children: [label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
49
|
-
htmlFor: id,
|
|
50
|
-
className: require_utils.classMapToString(theme.components.TextField.label),
|
|
51
|
-
children: label
|
|
52
|
-
}), isTextArea ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
53
|
-
id,
|
|
54
|
-
value,
|
|
55
|
-
onChange: handleChange,
|
|
56
|
-
placeholder: "Please enter a value",
|
|
57
|
-
className: require_utils.classMapToString(theme.components.TextField.element),
|
|
58
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.TextField)
|
|
59
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
60
|
-
type: inputType,
|
|
61
|
-
id,
|
|
62
|
-
value,
|
|
63
|
-
onChange: handleChange,
|
|
64
|
-
placeholder: "Please enter a value",
|
|
65
|
-
className: require_utils.classMapToString(theme.components.TextField.element),
|
|
66
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.TextField)
|
|
67
|
-
})]
|
|
68
|
-
})
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
//#endregion
|
|
73
|
-
exports.default = TextField;
|
|
74
|
-
//# sourceMappingURL=TextField.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.cjs","names":["useA2UIComponent","classMapToString","stylesToObject"],"sources":["../../../../src/react-renderer/components/interactive/TextField.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, useId, 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\ntype TextFieldType = \"shortText\" | \"longText\" | \"number\" | \"date\";\n\n/**\n * TextField component - an input field for text entry.\n *\n * Supports various input types and two-way data binding.\n */\nexport const TextField = memo(function TextField({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.TextFieldNode>) {\n const { theme, resolveString, setValue, getValue } = useA2UIComponent(\n node,\n surfaceId,\n );\n const props = node.properties;\n const id = useId();\n\n const label = resolveString(props.label);\n const textPath = props.text?.path;\n const initialValue = resolveString(props.text) ?? \"\";\n const fieldType = props.type as TextFieldType | undefined;\n const validationRegexp = props.validationRegexp;\n\n const [value, setLocalValue] = useState(initialValue);\n // Validation state tracked for potential future use (e.g., error styling)\n const [_isValid, setIsValid] = useState(true);\n\n // Sync with external data model changes\n useEffect(() => {\n if (textPath) {\n const externalValue = getValue(textPath);\n if (externalValue !== null && String(externalValue) !== value) {\n setLocalValue(String(externalValue));\n }\n }\n }, [textPath, getValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n setLocalValue(newValue);\n\n // Validate if pattern provided\n if (validationRegexp) {\n setIsValid(new RegExp(validationRegexp).test(newValue));\n }\n\n // Two-way binding: update data model\n if (textPath) {\n setValue(textPath, newValue);\n }\n },\n [validationRegexp, textPath, setValue],\n );\n\n const inputType =\n fieldType === \"number\" ? \"number\" : fieldType === \"date\" ? \"date\" : \"text\";\n const isTextArea = fieldType === \"longText\";\n\n // Structure mirrors Lit's TextField component:\n // <div class=\"a2ui-textfield\"> ← :host equivalent\n // <section class=\"...\"> ← container with theme classes\n // <label>...</label>\n // <input>...</input>\n // </section>\n // </div>\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-textfield\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.TextField.container)}\n >\n {label && (\n <label\n htmlFor={id}\n className={classMapToString(theme.components.TextField.label)}\n >\n {label}\n </label>\n )}\n {isTextArea ? (\n <textarea\n id={id}\n value={value}\n onChange={handleChange}\n placeholder=\"Please enter a value\"\n className={classMapToString(theme.components.TextField.element)}\n style={stylesToObject(theme.additionalStyles?.TextField)}\n />\n ) : (\n <input\n type={inputType}\n id={id}\n value={value}\n onChange={handleChange}\n placeholder=\"Please enter a value\"\n className={classMapToString(theme.components.TextField.element)}\n style={stylesToObject(theme.additionalStyles?.TextField)}\n />\n )}\n </section>\n </div>\n );\n});\n\nexport default TextField;\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,4BAAiB,SAAS,UAAU,EAC/C,MACA,aAC0C;CAC1C,MAAM,EAAE,OAAO,eAAe,UAAU,aAAaA,0CACnD,MACA,UACD;CACD,MAAM,QAAQ,KAAK;CACnB,MAAM,uBAAY;CAElB,MAAM,QAAQ,cAAc,MAAM,MAAM;CACxC,MAAM,WAAW,MAAM,MAAM;CAC7B,MAAM,eAAe,cAAc,MAAM,KAAK,IAAI;CAClD,MAAM,YAAY,MAAM;CACxB,MAAM,mBAAmB,MAAM;CAE/B,MAAM,CAAC,OAAO,qCAA0B,aAAa;CAErD,MAAM,CAAC,UAAU,kCAAuB,KAAK;AAG7C,4BAAgB;AACd,MAAI,UAAU;GACZ,MAAM,gBAAgB,SAAS,SAAS;AACxC,OAAI,kBAAkB,QAAQ,OAAO,cAAc,KAAK,MACtD,eAAc,OAAO,cAAc,CAAC;;IAGvC,CAAC,UAAU,SAAS,CAAC;CAExB,MAAM,uCACH,MAAiE;EAChE,MAAM,WAAW,EAAE,OAAO;AAC1B,gBAAc,SAAS;AAGvB,MAAI,iBACF,YAAW,IAAI,OAAO,iBAAiB,CAAC,KAAK,SAAS,CAAC;AAIzD,MAAI,SACF,UAAS,UAAU,SAAS;IAGhC;EAAC;EAAkB;EAAU;EAAS,CACvC;CAED,MAAM,YACJ,cAAc,WAAW,WAAW,cAAc,SAAS,SAAS;CACtE,MAAM,aAAa,cAAc;AAgBjC,QACE,2CAAC;EAAI,WAAU;EAAiB,OALhC,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,4CAAC;GACC,WAAWC,+BAAiB,MAAM,WAAW,UAAU,UAAU;cAEhE,SACC,2CAAC;IACC,SAAS;IACT,WAAWA,+BAAiB,MAAM,WAAW,UAAU,MAAM;cAE5D;KACK,EAET,aACC,2CAAC;IACK;IACG;IACP,UAAU;IACV,aAAY;IACZ,WAAWA,+BAAiB,MAAM,WAAW,UAAU,QAAQ;IAC/D,OAAOC,6BAAe,MAAM,kBAAkB,UAAU;KACxD,GAEF,2CAAC;IACC,MAAM;IACF;IACG;IACP,UAAU;IACV,aAAY;IACZ,WAAWD,+BAAiB,MAAM,WAAW,UAAU,QAAQ;IAC/D,OAAOC,6BAAe,MAAM,kBAAkB,UAAU;KACxD;IAEI;GACN;EAER"}
|
|
@@ -1,14 +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/interactive/TextField.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* TextField component - an input field for text entry.
|
|
8
|
-
*
|
|
9
|
-
* Supports various input types and two-way data binding.
|
|
10
|
-
*/
|
|
11
|
-
declare const TextField: react.NamedExoticComponent<A2UIComponentProps<Types.TextFieldNode>>;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { TextField };
|
|
14
|
-
//# sourceMappingURL=TextField.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.d.cts","names":[],"sources":["../../../../src/react-renderer/components/interactive/TextField.tsx"],"mappings":";;;;;;;;AAaA;;cAAa,SAAA,EAAS,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,aAAA"}
|
|
@@ -1,14 +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/interactive/TextField.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* TextField component - an input field for text entry.
|
|
8
|
-
*
|
|
9
|
-
* Supports various input types and two-way data binding.
|
|
10
|
-
*/
|
|
11
|
-
declare const TextField: react.NamedExoticComponent<A2UIComponentProps<Types.TextFieldNode>>;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { TextField };
|
|
14
|
-
//# sourceMappingURL=TextField.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.d.mts","names":[],"sources":["../../../../src/react-renderer/components/interactive/TextField.tsx"],"mappings":";;;;;;;;AAaA;;cAAa,SAAA,EAAS,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,aAAA"}
|
|
@@ -1,73 +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, useCallback, useEffect, useId, useState } from "react";
|
|
5
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/react-renderer/components/interactive/TextField.tsx
|
|
8
|
-
/**
|
|
9
|
-
* TextField component - an input field for text entry.
|
|
10
|
-
*
|
|
11
|
-
* Supports various input types and two-way data binding.
|
|
12
|
-
*/
|
|
13
|
-
const TextField = memo(function TextField({ node, surfaceId }) {
|
|
14
|
-
const { theme, resolveString, setValue, getValue } = useA2UIComponent(node, surfaceId);
|
|
15
|
-
const props = node.properties;
|
|
16
|
-
const id = useId();
|
|
17
|
-
const label = resolveString(props.label);
|
|
18
|
-
const textPath = props.text?.path;
|
|
19
|
-
const initialValue = resolveString(props.text) ?? "";
|
|
20
|
-
const fieldType = props.type;
|
|
21
|
-
const validationRegexp = props.validationRegexp;
|
|
22
|
-
const [value, setLocalValue] = useState(initialValue);
|
|
23
|
-
const [_isValid, setIsValid] = useState(true);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (textPath) {
|
|
26
|
-
const externalValue = getValue(textPath);
|
|
27
|
-
if (externalValue !== null && String(externalValue) !== value) setLocalValue(String(externalValue));
|
|
28
|
-
}
|
|
29
|
-
}, [textPath, getValue]);
|
|
30
|
-
const handleChange = useCallback((e) => {
|
|
31
|
-
const newValue = e.target.value;
|
|
32
|
-
setLocalValue(newValue);
|
|
33
|
-
if (validationRegexp) setIsValid(new RegExp(validationRegexp).test(newValue));
|
|
34
|
-
if (textPath) setValue(textPath, newValue);
|
|
35
|
-
}, [
|
|
36
|
-
validationRegexp,
|
|
37
|
-
textPath,
|
|
38
|
-
setValue
|
|
39
|
-
]);
|
|
40
|
-
const inputType = fieldType === "number" ? "number" : fieldType === "date" ? "date" : "text";
|
|
41
|
-
const isTextArea = fieldType === "longText";
|
|
42
|
-
return /* @__PURE__ */ jsx("div", {
|
|
43
|
-
className: "a2ui-textfield",
|
|
44
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
45
|
-
children: /* @__PURE__ */ jsxs("section", {
|
|
46
|
-
className: classMapToString(theme.components.TextField.container),
|
|
47
|
-
children: [label && /* @__PURE__ */ jsx("label", {
|
|
48
|
-
htmlFor: id,
|
|
49
|
-
className: classMapToString(theme.components.TextField.label),
|
|
50
|
-
children: label
|
|
51
|
-
}), isTextArea ? /* @__PURE__ */ jsx("textarea", {
|
|
52
|
-
id,
|
|
53
|
-
value,
|
|
54
|
-
onChange: handleChange,
|
|
55
|
-
placeholder: "Please enter a value",
|
|
56
|
-
className: classMapToString(theme.components.TextField.element),
|
|
57
|
-
style: stylesToObject(theme.additionalStyles?.TextField)
|
|
58
|
-
}) : /* @__PURE__ */ jsx("input", {
|
|
59
|
-
type: inputType,
|
|
60
|
-
id,
|
|
61
|
-
value,
|
|
62
|
-
onChange: handleChange,
|
|
63
|
-
placeholder: "Please enter a value",
|
|
64
|
-
className: classMapToString(theme.components.TextField.element),
|
|
65
|
-
style: stylesToObject(theme.additionalStyles?.TextField)
|
|
66
|
-
})]
|
|
67
|
-
})
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
//#endregion
|
|
72
|
-
export { TextField as default };
|
|
73
|
-
//# sourceMappingURL=TextField.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.mjs","names":[],"sources":["../../../../src/react-renderer/components/interactive/TextField.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, useId, 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\ntype TextFieldType = \"shortText\" | \"longText\" | \"number\" | \"date\";\n\n/**\n * TextField component - an input field for text entry.\n *\n * Supports various input types and two-way data binding.\n */\nexport const TextField = memo(function TextField({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.TextFieldNode>) {\n const { theme, resolveString, setValue, getValue } = useA2UIComponent(\n node,\n surfaceId,\n );\n const props = node.properties;\n const id = useId();\n\n const label = resolveString(props.label);\n const textPath = props.text?.path;\n const initialValue = resolveString(props.text) ?? \"\";\n const fieldType = props.type as TextFieldType | undefined;\n const validationRegexp = props.validationRegexp;\n\n const [value, setLocalValue] = useState(initialValue);\n // Validation state tracked for potential future use (e.g., error styling)\n const [_isValid, setIsValid] = useState(true);\n\n // Sync with external data model changes\n useEffect(() => {\n if (textPath) {\n const externalValue = getValue(textPath);\n if (externalValue !== null && String(externalValue) !== value) {\n setLocalValue(String(externalValue));\n }\n }\n }, [textPath, getValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n setLocalValue(newValue);\n\n // Validate if pattern provided\n if (validationRegexp) {\n setIsValid(new RegExp(validationRegexp).test(newValue));\n }\n\n // Two-way binding: update data model\n if (textPath) {\n setValue(textPath, newValue);\n }\n },\n [validationRegexp, textPath, setValue],\n );\n\n const inputType =\n fieldType === \"number\" ? \"number\" : fieldType === \"date\" ? \"date\" : \"text\";\n const isTextArea = fieldType === \"longText\";\n\n // Structure mirrors Lit's TextField component:\n // <div class=\"a2ui-textfield\"> ← :host equivalent\n // <section class=\"...\"> ← container with theme classes\n // <label>...</label>\n // <input>...</input>\n // </section>\n // </div>\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-textfield\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.TextField.container)}\n >\n {label && (\n <label\n htmlFor={id}\n className={classMapToString(theme.components.TextField.label)}\n >\n {label}\n </label>\n )}\n {isTextArea ? (\n <textarea\n id={id}\n value={value}\n onChange={handleChange}\n placeholder=\"Please enter a value\"\n className={classMapToString(theme.components.TextField.element)}\n style={stylesToObject(theme.additionalStyles?.TextField)}\n />\n ) : (\n <input\n type={inputType}\n id={id}\n value={value}\n onChange={handleChange}\n placeholder=\"Please enter a value\"\n className={classMapToString(theme.components.TextField.element)}\n style={stylesToObject(theme.additionalStyles?.TextField)}\n />\n )}\n </section>\n </div>\n );\n});\n\nexport default TextField;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,YAAY,KAAK,SAAS,UAAU,EAC/C,MACA,aAC0C;CAC1C,MAAM,EAAE,OAAO,eAAe,UAAU,aAAa,iBACnD,MACA,UACD;CACD,MAAM,QAAQ,KAAK;CACnB,MAAM,KAAK,OAAO;CAElB,MAAM,QAAQ,cAAc,MAAM,MAAM;CACxC,MAAM,WAAW,MAAM,MAAM;CAC7B,MAAM,eAAe,cAAc,MAAM,KAAK,IAAI;CAClD,MAAM,YAAY,MAAM;CACxB,MAAM,mBAAmB,MAAM;CAE/B,MAAM,CAAC,OAAO,iBAAiB,SAAS,aAAa;CAErD,MAAM,CAAC,UAAU,cAAc,SAAS,KAAK;AAG7C,iBAAgB;AACd,MAAI,UAAU;GACZ,MAAM,gBAAgB,SAAS,SAAS;AACxC,OAAI,kBAAkB,QAAQ,OAAO,cAAc,KAAK,MACtD,eAAc,OAAO,cAAc,CAAC;;IAGvC,CAAC,UAAU,SAAS,CAAC;CAExB,MAAM,eAAe,aAClB,MAAiE;EAChE,MAAM,WAAW,EAAE,OAAO;AAC1B,gBAAc,SAAS;AAGvB,MAAI,iBACF,YAAW,IAAI,OAAO,iBAAiB,CAAC,KAAK,SAAS,CAAC;AAIzD,MAAI,SACF,UAAS,UAAU,SAAS;IAGhC;EAAC;EAAkB;EAAU;EAAS,CACvC;CAED,MAAM,YACJ,cAAc,WAAW,WAAW,cAAc,SAAS,SAAS;CACtE,MAAM,aAAa,cAAc;AAgBjC,QACE,oBAAC;EAAI,WAAU;EAAiB,OALhC,KAAK,WAAW,SACX,EAAE,YAAY,KAAK,QAAQ,GAC5B,EAAE;YAIJ,qBAAC;GACC,WAAW,iBAAiB,MAAM,WAAW,UAAU,UAAU;cAEhE,SACC,oBAAC;IACC,SAAS;IACT,WAAW,iBAAiB,MAAM,WAAW,UAAU,MAAM;cAE5D;KACK,EAET,aACC,oBAAC;IACK;IACG;IACP,UAAU;IACV,aAAY;IACZ,WAAW,iBAAiB,MAAM,WAAW,UAAU,QAAQ;IAC/D,OAAO,eAAe,MAAM,kBAAkB,UAAU;KACxD,GAEF,oBAAC;IACC,MAAM;IACF;IACG;IACP,UAAU;IACV,aAAY;IACZ,WAAW,iBAAiB,MAAM,WAAW,UAAU,QAAQ;IAC/D,OAAO,eAAe,MAAM,kBAAkB,UAAU;KACxD;IAEI;GACN;EAER"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
const require_ComponentNode = require('../../core/ComponentNode.cjs');
|
|
3
|
-
const require_utils = require('../../theme/utils.cjs');
|
|
4
|
-
require('../../lib/utils.cjs');
|
|
5
|
-
const require_useA2UIComponent = require('../../hooks/useA2UIComponent.cjs');
|
|
6
|
-
let react = require("react");
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
-
|
|
9
|
-
//#region src/react-renderer/components/layout/Card.tsx
|
|
10
|
-
/**
|
|
11
|
-
* Card component - a container that visually groups content.
|
|
12
|
-
*
|
|
13
|
-
* Structure mirrors Lit's Card component:
|
|
14
|
-
* <div class="a2ui-card"> ← :host equivalent
|
|
15
|
-
* <section class="..."> ← theme classes (border, padding, background)
|
|
16
|
-
* {children} ← ::slotted(*) equivalent
|
|
17
|
-
* </section>
|
|
18
|
-
* </div>
|
|
19
|
-
*
|
|
20
|
-
* All styles come from componentSpecificStyles CSS, no inline styles needed.
|
|
21
|
-
*/
|
|
22
|
-
const Card = (0, react.memo)(function Card({ node, surfaceId }) {
|
|
23
|
-
const { theme } = require_useA2UIComponent.useA2UIComponent(node, surfaceId);
|
|
24
|
-
const props = node.properties;
|
|
25
|
-
const rawChildren = props.children ?? (props.child ? [props.child] : []);
|
|
26
|
-
const children = Array.isArray(rawChildren) ? rawChildren : [];
|
|
27
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
28
|
-
className: "a2ui-card",
|
|
29
|
-
style: node.weight !== void 0 ? { "--weight": node.weight } : {},
|
|
30
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
|
|
31
|
-
className: require_utils.classMapToString(theme.components.Card),
|
|
32
|
-
style: require_utils.stylesToObject(theme.additionalStyles?.Card),
|
|
33
|
-
children: children.map((child, index) => {
|
|
34
|
-
const childId = typeof child === "object" && child !== null && "id" in child ? child.id : `child-${index}`;
|
|
35
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ComponentNode.default, {
|
|
36
|
-
node: typeof child === "object" && child !== null && "type" in child ? child : null,
|
|
37
|
-
surfaceId
|
|
38
|
-
}, childId);
|
|
39
|
-
})
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
//#endregion
|
|
45
|
-
exports.default = Card;
|
|
46
|
-
//# sourceMappingURL=Card.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card.cjs","names":["useA2UIComponent","classMapToString","stylesToObject","ComponentNode"],"sources":["../../../../src/react-renderer/components/layout/Card.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\";\nimport { ComponentNode } from \"../../core/ComponentNode\";\n\n/**\n * Card component - a container that visually groups content.\n *\n * Structure mirrors Lit's Card component:\n * <div class=\"a2ui-card\"> ← :host equivalent\n * <section class=\"...\"> ← theme classes (border, padding, background)\n * {children} ← ::slotted(*) equivalent\n * </section>\n * </div>\n *\n * All styles come from componentSpecificStyles CSS, no inline styles needed.\n */\nexport const Card = memo(function Card({\n node,\n surfaceId,\n}: A2UIComponentProps<Types.CardNode>) {\n const { theme } = useA2UIComponent(node, surfaceId);\n const props = node.properties;\n\n // Card can have either a single child or multiple children\n const rawChildren = props.children ?? (props.child ? [props.child] : []);\n const children = Array.isArray(rawChildren) ? rawChildren : [];\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-card\" style={hostStyle}>\n <section\n className={classMapToString(theme.components.Card)}\n style={stylesToObject(theme.additionalStyles?.Card)}\n >\n {children.map((child, index) => {\n const childId =\n typeof child === \"object\" && child !== null && \"id\" in child\n ? (child as Types.AnyComponentNode).id\n : `child-${index}`;\n const childNode =\n typeof child === \"object\" && child !== null && \"type\" in child\n ? (child as Types.AnyComponentNode)\n : null;\n return (\n <ComponentNode\n key={childId}\n node={childNode}\n surfaceId={surfaceId}\n />\n );\n })}\n </section>\n </div>\n );\n});\n\nexport default Card;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmBA,MAAa,uBAAY,SAAS,KAAK,EACrC,MACA,aACqC;CACrC,MAAM,EAAE,UAAUA,0CAAiB,MAAM,UAAU;CACnD,MAAM,QAAQ,KAAK;CAGnB,MAAM,cAAc,MAAM,aAAa,MAAM,QAAQ,CAAC,MAAM,MAAM,GAAG,EAAE;CACvE,MAAM,WAAW,MAAM,QAAQ,YAAY,GAAG,cAAc,EAAE;AAQ9D,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;aAElD,SAAS,KAAK,OAAO,UAAU;IAC9B,MAAM,UACJ,OAAO,UAAU,YAAY,UAAU,QAAQ,QAAQ,QAClD,MAAiC,KAClC,SAAS;AAKf,WACE,2CAACC;KAEC,MANF,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,QACpD,QACD;KAKS;OAFN,QAGL;KAEJ;IACM;GACN;EAER"}
|
|
@@ -1,21 +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/layout/Card.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Card component - a container that visually groups content.
|
|
8
|
-
*
|
|
9
|
-
* Structure mirrors Lit's Card component:
|
|
10
|
-
* <div class="a2ui-card"> ← :host equivalent
|
|
11
|
-
* <section class="..."> ← theme classes (border, padding, background)
|
|
12
|
-
* {children} ← ::slotted(*) equivalent
|
|
13
|
-
* </section>
|
|
14
|
-
* </div>
|
|
15
|
-
*
|
|
16
|
-
* All styles come from componentSpecificStyles CSS, no inline styles needed.
|
|
17
|
-
*/
|
|
18
|
-
declare const Card: react.NamedExoticComponent<A2UIComponentProps<Types.CardNode>>;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { Card };
|
|
21
|
-
//# sourceMappingURL=Card.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.cts","names":[],"sources":["../../../../src/react-renderer/components/layout/Card.tsx"],"mappings":";;;;;;;;AAmBA;;;;;;;;;cAAa,IAAA,EAAI,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,QAAA"}
|
|
@@ -1,21 +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/layout/Card.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Card component - a container that visually groups content.
|
|
8
|
-
*
|
|
9
|
-
* Structure mirrors Lit's Card component:
|
|
10
|
-
* <div class="a2ui-card"> ← :host equivalent
|
|
11
|
-
* <section class="..."> ← theme classes (border, padding, background)
|
|
12
|
-
* {children} ← ::slotted(*) equivalent
|
|
13
|
-
* </section>
|
|
14
|
-
* </div>
|
|
15
|
-
*
|
|
16
|
-
* All styles come from componentSpecificStyles CSS, no inline styles needed.
|
|
17
|
-
*/
|
|
18
|
-
declare const Card: react.NamedExoticComponent<A2UIComponentProps<Types.CardNode>>;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { Card };
|
|
21
|
-
//# sourceMappingURL=Card.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.mts","names":[],"sources":["../../../../src/react-renderer/components/layout/Card.tsx"],"mappings":";;;;;;;;AAmBA;;;;;;;;;cAAa,IAAA,EAAI,KAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,QAAA"}
|