@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
179 lines (167 loc) • 6.49 kB
JavaScript
import { createSplitProps } from './ZMHI4GDJ.js';
import { ark } from './EPLBB4QN.js';
import { useEnvironmentContext } from './5QLLQM7E.js';
import { useLocaleContext } from './RVOPDSQY.js';
import { runIfFn } from './DT73WLR4.js';
import { createContext } from './THN5C4U6.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';
// 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 };