diff --git a/packages/website-ue/src/components/ApiEntry.astro b/packages/website-ue/src/components/ApiEntry.astro
index 1a3d6c447..f1ef9ca8e 100644
--- a/packages/website-ue/src/components/ApiEntry.astro
+++ b/packages/website-ue/src/components/ApiEntry.astro
@@ -2,8 +2,6 @@
import type { CollectionEntry } from "astro:content";
import { api } from "../core/api/dynamic";
import { ApiTester } from "./ApiTester";
-import { Code } from "./Code";
-import { Heading } from "./Heading";
import { MarkdownCustom } from "./MarkdownCustom";
interface Props {
@@ -25,10 +23,6 @@ const hasSlugs = apiData.id.includes("[");
-
- {apiData.id}
-
-
diff --git a/packages/website-ue/src/components/ApiTester/index.module.css b/packages/website-ue/src/components/ApiTester/index.module.css
index 039b69a69..28c143d11 100644
--- a/packages/website-ue/src/components/ApiTester/index.module.css
+++ b/packages/website-ue/src/components/ApiTester/index.module.css
@@ -3,9 +3,9 @@
align-items: center;
gap: var(--space-4);
- .slug {
+ .title {
display: flex;
align-items: center;
- gap: var(--space-3);
+ gap: var(--space-2);
}
}
diff --git a/packages/website-ue/src/components/ApiTester/index.tsx b/packages/website-ue/src/components/ApiTester/index.tsx
index 70a43512f..44c9ba25d 100644
--- a/packages/website-ue/src/components/ApiTester/index.tsx
+++ b/packages/website-ue/src/components/ApiTester/index.tsx
@@ -5,6 +5,8 @@ import {
} from "../../hooks/useLocale";
import { useStrings } from "../../hooks/useStrings";
import { Button } from "../Button";
+import { Code } from "../Code";
+import { Heading } from "../Heading";
import { Link } from "../Link";
import { TextField } from "../TextField";
import styles from "./index.module.css";
@@ -38,19 +40,36 @@ function Content({ path }: Props) {
return (
- {slugs.map((slug) => (
-
- {slug}:{" "}
- {
- setValues((state) => ({ ...state, [slug]: event.target.value }));
- }}
- />
-
- ))}
+
+
+ {path.split(slugPattern).map((text, index) => {
+ const slug = slugs[index - 1];
-
+ return (
+ <>
+ {index > 0 && (
+ {
+ setValues((state) => ({
+ ...state,
+ [slug]: event.target.value,
+ }));
+ }}
+ />
+ )}
+ {text}
+ >
+ );
+ })}
+
+
+
+
diff --git a/packages/website-ue/src/components/TextField/index.css b/packages/website-ue/src/components/TextField/index.css
index 7bf21f39f..1ebae7f3d 100644
--- a/packages/website-ue/src/components/TextField/index.css
+++ b/packages/website-ue/src/components/TextField/index.css
@@ -53,8 +53,7 @@
font-size: inherit;
font-weight: medium;
- padding: var(--space-3) 0;
- padding-left: var(--space-4);
+ padding: var(--space-3) var(--space-4);
color: var(--gray-12);
@@ -65,5 +64,16 @@
&:focus {
outline: none;
}
+
+ &[data-align="center"] {
+ text-align: center;
+ }
+ &[data-align="right"] {
+ text-align: right;
+ }
+
+ &[data-monospace="true"] {
+ font-family: var(--font-family-mono);
+ }
}
}
diff --git a/packages/website-ue/src/components/TextField/index.tsx b/packages/website-ue/src/components/TextField/index.tsx
index 13ea84288..b4de99b0f 100644
--- a/packages/website-ue/src/components/TextField/index.tsx
+++ b/packages/website-ue/src/components/TextField/index.tsx
@@ -1,7 +1,9 @@
import {
forwardRef,
+ useCallback,
useImperativeHandle,
useRef,
+ type ChangeEvent,
type ComponentProps,
type ReactNode,
} from "react";
@@ -10,12 +12,40 @@ import "./index.css";
export interface TextFieldProps extends ComponentProps<"input"> {
children?: ReactNode;
+ align?: "left" | "center" | "right";
+ monospace?: boolean;
+ autoWidth?: boolean;
}
export const TextField = forwardRef
(
- ({ children, className, placeholder, disabled, ...props }, ref) => {
+ (
+ {
+ children,
+ className,
+ monospace,
+ autoWidth,
+ placeholder,
+ align,
+ disabled,
+ value,
+ onChange,
+ ...props
+ },
+ ref,
+ ) => {
const input = useRef(null);
+ const handleChange = useCallback(
+ (event: ChangeEvent) => {
+ if (autoWidth && input.current) {
+ input.current.style.width = `${event.target.value.length || event.target.placeholder.length}ch`;
+ }
+
+ onChange?.(event);
+ },
+ [onChange],
+ );
+
useImperativeHandle(ref, () => input.current!, []);
return (
@@ -26,8 +56,19 @@ export const TextField = forwardRef(
data-disabled={disabled}
>
{children}
-
+
);
- }
+ },
);