UNPKG

@copilotkit/a2ui-renderer

Version:

A2UI Renderer for CopilotKit - render A2UI surfaces in React applications

83 lines (81 loc) 2.21 kB
import { createReactComponent } from "../../../adapter.mjs"; import { ChildList } from "./ChildList.mjs"; import { CommonSchemas } from "@a2ui/web_core/v0_9"; import { jsx } from "react/jsx-runtime"; import { z } from "zod"; //#region src/react-renderer/a2ui-react/catalog/minimal/components/Row.tsx /** * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const RowSchema = z.object({ children: CommonSchemas.ChildList, justify: z.enum([ "center", "end", "spaceAround", "spaceBetween", "spaceEvenly", "start", "stretch" ]).optional(), align: z.enum([ "start", "center", "end", "stretch" ]).optional() }); const mapJustify = (j) => { switch (j) { case "center": return "center"; case "end": return "flex-end"; case "spaceAround": return "space-around"; case "spaceBetween": return "space-between"; case "spaceEvenly": return "space-evenly"; case "start": return "flex-start"; case "stretch": return "stretch"; default: return "flex-start"; } }; const mapAlign = (a) => { switch (a) { case "start": return "flex-start"; case "center": return "center"; case "end": return "flex-end"; case "stretch": return "stretch"; default: return "stretch"; } }; const RowApiDef = { name: "Row", schema: RowSchema }; const Row = createReactComponent(RowApiDef, ({ props, buildChild }) => { return /* @__PURE__ */ jsx("div", { style: { display: "flex", flexDirection: "row", justifyContent: mapJustify(props.justify), alignItems: mapAlign(props.align) }, children: /* @__PURE__ */ jsx(ChildList, { childList: props.children, buildChild }) }); }); //#endregion export { Row }; //# sourceMappingURL=Row.mjs.map