@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
152 lines (136 loc) • 4.47 kB
JSX
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
useEnvironmentContext
} from "./E2L62MKC.jsx";
import {
createContext
} from "./TVCIHLER.jsx";
import {
runIfFn
} from "./KGOB2IMX.jsx";
import {
__export
} from "./7IUG3E2V.jsx";
// src/components/timer/timer-action-trigger.tsx
import { mergeProps } from "@zag-js/solid";
// src/components/timer/use-timer-context.ts
var [TimerProvider, useTimerContext] = createContext({
hookName: "useTimerContext",
providerName: "<TimerProvider />"
});
// src/components/timer/timer-action-trigger.tsx
var TimerActionTrigger = (props) => {
const [actionTriggerProps, localProps] = createSplitProps()(props, ["action"]);
const timer2 = useTimerContext();
const mergedProps = mergeProps(() => timer2().getActionTriggerProps(actionTriggerProps), localProps);
return <ark.button {...mergedProps} />;
};
// src/components/timer/timer-area.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
var TimerArea = (props) => {
const timer2 = useTimerContext();
const mergedProps = mergeProps2(() => timer2().getAreaProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/timer/timer-context.tsx
var TimerContext = (props) => props.children(useTimerContext());
// src/components/timer/timer-control.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
var TimerControl = (props) => {
const timer2 = useTimerContext();
const mergedProps = mergeProps3(() => timer2().getControlProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/timer/timer-item.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var TimerItem = (props) => {
const [itemProps, localProps] = createSplitProps()(props, ["type"]);
const timer2 = useTimerContext();
const mergedProps = mergeProps4(() => timer2().getItemProps(itemProps), localProps);
return <ark.div {...mergedProps}>{timer2().formattedTime[itemProps.type]}</ark.div>;
};
// src/components/timer/timer-root.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
// src/components/timer/use-timer.ts
import { normalizeProps, useMachine } from "@zag-js/solid";
import * as timer from "@zag-js/timer";
import { createMemo, createUniqueId } from "solid-js";
var useTimer = (props) => {
const id = createUniqueId();
const environment = useEnvironmentContext();
const machineProps = createMemo(() => ({
id,
getRootNode: environment().getRootNode,
...runIfFn(props)
}));
const service = useMachine(timer.machine, machineProps);
return createMemo(() => timer.connect(service, normalizeProps));
};
// src/components/timer/timer-root.tsx
var TimerRoot = (props) => {
const [useTimerProps, localProps] = createSplitProps()(props, [
"id",
"ids",
"autoStart",
"interval",
"countdown",
"startMs",
"targetMs",
"onComplete",
"onTick"
]);
const timer2 = useTimer(useTimerProps);
const mergedProps = mergeProps5(() => timer2().getRootProps(), localProps);
return <TimerProvider value={timer2}>
<ark.div {...mergedProps} />
</TimerProvider>;
};
// src/components/timer/timer-root-provider.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var TimerRootProvider = (props) => {
const [{ value: timer2 }, localProps] = createSplitProps()(props, ["value"]);
const mergedProps = mergeProps6(() => timer2().getRootProps(), localProps);
return <TimerProvider value={timer2}>
<ark.div {...mergedProps} />
</TimerProvider>;
};
// src/components/timer/timer-separator.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
var TimerSeparator = (props) => {
const timer2 = useTimerContext();
const mergedProps = mergeProps7(() => timer2().getSeparatorProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/timer/timer.anatomy.ts
import { anatomy } from "@zag-js/timer";
// src/components/timer/timer.ts
var timer_exports = {};
__export(timer_exports, {
ActionTrigger: () => TimerActionTrigger,
Area: () => TimerArea,
Context: () => TimerContext,
Control: () => TimerControl,
Item: () => TimerItem,
Root: () => TimerRoot,
RootProvider: () => TimerRootProvider,
Separator: () => TimerSeparator
});
export {
useTimerContext,
TimerActionTrigger,
TimerArea,
TimerContext,
TimerControl,
TimerItem,
useTimer,
TimerRoot,
TimerRootProvider,
TimerSeparator,
anatomy,
timer_exports
};