UNPKG

@ark-ui/solid

Version:

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

106 lines (100 loc) 4.42 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 imageCropper from '@zag-js/image-cropper'; import { handles } from '@zag-js/image-cropper'; import { createUniqueId, createMemo } from 'solid-js'; // src/components/image-cropper/use-image-cropper-context.ts var [ImageCropperProvider, useImageCropperContext] = createContext({ hookName: "useImageCropperContext", providerName: "<ImageCropperProvider />" }); // src/components/image-cropper/image-cropper-context.tsx var ImageCropperContext = (props) => props.children(useImageCropperContext()); var ImageCropperGrid = (props) => { const api = useImageCropperContext(); const mergedProps = mergeProps(() => api().getGridProps({ axis: props.axis }), props); return createComponent(ark.div, mergedProps); }; var ImageCropperHandle = (props) => { const api = useImageCropperContext(); const mergedProps = mergeProps(() => api().getHandleProps({ position: props.position }), props); return createComponent(ark.div, mergedProps); }; var ImageCropperImage = (props) => { const api = useImageCropperContext(); const mergedProps = mergeProps(() => api().getImageProps(), props); return createComponent(ark.img, mergedProps); }; var useImageCropper = (props = {}) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const imageCropperProps = runIfFn(props); const machineProps = createMemo(() => ({ id, dir: locale().dir, getRootNode: environment().getRootNode, ...imageCropperProps })); const service = useMachine(imageCropper.machine, machineProps); return createMemo(() => imageCropper.connect(service, normalizeProps)); }; // src/components/image-cropper/image-cropper-root.tsx var ImageCropperRoot = (props) => { const [useImageCropperProps, localProps] = createSplitProps()(props, ["aspectRatio", "cropShape", "defaultFlip", "defaultRotation", "defaultZoom", "fixedCropArea", "flip", "id", "ids", "initialCrop", "maxHeight", "maxWidth", "maxZoom", "minHeight", "minWidth", "minZoom", "nudgeStep", "nudgeStepCtrl", "nudgeStepShift", "onCropChange", "onFlipChange", "onRotationChange", "onZoomChange", "rotation", "translations", "zoom", "zoomSensitivity", "zoomStep"]); const api = useImageCropper(useImageCropperProps); const mergedProps = mergeProps(() => api().getRootProps(), localProps); return createComponent(ImageCropperProvider, { value: api, get children() { return createComponent(ark.div, mergedProps); } }); }; var ImageCropperRootProvider = (props) => { const [{ value: imageCropper2 }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps(() => imageCropper2().getRootProps(), localProps); return createComponent(ImageCropperProvider, { value: imageCropper2, get children() { return createComponent(ark.div, mergedProps); } }); }; var ImageCropperSelection = (props) => { const api = useImageCropperContext(); const mergedProps = mergeProps(() => api().getSelectionProps(), props); return createComponent(ark.div, mergedProps); }; var ImageCropperViewport = (props) => { const api = useImageCropperContext(); const mergedProps = mergeProps(() => api().getViewportProps(), props); return createComponent(ark.div, mergedProps); }; // src/components/image-cropper/image-cropper.ts var image_cropper_exports = {}; __export(image_cropper_exports, { Context: () => ImageCropperContext, Grid: () => ImageCropperGrid, Handle: () => ImageCropperHandle, Image: () => ImageCropperImage, Root: () => ImageCropperRoot, RootProvider: () => ImageCropperRootProvider, Selection: () => ImageCropperSelection, Viewport: () => ImageCropperViewport, handles: () => handles }); export { ImageCropperContext, ImageCropperGrid, ImageCropperHandle, ImageCropperImage, ImageCropperRoot, ImageCropperRootProvider, ImageCropperSelection, ImageCropperViewport, image_cropper_exports, useImageCropper, useImageCropperContext };