UNPKG

@ark-ui/solid

Version:

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

94 lines (88 loc) 3.54 kB
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 } from 'solid-js/web'; import { mergeProps, useMachine, normalizeProps } from '@zag-js/solid'; import * as qrCode from '@zag-js/qr-code'; import { createUniqueId, createMemo } from 'solid-js'; // src/components/qr-code/use-qr-code-context.ts var [QrCodeProvider, useQrCodeContext] = createContext({ hookName: "useQrCodeContext", providerName: "<QrCodeProvider />" }); // src/components/qr-code/qr-code-context.ts var QrCodeContext = (props) => props.children(useQrCodeContext()); var QrCodeDownloadTrigger = (props) => { const [downloadTriggerProps, localProps] = createSplitProps()(props, ["fileName", "mimeType", "quality"]); const qrCode2 = useQrCodeContext(); const mergedProps = mergeProps(() => qrCode2().getDownloadTriggerProps(downloadTriggerProps), localProps); return createComponent(ark.button, mergedProps); }; var QrCodeFrame = (props) => { const qrCode2 = useQrCodeContext(); const mergedProps = mergeProps(() => qrCode2().getFrameProps(), props); return createComponent(ark.svg, mergedProps); }; var QrCodeOverlay = (props) => { const qrCode2 = useQrCodeContext(); const mergedProps = mergeProps(() => qrCode2().getOverlayProps(), props); return createComponent(ark.div, mergedProps); }; var QrCodePattern = (props) => { const qrCode2 = useQrCodeContext(); const mergedProps = mergeProps(() => qrCode2().getPatternProps(), props); return createComponent(ark.path, mergedProps); }; var useQrCode = (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(qrCode.machine, machineProps); return createMemo(() => qrCode.connect(service, normalizeProps)); }; // src/components/qr-code/qr-code-root.tsx var QrCodeRoot = (props) => { const [useQrCodeProps, restProps] = createSplitProps()(props, ["defaultValue", "encoding", "id", "ids", "onValueChange", "pixelSize", "value"]); const api = useQrCode(useQrCodeProps); const mergedProps = mergeProps(() => api().getRootProps(), restProps); return createComponent(QrCodeProvider, { value: api, get children() { return createComponent(ark.div, mergedProps); } }); }; var QrCodeRootProvider = (props) => { const [{ value: qrCode2 }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps(() => qrCode2().getRootProps(), localProps); return createComponent(QrCodeProvider, { value: qrCode2, get children() { return createComponent(ark.div, mergedProps); } }); }; // src/components/qr-code/qr-code.ts var qr_code_exports = {}; __export(qr_code_exports, { Context: () => QrCodeContext, DownloadTrigger: () => QrCodeDownloadTrigger, Frame: () => QrCodeFrame, Overlay: () => QrCodeOverlay, Pattern: () => QrCodePattern, Root: () => QrCodeRoot, RootProvider: () => QrCodeRootProvider }); export { QrCodeContext, QrCodeDownloadTrigger, QrCodeFrame, QrCodeOverlay, QrCodePattern, QrCodeRoot, QrCodeRootProvider, qr_code_exports, useQrCode, useQrCodeContext };