@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
JavaScript
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 };