@chayns-components/core 5.0.0-beta.1059 → 5.0.0-beta.1060

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FileSelect.js","names":["_chaynsApi","require","_react","_interopRequireWildcard","_file","_fileDialog","_Icon","_interopRequireDefault","_FileSelect","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FileSelect","fileSelectionIcons","imageSelectIcons","fileTypes","isDisabled","maxFileSizeInMB","onAdd","fileSelectionPlaceholder","imageSelectPlaceholder","handleAddImages","useCallback","images","handleAddFiles","newFiles","handleImageSelectionClick","buttonType","result","createDialog","dialogInput","upload","type","DialogType","MODULE","system","url","scope","module","buttons","open","handleFileSelectionClick","selectFiles","multiple","handleDrop","preventDefault","draggedFiles","Array","from","dataTransfer","files","filter","file","isValidFileType","types","size","useMemo","createElement","StyledFileSelect","StyledFileSelectWrapper","$isDisabled","StyledFileSelectContainer","onClick","onDragOver","onDrop","icons","StyledFileSelectText","$isImageSelection","displayName","_default","exports"],"sources":["../../../../src/components/file-select/FileSelect.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport React, { DragEvent, FC, useCallback, useMemo } from 'react';\nimport type { ImageDialogResult } from '../../types/fileInput';\nimport { isValidFileType } from '../../utils/file';\nimport { selectFiles } from '../../utils/fileDialog';\nimport Icon from '../icon/Icon';\nimport {\n StyledFileSelect,\n StyledFileSelectContainer,\n StyledFileSelectText,\n StyledFileSelectWrapper,\n} from './FileSelect.styles';\n\ntype DialogInput = {\n upload: boolean;\n};\n\nexport type FileSelectProps = {\n fileSelectionIcons?: string[];\n fileSelectionPlaceholder?: string;\n fileTypes?: string;\n imageSelectIcons?: string[];\n imageSelectPlaceholder?: string;\n isDisabled?: boolean;\n maxFileSizeInMB?: number;\n onAdd?: (files: File[] | string[]) => void;\n};\n\nconst FileSelect: FC<FileSelectProps> = ({\n fileSelectionIcons = ['fa fa-upload'],\n imageSelectIcons = ['ts-image'],\n fileTypes,\n isDisabled,\n maxFileSizeInMB,\n onAdd,\n fileSelectionPlaceholder = 'Dateien hochladen',\n imageSelectPlaceholder,\n}) => {\n const handleAddImages = useCallback(\n (images: string[]) => {\n if (typeof onAdd === 'function') {\n onAdd(images);\n }\n },\n [onAdd],\n );\n\n const handleAddFiles = useCallback(\n (newFiles: File[]) => {\n if (typeof onAdd === 'function') {\n onAdd(newFiles);\n }\n },\n [onAdd],\n );\n\n const handleImageSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const { buttonType, result } = (await createDialog<DialogInput>({\n dialogInput: { upload: true },\n type: DialogType.MODULE,\n system: {\n url: 'https://tapp.chayns-static.space/api/dialog-image-editor/v1/remoteEntry.js',\n scope: 'dialog_image_editor',\n module: './ImageEditorEntry',\n },\n buttons: [],\n }).open()) as ImageDialogResult;\n\n if (buttonType === 1 && result?.url) handleAddImages([result.url]);\n }, [handleAddImages, isDisabled]);\n\n const handleFileSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const newFiles = await selectFiles({ multiple: true, type: fileTypes, maxFileSizeInMB });\n\n handleAddFiles(newFiles);\n }, [fileTypes, handleAddFiles, isDisabled, maxFileSizeInMB]);\n\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const draggedFiles = Array.from(e.dataTransfer.files).filter((file) => {\n if (fileTypes && !isValidFileType({ file, types: fileTypes })) {\n return false;\n }\n\n if (maxFileSizeInMB && file.size > maxFileSizeInMB * 1024 * 1024) {\n return false;\n }\n return true;\n });\n\n handleAddFiles(draggedFiles);\n },\n [handleAddFiles, fileTypes, maxFileSizeInMB],\n );\n\n return useMemo(\n () => (\n <StyledFileSelect>\n <StyledFileSelectWrapper $isDisabled={isDisabled}>\n <StyledFileSelectContainer\n onClick={() => void handleFileSelectionClick()}\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n >\n <Icon icons={fileSelectionIcons} />\n <StyledFileSelectText>{fileSelectionPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n {imageSelectPlaceholder && (\n <StyledFileSelectContainer\n $isImageSelection\n onClick={() => void handleImageSelectionClick()}\n >\n <Icon icons={imageSelectIcons} />\n <StyledFileSelectText>{imageSelectPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n )}\n </StyledFileSelectWrapper>\n </StyledFileSelect>\n ),\n [\n isDisabled,\n fileSelectionIcons,\n fileSelectionPlaceholder,\n imageSelectPlaceholder,\n imageSelectIcons,\n handleFileSelectionClick,\n handleDrop,\n handleImageSelectionClick,\n ],\n );\n};\n\nFileSelect.displayName = 'FileSelect';\n\nexport default FileSelect;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FileSelect.js","names":["_chaynsApi","require","_react","_interopRequireWildcard","_file","_fileDialog","_Icon","_interopRequireDefault","_FileSelect","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FileSelect","fileSelectionIcons","imageSelectIcons","fileTypes","isDisabled","maxFileSizeInMB","onAdd","fileSelectionPlaceholder","imageSelectPlaceholder","handleAddImages","useCallback","images","handleAddFiles","newFiles","handleImageSelectionClick","buttonType","result","createDialog","dialogInput","upload","type","DialogType","MODULE","system","url","scope","module","buttons","open","handleFileSelectionClick","selectFiles","multiple","handleDrop","preventDefault","draggedFiles","Array","from","dataTransfer","files","filter","file","isValidFileType","types","size","useMemo","createElement","StyledFileSelect","StyledFileSelectWrapper","$isDisabled","StyledFileSelectContainer","onClick","onDragOver","onDrop","icons","StyledFileSelectText","$isImageSelection","displayName","_default","exports"],"sources":["../../../../src/components/file-select/FileSelect.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport React, { DragEvent, FC, useCallback, useMemo } from 'react';\nimport type { ImageDialogResult } from '../../types/fileInput';\nimport { isValidFileType } from '../../utils/file';\nimport { selectFiles } from '../../utils/fileDialog';\nimport Icon from '../icon/Icon';\nimport {\n StyledFileSelect,\n StyledFileSelectContainer,\n StyledFileSelectText,\n StyledFileSelectWrapper,\n} from './FileSelect.styles';\n\ntype DialogInput = {\n upload: boolean;\n};\n\nexport type FileSelectProps = {\n /**\n * An array of icons that should be displayed inside the FileInput\n */\n fileSelectionIcons?: string[];\n /**\n * The text that should be displayed inside the FileInput.\n */\n fileSelectionPlaceholder?: string;\n /**\n * The filetypes that could be selected. Example for multiple types: 'image/*, video/*'.\n */\n fileTypes?: string;\n /**\n * The icon of the image selection.\n */\n imageSelectIcons?: string[];\n /**\n * If set, pictures can be select via Pixabay.\n */\n imageSelectPlaceholder?: string;\n /**\n * Whether the FileInput is disabled.\n */\n isDisabled?: boolean;\n /**\n * The maximum amount of Files that can be uploaded.\n */\n maxFiles?: number;\n /**\n * The maximum size of a file in MB.\n */\n maxFileSizeInMB?: number;\n /**\n * A function to be executed when files are added.\n */\n onAdd?: (files: File[] | string[]) => void;\n};\n\nconst FileSelect: FC<FileSelectProps> = ({\n fileSelectionIcons = ['fa fa-upload'],\n imageSelectIcons = ['ts-image'],\n fileTypes,\n isDisabled,\n maxFileSizeInMB,\n onAdd,\n fileSelectionPlaceholder = 'Dateien hochladen',\n imageSelectPlaceholder,\n}) => {\n const handleAddImages = useCallback(\n (images: string[]) => {\n if (typeof onAdd === 'function') {\n onAdd(images);\n }\n },\n [onAdd],\n );\n\n const handleAddFiles = useCallback(\n (newFiles: File[]) => {\n if (typeof onAdd === 'function') {\n onAdd(newFiles);\n }\n },\n [onAdd],\n );\n\n const handleImageSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const { buttonType, result } = (await createDialog<DialogInput>({\n dialogInput: { upload: true },\n type: DialogType.MODULE,\n system: {\n url: 'https://tapp.chayns-static.space/api/dialog-image-editor/v1/remoteEntry.js',\n scope: 'dialog_image_editor',\n module: './ImageEditorEntry',\n },\n buttons: [],\n }).open()) as ImageDialogResult;\n\n if (buttonType === 1 && result?.url) handleAddImages([result.url]);\n }, [handleAddImages, isDisabled]);\n\n const handleFileSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const newFiles = await selectFiles({ multiple: true, type: fileTypes, maxFileSizeInMB });\n\n handleAddFiles(newFiles);\n }, [fileTypes, handleAddFiles, isDisabled, maxFileSizeInMB]);\n\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const draggedFiles = Array.from(e.dataTransfer.files).filter((file) => {\n if (fileTypes && !isValidFileType({ file, types: fileTypes })) {\n return false;\n }\n\n if (maxFileSizeInMB && file.size > maxFileSizeInMB * 1024 * 1024) {\n return false;\n }\n return true;\n });\n\n handleAddFiles(draggedFiles);\n },\n [handleAddFiles, fileTypes, maxFileSizeInMB],\n );\n\n return useMemo(\n () => (\n <StyledFileSelect>\n <StyledFileSelectWrapper $isDisabled={isDisabled}>\n <StyledFileSelectContainer\n onClick={() => void handleFileSelectionClick()}\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n >\n <Icon icons={fileSelectionIcons} />\n <StyledFileSelectText>{fileSelectionPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n {imageSelectPlaceholder && (\n <StyledFileSelectContainer\n $isImageSelection\n onClick={() => void handleImageSelectionClick()}\n >\n <Icon icons={imageSelectIcons} />\n <StyledFileSelectText>{imageSelectPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n )}\n </StyledFileSelectWrapper>\n </StyledFileSelect>\n ),\n [\n isDisabled,\n fileSelectionIcons,\n fileSelectionPlaceholder,\n imageSelectPlaceholder,\n imageSelectIcons,\n handleFileSelectionClick,\n handleDrop,\n handleImageSelectionClick,\n ],\n );\n};\n\nFileSelect.displayName = 'FileSelect';\n\nexport default FileSelect;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FileSelect.js","names":["createDialog","DialogType","React","useCallback","useMemo","isValidFileType","selectFiles","Icon","StyledFileSelect","StyledFileSelectContainer","StyledFileSelectText","StyledFileSelectWrapper","FileSelect","_ref","fileSelectionIcons","imageSelectIcons","fileTypes","isDisabled","maxFileSizeInMB","onAdd","fileSelectionPlaceholder","imageSelectPlaceholder","handleAddImages","images","handleAddFiles","newFiles","handleImageSelectionClick","buttonType","result","dialogInput","upload","type","MODULE","system","url","scope","module","buttons","open","handleFileSelectionClick","multiple","handleDrop","e","preventDefault","draggedFiles","Array","from","dataTransfer","files","filter","file","types","size","createElement","$isDisabled","onClick","onDragOver","onDrop","icons","$isImageSelection","displayName"],"sources":["../../../../src/components/file-select/FileSelect.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport React, { DragEvent, FC, useCallback, useMemo } from 'react';\nimport type { ImageDialogResult } from '../../types/fileInput';\nimport { isValidFileType } from '../../utils/file';\nimport { selectFiles } from '../../utils/fileDialog';\nimport Icon from '../icon/Icon';\nimport {\n StyledFileSelect,\n StyledFileSelectContainer,\n StyledFileSelectText,\n StyledFileSelectWrapper,\n} from './FileSelect.styles';\n\ntype DialogInput = {\n upload: boolean;\n};\n\nexport type FileSelectProps = {\n fileSelectionIcons?: string[];\n fileSelectionPlaceholder?: string;\n fileTypes?: string;\n imageSelectIcons?: string[];\n imageSelectPlaceholder?: string;\n isDisabled?: boolean;\n maxFileSizeInMB?: number;\n onAdd?: (files: File[] | string[]) => void;\n};\n\nconst FileSelect: FC<FileSelectProps> = ({\n fileSelectionIcons = ['fa fa-upload'],\n imageSelectIcons = ['ts-image'],\n fileTypes,\n isDisabled,\n maxFileSizeInMB,\n onAdd,\n fileSelectionPlaceholder = 'Dateien hochladen',\n imageSelectPlaceholder,\n}) => {\n const handleAddImages = useCallback(\n (images: string[]) => {\n if (typeof onAdd === 'function') {\n onAdd(images);\n }\n },\n [onAdd],\n );\n\n const handleAddFiles = useCallback(\n (newFiles: File[]) => {\n if (typeof onAdd === 'function') {\n onAdd(newFiles);\n }\n },\n [onAdd],\n );\n\n const handleImageSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const { buttonType, result } = (await createDialog<DialogInput>({\n dialogInput: { upload: true },\n type: DialogType.MODULE,\n system: {\n url: 'https://tapp.chayns-static.space/api/dialog-image-editor/v1/remoteEntry.js',\n scope: 'dialog_image_editor',\n module: './ImageEditorEntry',\n },\n buttons: [],\n }).open()) as ImageDialogResult;\n\n if (buttonType === 1 && result?.url) handleAddImages([result.url]);\n }, [handleAddImages, isDisabled]);\n\n const handleFileSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const newFiles = await selectFiles({ multiple: true, type: fileTypes, maxFileSizeInMB });\n\n handleAddFiles(newFiles);\n }, [fileTypes, handleAddFiles, isDisabled, maxFileSizeInMB]);\n\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const draggedFiles = Array.from(e.dataTransfer.files).filter((file) => {\n if (fileTypes && !isValidFileType({ file, types: fileTypes })) {\n return false;\n }\n\n if (maxFileSizeInMB && file.size > maxFileSizeInMB * 1024 * 1024) {\n return false;\n }\n return true;\n });\n\n handleAddFiles(draggedFiles);\n },\n [handleAddFiles, fileTypes, maxFileSizeInMB],\n );\n\n return useMemo(\n () => (\n <StyledFileSelect>\n <StyledFileSelectWrapper $isDisabled={isDisabled}>\n <StyledFileSelectContainer\n onClick={() => void handleFileSelectionClick()}\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n >\n <Icon icons={fileSelectionIcons} />\n <StyledFileSelectText>{fileSelectionPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n {imageSelectPlaceholder && (\n <StyledFileSelectContainer\n $isImageSelection\n onClick={() => void handleImageSelectionClick()}\n >\n <Icon icons={imageSelectIcons} />\n <StyledFileSelectText>{imageSelectPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n )}\n </StyledFileSelectWrapper>\n </StyledFileSelect>\n ),\n [\n isDisabled,\n fileSelectionIcons,\n fileSelectionPlaceholder,\n imageSelectPlaceholder,\n imageSelectIcons,\n handleFileSelectionClick,\n handleDrop,\n handleImageSelectionClick,\n ],\n );\n};\n\nFileSelect.displayName = 'FileSelect';\n\nexport default FileSelect;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FileSelect.js","names":["createDialog","DialogType","React","useCallback","useMemo","isValidFileType","selectFiles","Icon","StyledFileSelect","StyledFileSelectContainer","StyledFileSelectText","StyledFileSelectWrapper","FileSelect","_ref","fileSelectionIcons","imageSelectIcons","fileTypes","isDisabled","maxFileSizeInMB","onAdd","fileSelectionPlaceholder","imageSelectPlaceholder","handleAddImages","images","handleAddFiles","newFiles","handleImageSelectionClick","buttonType","result","dialogInput","upload","type","MODULE","system","url","scope","module","buttons","open","handleFileSelectionClick","multiple","handleDrop","e","preventDefault","draggedFiles","Array","from","dataTransfer","files","filter","file","types","size","createElement","$isDisabled","onClick","onDragOver","onDrop","icons","$isImageSelection","displayName"],"sources":["../../../../src/components/file-select/FileSelect.tsx"],"sourcesContent":["import { createDialog, DialogType } from 'chayns-api';\nimport React, { DragEvent, FC, useCallback, useMemo } from 'react';\nimport type { ImageDialogResult } from '../../types/fileInput';\nimport { isValidFileType } from '../../utils/file';\nimport { selectFiles } from '../../utils/fileDialog';\nimport Icon from '../icon/Icon';\nimport {\n StyledFileSelect,\n StyledFileSelectContainer,\n StyledFileSelectText,\n StyledFileSelectWrapper,\n} from './FileSelect.styles';\n\ntype DialogInput = {\n upload: boolean;\n};\n\nexport type FileSelectProps = {\n /**\n * An array of icons that should be displayed inside the FileInput\n */\n fileSelectionIcons?: string[];\n /**\n * The text that should be displayed inside the FileInput.\n */\n fileSelectionPlaceholder?: string;\n /**\n * The filetypes that could be selected. Example for multiple types: 'image/*, video/*'.\n */\n fileTypes?: string;\n /**\n * The icon of the image selection.\n */\n imageSelectIcons?: string[];\n /**\n * If set, pictures can be select via Pixabay.\n */\n imageSelectPlaceholder?: string;\n /**\n * Whether the FileInput is disabled.\n */\n isDisabled?: boolean;\n /**\n * The maximum amount of Files that can be uploaded.\n */\n maxFiles?: number;\n /**\n * The maximum size of a file in MB.\n */\n maxFileSizeInMB?: number;\n /**\n * A function to be executed when files are added.\n */\n onAdd?: (files: File[] | string[]) => void;\n};\n\nconst FileSelect: FC<FileSelectProps> = ({\n fileSelectionIcons = ['fa fa-upload'],\n imageSelectIcons = ['ts-image'],\n fileTypes,\n isDisabled,\n maxFileSizeInMB,\n onAdd,\n fileSelectionPlaceholder = 'Dateien hochladen',\n imageSelectPlaceholder,\n}) => {\n const handleAddImages = useCallback(\n (images: string[]) => {\n if (typeof onAdd === 'function') {\n onAdd(images);\n }\n },\n [onAdd],\n );\n\n const handleAddFiles = useCallback(\n (newFiles: File[]) => {\n if (typeof onAdd === 'function') {\n onAdd(newFiles);\n }\n },\n [onAdd],\n );\n\n const handleImageSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const { buttonType, result } = (await createDialog<DialogInput>({\n dialogInput: { upload: true },\n type: DialogType.MODULE,\n system: {\n url: 'https://tapp.chayns-static.space/api/dialog-image-editor/v1/remoteEntry.js',\n scope: 'dialog_image_editor',\n module: './ImageEditorEntry',\n },\n buttons: [],\n }).open()) as ImageDialogResult;\n\n if (buttonType === 1 && result?.url) handleAddImages([result.url]);\n }, [handleAddImages, isDisabled]);\n\n const handleFileSelectionClick = useCallback(async () => {\n if (isDisabled) return;\n\n const newFiles = await selectFiles({ multiple: true, type: fileTypes, maxFileSizeInMB });\n\n handleAddFiles(newFiles);\n }, [fileTypes, handleAddFiles, isDisabled, maxFileSizeInMB]);\n\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const draggedFiles = Array.from(e.dataTransfer.files).filter((file) => {\n if (fileTypes && !isValidFileType({ file, types: fileTypes })) {\n return false;\n }\n\n if (maxFileSizeInMB && file.size > maxFileSizeInMB * 1024 * 1024) {\n return false;\n }\n return true;\n });\n\n handleAddFiles(draggedFiles);\n },\n [handleAddFiles, fileTypes, maxFileSizeInMB],\n );\n\n return useMemo(\n () => (\n <StyledFileSelect>\n <StyledFileSelectWrapper $isDisabled={isDisabled}>\n <StyledFileSelectContainer\n onClick={() => void handleFileSelectionClick()}\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n >\n <Icon icons={fileSelectionIcons} />\n <StyledFileSelectText>{fileSelectionPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n {imageSelectPlaceholder && (\n <StyledFileSelectContainer\n $isImageSelection\n onClick={() => void handleImageSelectionClick()}\n >\n <Icon icons={imageSelectIcons} />\n <StyledFileSelectText>{imageSelectPlaceholder}</StyledFileSelectText>\n </StyledFileSelectContainer>\n )}\n </StyledFileSelectWrapper>\n </StyledFileSelect>\n ),\n [\n isDisabled,\n fileSelectionIcons,\n fileSelectionPlaceholder,\n imageSelectPlaceholder,\n imageSelectIcons,\n handleFileSelectionClick,\n handleDrop,\n handleImageSelectionClick,\n ],\n );\n};\n\nFileSelect.displayName = 'FileSelect';\n\nexport default FileSelect;\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,40 @@
1
1
  import { FC } from 'react';
2
2
  export type FileSelectProps = {
3
+ /**
4
+ * An array of icons that should be displayed inside the FileInput
5
+ */
3
6
  fileSelectionIcons?: string[];
7
+ /**
8
+ * The text that should be displayed inside the FileInput.
9
+ */
4
10
  fileSelectionPlaceholder?: string;
11
+ /**
12
+ * The filetypes that could be selected. Example for multiple types: 'image/*, video/*'.
13
+ */
5
14
  fileTypes?: string;
15
+ /**
16
+ * The icon of the image selection.
17
+ */
6
18
  imageSelectIcons?: string[];
19
+ /**
20
+ * If set, pictures can be select via Pixabay.
21
+ */
7
22
  imageSelectPlaceholder?: string;
23
+ /**
24
+ * Whether the FileInput is disabled.
25
+ */
8
26
  isDisabled?: boolean;
27
+ /**
28
+ * The maximum amount of Files that can be uploaded.
29
+ */
30
+ maxFiles?: number;
31
+ /**
32
+ * The maximum size of a file in MB.
33
+ */
9
34
  maxFileSizeInMB?: number;
35
+ /**
36
+ * A function to be executed when files are added.
37
+ */
10
38
  onAdd?: (files: File[] | string[]) => void;
11
39
  };
12
40
  declare const FileSelect: FC<FileSelectProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.0-beta.1059",
3
+ "version": "5.0.0-beta.1060",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "f93e8e73752d580f0523fb3d4bda182d3c3001e5"
89
+ "gitHead": "d5417ca78e6eef3f1631909584cbde0643ae1446"
90
90
  }