UNPKG

@ark-ui/solid

Version:

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

195 lines (187 loc) 7.87 kB
import { splitPresenceProps, usePresence, PresenceProvider, usePresenceContext } from './SIT3D7TL.js'; import { composeRefs } from './ROP6QZQ7.js'; 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'; export { parseTime } from '@internationalized/date'; import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web'; import { mergeProps, useMachine, normalizeProps } from '@zag-js/solid'; import { Show, createUniqueId, createMemo } from 'solid-js'; import * as timePicker from '@zag-js/time-picker'; export { anatomy } from '@zag-js/time-picker'; // src/components/time-picker/use-time-picker-column-props-context.ts var [TimePickerColumnPropsProvider, useTimePickerColumnPropsContext] = createContext({ hookName: "useTimePickerColumnPropsContext", providerName: "<TimePickerColumnPropsProvider />" }); // src/components/time-picker/use-time-picker-context.ts var [TimePickerProvider, useTimePickerContext] = createContext({ hookName: "useTimePickerContext", providerName: "<TimePickerProvider />" }); // src/components/time-picker/time-picker-cell.tsx var TimePickerCell = (props) => { const [cellProps, localProps] = createSplitProps()(props, ["value"]); const timePicker2 = useTimePickerContext(); const columnProps = useTimePickerColumnPropsContext(); const unitToPropsMap = { hour: () => timePicker2().getHourCellProps(cellProps), minute: () => timePicker2().getMinuteCellProps(cellProps), second: () => timePicker2().getSecondCellProps(cellProps), period: () => timePicker2().getPeriodCellProps(cellProps) }; const mergedProps = mergeProps(() => unitToPropsMap[columnProps.unit](), localProps); return createComponent(ark.button, mergedProps); }; var TimePickerClearTrigger = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getClearTriggerProps(), props); return createComponent(ark.button, mergedProps); }; var TimePickerColumn = (props) => { const [columnProps, localProps] = createSplitProps()(props, ["unit"]); const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getColumnProps(columnProps), localProps); return createComponent(TimePickerColumnPropsProvider, { value: columnProps, get children() { return createComponent(ark.div, mergedProps); } }); }; var TimePickerContent = (props) => { const timePicker2 = useTimePickerContext(); const presenceApi = usePresenceContext(); const mergedProps = mergeProps(() => timePicker2().getContentProps(), () => presenceApi().presenceProps, props); return createComponent(Show, { get when() { return !presenceApi().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { ref(r$) { var _ref$ = composeRefs(presenceApi().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; // src/components/time-picker/time-picker-context.tsx var TimePickerContext = (props) => props.children(useTimePickerContext()); var TimePickerControl = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getControlProps(), props); return createComponent(ark.div, mergedProps); }; var TimePickerInput = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getInputProps(), props); return createComponent(ark.input, mergedProps); }; var TimePickerLabel = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getLabelProps(), props); return createComponent(ark.label, mergedProps); }; var TimePickerPositioner = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getPositionerProps(), props); const presenceApi = usePresenceContext(); return createComponent(Show, { get when() { return !presenceApi().unmounted; }, get children() { return createComponent(ark.div, mergedProps); } }); }; var useTimePicker = (props) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, locale: locale().locale, ...runIfFn(props) })); const service = useMachine(timePicker.machine, machineProps); return createMemo(() => timePicker.connect(service, normalizeProps)); }; // src/components/time-picker/time-picker-root.tsx var TimePickerRoot = (props) => { const [presenceProps, timePickerProps] = splitPresenceProps(props); const [useTimePickerProps, localProps] = createSplitProps()(timePickerProps, ["allowSeconds", "defaultOpen", "defaultValue", "disableLayer", "disabled", "id", "ids", "locale", "max", "min", "name", "onFocusChange", "onOpenChange", "onValueChange", "open", "placeholder", "positioning", "readOnly", "steps", "value"]); const timePicker2 = useTimePicker(useTimePickerProps); const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: timePicker2().open }))); const mergedProps = mergeProps(() => timePicker2().getRootProps(), localProps); return createComponent(TimePickerProvider, { value: timePicker2, get children() { return createComponent(PresenceProvider, { value: apiPresence, get children() { return createComponent(ark.div, mergedProps); } }); } }); }; var TimePickerRootProvider = (props) => { const [presenceProps, timePickerProps] = splitPresenceProps(props); const [{ value: timePicker2 }, localProps] = createSplitProps()(timePickerProps, ["value"]); const apiPresence = usePresence(mergeProps(presenceProps, () => ({ present: timePicker2().open }))); const mergedProps = mergeProps(() => timePicker2().getRootProps(), localProps); return createComponent(TimePickerProvider, { value: timePicker2, get children() { return createComponent(PresenceProvider, { value: apiPresence, get children() { return createComponent(ark.div, mergedProps); } }); } }); }; var TimePickerSpacer = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getSpacerProps(), props); return createComponent(ark.div, mergedProps); }; var TimePickerTrigger = (props) => { const timePicker2 = useTimePickerContext(); const mergedProps = mergeProps(() => timePicker2().getTriggerProps(), props); return createComponent(ark.button, mergedProps); }; // src/components/time-picker/time-picker.ts var time_picker_exports = {}; __export(time_picker_exports, { Cell: () => TimePickerCell, ClearTrigger: () => TimePickerClearTrigger, Column: () => TimePickerColumn, Content: () => TimePickerContent, Context: () => TimePickerContext, Control: () => TimePickerControl, Input: () => TimePickerInput, Label: () => TimePickerLabel, Positioner: () => TimePickerPositioner, Root: () => TimePickerRoot, RootProvider: () => TimePickerRootProvider, Spacer: () => TimePickerSpacer, Trigger: () => TimePickerTrigger }); export { TimePickerCell, TimePickerClearTrigger, TimePickerColumn, TimePickerContent, TimePickerContext, TimePickerControl, TimePickerInput, TimePickerLabel, TimePickerPositioner, TimePickerRoot, TimePickerRootProvider, TimePickerSpacer, TimePickerTrigger, time_picker_exports, useTimePicker, useTimePickerContext };