@razorpay/blade 11.23.0 → 11.23.2

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.
Files changed (21) hide show
  1. package/build/lib/native/components/ProgressBar/ProgressBar.js +1 -1
  2. package/build/lib/native/components/ProgressBar/ProgressBar.js.map +1 -1
  3. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js +11 -4
  4. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  5. package/build/lib/web/development/components/FileUpload/FileUpload.web.js +4 -4
  6. package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
  7. package/build/lib/web/development/components/Menu/MenuOverlay.web.js +7 -2
  8. package/build/lib/web/development/components/Menu/MenuOverlay.web.js.map +1 -1
  9. package/build/lib/web/development/components/ProgressBar/ProgressBar.js +2 -1
  10. package/build/lib/web/development/components/ProgressBar/ProgressBar.js.map +1 -1
  11. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js +11 -4
  12. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  13. package/build/lib/web/production/components/FileUpload/FileUpload.web.js +4 -4
  14. package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
  15. package/build/lib/web/production/components/Menu/MenuOverlay.web.js +7 -2
  16. package/build/lib/web/production/components/Menu/MenuOverlay.web.js.map +1 -1
  17. package/build/lib/web/production/components/ProgressBar/ProgressBar.js +2 -1
  18. package/build/lib/web/production/components/ProgressBar/ProgressBar.js.map +1 -1
  19. package/build/types/components/index.d.ts +65 -1
  20. package/build/types/components/index.native.d.ts +40 -0
  21. package/package.json +1 -1
@@ -24,7 +24,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
24
24
  import { BaseBox } from '../Box/BaseBox/BaseBox.native.js';
25
25
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.native.js';
26
26
 
27
- var _excluded=["accessibilityLabel","color","type","isIndeterminate","label","showPercentage","size","value","variant","min","max","testID"];var progressBarHeight={small:size[2],medium:size[4],large:size[0]};var ProgressBar=function ProgressBar(_ref){var _label$trim;var accessibilityLabel=_ref.accessibilityLabel,color=_ref.color,type=_ref.type,_ref$isIndeterminate=_ref.isIndeterminate,isIndeterminate=_ref$isIndeterminate===void 0?false:_ref$isIndeterminate,label=_ref.label,_ref$showPercentage=_ref.showPercentage,showPercentage=_ref$showPercentage===void 0?true:_ref$showPercentage,_ref$size=_ref.size,size=_ref$size===void 0?'small':_ref$size,_ref$value=_ref.value,value=_ref$value===void 0?0:_ref$value,_ref$variant=_ref.variant,variant=_ref$variant===void 0?'progress':_ref$variant,_ref$min=_ref.min,min=_ref$min===void 0?0:_ref$min,_ref$max=_ref.max,max=_ref$max===void 0?100:_ref$max,testID=_ref.testID,styledProps=_objectWithoutProperties(_ref,_excluded);var _useTheme=useTheme(),theme=_useTheme.theme;var progressType=!type&&(variant==='meter'||variant==='progress')?variant:type;var progressVariant=variant==='meter'||variant==='progress'?'linear':variant;var id=useId(`${progressType}-${progressVariant}`);if(__DEV__){if(progressType==='meter'&&isIndeterminate){throwBladeError({moduleName:'ProgressBar',message:`Cannot set 'isIndeterminate' when 'type' or 'variant' is 'meter'.`});}if(progressVariant==='circular'&&isIndeterminate){throwBladeError({moduleName:'ProgressBar',message:`Cannot set 'isIndeterminate' when 'variant' is 'circular'.`});}if(progressVariant==='linear'&&size==='large'){throwBladeError({moduleName:'ProgressBar',message:`Large size isn't available when 'variant' is 'linear'.`});}if(type&&(variant==='progress'||variant==='meter')){throwBladeError({moduleName:'ProgressBar',message:`variant can only be 'linear' or 'circular' when 'type=${type}'.`});}}var unfilledBackgroundColor=theme.colors.feedback.background.neutral.subtle;var filledBackgroundColor=color?theme.colors.feedback.background[color].intense:theme.colors.surface.background.primary.intense;var hasLabel=label&&((_label$trim=label.trim())==null?void 0:_label$trim.length)>0;var isMeter=progressType==='meter';var isCircular=progressVariant==='circular';var progressValue=clamp(value,min,max);var percentageProgressValue=Math.floor((progressValue-min)*100/(max-min));var shouldShowPercentage=showPercentage&&!isMeter&&!isIndeterminate;var accessibilityProps={role:'progressbar',label:accessibilityLabel!=null?accessibilityLabel:label,valueNow:percentageProgressValue,valueText:`${percentageProgressValue}%`,valueMin:min,valueMax:max};if(isMeter){accessibilityProps.role='meter';accessibilityProps.valueNow=progressValue;accessibilityProps.valueText=`${progressValue}`;}if(isIndeterminate){accessibilityProps.valueNow=undefined;accessibilityProps.valueMin=undefined;accessibilityProps.valueMax=undefined;accessibilityProps.valueText=undefined;}return jsx(BaseBox,Object.assign({},getStyledProps(styledProps),metaAttribute({name:MetaConstants.ProgressBar,testID:testID}),{children:jsxs(BaseBox,{display:"flex",flexDirection:"column",width:"100%",children:[!isCircular?jsxs(BaseBox,{display:"flex",flexDirection:"row",justifyContent:hasLabel?'space-between':'flex-end',children:[hasLabel?jsx(Text,{as:"label",variant:"body",size:"small",color:"surface.text.gray.subtle",children:label}):null,shouldShowPercentage?jsx(BaseBox,{marginBottom:"spacing.2",children:jsx(Text,{variant:"body",size:"small",color:"surface.text.gray.subtle",children:`${percentageProgressValue}%`})}):null]}):null,jsx(BaseBox,Object.assign({id:id},makeAccessible({role:accessibilityProps.role,label:accessibilityProps.label,valueNow:accessibilityProps.valueNow,valueText:accessibilityProps.valueText,valueMin:accessibilityProps.valueMin,valueMax:accessibilityProps.valueMax}),{children:isCircular?jsx(CircularProgressBarFilled,{size:size,label:label,progressPercent:percentageProgressValue,isMeter:isMeter,showPercentage:showPercentage,backgroundColor:unfilledBackgroundColor,fillColor:filledBackgroundColor,pulseMotionDuration:"duration.2xgentle",fillMotionDuration:"duration.2xgentle",pulseMotionDelay:"delay.long",motionEasing:"easing.standard.revealing"}):jsx(BaseBox,{backgroundColor:unfilledBackgroundColor,height:makeSize(progressBarHeight[size]),overflow:"hidden",position:"relative",children:jsx(ProgressBarFilled,{backgroundColor:filledBackgroundColor,progress:percentageProgressValue,fillMotionDuration:"duration.2xgentle",pulseMotionDuration:"duration.2xgentle",indeterminateMotionDuration:"duration.2xgentle",pulseMotionDelay:"delay.long",motionEasing:"easing.standard.revealing",type:progressType,isIndeterminate:isIndeterminate})})}))]})}));};
27
+ var _excluded=["accessibilityLabel","color","type","isIndeterminate","label","showPercentage","size","value","variant","min","max","testID"];var progressBarHeight={small:size[2],medium:size[4],large:size[0]};var ProgressBar=function ProgressBar(_ref){var _label$trim;var accessibilityLabel=_ref.accessibilityLabel,color=_ref.color,type=_ref.type,_ref$isIndeterminate=_ref.isIndeterminate,isIndeterminate=_ref$isIndeterminate===void 0?false:_ref$isIndeterminate,label=_ref.label,_ref$showPercentage=_ref.showPercentage,showPercentage=_ref$showPercentage===void 0?true:_ref$showPercentage,_ref$size=_ref.size,size=_ref$size===void 0?'small':_ref$size,_ref$value=_ref.value,value=_ref$value===void 0?0:_ref$value,_ref$variant=_ref.variant,variant=_ref$variant===void 0?'progress':_ref$variant,_ref$min=_ref.min,min=_ref$min===void 0?0:_ref$min,_ref$max=_ref.max,max=_ref$max===void 0?100:_ref$max,testID=_ref.testID,styledProps=_objectWithoutProperties(_ref,_excluded);var _useTheme=useTheme(),theme=_useTheme.theme;var progressType=!type&&(variant==='meter'||variant==='progress')?variant:type;var progressVariant=variant==='meter'||variant==='progress'?'linear':variant;var id=useId(`${progressType}-${progressVariant}`);if(__DEV__){if(progressType==='meter'&&isIndeterminate){throwBladeError({moduleName:'ProgressBar',message:`Cannot set 'isIndeterminate' when 'type' or 'variant' is 'meter'.`});}if(progressVariant==='circular'&&isIndeterminate){throwBladeError({moduleName:'ProgressBar',message:`Cannot set 'isIndeterminate' when 'variant' is 'circular'.`});}if(progressVariant==='linear'&&size==='large'){throwBladeError({moduleName:'ProgressBar',message:`Large size isn't available when 'variant' is 'linear'.`});}if(type&&(variant==='progress'||variant==='meter')){throwBladeError({moduleName:'ProgressBar',message:`variant can only be 'linear' or 'circular' when 'type=${type}'.`});}}var unfilledBackgroundColor=theme.colors.feedback.background.neutral.subtle;var filledBackgroundColor=color?theme.colors.feedback.background[color].intense:theme.colors.surface.background.primary.intense;var hasLabel=label&&((_label$trim=label.trim())==null?void 0:_label$trim.length)>0;var isMeter=progressType==='meter';var isCircular=progressVariant==='circular';var progressValue=clamp(value,min,max);var percentageValue=(progressValue-min)*100/(max-min);var percentageProgressValue=isMeter?parseFloat(percentageValue.toFixed(1)):Math.floor(percentageValue);var shouldShowPercentage=showPercentage&&!isMeter&&!isIndeterminate;var accessibilityProps={role:'progressbar',label:accessibilityLabel!=null?accessibilityLabel:label,valueNow:percentageProgressValue,valueText:`${percentageProgressValue}%`,valueMin:min,valueMax:max};if(isMeter){accessibilityProps.role='meter';accessibilityProps.valueNow=progressValue;accessibilityProps.valueText=`${progressValue}`;}if(isIndeterminate){accessibilityProps.valueNow=undefined;accessibilityProps.valueMin=undefined;accessibilityProps.valueMax=undefined;accessibilityProps.valueText=undefined;}return jsx(BaseBox,Object.assign({},getStyledProps(styledProps),metaAttribute({name:MetaConstants.ProgressBar,testID:testID}),{children:jsxs(BaseBox,{display:"flex",flexDirection:"column",width:"100%",children:[!isCircular?jsxs(BaseBox,{display:"flex",flexDirection:"row",justifyContent:hasLabel?'space-between':'flex-end',children:[hasLabel?jsx(Text,{as:"label",variant:"body",size:"small",color:"surface.text.gray.subtle",children:label}):null,shouldShowPercentage?jsx(BaseBox,{marginBottom:"spacing.2",children:jsx(Text,{variant:"body",size:"small",color:"surface.text.gray.subtle",children:`${percentageProgressValue}%`})}):null]}):null,jsx(BaseBox,Object.assign({id:id},makeAccessible({role:accessibilityProps.role,label:accessibilityProps.label,valueNow:accessibilityProps.valueNow,valueText:accessibilityProps.valueText,valueMin:accessibilityProps.valueMin,valueMax:accessibilityProps.valueMax}),{children:isCircular?jsx(CircularProgressBarFilled,{size:size,label:label,progressPercent:percentageProgressValue,isMeter:isMeter,showPercentage:showPercentage,backgroundColor:unfilledBackgroundColor,fillColor:filledBackgroundColor,pulseMotionDuration:"duration.2xgentle",fillMotionDuration:"duration.2xgentle",pulseMotionDelay:"delay.long",motionEasing:"easing.standard.revealing"}):jsx(BaseBox,{backgroundColor:unfilledBackgroundColor,height:makeSize(progressBarHeight[size]),overflow:"hidden",position:"relative",children:jsx(ProgressBarFilled,{backgroundColor:filledBackgroundColor,progress:percentageProgressValue,fillMotionDuration:"duration.2xgentle",pulseMotionDuration:"duration.2xgentle",indeterminateMotionDuration:"duration.2xgentle",pulseMotionDelay:"delay.long",motionEasing:"easing.standard.revealing",type:progressType,isIndeterminate:isIndeterminate})})}))]})}));};
28
28
 
29
29
  export { ProgressBar };
30
30
  //# sourceMappingURL=ProgressBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sources":["../../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { ProgressBarFilled } from './ProgressBarFilled';\nimport { CircularProgressBarFilled } from './CircularProgressBar';\nimport clamp from '~utils/lodashButBetter/clamp';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { Text } from '~components/Typography/Text';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { useId } from '~utils/useId';\nimport { useTheme } from '~components/BladeProvider';\nimport type { BaseBoxProps } from '~components/Box/BaseBox';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { FeedbackColors } from '~tokens/theme/theme';\nimport { size } from '~tokens/global';\nimport type { TestID } from '~utils/types';\nimport { makeSize } from '~utils/makeSize';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\n\ntype ProgressBarCommonProps = {\n /**\n * Sets aria-label to help users know what the progress bar is for. Default value is the same as the `label` passed.\n */\n accessibilityLabel?: string;\n /**\n * Sets the color of the progress bar which changes the feedback color.\n */\n color?: FeedbackColors;\n /**\n * Sets the type of the progress bar.\n * @default 'progress'\n */\n type?: 'meter' | 'progress';\n /**\n * Sets the label to be rendered for the progress bar. This value will also be used as default for `accessibilityLabel`.\n */\n label?: string;\n /**\n * Sets the size of the progress bar.\n * Note: 'large' size isn't available when the variant is 'linear'.\n * @default 'small'\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * Sets the progress value of the progress bar.\n * @default 'small'\n */\n value?: number;\n /**\n * Sets the minimum value for the progress bar.\n * @default 0\n */\n min?: number;\n /**\n * Sets the maximum value for the progress bar.\n * @default 100\n */\n max?: number;\n} & TestID &\n StyledPropsBlade;\n\ntype ProgressBarVariant = 'progress' | 'meter' | 'linear' | 'circular';\n\ntype ProgressBarProgressProps = ProgressBarCommonProps & {\n /**\n * Sets the variant to be rendered for the progress bar.\n * @default 'progress'\n */\n variant?: Extract<ProgressBarVariant, 'progress' | 'linear' | 'circular'>;\n /**\n * Sets whether the progress bar is in an indeterminate state.\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.\n * @default true\n */\n showPercentage?: boolean;\n};\n\ntype ProgressBarMeterProps = ProgressBarCommonProps & {\n /**\n * Sets the variant to be rendered for thr progress bar.\n * @default 'progress'\n */\n variant?: Extract<ProgressBarVariant, 'meter' | 'linear' | 'circular'>;\n /**\n * Sets whether the progress bar is in an indeterminate state.\n * @default false\n */\n isIndeterminate?: undefined;\n /**\n * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.\n * @default false\n */\n showPercentage?: undefined;\n};\n\ntype ProgressBarProps = ProgressBarProgressProps | ProgressBarMeterProps;\n\nconst progressBarHeight: Record<NonNullable<ProgressBarProps['size']>, 2 | 4 | 0> = {\n small: size[2],\n medium: size[4],\n // Large size isn't available when variant is 'linear'\n large: size[0],\n};\n\nconst ProgressBar = ({\n accessibilityLabel,\n color,\n type,\n isIndeterminate = false,\n label,\n showPercentage = true,\n size = 'small',\n value = 0,\n variant = 'progress',\n min = 0,\n max = 100,\n testID,\n ...styledProps\n}: ProgressBarProps): ReactElement => {\n const { theme } = useTheme();\n const progressType = !type && (variant === 'meter' || variant === 'progress') ? variant : type;\n const progressVariant = variant === 'meter' || variant === 'progress' ? 'linear' : variant;\n const id = useId(`${progressType}-${progressVariant}`);\n\n if (__DEV__) {\n if (progressType === 'meter' && isIndeterminate) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Cannot set 'isIndeterminate' when 'type' or 'variant' is 'meter'.`,\n });\n }\n\n if (progressVariant === 'circular' && isIndeterminate) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Cannot set 'isIndeterminate' when 'variant' is 'circular'.`,\n });\n }\n\n if (progressVariant === 'linear' && size === 'large') {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Large size isn't available when 'variant' is 'linear'.`,\n });\n }\n\n if (type && (variant === 'progress' || variant === 'meter')) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `variant can only be 'linear' or 'circular' when 'type=${type}'.`,\n });\n }\n }\n\n const unfilledBackgroundColor = theme.colors.feedback.background.neutral\n .subtle as BaseBoxProps['backgroundColor'];\n const filledBackgroundColor = color\n ? theme.colors.feedback.background[color].intense\n : theme.colors.surface.background.primary.intense;\n const hasLabel = label && label.trim()?.length > 0;\n const isMeter = progressType === 'meter';\n const isCircular = progressVariant === 'circular';\n const progressValue = clamp(value, min, max);\n const percentageProgressValue = Math.floor(((progressValue - min) * 100) / (max - min));\n const shouldShowPercentage = showPercentage && !isMeter && !isIndeterminate;\n const accessibilityProps: Pick<\n AccessibilityProps,\n 'role' | 'label' | 'valueMax' | 'valueNow' | 'valueMin' | 'valueText'\n > = {\n role: 'progressbar',\n label: accessibilityLabel ?? label,\n valueNow: percentageProgressValue,\n valueText: `${percentageProgressValue}%`,\n valueMin: min,\n valueMax: max,\n };\n\n if (isMeter) {\n accessibilityProps.role = 'meter';\n accessibilityProps.valueNow = progressValue;\n accessibilityProps.valueText = `${progressValue}`;\n }\n\n if (isIndeterminate) {\n accessibilityProps.valueNow = undefined;\n accessibilityProps.valueMin = undefined;\n accessibilityProps.valueMax = undefined;\n accessibilityProps.valueText = undefined;\n }\n\n return (\n <BaseBox\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.ProgressBar, testID })}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n {!isCircular ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent={hasLabel ? 'space-between' : 'flex-end'}\n >\n {hasLabel ? (\n <Text as=\"label\" variant=\"body\" size=\"small\" color=\"surface.text.gray.subtle\">\n {label}\n </Text>\n ) : null}\n {shouldShowPercentage ? (\n <BaseBox marginBottom=\"spacing.2\">\n <Text\n variant=\"body\"\n size=\"small\"\n color=\"surface.text.gray.subtle\"\n >{`${percentageProgressValue}%`}</Text>\n </BaseBox>\n ) : null}\n </BaseBox>\n ) : null}\n\n <BaseBox\n id={id}\n {...makeAccessible({\n role: accessibilityProps.role,\n label: accessibilityProps.label,\n valueNow: accessibilityProps.valueNow,\n valueText: accessibilityProps.valueText,\n valueMin: accessibilityProps.valueMin,\n valueMax: accessibilityProps.valueMax,\n })}\n >\n {isCircular ? (\n <CircularProgressBarFilled\n size={size}\n label={label}\n progressPercent={percentageProgressValue}\n isMeter={isMeter}\n showPercentage={showPercentage}\n backgroundColor={unfilledBackgroundColor as string}\n fillColor={filledBackgroundColor}\n pulseMotionDuration=\"duration.2xgentle\"\n fillMotionDuration=\"duration.2xgentle\"\n pulseMotionDelay=\"delay.long\"\n motionEasing=\"easing.standard.revealing\"\n />\n ) : (\n <BaseBox\n backgroundColor={unfilledBackgroundColor}\n height={makeSize(progressBarHeight[size])}\n overflow=\"hidden\"\n position=\"relative\"\n >\n <ProgressBarFilled\n backgroundColor={filledBackgroundColor}\n progress={percentageProgressValue}\n fillMotionDuration=\"duration.2xgentle\"\n pulseMotionDuration=\"duration.2xgentle\"\n indeterminateMotionDuration=\"duration.2xgentle\"\n pulseMotionDelay=\"delay.long\"\n motionEasing=\"easing.standard.revealing\"\n type={progressType}\n isIndeterminate={isIndeterminate}\n />\n </BaseBox>\n )}\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nexport type { ProgressBarProps, ProgressBarVariant };\nexport { ProgressBar };\n"],"names":["progressBarHeight","small","size","medium","large","ProgressBar","_ref","_label$trim","accessibilityLabel","color","type","_ref$isIndeterminate","isIndeterminate","label","_ref$showPercentage","showPercentage","_ref$size","_ref$value","value","_ref$variant","variant","_ref$min","min","_ref$max","max","testID","styledProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","progressType","progressVariant","id","useId","__DEV__","throwBladeError","moduleName","message","unfilledBackgroundColor","colors","feedback","background","neutral","subtle","filledBackgroundColor","intense","surface","primary","hasLabel","trim","length","isMeter","isCircular","progressValue","clamp","percentageProgressValue","Math","floor","shouldShowPercentage","accessibilityProps","role","valueNow","valueText","valueMin","valueMax","undefined","_jsx","BaseBox","Object","assign","getStyledProps","metaAttribute","name","MetaConstants","children","_jsxs","display","flexDirection","width","justifyContent","Text","as","marginBottom","makeAccessible","CircularProgressBarFilled","progressPercent","backgroundColor","fillColor","pulseMotionDuration","fillMotionDuration","pulseMotionDelay","motionEasing","height","makeSize","overflow","position","ProgressBarFilled","progress","indeterminateMotionDuration"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressBar.js","sources":["../../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { ProgressBarFilled } from './ProgressBarFilled';\nimport { CircularProgressBarFilled } from './CircularProgressBar';\nimport clamp from '~utils/lodashButBetter/clamp';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { Text } from '~components/Typography/Text';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { useId } from '~utils/useId';\nimport { useTheme } from '~components/BladeProvider';\nimport type { BaseBoxProps } from '~components/Box/BaseBox';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { FeedbackColors } from '~tokens/theme/theme';\nimport { size } from '~tokens/global';\nimport type { TestID } from '~utils/types';\nimport { makeSize } from '~utils/makeSize';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\n\ntype ProgressBarCommonProps = {\n /**\n * Sets aria-label to help users know what the progress bar is for. Default value is the same as the `label` passed.\n */\n accessibilityLabel?: string;\n /**\n * Sets the color of the progress bar which changes the feedback color.\n */\n color?: FeedbackColors;\n /**\n * Sets the type of the progress bar.\n * @default 'progress'\n */\n type?: 'meter' | 'progress';\n /**\n * Sets the label to be rendered for the progress bar. This value will also be used as default for `accessibilityLabel`.\n */\n label?: string;\n /**\n * Sets the size of the progress bar.\n * Note: 'large' size isn't available when the variant is 'linear'.\n * @default 'small'\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * Sets the progress value of the progress bar.\n * @default 'small'\n */\n value?: number;\n /**\n * Sets the minimum value for the progress bar.\n * @default 0\n */\n min?: number;\n /**\n * Sets the maximum value for the progress bar.\n * @default 100\n */\n max?: number;\n} & TestID &\n StyledPropsBlade;\n\ntype ProgressBarVariant = 'progress' | 'meter' | 'linear' | 'circular';\n\ntype ProgressBarProgressProps = ProgressBarCommonProps & {\n /**\n * Sets the variant to be rendered for the progress bar.\n * @default 'progress'\n */\n variant?: Extract<ProgressBarVariant, 'progress' | 'linear' | 'circular'>;\n /**\n * Sets whether the progress bar is in an indeterminate state.\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.\n * @default true\n */\n showPercentage?: boolean;\n};\n\ntype ProgressBarMeterProps = ProgressBarCommonProps & {\n /**\n * Sets the variant to be rendered for thr progress bar.\n * @default 'progress'\n */\n variant?: Extract<ProgressBarVariant, 'meter' | 'linear' | 'circular'>;\n /**\n * Sets whether the progress bar is in an indeterminate state.\n * @default false\n */\n isIndeterminate?: undefined;\n /**\n * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.\n * @default false\n */\n showPercentage?: undefined;\n};\n\ntype ProgressBarProps = ProgressBarProgressProps | ProgressBarMeterProps;\n\nconst progressBarHeight: Record<NonNullable<ProgressBarProps['size']>, 2 | 4 | 0> = {\n small: size[2],\n medium: size[4],\n // Large size isn't available when variant is 'linear'\n large: size[0],\n};\n\nconst ProgressBar = ({\n accessibilityLabel,\n color,\n type,\n isIndeterminate = false,\n label,\n showPercentage = true,\n size = 'small',\n value = 0,\n variant = 'progress',\n min = 0,\n max = 100,\n testID,\n ...styledProps\n}: ProgressBarProps): ReactElement => {\n const { theme } = useTheme();\n const progressType = !type && (variant === 'meter' || variant === 'progress') ? variant : type;\n const progressVariant = variant === 'meter' || variant === 'progress' ? 'linear' : variant;\n const id = useId(`${progressType}-${progressVariant}`);\n\n if (__DEV__) {\n if (progressType === 'meter' && isIndeterminate) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Cannot set 'isIndeterminate' when 'type' or 'variant' is 'meter'.`,\n });\n }\n\n if (progressVariant === 'circular' && isIndeterminate) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Cannot set 'isIndeterminate' when 'variant' is 'circular'.`,\n });\n }\n\n if (progressVariant === 'linear' && size === 'large') {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `Large size isn't available when 'variant' is 'linear'.`,\n });\n }\n\n if (type && (variant === 'progress' || variant === 'meter')) {\n throwBladeError({\n moduleName: 'ProgressBar',\n message: `variant can only be 'linear' or 'circular' when 'type=${type}'.`,\n });\n }\n }\n\n const unfilledBackgroundColor = theme.colors.feedback.background.neutral\n .subtle as BaseBoxProps['backgroundColor'];\n const filledBackgroundColor = color\n ? theme.colors.feedback.background[color].intense\n : theme.colors.surface.background.primary.intense;\n const hasLabel = label && label.trim()?.length > 0;\n const isMeter = progressType === 'meter';\n const isCircular = progressVariant === 'circular';\n const progressValue = clamp(value, min, max);\n const percentageValue = ((progressValue - min) * 100) / (max - min);\n const percentageProgressValue = isMeter\n ? parseFloat(percentageValue.toFixed(1))\n : Math.floor(percentageValue);\n const shouldShowPercentage = showPercentage && !isMeter && !isIndeterminate;\n const accessibilityProps: Pick<\n AccessibilityProps,\n 'role' | 'label' | 'valueMax' | 'valueNow' | 'valueMin' | 'valueText'\n > = {\n role: 'progressbar',\n label: accessibilityLabel ?? label,\n valueNow: percentageProgressValue,\n valueText: `${percentageProgressValue}%`,\n valueMin: min,\n valueMax: max,\n };\n\n if (isMeter) {\n accessibilityProps.role = 'meter';\n accessibilityProps.valueNow = progressValue;\n accessibilityProps.valueText = `${progressValue}`;\n }\n\n if (isIndeterminate) {\n accessibilityProps.valueNow = undefined;\n accessibilityProps.valueMin = undefined;\n accessibilityProps.valueMax = undefined;\n accessibilityProps.valueText = undefined;\n }\n\n return (\n <BaseBox\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.ProgressBar, testID })}\n >\n <BaseBox display=\"flex\" flexDirection=\"column\" width=\"100%\">\n {!isCircular ? (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent={hasLabel ? 'space-between' : 'flex-end'}\n >\n {hasLabel ? (\n <Text as=\"label\" variant=\"body\" size=\"small\" color=\"surface.text.gray.subtle\">\n {label}\n </Text>\n ) : null}\n {shouldShowPercentage ? (\n <BaseBox marginBottom=\"spacing.2\">\n <Text\n variant=\"body\"\n size=\"small\"\n color=\"surface.text.gray.subtle\"\n >{`${percentageProgressValue}%`}</Text>\n </BaseBox>\n ) : null}\n </BaseBox>\n ) : null}\n\n <BaseBox\n id={id}\n {...makeAccessible({\n role: accessibilityProps.role,\n label: accessibilityProps.label,\n valueNow: accessibilityProps.valueNow,\n valueText: accessibilityProps.valueText,\n valueMin: accessibilityProps.valueMin,\n valueMax: accessibilityProps.valueMax,\n })}\n >\n {isCircular ? (\n <CircularProgressBarFilled\n size={size}\n label={label}\n progressPercent={percentageProgressValue}\n isMeter={isMeter}\n showPercentage={showPercentage}\n backgroundColor={unfilledBackgroundColor as string}\n fillColor={filledBackgroundColor}\n pulseMotionDuration=\"duration.2xgentle\"\n fillMotionDuration=\"duration.2xgentle\"\n pulseMotionDelay=\"delay.long\"\n motionEasing=\"easing.standard.revealing\"\n />\n ) : (\n <BaseBox\n backgroundColor={unfilledBackgroundColor}\n height={makeSize(progressBarHeight[size])}\n overflow=\"hidden\"\n position=\"relative\"\n >\n <ProgressBarFilled\n backgroundColor={filledBackgroundColor}\n progress={percentageProgressValue}\n fillMotionDuration=\"duration.2xgentle\"\n pulseMotionDuration=\"duration.2xgentle\"\n indeterminateMotionDuration=\"duration.2xgentle\"\n pulseMotionDelay=\"delay.long\"\n motionEasing=\"easing.standard.revealing\"\n type={progressType}\n isIndeterminate={isIndeterminate}\n />\n </BaseBox>\n )}\n </BaseBox>\n </BaseBox>\n </BaseBox>\n );\n};\n\nexport type { ProgressBarProps, ProgressBarVariant };\nexport { ProgressBar };\n"],"names":["progressBarHeight","small","size","medium","large","ProgressBar","_ref","_label$trim","accessibilityLabel","color","type","_ref$isIndeterminate","isIndeterminate","label","_ref$showPercentage","showPercentage","_ref$size","_ref$value","value","_ref$variant","variant","_ref$min","min","_ref$max","max","testID","styledProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","progressType","progressVariant","id","useId","__DEV__","throwBladeError","moduleName","message","unfilledBackgroundColor","colors","feedback","background","neutral","subtle","filledBackgroundColor","intense","surface","primary","hasLabel","trim","length","isMeter","isCircular","progressValue","clamp","percentageValue","percentageProgressValue","parseFloat","toFixed","Math","floor","shouldShowPercentage","accessibilityProps","role","valueNow","valueText","valueMin","valueMax","undefined","_jsx","BaseBox","Object","assign","getStyledProps","metaAttribute","name","MetaConstants","children","_jsxs","display","flexDirection","width","justifyContent","Text","as","marginBottom","makeAccessible","CircularProgressBarFilled","progressPercent","backgroundColor","fillColor","pulseMotionDuration","fillMotionDuration","pulseMotionDelay","motionEasing","height","makeSize","overflow","position","ProgressBarFilled","progress","indeterminateMotionDuration"],"mappings":"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"}
@@ -38,6 +38,8 @@ var _DropdownOverlay = function _DropdownOverlay(_ref) {
38
38
  _ref$zIndex = _ref.zIndex,
39
39
  zIndex = _ref$zIndex === void 0 ? componentZIndices.dropdownOverlay : _ref$zIndex,
40
40
  width = _ref.width,
41
+ minWidth = _ref.minWidth,
42
+ maxWidth = _ref.maxWidth,
41
43
  referenceRef = _ref.referenceRef,
42
44
  _ref$defaultPlacement = _ref.defaultPlacement,
43
45
  defaultPlacement = _ref$defaultPlacement === void 0 ? 'bottom-start' : _ref$defaultPlacement;
@@ -71,12 +73,15 @@ var _DropdownOverlay = function _DropdownOverlay(_ref) {
71
73
  apply: function apply(_ref3) {
72
74
  var rects = _ref3.rects,
73
75
  elements = _ref3.elements;
76
+ var overlayWidth = isMenu ? undefined : makeSize(rects.reference.width);
77
+ var overlayMinWidth = isMenu ? makeSize(size['240']) : undefined;
78
+ var overlayMaxWidth = isMenu ? makeSize(size['400']) : undefined;
74
79
  Object.assign(elements.floating.style, {
75
80
  // in menu, we have flexible width between min and max
76
81
  // in input triggers, we just take width of trigger
77
- width: isMenu ? undefined : makeSize(rects.reference.width),
78
- minWidth: isMenu ? makeSize(size['240']) : undefined,
79
- maxWidth: isMenu ? makeSize(size['400']) : undefined
82
+ width: width !== null && width !== void 0 ? width : overlayWidth,
83
+ minWidth: minWidth !== null && minWidth !== void 0 ? minWidth : overlayMinWidth,
84
+ maxWidth: maxWidth !== null && maxWidth !== void 0 ? maxWidth : overlayMaxWidth
80
85
  });
81
86
  }
82
87
  })],
@@ -120,7 +125,9 @@ var _DropdownOverlay = function _DropdownOverlay(_ref) {
120
125
  isInBottomSheet: bottomSheetAndDropdownGlue === null || bottomSheetAndDropdownGlue === void 0 ? void 0 : bottomSheetAndDropdownGlue.dropdownHasBottomSheet,
121
126
  elevation: bottomSheetAndDropdownGlue !== null && bottomSheetAndDropdownGlue !== void 0 && bottomSheetAndDropdownGlue.dropdownHasBottomSheet ? undefined : 'midRaised',
122
127
  style: _objectSpread({}, styles),
123
- width: width ? width : '100%'
128
+ width: width ? width : '100%',
129
+ minWidth: minWidth,
130
+ maxWidth: maxWidth
124
131
  }, metaAttribute({
125
132
  name: MetaConstants.DropdownOverlay,
126
133
  testID: testID
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownOverlay.web.js","sources":["../../../../../../src/components/Dropdown/DropdownOverlay.web.tsx"],"sourcesContent":["import React from 'react';\nimport {\n autoUpdate,\n offset,\n size as sizeMiddleware,\n useFloating,\n useTransitionStyles,\n flip,\n FloatingPortal,\n useDismiss,\n useInteractions,\n} from '@floating-ui/react';\nimport { useDropdown } from './useDropdown';\nimport { StyledDropdownOverlay } from './StyledDropdownOverlay';\nimport type { DropdownOverlayProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useTheme } from '~components/BladeProvider';\n// Reading directly because its not possible to get theme object on top level to be used in keyframes\nimport { size } from '~tokens/global';\nimport { makeSize } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useBottomSheetAndDropdownGlue } from '~components/BottomSheet/BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { OVERLAY_OFFSET, OVERLAY_TRANSITION_OFFSET } from '~components/BaseMenu/tokens';\n\nconst OVERLAY_PADDING: number = size['12']; // doesn't have to be exact. Just rough padding for floating ui to decide to show overlay on top or bottom\n\n/**\n * Overlay of dropdown\n *\n * Wrap your ActionList within this component\n */\nconst _DropdownOverlay = ({\n children,\n testID,\n zIndex = componentZIndices.dropdownOverlay,\n width,\n referenceRef,\n defaultPlacement = 'bottom-start',\n}: DropdownOverlayProps): React.ReactElement | null => {\n const { isOpen, triggererRef, triggererWrapperRef, dropdownTriggerer, setIsOpen } = useDropdown();\n const { theme } = useTheme();\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n\n const isMenu =\n dropdownTriggerer !== dropdownComponentIds.triggers.SelectInput &&\n dropdownTriggerer !== dropdownComponentIds.triggers.SearchInput &&\n dropdownTriggerer !== dropdownComponentIds.triggers.AutoComplete &&\n referenceRef == undefined;\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n strategy: 'fixed',\n placement: defaultPlacement,\n elements: {\n // Input triggers have their ref on internal input element but we want width height of overall visible input hence wrapperRef is needed\n // We fallback to use `triggererRef` for triggers like button and link where wrapper is not needed\n // Checkout: https://github.com/razorpay/blade/pull/1559#discussion_r1305438920\n reference: (referenceRef?.current ??\n triggererWrapperRef.current ??\n triggererRef.current) as Element,\n },\n middleware: [\n offset({\n mainAxis: OVERLAY_OFFSET,\n }),\n flip({\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n padding: OVERLAY_OFFSET + OVERLAY_PADDING,\n }),\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n // in menu, we have flexible width between min and max\n // in input triggers, we just take width of trigger\n width: isMenu ? undefined : makeSize(rects.reference.width),\n minWidth: isMenu ? makeSize(size['240']) : undefined,\n maxWidth: isMenu ? makeSize(size['400']) : undefined,\n });\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const dismiss = useDismiss(context);\n const { getFloatingProps } = useInteractions([dismiss]);\n\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: () => ({\n transform: `translateY(-${makeSize(OVERLAY_TRANSITION_OFFSET)})`,\n opacity: 0,\n }),\n });\n\n React.useEffect(() => {\n if (isOpen) {\n // On Safari clicking on a non input element doesn't focuses it https://bugs.webkit.org/show_bug.cgi?id=22261\n triggererRef.current?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n return (\n <FloatingPortal>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={refs.setFloating as any}\n style={floatingStyles}\n zIndex={zIndex}\n display={isMounted ? 'flex' : 'none'}\n {...getFloatingProps()}\n >\n <StyledDropdownOverlay\n isInBottomSheet={bottomSheetAndDropdownGlue?.dropdownHasBottomSheet}\n elevation={bottomSheetAndDropdownGlue?.dropdownHasBottomSheet ? undefined : 'midRaised'}\n style={{ ...styles }}\n width={width ? width : '100%'}\n {...metaAttribute({ name: MetaConstants.DropdownOverlay, testID })}\n >\n {children}\n </StyledDropdownOverlay>\n </BaseBox>\n </FloatingPortal>\n );\n};\n\nconst DropdownOverlay = assignWithoutSideEffects(_DropdownOverlay, {\n componentId: dropdownComponentIds.DropdownOverlay,\n});\n\nexport { DropdownOverlay };\n"],"names":["OVERLAY_PADDING","size","_DropdownOverlay","_ref","_ref2","_referenceRef$current","children","testID","_ref$zIndex","zIndex","componentZIndices","dropdownOverlay","width","referenceRef","_ref$defaultPlacement","defaultPlacement","_useDropdown","useDropdown","isOpen","triggererRef","triggererWrapperRef","dropdownTriggerer","setIsOpen","_useTheme","useTheme","theme","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","isMenu","dropdownComponentIds","triggers","SelectInput","SearchInput","AutoComplete","undefined","_useFloating","useFloating","open","onOpenChange","strategy","placement","elements","reference","current","middleware","offset","mainAxis","OVERLAY_OFFSET","flip","padding","sizeMiddleware","apply","_ref3","rects","Object","assign","floating","style","makeSize","minWidth","maxWidth","whileElementsMounted","autoUpdate","refs","floatingStyles","context","dismiss","useDismiss","_useInteractions","useInteractions","getFloatingProps","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","transform","concat","OVERLAY_TRANSITION_OFFSET","opacity","isMounted","styles","React","useEffect","_triggererRef$current","focus","_jsx","FloatingPortal","BaseBox","_objectSpread","ref","setFloating","display","StyledDropdownOverlay","isInBottomSheet","dropdownHasBottomSheet","elevation","metaAttribute","name","MetaConstants","DropdownOverlay","assignWithoutSideEffects","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownOverlay.web.js","sources":["../../../../../../src/components/Dropdown/DropdownOverlay.web.tsx"],"sourcesContent":["import React from 'react';\nimport {\n autoUpdate,\n offset,\n size as sizeMiddleware,\n useFloating,\n useTransitionStyles,\n flip,\n FloatingPortal,\n useDismiss,\n useInteractions,\n} from '@floating-ui/react';\nimport { useDropdown } from './useDropdown';\nimport { StyledDropdownOverlay } from './StyledDropdownOverlay';\nimport type { DropdownOverlayProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useTheme } from '~components/BladeProvider';\n// Reading directly because its not possible to get theme object on top level to be used in keyframes\nimport { size } from '~tokens/global';\nimport { makeSize } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useBottomSheetAndDropdownGlue } from '~components/BottomSheet/BottomSheetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { OVERLAY_OFFSET, OVERLAY_TRANSITION_OFFSET } from '~components/BaseMenu/tokens';\n\nconst OVERLAY_PADDING: number = size['12']; // doesn't have to be exact. Just rough padding for floating ui to decide to show overlay on top or bottom\n\n/**\n * Overlay of dropdown\n *\n * Wrap your ActionList within this component\n */\nconst _DropdownOverlay = ({\n children,\n testID,\n zIndex = componentZIndices.dropdownOverlay,\n width,\n minWidth,\n maxWidth,\n referenceRef,\n defaultPlacement = 'bottom-start',\n}: DropdownOverlayProps): React.ReactElement | null => {\n const { isOpen, triggererRef, triggererWrapperRef, dropdownTriggerer, setIsOpen } = useDropdown();\n const { theme } = useTheme();\n const bottomSheetAndDropdownGlue = useBottomSheetAndDropdownGlue();\n\n const isMenu =\n dropdownTriggerer !== dropdownComponentIds.triggers.SelectInput &&\n dropdownTriggerer !== dropdownComponentIds.triggers.SearchInput &&\n dropdownTriggerer !== dropdownComponentIds.triggers.AutoComplete &&\n referenceRef == undefined;\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n strategy: 'fixed',\n placement: defaultPlacement,\n elements: {\n // Input triggers have their ref on internal input element but we want width height of overall visible input hence wrapperRef is needed\n // We fallback to use `triggererRef` for triggers like button and link where wrapper is not needed\n // Checkout: https://github.com/razorpay/blade/pull/1559#discussion_r1305438920\n reference: (referenceRef?.current ??\n triggererWrapperRef.current ??\n triggererRef.current) as Element,\n },\n middleware: [\n offset({\n mainAxis: OVERLAY_OFFSET,\n }),\n flip({\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n padding: OVERLAY_OFFSET + OVERLAY_PADDING,\n }),\n sizeMiddleware({\n apply({ rects, elements }) {\n const overlayWidth = isMenu ? undefined : makeSize(rects.reference.width);\n const overlayMinWidth = isMenu ? makeSize(size['240']) : undefined;\n const overlayMaxWidth = isMenu ? makeSize(size['400']) : undefined;\n\n Object.assign(elements.floating.style, {\n // in menu, we have flexible width between min and max\n // in input triggers, we just take width of trigger\n width: width ?? overlayWidth,\n minWidth: minWidth ?? overlayMinWidth,\n maxWidth: maxWidth ?? overlayMaxWidth,\n });\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const dismiss = useDismiss(context);\n const { getFloatingProps } = useInteractions([dismiss]);\n\n const { isMounted, styles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: () => ({\n transform: `translateY(-${makeSize(OVERLAY_TRANSITION_OFFSET)})`,\n opacity: 0,\n }),\n });\n\n React.useEffect(() => {\n if (isOpen) {\n // On Safari clicking on a non input element doesn't focuses it https://bugs.webkit.org/show_bug.cgi?id=22261\n triggererRef.current?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n return (\n <FloatingPortal>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={refs.setFloating as any}\n style={floatingStyles}\n zIndex={zIndex}\n display={isMounted ? 'flex' : 'none'}\n {...getFloatingProps()}\n >\n <StyledDropdownOverlay\n isInBottomSheet={bottomSheetAndDropdownGlue?.dropdownHasBottomSheet}\n elevation={bottomSheetAndDropdownGlue?.dropdownHasBottomSheet ? undefined : 'midRaised'}\n style={{ ...styles }}\n width={width ? width : '100%'}\n minWidth={minWidth}\n maxWidth={maxWidth}\n {...metaAttribute({ name: MetaConstants.DropdownOverlay, testID })}\n >\n {children}\n </StyledDropdownOverlay>\n </BaseBox>\n </FloatingPortal>\n );\n};\n\nconst DropdownOverlay = assignWithoutSideEffects(_DropdownOverlay, {\n componentId: dropdownComponentIds.DropdownOverlay,\n});\n\nexport { DropdownOverlay };\n"],"names":["OVERLAY_PADDING","size","_DropdownOverlay","_ref","_ref2","_referenceRef$current","children","testID","_ref$zIndex","zIndex","componentZIndices","dropdownOverlay","width","minWidth","maxWidth","referenceRef","_ref$defaultPlacement","defaultPlacement","_useDropdown","useDropdown","isOpen","triggererRef","triggererWrapperRef","dropdownTriggerer","setIsOpen","_useTheme","useTheme","theme","bottomSheetAndDropdownGlue","useBottomSheetAndDropdownGlue","isMenu","dropdownComponentIds","triggers","SelectInput","SearchInput","AutoComplete","undefined","_useFloating","useFloating","open","onOpenChange","strategy","placement","elements","reference","current","middleware","offset","mainAxis","OVERLAY_OFFSET","flip","padding","sizeMiddleware","apply","_ref3","rects","overlayWidth","makeSize","overlayMinWidth","overlayMaxWidth","Object","assign","floating","style","whileElementsMounted","autoUpdate","refs","floatingStyles","context","dismiss","useDismiss","_useInteractions","useInteractions","getFloatingProps","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","transform","concat","OVERLAY_TRANSITION_OFFSET","opacity","isMounted","styles","React","useEffect","_triggererRef$current","focus","_jsx","FloatingPortal","BaseBox","_objectSpread","ref","setFloating","display","StyledDropdownOverlay","isInBottomSheet","dropdownHasBottomSheet","elevation","metaAttribute","name","MetaConstants","DropdownOverlay","assignWithoutSideEffects","componentId"],"mappings":"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"}
@@ -84,7 +84,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
84
84
  _useControllableState2 = _slicedToArray(_useControllableState, 2),
85
85
  selectedFiles = _useControllableState2[0],
86
86
  setSelectedFiles = _useControllableState2[1];
87
- var _useState = useState(errorText),
87
+ var _useState = useState(null),
88
88
  _useState2 = _slicedToArray(_useState, 2),
89
89
  errorMessage = _useState2[0],
90
90
  setErrorMessage = _useState2[1];
@@ -103,7 +103,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
103
103
  var willRenderHintText = Boolean(helpText) || Boolean(errorMessage);
104
104
  var showError = validationState === 'error' || internalValidationState === 'error';
105
105
  var showHelpText = !showError && helpText;
106
- var accessibilityText = accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : ",".concat(showError ? errorText : '', " ").concat(showHelpText ? helpText : '');
106
+ var accessibilityText = accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : ",".concat(showError ? errorMessage : '', " ").concat(showHelpText ? helpText : '');
107
107
  var _useFormId = useFormId('fileuploadinput'),
108
108
  inputId = _useFormId.inputId,
109
109
  labelId = _useFormId.labelId,
@@ -168,7 +168,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
168
168
  return true;
169
169
  }
170
170
  setInternalValidationState('none');
171
- setErrorMessage('');
171
+ setErrorMessage(null);
172
172
  return false;
173
173
  };
174
174
  var handleDragOver = function handleDragOver(event) {
@@ -381,7 +381,7 @@ var _FileUpload = function _FileUpload(_ref, ref) {
381
381
  hasHelpText: Boolean(helpText)
382
382
  }),
383
383
  helpText: helpText,
384
- errorText: errorMessage,
384
+ errorText: errorMessage !== null && errorMessage !== void 0 ? errorMessage : errorText,
385
385
  helpTextId: helpTextId,
386
386
  errorTextId: errorTextId
387
387
  })
@@ -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';\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 ...styledProps\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(errorText);\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 ? errorText : ''} ${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('');\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 display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\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={mergedRef}\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 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}\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: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\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","styledProps","_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","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","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 { 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';\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 ...styledProps\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 display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.FileUpload, testID })}\n {...getStyledProps(styledProps)}\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={mergedRef}\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 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: selectedFiles[0] });\n } else {\n onRemove?.({ file: selectedFiles[0] });\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","styledProps","_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","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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAMA,WAA6E,GAAG,SAAhFA,WAA6EA,CAAAC,IAAA,EA2BjFC,GAAG,EACoB;AAAA,EAAA,IA1BrBC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAAC,eAAA,GAAAJ,IAAA,CACNK,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;IACrBE,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IACRC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,SAAQ,GAAAR,IAAA,CAARQ,QAAQ;IACRC,WAAU,GAAAT,IAAA,CAAVS,UAAU;IACVC,UAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,MAAM,GAAAX,IAAA,CAANW,MAAM;IACNC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,kBAAkB,GAAAd,IAAA,CAAlBc,kBAAkB;IAClBC,QAAQ,GAAAf,IAAA,CAARe,QAAQ;IACRC,MAAM,GAAAhB,IAAA,CAANgB,MAAM;IACNC,KAAK,GAAAjB,IAAA,CAALiB,KAAK;IAAAC,kBAAA,GAAAlB,IAAA,CACLmB,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IACrBE,kBAAkB,GAAApB,IAAA,CAAlBoB,kBAAkB;IAClBC,eAAe,GAAArB,IAAA,CAAfqB,eAAe;IACfC,QAAQ,GAAAtB,IAAA,CAARsB,QAAQ;IACRC,SAAS,GAAAvB,IAAA,CAATuB,SAAS;IACTC,QAAQ,GAAAxB,IAAA,CAARwB,QAAQ;IACRC,OAAO,GAAAzB,IAAA,CAAPyB,OAAO;IAAAC,SAAA,GAAA1B,IAAA,CACP2B,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;AACZE,IAAAA,WAAW,GAAAC,wBAAA,CAAA7B,IAAA,EAAA8B,SAAA,CAAA,CAAA;AAIhB,EAAA,IAAMC,QAAQ,GAAGC,MAAM,CAA0B,IAAI,CAAC,CAAA;AACtD,EAAA,IAAMC,SAAS,GAAGC,YAAY,CAACjC,GAAG,EAAE8B,QAAQ,CAAC,CAAA;AAC7C,EAAA,IAAAI,SAAA,GAAqBC,QAAQ,EAAE;IAAvBC,QAAQ,GAAAF,SAAA,CAARE,QAAQ,CAAA;EAChB,IAAAC,qBAAA,GAA0CC,oBAAoB,CAAC;AAC7DC,MAAAA,KAAK,EAAEzB,QAAQ;AACf0B,MAAAA,YAAY,EAAE1B,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAARA,QAAQ,GAAI,EAAA;AAC5B,KAAC,CAAC;IAAA2B,sBAAA,GAAAC,cAAA,CAAAL,qBAAA,EAAA,CAAA,CAAA;AAHKM,IAAAA,aAAa,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,gBAAgB,GAAAH,sBAAA,CAAA,CAAA,CAAA,CAAA;AAItC,EAAA,IAAAI,SAAA,GAAwCC,QAAQ,CAAgB,IAAI,CAAC;IAAAC,UAAA,GAAAL,cAAA,CAAAG,SAAA,EAAA,CAAA,CAAA;AAA9DG,IAAAA,YAAY,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAG,UAAA,GAA8DJ,QAAQ,CAAC,MAAM,CAAC;IAAAK,UAAA,GAAAT,cAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAAvEE,IAAAA,uBAAuB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,0BAA0B,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC1D,EAAA,IAAAG,UAAA,GAAgCR,QAAQ,CAAC,KAAK,CAAC;IAAAS,UAAA,GAAAb,cAAA,CAAAY,UAAA,EAAA,CAAA,CAAA;AAAxCE,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAMG,UAAU,GAAGtD,UAAU,KAAK,UAAU,CAAA;EAC5C,IAAMuD,iCAAiC,GAAG,CAACD,UAAU,IAAIf,aAAa,CAACiB,MAAM,KAAK,CAAC,CAAA;EACnF,IAAMC,kBAAkB,GAAGzB,QAAQ,KAAK,UAAU,GAAG,KAAK,GAAGlB,aAAa,CAAA;AAC1E,EAAA,IAAM4C,qBAAqB,GAAGD,kBAAkB,KAAK,MAAM,CAAA;EAC3D,IAAME,kBAAkB,GAAGC,OAAO,CAAC3C,QAAQ,CAAC,IAAI2C,OAAO,CAAChB,YAAY,CAAC,CAAA;EAErE,IAAMiB,SAAS,GAAG7C,eAAe,KAAK,OAAO,IAAIgC,uBAAuB,KAAK,OAAO,CAAA;AACpF,EAAA,IAAMc,YAAY,GAAG,CAACD,SAAS,IAAI5C,QAAQ,CAAA;EAC3C,IAAM8C,iBAAiB,GACrBhD,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,kBAAkB,GAAAiD,GAAAA,CAAAA,MAAA,CAAQH,SAAS,GAAGjB,YAAY,GAAG,EAAE,EAAA,GAAA,CAAA,CAAAoB,MAAA,CAAIF,YAAY,GAAG7C,QAAQ,GAAG,EAAE,CAAE,CAAA;AAC3F,EAAA,IAAAgD,UAAA,GAAsDC,SAAS,CAAC,iBAAiB,CAAC;IAA1EC,OAAO,GAAAF,UAAA,CAAPE,OAAO;IAAEC,OAAO,GAAAH,UAAA,CAAPG,OAAO;IAAEC,UAAU,GAAAJ,UAAA,CAAVI,UAAU;IAAEC,WAAW,GAAAL,UAAA,CAAXK,WAAW,CAAA;EAEjD,IAAMC,kBAAkB,GAAGC,cAAc,CAAC;AACxCC,IAAAA,QAAQ,EAAEb,OAAO,CAACpD,UAAU,CAAC;AAC7BkE,IAAAA,OAAO,EAAEd,OAAO,CAACC,SAAS,CAAC;AAC3Bc,IAAAA,QAAQ,EAAEf,OAAO,CAACrD,UAAU,CAAC;AAC7BqE,IAAAA,WAAW,EAAER,OAAAA;AACf,GAAC,CAAC,CAAA;;AAEF;AACAS,EAAAA,OAAO,CAAC,YAAM;AAAA,IAAA,IAAAC,SAAA,GAAAC,0BAAA,CACOxC,aAAa,CAAA;MAAAyC,KAAA,CAAA;AAAA,IAAA,IAAA;MAAhC,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAkC;AAAA,QAAA,IAAvBC,IAAI,GAAAJ,KAAA,CAAA7C,KAAA,CAAA;AACb,QAAA,IAAI,CAACiD,IAAI,CAACC,EAAE,EAAE;AACZD,UAAAA,IAAI,CAACC,EAAE,GAAArB,EAAAA,CAAAA,MAAA,CAAM,IAAIsB,IAAI,EAAE,CAACC,OAAO,EAAE,CAACC,QAAQ,EAAE,CAAA,CAAAxB,MAAA,CAAGyB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAE,CAAA;AACtF,SAAA;AACF,OAAA;AAAC,KAAA,CAAA,OAAAC,GAAA,EAAA;MAAAd,SAAA,CAAAe,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,KAAA,SAAA;AAAAd,MAAAA,SAAA,CAAAgB,CAAA,EAAA,CAAA;AAAA,KAAA;AACH,GAAC,EAAE,CAACvD,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,IAAMwD,iBAAiB,GAAGC,WAAW,CAAC,UAACC,UAAyB,EAAK;IACnEzD,gBAAgB,CAAC,UAAC0D,SAAS,EAAK;AAC9B,MAAA,IAAIA,SAAS,CAAC1C,MAAM,GAAG,CAAC,EAAE;QACxB,IAAM2C,QAAQ,GAAAnC,EAAAA,CAAAA,MAAA,CAAAoC,kBAAA,CAAOF,SAAS,CAAAE,EAAAA,kBAAA,CAAKH,UAAU,CAAC,CAAA,CAAA;AAC9C,QAAA,OAAOE,QAAQ,CAAA;AACjB,OAAA;AAEA,MAAA,OAAOF,UAAU,CAAA;AACnB,KAAC,CAAC,CAAA;GACH,EAAE,EAAE,CAAC,CAAA;EAEN,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAIJ,UAAyB,EAAEE,QAAuB,EAAc;AACrF,IAAA,IAAIrG,MAAM,IAAImG,UAAU,CAACK,IAAI,CAAC,UAAClB,IAAI,EAAA;AAAA,MAAA,OAAK,CAACmB,cAAc,CAACnB,IAAI,EAAEtF,MAAM,CAAC,CAAA;AAAA,KAAA,CAAC,EAAE;AACtE+C,MAAAA,eAAe,CAAAmB,mEAAAA,CAAAA,MAAA,CAAqElE,MAAM,CAAE,CAAC,CAAA;MAC7FmD,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,IAAIjD,UAAU,KAAK,QAAQ,IAAIiG,UAAU,CAACzC,MAAM,GAAG,CAAC,EAAE;MACpDX,eAAe,CAAC,+BAA+B,CAAC,CAAA;MAChDI,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI9B,QAAQ,IAAIgF,QAAQ,CAAC3C,MAAM,GAAGrC,QAAQ,EAAE;AAC1C0B,MAAAA,eAAe,CAAAmB,6BAAAA,CAAAA,MAAA,CAA+B7C,QAAQ,YAAS,CAAC,CAAA;MAChE8B,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,IAAI7B,OAAO,IAAI6E,UAAU,CAACK,IAAI,CAAC,UAAClB,IAAI,EAAA;AAAA,MAAA,OAAKA,IAAI,CAAC9D,IAAI,GAAGF,OAAO,CAAA;AAAA,KAAA,CAAC,EAAE;MAC7DyB,eAAe,CAAC,qBAAqB,CAAC,CAAA;MACtCI,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACnC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEAA,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAClCJ,eAAe,CAAC,IAAI,CAAC,CAAA;AACrB,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAM2D,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAsB,EAAW;IACvDA,KAAK,CAACC,cAAc,EAAE,CAAA;IACtBrD,WAAW,CAAC,IAAI,CAAC,CAAA;GAClB,CAAA;AAED,EAAA,IAAMsD,eAAe,GAAG,SAAlBA,eAAeA,CAAIF,KAAsB,EAAW;IACxDA,KAAK,CAACC,cAAc,EAAE,CAAA;IACtBrD,WAAW,CAAC,KAAK,CAAC,CAAA;GACnB,CAAA;AAED,EAAA,IAAMuD,UAAU,GAAG,SAAbA,UAAUA,CAAIH,KAAsB,EAAW;IACnDA,KAAK,CAACC,cAAc,EAAE,CAAA;IACtBrD,WAAW,CAAC,KAAK,CAAC,CAAA;IAElB,IAAMwD,YAAY,GAAGC,KAAK,CAACC,IAAI,CAACN,KAAK,CAACO,YAAY,CAACC,KAAK,CAAC,CAAA;AACzD,IAAA,IAAMd,QAAQ,GAAG5D,aAAa,CAACiB,MAAM,GAAG,CAAC,GAAA,EAAA,CAAAQ,MAAA,CAAAoC,kBAAA,CAAO7D,aAAa,CAAKsE,EAAAA,YAAY,IAAIA,YAAY,CAAA;AAE9F,IAAA,IAAMK,mBAAmB,GAAGb,aAAa,CAACQ,YAAY,EAAEV,QAAQ,CAAC,CAAA;IAEjE,IAAI,CAACe,mBAAmB,EAAE;MACxBnB,iBAAiB,CAACc,YAAY,CAAC,CAAA;AAC/BvG,MAAAA,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG;AAAET,QAAAA,IAAI,EAAJA,IAAI;AAAEa,QAAAA,QAAQ,EAAEyF,QAAAA;AAAS,OAAC,CAAC,CAAA;AACxC,KAAA;GACD,CAAA;AAED,EAAA,IAAMgB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIV,KAA0C,EAAW;AAAA,IAAA,IAAAW,mBAAA,CAAA;AAC9E,IAAA,IAAMnB,UAAU,GAAGa,KAAK,CAACC,IAAI,CAAA,CAAAK,mBAAA,GAACX,KAAK,CAACY,MAAM,CAACJ,KAAK,MAAAG,IAAAA,IAAAA,mBAAA,cAAAA,mBAAA,GAAI,EAAE,CAAC,CAAA;AACvD,IAAA,IAAMjB,QAAQ,GAAG5D,aAAa,CAACiB,MAAM,GAAG,CAAC,GAAA,EAAA,CAAAQ,MAAA,CAAAoC,kBAAA,CAAO7D,aAAa,CAAK0D,EAAAA,UAAU,IAAIA,UAAU,CAAA;AAE1F,IAAA,IAAMiB,mBAAmB,GAAGb,aAAa,CAACJ,UAAU,EAAEE,QAAQ,CAAC,CAAA;IAE/D,IAAI,CAACe,mBAAmB,EAAE;MACxBnB,iBAAiB,CAACE,UAAU,CAAC,CAAA;AAC7BhG,MAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAG;AAAEJ,QAAAA,IAAI,EAAJA,IAAI;AAAEa,QAAAA,QAAQ,EAAEyF,QAAAA;AAAS,OAAC,CAAC,CAAA;AAC1C,KAAA;;AAEA;AACAM,IAAAA,KAAK,CAACY,MAAM,CAAClF,KAAK,GAAG,EAAE,CAAA;GACxB,CAAA;EAED,oBACEmF,IAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACNC,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EACRC,aAAa,CAAC;IAAE/H,IAAI,EAAEgI,aAAa,CAACC,UAAU;AAAEnH,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EACzDoH,cAAc,CAACxG,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAyG,QAAA,EAAA,cAE/BV,IAAA,CAACC,OAAO,EAAA;AACNE,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAEhE,qBAAqB,GAAG,KAAK,GAAG,QAAS;AACxDuE,MAAAA,UAAU,EAAEvE,qBAAqB,GAAG,QAAQ,GAAGwE,SAAU;AACzDC,MAAAA,QAAQ,EAAC,UAAU;AACnBR,MAAAA,KAAK,EAAC,MAAM;AAAAK,MAAAA,QAAA,EAEXpH,CAAAA,KAAK,gBACJwH,GAAA,CAACC,SAAS,EAAA;AACR/G,QAAAA,IAAI,EAAEA,IAAK;AACXgH,QAAAA,EAAE,EAAC,MAAM;AACT7H,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvC0H,QAAAA,QAAQ,EAAErH,aAAc;AACxBuE,QAAAA,EAAE,EAAEjB,OAAQ;AACZL,QAAAA,iBAAiB,EAAEA,iBAAkB;AAAAiE,QAAAA,QAAA,EAEpCpH,KAAAA;AAAK,OACG,CAAC,GACV,IAAI,eAERwH,GAAA,CAACG,aAAa,EAAA;QACZC,aAAa,EAAEX,aAAa,CAACY,eAAgB;QAC7CC,UAAU,EAAE,EAAG;AACfC,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAErI,UAAU,GAAG,aAAa,GAAG,SAAS;AAC9CoH,UAAAA,KAAK,EAAE,MAAA;SACP;QAAAK,QAAA,eAEFI,GAAA,CAACb,OAAO,EAAA;AAACE,UAAAA,OAAO,EAAC,MAAM;AAACC,UAAAA,aAAa,EAAC,QAAQ;AAACC,UAAAA,KAAK,EAAC,MAAM;UAAAK,QAAA,eACzDI,GAAA,CAACS,uBAAuB,EAAA;AACtBvH,YAAAA,IAAI,EAAEA,IAAK;AACXf,YAAAA,UAAU,EAAEA,UAAW;AACvB6C,YAAAA,QAAQ,EAAEA,QAAS;AACnBqE,YAAAA,OAAO,EAAC,MAAM;AACdC,YAAAA,aAAa,EAAC,KAAK;AACnBoB,YAAAA,cAAc,EAAC,QAAQ;AACvBb,YAAAA,UAAU,EAAC,QAAQ;AACnBc,YAAAA,YAAY,EAAC,QAAQ;AACrBC,YAAAA,WAAW,EAAC,MAAM;AAClBC,YAAAA,UAAU,EAAEzC,cAAe;AAC3B0C,YAAAA,WAAW,EAAEvC,eAAgB;AAC7BrG,YAAAA,MAAM,EAAEsG,UAAW;YACnBuC,OAAO,EAAE,SAAAA,OAAA,GAAA;cAAA,OAAM9F,WAAW,CAAC,IAAI,CAAC,CAAA;aAAC;AACjC,YAAA,WAAA,EAAU,GAAG;YACbsF,KAAK,EAAAnB,aAAA,CACCjE,EAAAA,EAAAA,iCAAiC,GAAG6F,kBAAkB,GAAG,EAAE,CAC/D;YAAApB,QAAA,eAEFV,IAAA,CAAC+B,GAAG,EAAA;AACF5B,cAAAA,OAAO,EAAC,MAAM;AACdqB,cAAAA,cAAc,EAAC,QAAQ;AACvBb,cAAAA,UAAU,EAAC,QAAQ;AACnBP,cAAAA,aAAa,EAAE;AAAE4B,gBAAAA,IAAI,EAAE,QAAQ;AAAErE,gBAAAA,CAAC,EAAE,KAAA;eAAQ;AAC5CsE,cAAAA,GAAG,EAAEC,QAAQ,CAAC,CAAC,CAAE;AACjBC,cAAAA,OAAO,EAAC,WAAW;cAAAzB,QAAA,EAAA,cAEnBV,IAAA,CAACoC,IAAI,EAAA;AACHC,gBAAAA,KAAK,EACHpJ,UAAU,GACNqJ,qBAAqB,CAACC,IAAI,CAAClF,QAAQ,GACnCiF,qBAAqB,CAACC,IAAI,CAC/B,SAAA,CAAA;gBAAA7B,QAAA,EAAA,CACF,oBACmB,EAAC,GAAG,CAAA;AAAA,eAClB,CAAC,eACPI,GAAA,CAAC0B,aAAa,EAAA;AACZzE,gBAAAA,EAAE,EAAElB,OAAQ;gBACZ4F,WAAW,EAAEC,6BAA6B,EAAG;AAC7CC,gBAAAA,SAAS,EAAE,KAAM;AACjB1J,gBAAAA,UAAU,EAAEA,UAAW;AACvBmI,gBAAAA,UAAU,EAAAlB,aAAA,CAAA;AACR3H,kBAAAA,IAAI,EAAJA,IAAI;AACJqK,kBAAAA,IAAI,EAAE,MAAM;AACZjK,kBAAAA,QAAQ,EAAEkH,iBAAiB;AAC3BgD,kBAAAA,QAAQ,EAAE7G,UAAU;AACpBmB,kBAAAA,QAAQ,EAAEjE,UAAU;AACpBmE,kBAAAA,QAAQ,EAAEpE,UAAU;AACpBT,kBAAAA,MAAM,EAANA,MAAM;kBACNsK,MAAM,EAAE,SAAAA,MAAA,GAAA;oBAAA,OAAM/G,WAAW,CAAC,KAAK,CAAC,CAAA;AAAA,mBAAA;AAAA,iBAAA,EAC7BkB,kBAAkB,CACrB;AACF3E,gBAAAA,GAAG,EAAEgC,SAAAA;AAAU,eAChB,CAAC,eAEFwG,GAAA,CAACiB,GAAG,EAAA;AACF5B,gBAAAA,OAAO,EAAC,MAAM;AACdqB,gBAAAA,cAAc,EAAC,QAAQ;AACvBb,gBAAAA,UAAU,EAAC,QAAQ;AACnBP,gBAAAA,aAAa,EAAE;AAAE4B,kBAAAA,IAAI,EAAE,QAAQ;AAAErE,kBAAAA,CAAC,EAAE,KAAA;iBAAQ;AAC5C8D,gBAAAA,YAAY,EAAC,OAAO;gBAAAf,QAAA,eAEpBI,GAAA,CAACiB,GAAG,EAAA;AACF5B,kBAAAA,OAAO,EAAC,MAAM;AACdC,kBAAAA,aAAa,EAAC,KAAK;AACnBO,kBAAAA,UAAU,EAAC,QAAQ;kBACnBoC,iBAAiB,EACfC,0BAA0B,CAACX,KAAK,CAACpJ,UAAU,GAAG,UAAU,GAAG,SAAS,CACrE;AACDgK,kBAAAA,iBAAiB,EAAED,0BAA0B,CAAC3C,KAAK,CAAS,SAAA,CAAA;kBAAAK,QAAA,eAE5DI,GAAA,CAACsB,IAAI,EAAA;AACHC,oBAAAA,KAAK,EACHpJ,UAAU,GACNqJ,qBAAqB,CAACY,IAAI,CAAC7F,QAAQ,GACnCiF,qBAAqB,CAACY,IAAI,CAC/B,SAAA,CAAA;AAAAxC,oBAAAA,QAAA,EACF,QAAA;mBAEK,CAAA;iBACH,CAAA;AAAC,eACH,CAAC,CAAA;aACH,CAAA;WACkB,CAAA;SAClB,CAAA;AAAC,OACG,CAAC,EACfzE,iCAAiC,iBAChC6E,GAAA,CAACqC,cAAc,EAAA;AACbrF,QAAAA,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAE;AACvBjB,QAAAA,IAAI,EAAEA,IAAK;QACXnB,QAAQ,EAAE,SAAAA,QAAAA,GAAM;AACd,UAAA,IAAMuK,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAC,KAAA,EAAA;AAAA,YAAA,IAAGvF,EAAE,GAAAuF,KAAA,CAAFvF,EAAE,CAAA;AAAA,YAAA,OAAOA,EAAE,KAAK9C,aAAa,CAAC,CAAC,CAAC,CAAC8C,EAAE,CAAA;WAAC,CAAA,CAAA;AAC7E7C,UAAAA,gBAAgB,CAAC,YAAA;AAAA,YAAA,OAAMkI,QAAQ,CAAA;WAAC,CAAA,CAAA;AAChCvK,UAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;YAAEiF,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,WAAC,CAAC,CAAA;SACtC;QACFnC,UAAU,EAAE,SAAAA,UAAAA,GAAM;AAAA,UAAA,IAAAyK,iBAAA,CAAA;AAChB,UAAA,IAAMH,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAG,KAAA,EAAA;AAAA,YAAA,IAAGzF,EAAE,GAAAyF,KAAA,CAAFzF,EAAE,CAAA;AAAA,YAAA,OAAOA,EAAE,KAAK9C,aAAa,CAAC,CAAC,CAAC,CAAC8C,EAAE,CAAA;WAAC,CAAA,CAAA;AAC7E7C,UAAAA,gBAAgB,CAAC,YAAA;AAAA,YAAA,OAAMkI,QAAQ,CAAA;WAAC,CAAA,CAAA;AAChC,UAAA,CAAAG,iBAAA,GAAAnJ,QAAQ,CAACqJ,OAAO,MAAA,IAAA,IAAAF,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkBG,KAAK,EAAE,CAAA;;AAEzB;AACA;AACA,UAAA,IAAI5K,WAAU,EAAE;AACdA,YAAAA,WAAU,CAAC;cAAEgF,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,aAAC,CAAC,CAAA;AACxC,WAAC,MAAM;AACLpC,YAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;cAAEiF,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,aAAC,CAAC,CAAA;AACxC,WAAA;UACAc,WAAW,CAAC,KAAK,CAAC,CAAA;SAClB;QACFhD,SAAS,EAAE,SAAAA,SAAAA,GAAM;AACf,UAAA,IAAMqK,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAM,KAAA,EAAA;AAAA,YAAA,IAAG5F,EAAE,GAAA4F,KAAA,CAAF5F,EAAE,CAAA;AAAA,YAAA,OAAOA,EAAE,KAAK9C,aAAa,CAAC,CAAC,CAAC,CAAC8C,EAAE,CAAA;WAAC,CAAA,CAAA;AAC7E7C,UAAAA,gBAAgB,CAAC,YAAA;AAAA,YAAA,OAAMkI,QAAQ,CAAA;WAAC,CAAA,CAAA;AAChCrK,UAAAA,UAAS,KAATA,IAAAA,IAAAA,UAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAS,CAAG;YAAE+E,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,WAAC,CAAC,CAAA;SACvC;AACFrC,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACtB,CACF,CAAA;AAAA,KACM,CAAC,EACTyD,kBAAkB,iBACjByE,GAAA,CAACb,OAAO,EAAA;AACN2D,MAAAA,UAAU,EAAE1B,QAAQ,CAClB5I,KAAK,IAAI8C,qBAAqB,GAAGyH,2BAA2B,CAAC7J,IAAI,CAAC,GAAG,CACvE,CAAE;MAAA0G,QAAA,eAEFI,GAAA,CAACb,OAAO,EAAA;AAACE,QAAAA,OAAO,EAAC,MAAM;AAACC,QAAAA,aAAa,EAAC,KAAK;AAACoB,QAAAA,cAAc,EAAC,gBAAgB;QAAAd,QAAA,eACzEI,GAAA,CAACgD,QAAQ,EAAA;AACP9J,UAAAA,IAAI,EAAEA,IAAK;UACX4I,IAAI,EAAEmB,WAAW,CAAC;AAChBrK,YAAAA,eAAe,EAAE6C,SAAS,GAAG,OAAO,GAAG7C,eAAe;YACtDsK,WAAW,EAAE1H,OAAO,CAAC3C,QAAQ,CAAA;AAC/B,WAAC,CAAE;AACHA,UAAAA,QAAQ,EAAEA,QAAS;AACnBC,UAAAA,SAAS,EAAE0B,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,YAAY,GAAI1B,SAAU;AACrCmD,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,WAAW,EAAEA,WAAAA;SACd,CAAA;OACM,CAAA;AAAC,KACH,CACV,EACA,CAACf,iCAAiC,IACjChB,aAAa,CAACgJ,GAAG,CAAC,UAACnG,IAAI,EAAEoG,KAAK,EAAA;MAAA,oBAC5BpD,GAAA,CAACb,OAAO,EAAA;AAEN2D,QAAAA,UAAU,EAAE1B,QAAQ,CAClB5I,KAAK,IAAI8C,qBAAqB,GAAGyH,2BAA2B,CAAC7J,IAAI,CAAC,GAAG,CACvE,CAAE;AACFmK,QAAAA,SAAS,EAAED,KAAK,KAAK,CAAC,GAAG,WAAW,GAAG,WAAY;QAAAxD,QAAA,eAEnDI,GAAA,CAACqC,cAAc,EAAA;AACbrF,UAAAA,IAAI,EAAEA,IAAK;AACX9D,UAAAA,IAAI,EAAEA,IAAK;UACXnB,QAAQ,EAAE,SAAAA,QAAAA,GAAM;AACd,YAAA,IAAMuK,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAe,KAAA,EAAA;AAAA,cAAA,IAAGrG,EAAE,GAAAqG,KAAA,CAAFrG,EAAE,CAAA;AAAA,cAAA,OAAOA,EAAE,KAAKD,IAAI,CAACC,EAAE,CAAA;aAAC,CAAA,CAAA;AACjE7C,YAAAA,gBAAgB,CAAC,YAAA;AAAA,cAAA,OAAMkI,QAAQ,CAAA;aAAC,CAAA,CAAA;AAChCvK,YAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;AAAEiF,cAAAA,IAAI,EAAJA,IAAAA;AAAK,aAAC,CAAC,CAAA;WACpB;UACFhF,UAAU,EAAE,SAAAA,UAAAA,GAAM;AAAA,YAAA,IAAAuL,kBAAA,CAAA;AAChB,YAAA,IAAMjB,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAiB,KAAA,EAAA;AAAA,cAAA,IAAGvG,EAAE,GAAAuG,KAAA,CAAFvG,EAAE,CAAA;AAAA,cAAA,OAAOA,EAAE,KAAKD,IAAI,CAACC,EAAE,CAAA;aAAC,CAAA,CAAA;AACjE7C,YAAAA,gBAAgB,CAAC,YAAA;AAAA,cAAA,OAAMkI,QAAQ,CAAA;aAAC,CAAA,CAAA;AAChC,YAAA,CAAAiB,kBAAA,GAAAjK,QAAQ,CAACqJ,OAAO,MAAA,IAAA,IAAAY,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkBX,KAAK,EAAE,CAAA;AACzB;AACA;AACA,YAAA,IAAI5K,WAAU,EAAE;AACdA,cAAAA,WAAU,CAAC;gBAAEgF,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,eAAC,CAAC,CAAA;AACxC,aAAC,MAAM;AACLpC,cAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;gBAAEiF,IAAI,EAAE7C,aAAa,CAAC,CAAC,CAAA;AAAE,eAAC,CAAC,CAAA;AACxC,aAAA;YACAc,WAAW,CAAC,KAAK,CAAC,CAAA;WAClB;UACFhD,SAAS,EAAE,SAAAA,SAAAA,GAAM;AACf,YAAA,IAAMqK,QAAQ,GAAGnI,aAAa,CAACoI,MAAM,CAAC,UAAAkB,KAAA,EAAA;AAAA,cAAA,IAAGxG,EAAE,GAAAwG,KAAA,CAAFxG,EAAE,CAAA;AAAA,cAAA,OAAOA,EAAE,KAAKD,IAAI,CAACC,EAAE,CAAA;aAAC,CAAA,CAAA;AACjE7C,YAAAA,gBAAgB,CAAC,YAAA;AAAA,cAAA,OAAMkI,QAAQ,CAAA;aAAC,CAAA,CAAA;AAChCrK,YAAAA,UAAS,KAATA,IAAAA,IAAAA,UAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAS,CAAG;AAAE+E,cAAAA,IAAI,EAAJA,IAAAA;AAAK,aAAC,CAAC,CAAA;WACrB;AACFlF,UAAAA,SAAS,EAAEA,SAAAA;SACZ,CAAA;OAjCIkF,EAAAA,IAAI,CAACC,EAkCH,CAAC,CAAA;AAAA,KACX,CAAC,CAAA;AAAA,GAAA,CACG,CAAC,CAAA;AAEd,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMyC,IAAAA,UAAU,gBAAGgE,wBAAwB,eAACC,UAAU,CAACrM,WAAW,CAAC,EAAE;AACnEsM,EAAAA,WAAW,EAAE,YAAY;AACzBC,EAAAA,WAAW,EAAE,YAAA;AACf,CAAC;;;;"}
@@ -11,7 +11,7 @@ import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
11
11
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
12
12
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
13
13
 
14
- var _excluded = ["children", "zIndex", "_transitionStyle", "testID"];
14
+ var _excluded = ["children", "zIndex", "_transitionStyle", "minWidth", "maxWidth", "width", "testID"];
15
15
  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; }
16
16
  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; }
17
17
  var UnfocussableOverlay = /*#__PURE__*/styled(BaseBox).withConfig({
@@ -29,17 +29,22 @@ var _MenuOverlay = function _MenuOverlay(_ref, ref) {
29
29
  _ref$zIndex = _ref.zIndex,
30
30
  zIndex = _ref$zIndex === void 0 ? componentZIndices.dropdownOverlay : _ref$zIndex,
31
31
  _transitionStyle = _ref._transitionStyle,
32
+ minWidth = _ref.minWidth,
33
+ maxWidth = _ref.maxWidth,
34
+ width = _ref.width,
32
35
  testID = _ref.testID,
33
36
  props = _objectWithoutProperties(_ref, _excluded);
34
37
  return /*#__PURE__*/jsx(UnfocussableOverlay, _objectSpread(_objectSpread(_objectSpread({
35
38
  ref: ref
36
39
  }, props), {}, {
37
- minWidth: MENU_MIN_WIDTH,
38
40
  zIndex: zIndex
39
41
  }, metaAttribute({
40
42
  name: MetaConstants.Menu,
41
43
  testID: testID
42
44
  })), {}, {
45
+ minWidth: minWidth !== null && minWidth !== void 0 ? minWidth : MENU_MIN_WIDTH,
46
+ width: width,
47
+ maxWidth: maxWidth,
43
48
  children: /*#__PURE__*/jsx(BaseBox, {
44
49
  backgroundColor: "popup.background.subtle",
45
50
  paddingX: overlayPaddingX,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuOverlay.web.js","sources":["../../../../../../src/components/Menu/MenuOverlay.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { MenuOverlayProps } from './types';\nimport { MENU_MIN_WIDTH, overlayPaddingX, overlayPaddingY } from './tokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport type { BladeElementRef } from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\n\nconst UnfocussableOverlay = styled(BaseBox)((_props) => {\n return {\n '&:focus-visible': {\n outline: 'none',\n },\n };\n});\n\nconst _MenuOverlay: React.ForwardRefRenderFunction<BladeElementRef, MenuOverlayProps> = (\n { children, zIndex = componentZIndices.dropdownOverlay, _transitionStyle, testID, ...props },\n ref,\n): React.ReactElement => {\n return (\n <UnfocussableOverlay\n ref={ref as never}\n {...props}\n minWidth={MENU_MIN_WIDTH}\n zIndex={zIndex}\n {...metaAttribute({ name: MetaConstants.Menu, testID })}\n >\n {/* \n Requires another nested div since floatingStyles clash with floatingTransitionStyles \n\n https://floating-ui.com/docs/usetransition#usetransitionstyles\n */}\n <BaseBox\n backgroundColor=\"popup.background.subtle\"\n paddingX={overlayPaddingX}\n paddingY={overlayPaddingY}\n elevation=\"midRaised\"\n borderWidth=\"thin\"\n borderColor=\"surface.border.gray.muted\"\n borderRadius=\"medium\"\n style={_transitionStyle}\n >\n {children}\n </BaseBox>\n </UnfocussableOverlay>\n );\n};\n\nconst MenuOverlay = React.forwardRef(_MenuOverlay);\n\nexport { MenuOverlay };\n"],"names":["UnfocussableOverlay","styled","BaseBox","withConfig","displayName","componentId","_props","outline","_MenuOverlay","_ref","ref","children","_ref$zIndex","zIndex","componentZIndices","dropdownOverlay","_transitionStyle","testID","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","minWidth","MENU_MIN_WIDTH","metaAttribute","name","MetaConstants","Menu","backgroundColor","paddingX","overlayPaddingX","paddingY","overlayPaddingY","elevation","borderWidth","borderColor","borderRadius","style","MenuOverlay","React","forwardRef"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAMA,mBAAmB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,qCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAC,CAAA,CAAA,UAACC,MAAM,EAAK;EACtD,OAAO;AACL,IAAA,iBAAiB,EAAE;AACjBC,MAAAA,OAAO,EAAE,MAAA;AACX,KAAA;GACD,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,YAA+E,GAAG,SAAlFA,YAA+EA,CAAAC,IAAA,EAEnFC,GAAG,EACoB;AAAA,EAAA,IAFrBC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,WAAA,GAAAH,IAAA,CAAEI,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,eAAe,GAAAH,WAAA;IAAEI,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;IAAEC,MAAM,GAAAR,IAAA,CAANQ,MAAM;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA,CAAA,CAAA;EAG1F,oBACEC,GAAA,CAACrB,mBAAmB,EAAAsB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AAClBZ,IAAAA,GAAG,EAAEA,GAAAA;AAAa,GAAA,EACdQ,KAAK,CAAA,EAAA,EAAA,EAAA;AACTK,IAAAA,QAAQ,EAAEC,cAAe;AACzBX,IAAAA,MAAM,EAAEA,MAAAA;AAAO,GAAA,EACXY,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,IAAI;AAAEX,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAN,QAAA,eAOvDU,GAAA,CAACnB,OAAO,EAAA;AACN2B,MAAAA,eAAe,EAAC,yBAAyB;AACzCC,MAAAA,QAAQ,EAAEC,eAAgB;AAC1BC,MAAAA,QAAQ,EAAEC,eAAgB;AAC1BC,MAAAA,SAAS,EAAC,WAAW;AACrBC,MAAAA,WAAW,EAAC,MAAM;AAClBC,MAAAA,WAAW,EAAC,2BAA2B;AACvCC,MAAAA,YAAY,EAAC,QAAQ;AACrBC,MAAAA,KAAK,EAAEtB,gBAAiB;AAAAL,MAAAA,QAAA,EAEvBA,QAAAA;KACM,CAAA;AAAC,GAAA,CACS,CAAC,CAAA;AAE1B,CAAC,CAAA;AAED,IAAM4B,WAAW,gBAAGC,cAAK,CAACC,UAAU,CAACjC,YAAY;;;;"}
1
+ {"version":3,"file":"MenuOverlay.web.js","sources":["../../../../../../src/components/Menu/MenuOverlay.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { MenuOverlayProps } from './types';\nimport { MENU_MIN_WIDTH, overlayPaddingX, overlayPaddingY } from './tokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport type { BladeElementRef } from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\n\nconst UnfocussableOverlay = styled(BaseBox)((_props) => {\n return {\n '&:focus-visible': {\n outline: 'none',\n },\n };\n});\n\nconst _MenuOverlay: React.ForwardRefRenderFunction<BladeElementRef, MenuOverlayProps> = (\n {\n children,\n zIndex = componentZIndices.dropdownOverlay,\n _transitionStyle,\n minWidth,\n maxWidth,\n width,\n testID,\n ...props\n },\n ref,\n): React.ReactElement => {\n return (\n <UnfocussableOverlay\n ref={ref as never}\n {...props}\n zIndex={zIndex}\n {...metaAttribute({ name: MetaConstants.Menu, testID })}\n minWidth={minWidth ?? MENU_MIN_WIDTH}\n width={width}\n maxWidth={maxWidth}\n >\n {/* \n Requires another nested div since floatingStyles clash with floatingTransitionStyles \n\n https://floating-ui.com/docs/usetransition#usetransitionstyles\n */}\n <BaseBox\n backgroundColor=\"popup.background.subtle\"\n paddingX={overlayPaddingX}\n paddingY={overlayPaddingY}\n elevation=\"midRaised\"\n borderWidth=\"thin\"\n borderColor=\"surface.border.gray.muted\"\n borderRadius=\"medium\"\n style={_transitionStyle}\n >\n {children}\n </BaseBox>\n </UnfocussableOverlay>\n );\n};\n\nconst MenuOverlay = React.forwardRef(_MenuOverlay);\n\nexport { MenuOverlay };\n"],"names":["UnfocussableOverlay","styled","BaseBox","withConfig","displayName","componentId","_props","outline","_MenuOverlay","_ref","ref","children","_ref$zIndex","zIndex","componentZIndices","dropdownOverlay","_transitionStyle","minWidth","maxWidth","width","testID","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","metaAttribute","name","MetaConstants","Menu","MENU_MIN_WIDTH","backgroundColor","paddingX","overlayPaddingX","paddingY","overlayPaddingY","elevation","borderWidth","borderColor","borderRadius","style","MenuOverlay","React","forwardRef"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAMA,mBAAmB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,qCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAC,CAAA,CAAA,UAACC,MAAM,EAAK;EACtD,OAAO;AACL,IAAA,iBAAiB,EAAE;AACjBC,MAAAA,OAAO,EAAE,MAAA;AACX,KAAA;GACD,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,YAA+E,GAAG,SAAlFA,YAA+EA,CAAAC,IAAA,EAWnFC,GAAG,EACoB;AAAA,EAAA,IAVrBC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,WAAA,GAAAH,IAAA,CACRI,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,eAAe,GAAAH,WAAA;IAC1CI,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;IAChBC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IACRC,QAAQ,GAAAT,IAAA,CAARS,QAAQ;IACRC,KAAK,GAAAV,IAAA,CAALU,KAAK;IACLC,MAAM,GAAAX,IAAA,CAANW,MAAM;AACHC,IAAAA,KAAK,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA,CAAA,CAAA;EAIV,oBACEC,GAAA,CAACxB,mBAAmB,EAAAyB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AAClBf,IAAAA,GAAG,EAAEA,GAAAA;AAAa,GAAA,EACdW,KAAK,CAAA,EAAA,EAAA,EAAA;AACTR,IAAAA,MAAM,EAAEA,MAAAA;AAAO,GAAA,EACXa,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,IAAI;AAAET,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACvDH,IAAAA,QAAQ,EAAEA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,QAAQ,GAAIa,cAAe;AACrCX,IAAAA,KAAK,EAAEA,KAAM;AACbD,IAAAA,QAAQ,EAAEA,QAAS;IAAAP,QAAA,eAOnBa,GAAA,CAACtB,OAAO,EAAA;AACN6B,MAAAA,eAAe,EAAC,yBAAyB;AACzCC,MAAAA,QAAQ,EAAEC,eAAgB;AAC1BC,MAAAA,QAAQ,EAAEC,eAAgB;AAC1BC,MAAAA,SAAS,EAAC,WAAW;AACrBC,MAAAA,WAAW,EAAC,MAAM;AAClBC,MAAAA,WAAW,EAAC,2BAA2B;AACvCC,MAAAA,YAAY,EAAC,QAAQ;AACrBC,MAAAA,KAAK,EAAExB,gBAAiB;AAAAL,MAAAA,QAAA,EAEvBA,QAAAA;KACM,CAAA;AAAC,GAAA,CACS,CAAC,CAAA;AAE1B,CAAC,CAAA;AAED,IAAM8B,WAAW,gBAAGC,cAAK,CAACC,UAAU,CAACnC,YAAY;;;;"}
@@ -93,7 +93,8 @@ var ProgressBar = function ProgressBar(_ref) {
93
93
  var isMeter = progressType === 'meter';
94
94
  var isCircular = progressVariant === 'circular';
95
95
  var progressValue = clamp(value, min, max);
96
- var percentageProgressValue = Math.floor((progressValue - min) * 100 / (max - min));
96
+ var percentageValue = (progressValue - min) * 100 / (max - min);
97
+ var percentageProgressValue = isMeter ? parseFloat(percentageValue.toFixed(1)) : Math.floor(percentageValue);
97
98
  var shouldShowPercentage = showPercentage && !isMeter && !isIndeterminate;
98
99
  var accessibilityProps = {
99
100
  role: 'progressbar',