UNPKG

@ark-ui/solid

Version:

A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.

204 lines (185 loc) 6.81 kB
import { useFieldsetContext } from "./NHEM6XZR.jsx"; import { createSplitProps } from "./6WEDGJKQ.jsx"; import { ark } from "./UFYZ7HLU.jsx"; import { useEnvironmentContext } from "./CGW54HAQ.jsx"; import { useLocaleContext } from "./JFOWNFC7.jsx"; import { runIfFn } from "./KGOB2IMX.jsx"; import { createContext } from "./UZJJWJQM.jsx"; import { __export } from "./7IUG3E2V.jsx"; // src/components/radio-group/use-radio-group-context.ts var [RadioGroupProvider, useRadioGroupContext] = createContext({ hookName: "useRadioGroupContext", providerName: "<RadioGroupProvider />" }); // src/components/radio-group/radio-group-context.tsx var RadioGroupContext = (props) => props.children(useRadioGroupContext()); // src/components/radio-group/radio-group-indicator.tsx import { mergeProps } from "@zag-js/solid"; var RadioGroupIndicator = (props) => { const radioGroup = useRadioGroupContext(); const mergedProps = mergeProps(() => radioGroup().getIndicatorProps(), props); return <ark.div {...mergedProps} />; }; // src/components/radio-group/radio-group-item.tsx import { mergeProps as mergeProps2 } from "@zag-js/solid"; import { createMemo } from "solid-js"; // src/components/radio-group/use-radio-group-item-context.ts var [RadioGroupItemProvider, useRadioGroupItemContext] = createContext({ hookName: "useRadioGroupItemContext", providerName: "<RadioGroupItemProvider />" }); // src/components/radio-group/use-radio-group-item-props-context.ts var [RadioGroupItemPropsProvider, useRadioGroupItemPropsContext] = createContext({ hookName: "useRadioGroupItemPropsContext", providerName: "<RadioGroupItemPropsProvider />" }); // src/components/radio-group/radio-group-item.tsx var RadioGroupItem = (props) => { const [itemProps, localProps] = createSplitProps()(props, ["value", "disabled", "invalid"]); const radioGroup = useRadioGroupContext(); const mergedProps = mergeProps2(() => radioGroup().getItemProps(itemProps), localProps); const itemState = createMemo(() => radioGroup().getItemState(itemProps)); return <RadioGroupItemPropsProvider value={itemProps}> <RadioGroupItemProvider value={itemState}> <ark.label {...mergedProps} /> </RadioGroupItemProvider> </RadioGroupItemPropsProvider>; }; // src/components/radio-group/radio-group-item-context.tsx var RadioGroupItemContext = (props) => props.children(useRadioGroupItemContext()); // src/components/radio-group/radio-group-item-control.tsx import { mergeProps as mergeProps3 } from "@zag-js/solid"; var RadioGroupItemControl = (props) => { const radioGroup = useRadioGroupContext(); const itemProps = useRadioGroupItemPropsContext(); const mergedProps = mergeProps3(() => radioGroup().getItemControlProps(itemProps), props); return <ark.div {...mergedProps} />; }; // src/components/radio-group/radio-group-item-hidden-input.tsx import { mergeProps as mergeProps4 } from "@zag-js/solid"; var RadioGroupItemHiddenInput = (props) => { const radioGroup = useRadioGroupContext(); const itemProps = useRadioGroupItemPropsContext(); const mergedProps = mergeProps4(() => radioGroup().getItemHiddenInputProps(itemProps), props); return <ark.input {...mergedProps} />; }; // src/components/radio-group/radio-group-item-text.tsx import { mergeProps as mergeProps5 } from "@zag-js/solid"; var RadioGroupItemText = (props) => { const radioGroup = useRadioGroupContext(); const itemProps = useRadioGroupItemPropsContext(); const mergedProps = mergeProps5(() => radioGroup().getItemTextProps(itemProps), props); return <ark.span {...mergedProps} />; }; // src/components/radio-group/radio-group-label.tsx import { mergeProps as mergeProps6 } from "@zag-js/solid"; var RadioGroupLabel = (props) => { const radioGroup = useRadioGroupContext(); const mergedProps = mergeProps6(() => radioGroup().getLabelProps(), props); return <ark.label {...mergedProps} />; }; // src/components/radio-group/radio-group-root.tsx import { mergeProps as mergeProps7 } from "@zag-js/solid"; // src/components/radio-group/use-radio-group.ts import * as radio from "@zag-js/radio-group"; import { normalizeProps, useMachine } from "@zag-js/solid"; import { createMemo as createMemo2, createUniqueId } from "solid-js"; var useRadioGroup = (props) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const fieldset = useFieldsetContext(); const machineProps = createMemo2(() => { const fieldsetContext = fieldset?.(); return { id, ids: { label: fieldsetContext?.ids?.legend }, dir: locale().dir, disabled: fieldsetContext?.disabled, invalid: fieldsetContext?.invalid, getRootNode: environment().getRootNode, ...runIfFn(props) }; }); const service = useMachine(radio.machine, machineProps); return createMemo2(() => radio.connect(service, normalizeProps)); }; // src/components/radio-group/radio-group-root.tsx var RadioGroupRoot = (props) => { const [useRadioGroupProps, localProps] = createSplitProps()(props, [ "defaultValue", "disabled", "form", "id", "ids", "invalid", "name", "onValueChange", "orientation", "readOnly", "required", "value" ]); const radioGroup = useRadioGroup(useRadioGroupProps); const mergedProps = mergeProps7(() => radioGroup().getRootProps(), localProps); return <RadioGroupProvider value={radioGroup}> <ark.div {...mergedProps} /> </RadioGroupProvider>; }; // src/components/radio-group/radio-group-root-provider.tsx import { mergeProps as mergeProps8 } from "@zag-js/solid"; var RadioGroupRootProvider = (props) => { const [{ value: radioGroup }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps8(() => radioGroup().getRootProps(), localProps); return <RadioGroupProvider value={radioGroup}> <ark.div {...mergedProps} /> </RadioGroupProvider>; }; // src/components/radio-group/radio-group.ts var radio_group_exports = {}; __export(radio_group_exports, { Context: () => RadioGroupContext, Indicator: () => RadioGroupIndicator, Item: () => RadioGroupItem, ItemContext: () => RadioGroupItemContext, ItemControl: () => RadioGroupItemControl, ItemHiddenInput: () => RadioGroupItemHiddenInput, ItemText: () => RadioGroupItemText, Label: () => RadioGroupLabel, Root: () => RadioGroupRoot, RootProvider: () => RadioGroupRootProvider }); export { useRadioGroupContext, RadioGroupContext, RadioGroupIndicator, useRadioGroupItemContext, RadioGroupItem, RadioGroupItemContext, RadioGroupItemControl, RadioGroupItemHiddenInput, RadioGroupItemText, RadioGroupLabel, useRadioGroup, RadioGroupRoot, RadioGroupRootProvider, radio_group_exports };