diff --git a/.changeset/text-expand-as-elements.md b/.changeset/text-expand-as-elements.md new file mode 100644 index 0000000000..c38c2a3da6 --- /dev/null +++ b/.changeset/text-expand-as-elements.md @@ -0,0 +1,5 @@ +--- +"@cloudflare/kumo": minor +--- + +Expand `Text` component's `as` prop to accept additional HTML text elements: `label`, `dt`, `dd`, `li`, `figcaption`, `legend`, `pre`, `code`, `em`, `strong`, `small`, `abbr`, and `time`. This unblocks downstream usage in Stratus where `Text` needs to render as definition list terms, labels, and code elements. diff --git a/packages/kumo/src/components/text/text.test.tsx b/packages/kumo/src/components/text/text.test.tsx index 749ba3458c..80c79dea7e 100644 --- a/packages/kumo/src/components/text/text.test.tsx +++ b/packages/kumo/src/components/text/text.test.tsx @@ -37,6 +37,40 @@ describe("Text", () => { expect(container.querySelector("h2")).toBeNull(); }); + it("renders as
when as='dt'", () => { + const { container } = render(Term); + expect(container.querySelector("dt")).toBeTruthy(); + expect(container.querySelector("p")).toBeNull(); + }); + + it("renders as
when as='dd'", () => { + const { container } = render(Definition); + expect(container.querySelector("dd")).toBeTruthy(); + }); + + it("renders as