@kobalte/core
Version:
Unstyled components and primitives for building accessible web apps and design systems with SolidJS.
39 lines (36 loc) • 1.08 kB
JSX
import {
useFormControlContext
} from "./XUUROM4M.jsx";
// src/form-control/create-form-control-field.tsx
import { access, mergeDefaultProps } from "@kobalte/utils";
import { createEffect, onCleanup } from "solid-js";
var FORM_CONTROL_FIELD_PROP_NAMES = [
"id",
"aria-label",
"aria-labelledby",
"aria-describedby"
];
function createFormControlField(props) {
const context = useFormControlContext();
const mergedProps = mergeDefaultProps(
{ id: context.generateId("field") },
props
);
createEffect(() => onCleanup(context.registerField(access(mergedProps.id))));
return {
fieldProps: {
id: () => access(mergedProps.id),
ariaLabel: () => access(mergedProps["aria-label"]),
ariaLabelledBy: () => context.getAriaLabelledBy(
access(mergedProps.id),
access(mergedProps["aria-label"]),
access(mergedProps["aria-labelledby"])
),
ariaDescribedBy: () => context.getAriaDescribedBy(access(mergedProps["aria-describedby"]))
}
};
}
export {
FORM_CONTROL_FIELD_PROP_NAMES,
createFormControlField
};