@razorpay/blade 12.28.0 → 12.30.0
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.
- package/build/lib/native/components/Card/Card.js +1 -1
- package/build/lib/native/components/Card/Card.js.map +1 -1
- package/build/lib/native/components/Preview/Preview.native.js +8 -0
- package/build/lib/native/components/Preview/Preview.native.js.map +1 -0
- package/build/lib/native/components/index.js +1 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/utils/componentZIndices.js +1 -1
- package/build/lib/native/utils/componentZIndices.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/development/components/Card/Card.js +3 -1
- package/build/lib/web/development/components/Card/Card.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +66 -23
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/StyledFileUploadItemWrapper.js +1 -1
- package/build/lib/web/development/components/FileUpload/StyledFileUploadItemWrapper.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/StyledFileUploadWrapper.js +2 -6
- package/build/lib/web/development/components/FileUpload/StyledFileUploadWrapper.js.map +1 -1
- package/build/lib/web/development/components/Preview/Preview.web.js +399 -0
- package/build/lib/web/development/components/Preview/Preview.web.js.map +1 -0
- package/build/lib/web/development/components/Preview/PreviewContext.js +16 -0
- package/build/lib/web/development/components/Preview/PreviewContext.js.map +1 -0
- package/build/lib/web/development/components/Preview/index.js +2 -0
- package/build/lib/web/development/components/Preview/index.js.map +1 -0
- package/build/lib/web/development/components/index.js +2 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/utils/componentZIndices.js +2 -1
- package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +5 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/components/Card/Card.js +3 -1
- package/build/lib/web/production/components/Card/Card.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +66 -23
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/StyledFileUploadItemWrapper.js +1 -1
- package/build/lib/web/production/components/FileUpload/StyledFileUploadItemWrapper.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/StyledFileUploadWrapper.js +2 -6
- package/build/lib/web/production/components/FileUpload/StyledFileUploadWrapper.js.map +1 -1
- package/build/lib/web/production/components/Preview/Preview.web.js +399 -0
- package/build/lib/web/production/components/Preview/Preview.web.js.map +1 -0
- package/build/lib/web/production/components/Preview/PreviewContext.js +16 -0
- package/build/lib/web/production/components/Preview/PreviewContext.js.map +1 -0
- package/build/lib/web/production/components/Preview/index.js +2 -0
- package/build/lib/web/production/components/Preview/index.js.map +1 -0
- package/build/lib/web/production/components/index.js +2 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/utils/componentZIndices.js +2 -1
- package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +5 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/types/components/index.d.ts +104 -5
- package/build/types/components/index.native.d.ts +104 -5
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type { FileUploadProps, BladeFile, BladeFileList } from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { useControllableState } from '~utils/useControllable';\nimport { getInnerMotionRef, getOuterMotionRef } from '~utils/getMotionRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n _motionMeta,\n ...rest\n },\n ref,\n): React.ReactElement => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useControllableState({\n value: fileList,\n defaultValue: fileList ?? [],\n });\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorMessage : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage(null);\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n return (\n <BaseBox\n ref={getOuterMotionRef({ _motionMeta, ref })}\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: '100%',\n }}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n Drag files here or{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={getInnerMotionRef({ _motionMeta, ref: mergedRef })}\n {...makeAnalyticsAttribute(rest)}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n Upload\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage ?? errorText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file, index) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n marginTop={index === 0 ? 'spacing.5' : 'spacing.3'}\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file });\n } else {\n onRemove?.({ file });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","_motionMeta","rest","_objectWithoutProperties","_excluded","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useControllableState","useControllableState","value","defaultValue","_useControllableState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState","useState","_useState2","errorMessage","setErrorMessage","_useState3","_useState4","internalValidationState","setInternalValidationState","_useState5","_useState6","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","concat","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","_jsxs","BaseBox","_objectSpread","getOuterMotionRef","display","flexDirection","width","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","makeSize","padding","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","getInnerMotionRef","makeAnalyticsAttribute","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","filter","_ref2","_inputRef$current","_ref3","current","click","_ref4","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","map","index","marginTop","_ref5","_inputRef$current2","_ref6","_ref7","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload.web.js","sources":["../../../../../../src/components/FileUpload/FileUpload.web.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useRef, forwardRef } from 'react';\nimport type {\n FileUploadProps,\n BladeFile,\n BladeFileList,\n FileUploadVariableSizeProps,\n} from './types';\nimport { StyledFileUploadWrapper } from './StyledFileUploadWrapper';\nimport {\n fileUploadColorTokens,\n fileUploadHeightTokens,\n fileUploadLinkBorderTokens,\n getFileUploadInputHoverTokens,\n} from './fileUploadTokens';\nimport { FileUploadItem } from './FileUploadItem';\nimport { isFileAccepted } from './isFileAccepted';\nimport { FileUploadItemIcon } from './FileUploadItemIcon';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Box } from '~components/Box';\nimport { SelectorLabel } from '~components/Form/Selector/SelectorLabel';\nimport { SelectorInput } from '~components/Form/Selector/SelectorInput';\nimport { screenReaderStyles } from '~components/VisuallyHidden';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeSize, useTheme } from '~utils';\nimport { Text } from '~components/Typography';\nimport type { BladeElementRef } from '~utils/types';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { useControllableState } from '~utils/useControllable';\nimport { getInnerMotionRef, getOuterMotionRef } from '~utils/getMotionRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { throwBladeError } from '~utils/logger';\n\nconst _FileUpload: React.ForwardRefRenderFunction<BladeElementRef, FileUploadProps> = (\n {\n name,\n accept,\n uploadType = 'single',\n onChange,\n onPreview,\n onRemove,\n onReupload,\n onDismiss,\n onDrop,\n isDisabled,\n isRequired,\n necessityIndicator,\n fileList,\n testID,\n label,\n labelPosition = 'top',\n accessibilityLabel,\n validationState,\n helpText,\n errorText,\n maxCount,\n maxSize,\n size = 'medium',\n _motionMeta,\n ...rest\n },\n ref,\n): React.ReactElement => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const { actionButtonText, dropAreaText, height, width } = rest as FileUploadVariableSizeProps;\n const isSizeVariable = size === 'variable';\n // 'actionButtonText', 'dropAreaText', 'height', 'width' are only valid when size is 'variable'\n if (__DEV__) {\n if (!isSizeVariable && (actionButtonText || dropAreaText)) {\n const propName =\n actionButtonText && dropAreaText\n ? 'actionButtonText and dropAreaText'\n : dropAreaText\n ? 'dropAreaText'\n : 'actionButtonText';\n\n throwBladeError({\n message: `${propName} can only be used when size is \"variable\"`,\n moduleName: 'FileUpload',\n });\n }\n\n if (!isSizeVariable && (height || width)) {\n const propName = height && width ? 'height and width' : height ? 'height' : 'width';\n\n throwBladeError({\n message: `${propName} can only be used when size is \"variable\"`,\n moduleName: 'FileUpload',\n });\n }\n }\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const { platform } = useTheme();\n const [selectedFiles, setSelectedFiles] = useControllableState({\n value: fileList,\n defaultValue: fileList ?? [],\n });\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const [internalValidationState, setInternalValidationState] = useState('none');\n const [isActive, setIsActive] = useState(false);\n\n const isMultiple = uploadType === 'multiple';\n const isOneFileSelectedWithSingleUpload = !isMultiple && selectedFiles.length === 1;\n const inputLabelPosition = platform === 'onMobile' ? 'top' : labelPosition;\n const isLabelLeftPositioned = inputLabelPosition === 'left';\n const willRenderHintText = Boolean(helpText) || Boolean(errorMessage);\n\n const showError = validationState === 'error' || internalValidationState === 'error';\n const showHelpText = !showError && helpText;\n const accessibilityText =\n accessibilityLabel ?? `,${showError ? errorMessage : ''} ${showHelpText ? helpText : ''}`;\n const { inputId, labelId, helpTextId, errorTextId } = useFormId('fileuploadinput');\n\n const accessibilityProps = makeAccessible({\n required: Boolean(isRequired),\n invalid: Boolean(showError),\n disabled: Boolean(isDisabled),\n describedBy: labelId,\n });\n\n // In control mode attach a unique id to each file if not provided\n useMemo(() => {\n for (const file of selectedFiles) {\n if (!file.id) {\n file.id = `${new Date().getTime().toString()}${Math.floor(Math.random() * 1000000)}`;\n }\n }\n }, [selectedFiles]);\n\n const handleFilesChange = useCallback((inputFiles: BladeFileList) => {\n setSelectedFiles((prevFiles) => {\n if (prevFiles.length > 0) {\n const allFiles = [...prevFiles, ...inputFiles];\n return allFiles;\n }\n\n return inputFiles;\n });\n }, []);\n\n const validateFiles = (inputFiles: BladeFileList, allFiles: BladeFileList): boolean => {\n if (accept && inputFiles.some((file) => !isFileAccepted(file, accept))) {\n setErrorMessage(`You provided an unsupported file type. Supported file types are: ${accept}`);\n setInternalValidationState('error');\n return true;\n }\n\n if (uploadType === 'single' && inputFiles.length > 1) {\n setErrorMessage('You can upload only one file.');\n setInternalValidationState('error');\n return true;\n }\n\n if (maxCount && allFiles.length > maxCount) {\n setErrorMessage(`You can't upload more than ${maxCount} files.`);\n setInternalValidationState('error');\n return true;\n }\n\n if (maxSize && inputFiles.some((file) => file.size > maxSize)) {\n setErrorMessage('File size exceeded.');\n setInternalValidationState('error');\n return true;\n }\n\n setInternalValidationState('none');\n setErrorMessage(null);\n return false;\n };\n\n const handleDragOver = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(true);\n };\n\n const handleDragLeave = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n };\n\n const handleDrop = (event: React.DragEvent): void => {\n event.preventDefault();\n setIsActive(false);\n\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...droppedFiles] : droppedFiles;\n\n const hasValidationErrors = validateFiles(droppedFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(droppedFiles);\n onDrop?.({ name, fileList: allFiles });\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n const inputFiles = Array.from(event.target.files ?? []);\n const allFiles = selectedFiles.length > 0 ? [...selectedFiles, ...inputFiles] : inputFiles;\n\n const hasValidationErrors = validateFiles(inputFiles, allFiles);\n\n if (!hasValidationErrors) {\n handleFilesChange(inputFiles);\n onChange?.({ name, fileList: allFiles });\n }\n\n // Reset the input value to allow re-selecting the same file\n event.target.value = '';\n };\n\n const getFileIconExtension = (acceptValue?: string): string => {\n if (!acceptValue) return 'example.xyz';\n\n const extensions = acceptValue\n .split(',')\n .map((ext) => ext.trim())\n .filter((ext) => ext.startsWith('.'));\n\n return extensions.length === 1 ? `example${extensions[0]}` : 'example.xyz';\n };\n\n const computedHeight = isSizeVariable ? height ?? '100%' : makeSize(fileUploadHeightTokens[size]);\n const computedWidth = isSizeVariable ? width ?? '100%' : '100%';\n\n return (\n <BaseBox\n ref={getOuterMotionRef({ _motionMeta, ref })}\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {label ? (\n <FormLabel\n size={isSizeVariable ? 'large' : size}\n as=\"span\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n accessibilityText={accessibilityText}\n >\n {label}\n </FormLabel>\n ) : null}\n\n <SelectorLabel\n componentName={MetaConstants.FileUploadLabel}\n inputProps={{}}\n style={{\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n width: isOneFileSelectedWithSingleUpload && isLabelLeftPositioned ? undefined : '100%',\n }}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n <StyledFileUploadWrapper\n size={size}\n isDisabled={isDisabled}\n isActive={isActive}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height={computedHeight}\n width={computedWidth}\n borderRadius=\"medium\"\n borderWidth=\"thin\"\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={() => setIsActive(true)}\n data-comp=\"f\"\n style={{\n ...(isOneFileSelectedWithSingleUpload ? screenReaderStyles : {}),\n }}\n >\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: `${isSizeVariable ? 'column' : 'row'}` }}\n gap={makeSize(6)}\n padding=\"spacing.3\"\n >\n {isSizeVariable && (\n <FileUploadItemIcon\n fileName={getFileIconExtension(accept)}\n uploadStatus=\"success\"\n />\n )}\n\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.text.disabled\n : fileUploadColorTokens.text.default\n }\n >\n {isSizeVariable\n ? dropAreaText ?? 'Drag and drop your files here'\n : 'Drag files here or'}{' '}\n </Text>\n <SelectorInput\n id={inputId}\n hoverTokens={getFileUploadInputHoverTokens()}\n isChecked={false}\n isDisabled={isDisabled}\n inputProps={{\n name,\n type: 'file',\n onChange: handleInputChange,\n multiple: isMultiple,\n required: isRequired,\n disabled: isDisabled,\n accept,\n onBlur: () => setIsActive(false),\n ...accessibilityProps,\n }}\n ref={getInnerMotionRef({ _motionMeta, ref: mergedRef })}\n {...makeAnalyticsAttribute(rest)}\n />\n\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n flexDirection={{ base: 'column', s: 'row' }}\n borderRadius=\"small\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderBottomColor={\n fileUploadLinkBorderTokens.color[isDisabled ? 'disabled' : 'default']\n }\n borderBottomWidth={fileUploadLinkBorderTokens.width.default}\n >\n <Text\n color={\n isDisabled\n ? fileUploadColorTokens.link.disabled\n : fileUploadColorTokens.link.default\n }\n >\n {actionButtonText ?? 'Upload'}\n </Text>\n </Box>\n </Box>\n </Box>\n </StyledFileUploadWrapper>\n </BaseBox>\n </SelectorLabel>\n {isOneFileSelectedWithSingleUpload && (\n <FileUploadItem\n file={selectedFiles[0]}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n\n onRemove?.({ file: selectedFiles[0] });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== selectedFiles[0].id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file: selectedFiles[0] });\n }}\n onPreview={onPreview}\n />\n )}\n </BaseBox>\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned\n ? formHintLeftLabelMarginLeft[isSizeVariable ? 'large' : size]\n : 0,\n )}\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"'space-between\">\n <FormHint\n size={isSizeVariable ? 'large' : size}\n type={getHintType({\n validationState: showError ? 'error' : validationState,\n hasHelpText: Boolean(helpText),\n })}\n helpText={helpText}\n errorText={errorMessage ?? errorText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n />\n </BaseBox>\n </BaseBox>\n )}\n {!isOneFileSelectedWithSingleUpload &&\n selectedFiles.map((file, index) => (\n <BaseBox\n key={file.id}\n marginLeft={makeSize(\n label && isLabelLeftPositioned\n ? formHintLeftLabelMarginLeft[isSizeVariable ? 'large' : size]\n : 0,\n )}\n marginTop={index === 0 ? 'spacing.5' : 'spacing.3'}\n >\n <FileUploadItem\n file={file}\n size={size}\n onRemove={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onRemove?.({ file });\n }}\n onReupload={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n inputRef.current?.click();\n // TODO - Remove this in the next major release\n // Fallback to onRemove if onReupload isn't provided to avoid breaking changes in the API\n if (onReupload) {\n onReupload({ file });\n } else {\n onRemove?.({ file });\n }\n setIsActive(false);\n }}\n onDismiss={() => {\n const newFiles = selectedFiles.filter(({ id }) => id !== file.id);\n setSelectedFiles(() => newFiles);\n onDismiss?.({ file });\n }}\n onPreview={onPreview}\n />\n </BaseBox>\n ))}\n </BaseBox>\n );\n};\n\n/**\n * ### FileUpload Component\n * \n * The FileUpload component is used to handle file attachments, including the drag-and-drop interaction.\n * Primarily, it is used to upload files to a server or to display a list of uploaded files.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const GSTForm = () => {\n const [selectedFile, setSelectedFile] = useState<BladeFile>();\n const [isLoading, setIsLoading] = useState(false);\n \n return (\n <Box>\n <Heading marginBottom=\"spacing.4\">Add GST Details</Heading>\n <form encType=\"multipart/form-data\" onSubmit={handleSubmit}>\n <FileUpload\n uploadType=\"single\"\n label=\"Upload GST\"\n helpText=\"Upload .jpg, .jpeg, or .png file only\"\n accept=\".jpg, .jpeg, .png\"\n onChange={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n onDrop={({ fileList }) => {\n setSelectedFile(fileList[0]);\n }}\n isRequired\n necessityIndicator=\"required\"\n />\n <Button type=\"submit\" variant=\"primary\">\n Submit\n </Button>\n {isLoading && (\n <ProgressBar isIndeterminate label=\"Uploading your GST Certificate...\" />\n )}\n </form>\n </Box>\n );\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-fileupload FileUpload Documentation}\n * \n */\nconst FileUpload = assignWithoutSideEffects(forwardRef(_FileUpload), {\n displayName: 'FileUpload',\n componentId: 'FileUpload',\n});\n\nexport { FileUpload };\nexport type { BladeFile, BladeFileList, FileUploadProps };\n"],"names":["_FileUpload","_ref","ref","name","accept","_ref$uploadType","uploadType","onChange","onPreview","onRemove","onReupload","onDismiss","onDrop","isDisabled","isRequired","necessityIndicator","fileList","testID","label","_ref$labelPosition","labelPosition","accessibilityLabel","validationState","helpText","errorText","maxCount","maxSize","_ref$size","size","_motionMeta","rest","_objectWithoutProperties","_excluded","_ref2","actionButtonText","dropAreaText","height","width","isSizeVariable","propName","throwBladeError","message","concat","moduleName","inputRef","useRef","mergedRef","useMergeRefs","_useTheme","useTheme","platform","_useControllableState","useControllableState","value","defaultValue","_useControllableState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState","useState","_useState2","errorMessage","setErrorMessage","_useState3","_useState4","internalValidationState","setInternalValidationState","_useState5","_useState6","isActive","setIsActive","isMultiple","isOneFileSelectedWithSingleUpload","length","inputLabelPosition","isLabelLeftPositioned","willRenderHintText","Boolean","showError","showHelpText","accessibilityText","_useFormId","useFormId","inputId","labelId","helpTextId","errorTextId","accessibilityProps","makeAccessible","required","invalid","disabled","describedBy","useMemo","_iterator","_createForOfIteratorHelper","_step","s","n","done","file","id","Date","getTime","toString","Math","floor","random","err","e","f","handleFilesChange","useCallback","inputFiles","prevFiles","allFiles","_toConsumableArray","validateFiles","some","isFileAccepted","handleDragOver","event","preventDefault","handleDragLeave","handleDrop","droppedFiles","Array","from","dataTransfer","files","hasValidationErrors","handleInputChange","_event$target$files","target","getFileIconExtension","acceptValue","extensions","split","map","ext","trim","filter","startsWith","computedHeight","makeSize","fileUploadHeightTokens","computedWidth","_jsxs","BaseBox","_objectSpread","getOuterMotionRef","display","flexDirection","metaAttribute","MetaConstants","FileUpload","getStyledProps","children","alignItems","undefined","position","_jsx","FormLabel","as","SelectorLabel","componentName","FileUploadLabel","inputProps","style","cursor","StyledFileUploadWrapper","justifyContent","borderRadius","borderWidth","onDragOver","onDragLeave","onClick","screenReaderStyles","Box","base","gap","padding","FileUploadItemIcon","fileName","uploadStatus","Text","color","fileUploadColorTokens","text","SelectorInput","hoverTokens","getFileUploadInputHoverTokens","isChecked","type","multiple","onBlur","getInnerMotionRef","makeAnalyticsAttribute","borderBottomColor","fileUploadLinkBorderTokens","borderBottomWidth","link","FileUploadItem","newFiles","_ref3","_inputRef$current","_ref4","current","click","_ref5","marginLeft","formHintLeftLabelMarginLeft","FormHint","getHintType","hasHelpText","index","marginTop","_ref6","_inputRef$current2","_ref7","_ref8","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var StyledFileUploadItemWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
27
27
|
display: 'flex',
|
|
28
28
|
justifyContent: 'space-between',
|
|
29
29
|
borderStyle: 'solid',
|
|
30
|
-
minHeight: makeSize(fileUploadHeightTokens[size]),
|
|
30
|
+
minHeight: makeSize(fileUploadHeightTokens[size === 'variable' ? 'large' : size]),
|
|
31
31
|
width: '100%',
|
|
32
32
|
backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status]["default"]),
|
|
33
33
|
transitionProperty: 'background-color',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n minHeight: makeSize(fileUploadHeightTokens[size]),\n width: '100%',\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].default),\n transitionProperty: 'background-color',\n transitionTimingFunction: easing,\n transitionDuration: duration,\n borderColor: theme.colors.interactive.border.neutral.faded,\n wordBreak: 'break-all',\n\n ...(status !== 'uploading' && {\n '&:hover': {\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].hover),\n },\n }),\n };\n },\n);\n\nexport { StyledFileUploadItemWrapper };\n"],"names":["StyledFileUploadItemWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","status","size","easing","getIn","motion","fileUploadMotionTokens","duration","castWebType","makeMotionTime","_objectSpread","position","overflow","display","justifyContent","borderStyle","minHeight","makeSize","fileUploadHeightTokens","width","backgroundColor","colors","fileUploadItemBackgroundColors","transitionProperty","transitionTimingFunction","transitionDuration","borderColor","interactive","border","neutral","faded","wordBreak","hover"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,2BAA2B,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACjD,CAAA,CAAA,UAAAC,IAAA,EAA6B;AAAA,EAAA,IAA1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI,CAAA;EACpB,IAAMC,MAAM,GAAGC,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACH,MAAM,CAAC,CAAA;AACjE,EAAA,IAAMI,QAAQ,GAAGC,WAAW,CAC1BC,cAAc,CAACL,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACC,QAAQ,CAAC,CACrE,CAAC,CAAA;AAED,EAAA,OAAAG,aAAA,CAAA;AACEC,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,cAAc,EAAE,eAAe;AAC/BC,IAAAA,WAAW,EAAE,OAAO;AACpBC,IAAAA,SAAS,EAAEC,QAAQ,CAACC,sBAAsB,CAAChB,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"StyledFileUploadItemWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadItemWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadItemWrapperProps } from './types';\nimport {\n fileUploadItemBackgroundColors,\n fileUploadMotionTokens,\n fileUploadHeightTokens,\n} from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType, makeSize } from '~utils';\n\nconst StyledFileUploadItemWrapper = styled(BaseBox)<StyledFileUploadItemWrapperProps>(\n ({ theme, status, size }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n borderStyle: 'solid',\n minHeight: makeSize(fileUploadHeightTokens[size === 'variable' ? 'large' : size]),\n width: '100%',\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].default),\n transitionProperty: 'background-color',\n transitionTimingFunction: easing,\n transitionDuration: duration,\n borderColor: theme.colors.interactive.border.neutral.faded,\n wordBreak: 'break-all',\n\n ...(status !== 'uploading' && {\n '&:hover': {\n backgroundColor: getIn(theme.colors, fileUploadItemBackgroundColors[status].hover),\n },\n }),\n };\n },\n);\n\nexport { StyledFileUploadItemWrapper };\n"],"names":["StyledFileUploadItemWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","status","size","easing","getIn","motion","fileUploadMotionTokens","duration","castWebType","makeMotionTime","_objectSpread","position","overflow","display","justifyContent","borderStyle","minHeight","makeSize","fileUploadHeightTokens","width","backgroundColor","colors","fileUploadItemBackgroundColors","transitionProperty","transitionTimingFunction","transitionDuration","borderColor","interactive","border","neutral","faded","wordBreak","hover"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,2BAA2B,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACjD,CAAA,CAAA,UAAAC,IAAA,EAA6B;AAAA,EAAA,IAA1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI,CAAA;EACpB,IAAMC,MAAM,GAAGC,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACH,MAAM,CAAC,CAAA;AACjE,EAAA,IAAMI,QAAQ,GAAGC,WAAW,CAC1BC,cAAc,CAACL,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACC,QAAQ,CAAC,CACrE,CAAC,CAAA;AAED,EAAA,OAAAG,aAAA,CAAA;AACEC,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,cAAc,EAAE,eAAe;AAC/BC,IAAAA,WAAW,EAAE,OAAO;AACpBC,IAAAA,SAAS,EAAEC,QAAQ,CAACC,sBAAsB,CAAChB,IAAI,KAAK,UAAU,GAAG,OAAO,GAAGA,IAAI,CAAC,CAAC;AACjFiB,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAA,SAAA,CAAQ,CAAC;AACpFsB,IAAAA,kBAAkB,EAAE,kBAAkB;AACtCC,IAAAA,wBAAwB,EAAErB,MAAM;AAChCsB,IAAAA,kBAAkB,EAAElB,QAAQ;IAC5BmB,WAAW,EAAE1B,KAAK,CAACqB,MAAM,CAACM,WAAW,CAACC,MAAM,CAACC,OAAO,CAACC,KAAK;AAC1DC,IAAAA,SAAS,EAAE,WAAA;GAEP9B,EAAAA,MAAM,KAAK,WAAW,IAAI;AAC5B,IAAA,SAAS,EAAE;AACTmB,MAAAA,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACqB,MAAM,EAAEC,8BAA8B,CAACrB,MAAM,CAAC,CAAC+B,KAAK,CAAA;AACnF,KAAA;GACD,CAAA,CAAA;AAEL,CAAC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
|
-
import { fileUploadMotionTokens,
|
|
3
|
+
import { fileUploadMotionTokens, fileUploadColorTokens } from './fileUploadTokens.js';
|
|
4
4
|
import getIn from '../../utils/lodashButBetter/get.js';
|
|
5
5
|
import '../Box/BaseBox/index.js';
|
|
6
6
|
import '../../utils/makeMotionTime/index.web.js';
|
|
@@ -8,7 +8,6 @@ import '../../utils/index.js';
|
|
|
8
8
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
9
9
|
import { castWebType } from '../../utils/platform/castUtils.js';
|
|
10
10
|
import { makeMotionTime } from '../../utils/makeMotionTime/makeMotionTime.web.js';
|
|
11
|
-
import { makeSize } from '../../utils/makeSize/makeSize.js';
|
|
12
11
|
|
|
13
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -18,15 +17,12 @@ var StyledFileUploadWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
18
17
|
})(function (_ref) {
|
|
19
18
|
var theme = _ref.theme,
|
|
20
19
|
isDisabled = _ref.isDisabled,
|
|
21
|
-
isActive = _ref.isActive
|
|
22
|
-
size = _ref.size;
|
|
20
|
+
isActive = _ref.isActive;
|
|
23
21
|
var easing = getIn(theme.motion, fileUploadMotionTokens.easing);
|
|
24
22
|
var duration = castWebType(makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)));
|
|
25
23
|
return _objectSpread(_objectSpread({
|
|
26
24
|
display: 'flex',
|
|
27
25
|
borderStyle: 'dashed',
|
|
28
|
-
height: makeSize(fileUploadHeightTokens[size]),
|
|
29
|
-
width: '100%',
|
|
30
26
|
transitionProperty: 'background-color',
|
|
31
27
|
transitionTimingFunction: easing,
|
|
32
28
|
transitionDuration: duration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledFileUploadWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadWrapperProps } from './types';\nimport {
|
|
1
|
+
{"version":3,"file":"StyledFileUploadWrapper.js","sources":["../../../../../../src/components/FileUpload/StyledFileUploadWrapper.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledFileUploadWrapperProps } from './types';\nimport { fileUploadMotionTokens, fileUploadColorTokens } from './fileUploadTokens';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { castWebType } from '~utils';\n\nconst StyledFileUploadWrapper = styled(BaseBox)<StyledFileUploadWrapperProps>(\n ({ theme, isDisabled, isActive }) => {\n const easing = getIn(theme.motion, fileUploadMotionTokens.easing);\n const duration = castWebType(\n makeMotionTime(getIn(theme.motion, fileUploadMotionTokens.duration)),\n );\n\n return {\n display: 'flex',\n borderStyle: 'dashed',\n transitionProperty: 'background-color',\n transitionTimingFunction: easing,\n transitionDuration: duration,\n borderColor: getIn(\n theme.colors,\n fileUploadColorTokens.border[isDisabled ? 'disabled' : 'default'],\n ),\n\n ...(isActive && {\n backgroundColor: getIn(theme.colors, fileUploadColorTokens.background.active),\n }),\n\n ...(!isDisabled &&\n !isActive && {\n '&:hover': {\n backgroundColor: getIn(theme.colors, fileUploadColorTokens.background.hover),\n },\n }),\n };\n },\n);\n\nexport { StyledFileUploadWrapper };\n"],"names":["StyledFileUploadWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isDisabled","isActive","easing","getIn","motion","fileUploadMotionTokens","duration","castWebType","makeMotionTime","_objectSpread","display","borderStyle","transitionProperty","transitionTimingFunction","transitionDuration","borderColor","colors","fileUploadColorTokens","border","backgroundColor","background","active","hover"],"mappings":";;;;;;;;;;;;;AAQA,IAAMA,uBAAuB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAC7C,CAAA,CAAA,UAAAC,IAAA,EAAqC;AAAA,EAAA,IAAlCC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ,CAAA;EAC5B,IAAMC,MAAM,GAAGC,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACH,MAAM,CAAC,CAAA;AACjE,EAAA,IAAMI,QAAQ,GAAGC,WAAW,CAC1BC,cAAc,CAACL,KAAK,CAACJ,KAAK,CAACK,MAAM,EAAEC,sBAAsB,CAACC,QAAQ,CAAC,CACrE,CAAC,CAAA;EAED,OAAAG,aAAA,CAAAA,aAAA,CAAA;AACEC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,WAAW,EAAE,QAAQ;AACrBC,IAAAA,kBAAkB,EAAE,kBAAkB;AACtCC,IAAAA,wBAAwB,EAAEX,MAAM;AAChCY,IAAAA,kBAAkB,EAAER,QAAQ;AAC5BS,IAAAA,WAAW,EAAEZ,KAAK,CAChBJ,KAAK,CAACiB,MAAM,EACZC,qBAAqB,CAACC,MAAM,CAAClB,UAAU,GAAG,UAAU,GAAG,SAAS,CAClE,CAAA;AAAC,GAAA,EAEGC,QAAQ,IAAI;IACdkB,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACiB,MAAM,EAAEC,qBAAqB,CAACG,UAAU,CAACC,MAAM,CAAA;AAC9E,GAAC,GAEG,CAACrB,UAAU,IACb,CAACC,QAAQ,IAAI;AACX,IAAA,SAAS,EAAE;MACTkB,eAAe,EAAEhB,KAAK,CAACJ,KAAK,CAACiB,MAAM,EAAEC,qBAAqB,CAACG,UAAU,CAACE,KAAK,CAAA;AAC7E,KAAA;GACD,CAAA,CAAA;AAEP,CAAC;;;;"}
|