UNPKG

@kobalte/core

Version:

Unstyled components and primitives for building accessible web apps and design systems with SolidJS.

39 lines (36 loc) 1.08 kB
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 };