UNPKG

@ark-ui/solid

Version:

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

126 lines (119 loc) 4.8 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 * as progress from '@zag-js/progress'; export { anatomy } from '@zag-js/progress'; import { createUniqueId, createMemo } from 'solid-js'; // src/components/progress/use-progress-context.ts var [ProgressProvider, useProgressContext] = createContext({ hookName: "useProgressContext", providerName: "<ProgressProvider />" }); // src/components/progress/progress-circle.tsx var ProgressCircle = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getCircleProps(), props); return createComponent(ark.svg, mergedProps); }; var ProgressCircleRange = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getCircleRangeProps(), props); return createComponent(ark.circle, mergedProps); }; var ProgressCircleTrack = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getCircleTrackProps(), props); return createComponent(ark.circle, mergedProps); }; // src/components/progress/progress-context.tsx var ProgressContext = (props) => props.children(useProgressContext()); var ProgressLabel = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getLabelProps(), props); return createComponent(ark.label, mergedProps); }; var ProgressRange = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getRangeProps(), props); return createComponent(ark.div, mergedProps); }; var useProgress = (props) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const machineProps = createMemo(() => ({ id, dir: locale().dir, locale: locale().locale, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(progress.machine, machineProps); return createMemo(() => progress.connect(service, normalizeProps)); }; // src/components/progress/progress-root.tsx var ProgressRoot = (props) => { const [progressProps, localProps] = createSplitProps()(props, ["defaultValue", "formatOptions", "id", "ids", "locale", "max", "min", "onValueChange", "orientation", "translations", "value"]); const api = useProgress(progressProps); const mergedProps = mergeProps(() => api().getRootProps(), localProps); return createComponent(ProgressProvider, { value: api, get children() { return createComponent(ark.div, mergedProps); } }); }; var ProgressRootProvider = (props) => { const [{ value: progress2 }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps(() => progress2().getRootProps(), localProps); return createComponent(ProgressProvider, { value: progress2, get children() { return createComponent(ark.div, mergedProps); } }); }; var ProgressTrack = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getTrackProps(), props); return createComponent(ark.div, mergedProps); }; var ProgressValueText = (props) => { const api = useProgressContext(); const mergedProps = mergeProps(() => api().getValueTextProps(), props); return createComponent(ark.span, mergeProps$1(mergedProps, { get children() { return props.children || api().percentAsString; } })); }; var ProgressView = (props) => { const [state, localProps] = createSplitProps()(props, ["state"]); const api = useProgressContext(); const mergedProps = mergeProps(() => api().getViewProps(state), localProps); return createComponent(ark.span, mergedProps); }; // src/components/progress/progress.ts var progress_exports = {}; __export(progress_exports, { Circle: () => ProgressCircle, CircleRange: () => ProgressCircleRange, CircleTrack: () => ProgressCircleTrack, Context: () => ProgressContext, Label: () => ProgressLabel, Range: () => ProgressRange, Root: () => ProgressRoot, RootProvider: () => ProgressRootProvider, Track: () => ProgressTrack, ValueText: () => ProgressValueText, View: () => ProgressView }); export { ProgressCircle, ProgressCircleRange, ProgressCircleTrack, ProgressContext, ProgressLabel, ProgressRange, ProgressRoot, ProgressRootProvider, ProgressTrack, ProgressValueText, ProgressView, progress_exports, useProgress, useProgressContext };