UNPKG

@ark-ui/solid

Version:

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

238 lines (231 loc) 8.15 kB
import { usePresence, splitPresenceProps, PresenceProvider, usePresenceContext } from './FW6EZLZL.js'; import { composeRefs } from './ROP6QZQ7.js'; import { tourAnatomy } from './NYBIYPS4.js'; import { useRenderStrategyContext, splitRenderStrategyProps, RenderStrategyProvider } from './GUFIKGZ6.js'; 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 { Show, createUniqueId, createMemo } from 'solid-js'; import * as tour from '@zag-js/tour'; // src/components/tour/use-tour-context.ts var [TourProvider, useTourContext] = createContext({ hookName: "useTourContext", providerName: "<TourProvider />" }); // src/components/tour/tour-action-trigger.tsx var TourActionTrigger = (props) => { const [actionTriggerProps, localProps] = createSplitProps()(props, ["action"]); const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getActionTriggerProps(actionTriggerProps), localProps); return createComponent(ark.button, mergeProps$1(mergedProps, { get children() { return mergedProps.children || actionTriggerProps.action.label; } })); }; // src/components/tour/tour-actions.tsx var TourActions = (props) => { const tour2 = useTourContext(); return props.children(() => tour2().step?.actions ?? []); }; var TourArrow = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getArrowProps(), props); return createComponent(Show, { get when() { return tour2().step?.arrow; }, get children() { return createComponent(ark.div, mergedProps); } }); }; var TourArrowTip = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getArrowTipProps(), props); return createComponent(ark.div, mergedProps); }; var TourBackdrop = (props) => { const tour2 = useTourContext(); const renderStrategyProps = useRenderStrategyContext(); const presence = usePresence(mergeProps(renderStrategyProps, () => ({ present: tour2().open }))); const mergedProps = mergeProps(() => tour2().getBackdropProps(), () => presence().presenceProps, props); return createComponent(Show, { get when() { return !presence().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { get hidden() { return !tour2().step?.backdrop; }, ref(r$) { var _ref$ = composeRefs(presence().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; var TourCloseTrigger = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getCloseTriggerProps(), props); return createComponent(ark.button, mergedProps); }; var TourContent = (props) => { const tour2 = useTourContext(); const renderStrategyProps = useRenderStrategyContext(); const presence = usePresence(mergeProps(renderStrategyProps, () => ({ present: tour2().open }))); const mergedProps = mergeProps(() => tour2().getContentProps(), () => presence().presenceProps, props); return createComponent(Show, { get when() { return !presence().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { ref(r$) { var _ref$ = composeRefs(presence().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; // src/components/tour/tour-context.tsx var TourContext = (props) => props.children(useTourContext()); var TourControl = (props) => { const mergedProps = mergeProps(() => tourAnatomy.build().control.attrs, props); return createComponent(ark.div, mergedProps); }; var TourDescription = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getDescriptionProps(), props); return createComponent(ark.div, mergeProps$1(mergedProps, { get children() { return mergedProps.children || tour2().step?.description; } })); }; var TourPositioner = (props) => { const tour2 = useTourContext(); const presence = usePresenceContext(); const mergedProps = mergeProps(() => tour2().getPositionerProps(), props); return createComponent(Show, { get when() { return !presence().unmounted; }, get children() { return createComponent(ark.div, mergedProps); } }); }; var TourProgressText = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getProgressTextProps(), props); return createComponent(ark.div, mergeProps$1(mergedProps, { get children() { return mergedProps.children || tour2().getProgressText(); } })); }; var TourRoot = (props) => { const [presenceProps, rootProps] = splitPresenceProps(props); const [renderStrategyProps] = splitRenderStrategyProps(presenceProps); const presence = usePresence(mergeProps(presenceProps, () => ({ present: rootProps.tour().open }))); return createComponent(TourProvider, { get value() { return rootProps.tour; }, get children() { return createComponent(RenderStrategyProvider, { value: renderStrategyProps, get children() { return createComponent(PresenceProvider, { value: presence, get children() { return rootProps.children; } }); } }); } }); }; var TourSpotlight = (props) => { const tour2 = useTourContext(); const renderStrategyProps = useRenderStrategyContext(); const presenceApi = usePresence(mergeProps(renderStrategyProps, () => ({ present: tour2().open }))); const mergedProps = mergeProps(() => tour2().getSpotlightProps(), () => presenceApi().presenceProps, props); return createComponent(Show, { get when() { return !presenceApi().unmounted; }, get children() { return createComponent(ark.div, mergeProps$1(mergedProps, { get hidden() { return !tour2().open || !tour2().step?.target?.(); }, ref(r$) { var _ref$ = composeRefs(presenceApi().ref, props.ref); typeof _ref$ === "function" && _ref$(r$); } })); } }); }; var TourTitle = (props) => { const tour2 = useTourContext(); const mergedProps = mergeProps(() => tour2().getTitleProps(), props); return createComponent(ark.h2, mergeProps$1(mergedProps, { get children() { return mergedProps.children || tour2().step?.title; } })); }; var useTour = (props) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(tour.machine, machineProps); return createMemo(() => tour.connect(service, normalizeProps)); }; // src/components/tour/tour.ts var tour_exports = {}; __export(tour_exports, { ActionTrigger: () => TourActionTrigger, Actions: () => TourActions, Arrow: () => TourArrow, ArrowTip: () => TourArrowTip, Backdrop: () => TourBackdrop, CloseTrigger: () => TourCloseTrigger, Content: () => TourContent, Context: () => TourContext, Control: () => TourControl, Description: () => TourDescription, Positioner: () => TourPositioner, ProgressText: () => TourProgressText, Root: () => TourRoot, Spotlight: () => TourSpotlight, Title: () => TourTitle }); export { TourActionTrigger, TourActions, TourArrow, TourArrowTip, TourBackdrop, TourCloseTrigger, TourContent, TourContext, TourControl, TourDescription, TourPositioner, TourProgressText, TourRoot, TourSpotlight, TourTitle, tour_exports, useTour, useTourContext };