@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
167 lines (154 loc) • 4.81 kB
JSX
import {
useFieldContext
} from "./7HLG62OR.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/pin-input/use-pin-input-context.ts
var [PinInputProvider, usePinInputContext] = createContext({
hookName: "usePinInputContext",
providerName: "<PinInputProvider />"
});
// src/components/pin-input/pin-input-context.tsx
var PinInputContext = (props) => props.children(usePinInputContext());
// src/components/pin-input/pin-input-control.tsx
import { mergeProps } from "@zag-js/solid";
var PinInputControl = (props) => {
const api = usePinInputContext();
const mergedProps = mergeProps(() => api().getControlProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/pin-input/pin-input-hidden-input.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var PinInputHiddenInput = (props) => {
const pinInput2 = usePinInputContext();
const mergedProps = mergeProps2(() => pinInput2().getHiddenInputProps(), props);
const field = useFieldContext();
return <ark.input aria-describedby={field?.().ariaDescribedby} {...mergedProps} />;
};
// src/components/pin-input/pin-input-input.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
var PinInputInput = (props) => {
const [inputProps, localProps] = createSplitProps()(props, ["index"]);
const api = usePinInputContext();
const mergedProps = mergeProps3(() => api().getInputProps(inputProps), localProps);
return <ark.input {...mergedProps} />;
};
// src/components/pin-input/pin-input-label.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var PinInputLabel = (props) => {
const api = usePinInputContext();
const mergedProps = mergeProps4(() => api().getLabelProps(), props);
return <ark.label {...mergedProps} />;
};
// src/components/pin-input/pin-input-root.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
// src/components/pin-input/use-pin-input.ts
import * as pinInput from "@zag-js/pin-input";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
var usePinInput = (props) => {
const id = createUniqueId();
const locale = useLocaleContext();
const environment = useEnvironmentContext();
const field = useFieldContext();
const machineProps = createMemo(() => ({
id,
ids: {
label: field?.().ids.label,
hiddenInput: field?.().ids.control
},
disabled: field?.().disabled,
readOnly: field?.().readOnly,
required: field?.().required,
invalid: field?.().invalid,
dir: locale().dir,
getRootNode: environment().getRootNode,
...runIfFn(props)
}));
const service = useMachine(pinInput.machine, machineProps);
return createMemo(() => pinInput.connect(service, normalizeProps));
};
// src/components/pin-input/pin-input-root.tsx
var PinInputRoot = (props) => {
const [usePinInputProps, localProps] = createSplitProps()(props, [
"autoFocus",
"blurOnComplete",
"count",
"defaultValue",
"disabled",
"form",
"id",
"ids",
"invalid",
"mask",
"name",
"onValueChange",
"onValueComplete",
"onValueInvalid",
"otp",
"pattern",
"placeholder",
"readOnly",
"required",
"selectOnFocus",
"translations",
"type",
"value"
]);
const pinInput2 = usePinInput(usePinInputProps);
const mergedProps = mergeProps5(() => pinInput2().getRootProps(), localProps);
return <PinInputProvider value={pinInput2}>
<ark.div {...mergedProps} />
</PinInputProvider>;
};
// src/components/pin-input/pin-input-root-provider.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var PinInputRootProvider = (props) => {
const [{ value: pinInput2 }, localProps] = createSplitProps()(props, ["value"]);
const mergedProps = mergeProps6(() => pinInput2().getRootProps(), localProps);
return <PinInputProvider value={pinInput2}>
<ark.div {...mergedProps} />
</PinInputProvider>;
};
// src/components/pin-input/pin-input.ts
var pin_input_exports = {};
__export(pin_input_exports, {
Context: () => PinInputContext,
Control: () => PinInputControl,
HiddenInput: () => PinInputHiddenInput,
Input: () => PinInputInput,
Label: () => PinInputLabel,
Root: () => PinInputRoot,
RootProvider: () => PinInputRootProvider
});
export {
usePinInputContext,
PinInputContext,
PinInputControl,
PinInputHiddenInput,
PinInputInput,
PinInputLabel,
usePinInput,
PinInputRoot,
PinInputRootProvider,
pin_input_exports
};