UNPKG

@ark-ui/solid

Version:

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

180 lines (168 loc) 6.53 kB
import { createSplitProps } from './ZMHI4GDJ.js'; import { ark } from './EPLBB4QN.js'; import { useEnvironmentContext } from './YO2MCGXO.js'; import { useLocaleContext } from './OKZ64GSY.js'; import { createContext } from './TROPIN4C.js'; import { runIfFn } from './DT73WLR4.js'; import { __export } from './ESLJRKWD.js'; import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web'; import { mergeProps, useMachine, normalizeProps } from '@zag-js/solid'; import { createMemo, createUniqueId } from 'solid-js'; import * as steps from '@zag-js/steps'; export { anatomy } from '@zag-js/steps'; // src/components/steps/use-steps-context.ts var [StepsProvider, useStepsContext] = createContext({ hookName: "useStepsContext", providerName: "<StepsProvider />" }); // src/components/steps/steps-completed-content.tsx var StepsCompletedContent = (props) => { const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getContentProps({ index: steps2().count }), props); return createComponent(ark.div, mergedProps); }; var StepsContent = (props) => { const [itemProps, localProps] = createSplitProps()(props, ["index"]); const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getContentProps(itemProps), localProps); return createComponent(ark.div, mergedProps); }; // src/components/steps/steps-context.tsx var StepsContext = (props) => { const context = useStepsContext(); return props.children(context); }; // src/components/steps/use-steps-item-props-context.ts var [StepsItemPropsProvider, useStepsItemPropsContext] = createContext({ hookName: "useStepsItemPropsContext", providerName: "<StepsItemPropsProvider />" }); // src/components/steps/steps-indicator.tsx var StepsIndicator = (props) => { const steps2 = useStepsContext(); const itemProps = useStepsItemPropsContext(); const mergedProps = mergeProps(() => steps2().getIndicatorProps(itemProps), props); return createComponent(ark.div, mergedProps); }; // src/components/steps/use-steps-item-context.ts var [StepsItemProvider, useStepsItemContext] = createContext({ hookName: "useStepsItemContext", providerName: "<StepsItem />" }); // src/components/steps/steps-item.tsx var StepsItem = (props) => { const [itemProps, localProps] = createSplitProps()(props, ["index"]); const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getItemProps(itemProps), localProps); const itemState = createMemo(() => steps2().getItemState(itemProps)); return createComponent(StepsItemPropsProvider, { value: itemProps, get children() { return createComponent(StepsItemProvider, { value: itemState, get children() { return createComponent(ark.div, mergedProps); } }); } }); }; // src/components/steps/steps-item-context.tsx var StepsItemContext = (props) => { return props.children(useStepsItemContext()); }; StepsItemContext.displayName = "StepsItemContext"; var StepsList = (props) => { const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getListProps(), props); return createComponent(ark.div, mergedProps); }; var StepsNextTrigger = (props) => { const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getNextTriggerProps(), props); return createComponent(ark.button, mergedProps); }; var StepsPrevTrigger = (props) => { const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getPrevTriggerProps(), props); return createComponent(ark.button, mergedProps); }; var StepsProgress = (props) => { const steps2 = useStepsContext(); const mergedProps = mergeProps(() => steps2().getProgressProps(), props); return createComponent(ark.div, mergedProps); }; function useSteps(props) { const id = createUniqueId(); const environment = useEnvironmentContext(); const locale = useLocaleContext(); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(steps.machine, machineProps); return createMemo(() => steps.connect(service, normalizeProps)); } // src/components/steps/steps-root.tsx var StepsRoot = (props) => { const [useStepsProps, localProps] = createSplitProps()(props, ["defaultStep", "id", "ids", "count", "linear", "onStepChange", "onStepComplete", "orientation", "step"]); const steps2 = useSteps(useStepsProps); const mergedProps = mergeProps(() => steps2().getRootProps(), localProps); return createComponent(StepsProvider, { value: steps2, get children() { return createComponent(ark.div, mergedProps); } }); }; var StepsRootProvider = (props) => { const [{ value: steps2 }, rootProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps(() => steps2().getRootProps(), rootProps); return createComponent(StepsProvider, { value: steps2, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { get children() { return props.children; } })); } }); }; var StepsSeparator = (props) => { const steps2 = useStepsContext(); const itemProps = useStepsItemPropsContext(); const mergedProps = mergeProps(() => steps2().getSeparatorProps(itemProps), props); return createComponent(ark.div, mergedProps); }; var StepsTrigger = (props) => { const steps2 = useStepsContext(); const itemProps = useStepsItemPropsContext(); const mergedProps = mergeProps(() => steps2().getTriggerProps(itemProps), props); return createComponent(ark.button, mergedProps); }; // src/components/steps/steps.ts var steps_exports = {}; __export(steps_exports, { CompletedContent: () => StepsCompletedContent, Content: () => StepsContent, Context: () => StepsContext, Indicator: () => StepsIndicator, Item: () => StepsItem, ItemContext: () => StepsItemContext, List: () => StepsList, NextTrigger: () => StepsNextTrigger, PrevTrigger: () => StepsPrevTrigger, Progress: () => StepsProgress, Root: () => StepsRoot, RootProvider: () => StepsRootProvider, Separator: () => StepsSeparator, Trigger: () => StepsTrigger }); export { StepsCompletedContent, StepsContent, StepsContext, StepsIndicator, StepsItem, StepsItemContext, StepsList, StepsNextTrigger, StepsPrevTrigger, StepsProgress, StepsRoot, StepsRootProvider, StepsSeparator, StepsTrigger, steps_exports, useSteps, useStepsContext, useStepsItemContext };