UNPKG

@ark-ui/solid

Version:

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

278 lines (253 loc) 9.77 kB
import { useFieldContext } from "./57XA73T6.jsx"; import { createSplitProps } from "./6WEDGJKQ.jsx"; import { ark } from "./UFYZ7HLU.jsx"; import { useLocaleContext } from "./YUC6JE7K.jsx"; import { useEnvironmentContext } from "./E2L62MKC.jsx"; import { createContext } from "./TVCIHLER.jsx"; import { runIfFn } from "./KGOB2IMX.jsx"; import { __export } from "./7IUG3E2V.jsx"; // src/components/file-upload/file-upload-clear-trigger.tsx import { mergeProps } from "@zag-js/solid"; // src/components/file-upload/use-file-upload-context.ts var [FileUploadProvider, useFileUploadContext] = createContext({ hookName: "useFileUploadContext", providerName: "<FileUploadProvider />" }); // src/components/file-upload/file-upload-clear-trigger.tsx var FileUploadClearTrigger = (props) => { const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps(() => fileUpload2().getClearTriggerProps(), props); return <ark.button {...mergedProps} />; }; // src/components/file-upload/file-upload-context.tsx var FileUploadContext = (props) => props.children(useFileUploadContext()); // src/components/file-upload/file-upload-dropzone.tsx import { mergeProps as mergeProps2 } from "@zag-js/solid"; var FileUploadDropzone = (props) => { const [dropzoneProps, localProps] = createSplitProps()(props, ["disableClick"]); const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps2(() => fileUpload2().getDropzoneProps(dropzoneProps), localProps); return <ark.div {...mergedProps} />; }; // src/components/file-upload/file-upload-hidden-input.tsx import { mergeProps as mergeProps3 } from "@zag-js/solid"; var FileUploadHiddenInput = (props) => { const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps3(() => fileUpload2().getHiddenInputProps(), props); const field = useFieldContext(); return <ark.input aria-describedby={field?.().ariaDescribedby} {...mergedProps} />; }; // src/components/file-upload/file-upload-item.tsx import { mergeProps as mergeProps4 } from "@zag-js/solid"; // src/components/file-upload/use-file-upload-item-props-context.ts var [FileUploadItemPropsProvider, useFileUploadItemPropsContext] = createContext({ hookName: "useFileUploadItemPropsContext", providerName: "<FileUploadItemPropsProvider />" }); // src/components/file-upload/file-upload-item.tsx var FileUploadItem = (props) => { const [itemProps, localProps] = createSplitProps()(props, ["file"]); const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps4(() => fileUpload2().getItemProps(itemProps), localProps); return <FileUploadItemPropsProvider value={itemProps}> <ark.li {...mergedProps} /> </FileUploadItemPropsProvider>; }; // src/components/file-upload/file-upload-item-delete-trigger.tsx import { mergeProps as mergeProps5 } from "@zag-js/solid"; var FileUploadItemDeleteTrigger = (props) => { const fileUpload2 = useFileUploadContext(); const itemProps = useFileUploadItemPropsContext(); const mergedProps = mergeProps5(() => fileUpload2().getItemDeleteTriggerProps(itemProps), props); return <ark.button {...mergedProps} />; }; // src/components/file-upload/file-upload-item-group.tsx import { mergeProps as mergeProps6 } from "@zag-js/solid"; var FileUploadItemGroup = (props) => { const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps6(() => fileUpload2().getItemGroupProps(), props); return <ark.ul {...mergedProps} />; }; // src/components/file-upload/file-upload-item-name.tsx import { mergeProps as mergeProps7 } from "@zag-js/solid"; var FileUploadItemName = (props) => { const fileUpload2 = useFileUploadContext(); const itemProps = useFileUploadItemPropsContext(); const mergedProps = mergeProps7(() => fileUpload2().getItemNameProps(itemProps), props); return <ark.div {...mergedProps}>{props.children || itemProps.file.name}</ark.div>; }; // src/components/file-upload/file-upload-item-preview.tsx import { mergeProps as mergeProps8 } from "@zag-js/solid"; var FileUploadItemPreview = (props) => { const fileUpload2 = useFileUploadContext(); const itemProps = useFileUploadItemPropsContext(); const mergedProps = mergeProps8(() => fileUpload2().getItemPreviewProps(itemProps), props); if (!itemProps.file.type.match(props.type ?? ".*")) return null; return <ark.div {...mergedProps} />; }; // src/components/file-upload/file-upload-item-preview-image.tsx import { mergeProps as mergeProps9 } from "@zag-js/solid"; import { Show, createEffect, createSignal, onCleanup } from "solid-js"; var FileUploadItemPreviewImage = (props) => { const fileUpload2 = useFileUploadContext(); const itemProps = useFileUploadItemPropsContext(); const [url, setUrl] = createSignal(""); createEffect(() => { const cleanup = fileUpload2().createFileUrl(itemProps.file, (url2) => setUrl(url2)); onCleanup(cleanup); }); const mergedProps = mergeProps9(() => fileUpload2().getItemPreviewImageProps({ ...itemProps, url: url() }), props); return <Show when={url()}> <ark.img {...mergedProps} /> </Show>; }; // src/components/file-upload/file-upload-item-size-text.tsx import { mergeProps as mergeProps10 } from "@zag-js/solid"; var FileUploadItemSizeText = (props) => { const fileUpload2 = useFileUploadContext(); const itemProps = useFileUploadItemPropsContext(); const mergedProps = mergeProps10(() => fileUpload2().getItemSizeTextProps(itemProps), props); return <ark.div {...mergedProps}>{props.children || fileUpload2().getFileSize(itemProps.file)}</ark.div>; }; // src/components/file-upload/file-upload-label.tsx import { mergeProps as mergeProps11 } from "@zag-js/solid"; var FileUploadLabel = (props) => { const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps11(() => fileUpload2().getLabelProps(), props); return <ark.label {...mergedProps} />; }; // src/components/file-upload/file-upload-root.tsx import { mergeProps as mergeProps12 } from "@zag-js/solid"; // src/components/file-upload/use-file-upload.ts import * as fileUpload from "@zag-js/file-upload"; import { normalizeProps, useMachine } from "@zag-js/solid"; import { createMemo, createUniqueId } from "solid-js"; var useFileUpload = (props) => { const id = createUniqueId(); const locale = useLocaleContext(); const environment = useEnvironmentContext(); const field = useFieldContext(); const machineProps = createMemo(() => ({ id, ids: { label: field?.().ids.label, hiddenInput: field?.().ids.control }, dir: locale().dir, disabled: field?.().disabled, locale: locale().locale, required: field?.().required, invalid: field?.().invalid, getRootNode: environment().getRootNode, ...runIfFn(props) })); const service = useMachine(fileUpload.machine, machineProps); return createMemo(() => fileUpload.connect(service, normalizeProps)); }; // src/components/file-upload/file-upload-root.tsx var FileUploadRoot = (props) => { const [fileUploadProps, localProps] = createSplitProps()(props, [ "accept", "acceptedFiles", "allowDrop", "capture", "defaultAcceptedFiles", "directory", "disabled", "id", "ids", "invalid", "locale", "maxFiles", "maxFileSize", "minFileSize", "name", "onFileAccept", "onFileChange", "onFileReject", "preventDocumentDrop", "required", "translations", "transformFiles", "validate" ]); const fileUpload2 = useFileUpload(fileUploadProps); const mergedProps = mergeProps12(() => fileUpload2().getRootProps(), localProps); return <FileUploadProvider value={fileUpload2}> <ark.div {...mergedProps} /> </FileUploadProvider>; }; // src/components/file-upload/file-upload-root-provider.tsx import { mergeProps as mergeProps13 } from "@zag-js/solid"; var FileUploadRootProvider = (props) => { const [{ value: fileUpload2 }, localProps] = createSplitProps()(props, ["value"]); const mergedProps = mergeProps13(() => fileUpload2().getRootProps(), localProps); return <FileUploadProvider value={fileUpload2}> <ark.div {...mergedProps} /> </FileUploadProvider>; }; // src/components/file-upload/file-upload-trigger.tsx import { mergeProps as mergeProps14 } from "@zag-js/solid"; var FileUploadTrigger = (props) => { const fileUpload2 = useFileUploadContext(); const mergedProps = mergeProps14(() => fileUpload2().getTriggerProps(), props); return <ark.button {...mergedProps} />; }; // src/components/file-upload/file-upload.anatomy.ts import { anatomy } from "@zag-js/file-upload"; // src/components/file-upload/file-upload.ts var file_upload_exports = {}; __export(file_upload_exports, { ClearTrigger: () => FileUploadClearTrigger, Context: () => FileUploadContext, Dropzone: () => FileUploadDropzone, HiddenInput: () => FileUploadHiddenInput, Item: () => FileUploadItem, ItemDeleteTrigger: () => FileUploadItemDeleteTrigger, ItemGroup: () => FileUploadItemGroup, ItemName: () => FileUploadItemName, ItemPreview: () => FileUploadItemPreview, ItemPreviewImage: () => FileUploadItemPreviewImage, ItemSizeText: () => FileUploadItemSizeText, Label: () => FileUploadLabel, Root: () => FileUploadRoot, RootProvider: () => FileUploadRootProvider, Trigger: () => FileUploadTrigger }); export { useFileUploadContext, FileUploadClearTrigger, FileUploadContext, FileUploadDropzone, FileUploadHiddenInput, FileUploadItem, FileUploadItemDeleteTrigger, FileUploadItemGroup, FileUploadItemName, FileUploadItemPreview, FileUploadItemPreviewImage, FileUploadItemSizeText, FileUploadLabel, useFileUpload, FileUploadRoot, FileUploadRootProvider, FileUploadTrigger, anatomy, file_upload_exports };