@razorpay/blade 12.96.4 → 12.96.6

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 (32) hide show
  1. package/assets/spark/spark-base-video.mp4 +0 -0
  2. package/build/lib/native/components/Amount/Amount.js +1 -1
  3. package/build/lib/native/components/Amount/Amount.js.map +1 -1
  4. package/build/lib/native/components/Spark/RzpGlass/utils.js +1 -1
  5. package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -1
  6. package/build/lib/web/development/_virtual/flatten.js +1 -1
  7. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  8. package/build/lib/web/development/components/Amount/Amount.js +8 -1
  9. package/build/lib/web/development/components/Amount/Amount.js.map +1 -1
  10. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +1 -1
  11. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
  12. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  13. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  14. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  15. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  16. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  17. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  18. package/build/lib/web/production/_virtual/flatten.js +1 -1
  19. package/build/lib/web/production/_virtual/flatten3.js +1 -1
  20. package/build/lib/web/production/components/Amount/Amount.js +8 -1
  21. package/build/lib/web/production/components/Amount/Amount.js.map +1 -1
  22. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +1 -1
  23. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
  24. package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  25. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  26. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  27. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  28. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  29. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  30. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  31. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  32. package/package.json +1 -1
Binary file
@@ -29,7 +29,7 @@ import 'react-native-gesture-handler';
29
29
  import '../BottomSheet/BottomSheetStack.js';
30
30
  import { jsx, jsxs } from 'react/jsx-runtime';
31
31
 
32
- var _excluded=["value","suffix","type","size","weight","isAffixSubtle","isStrikethrough","color","currencyIndicator","currency","fractionDigits","testID"];var stripTrailingZerosFromParts=function stripTrailingZerosFromParts(parts){var decimalPart=parts.rawParts.filter(function(_ref){var type=_ref.type;return type==='fraction';}).map(function(_ref2){var value=_ref2.value;return value;}).join('');var hasFraction=parts.rawParts.some(function(_ref3){var type=_ref3.type;return type==='fraction';});if(hasFraction&&/^0+$/.test(decimalPart)){delete parts.decimal;delete parts.fraction;parts.rawParts=parts.rawParts.filter(function(_ref4){var type=_ref4.type;return type!=='decimal'&&type!=='fraction';});}return parts;};var pollyfilledFormatNumberByParts=function pollyfilledFormatNumberByParts(value,options){var _options$intlOptions;var parts=formatNumberByParts(value,options);if((options==null?void 0:(_options$intlOptions=options.intlOptions)==null?void 0:_options$intlOptions.trailingZeroDisplay)==='stripIfInteger'){return stripTrailingZerosFromParts(parts);}return parts;};var getTextColorProps=function getTextColorProps(_ref5){var color=_ref5.color;var props={amountValueColor:'surface.text.gray.normal'};if(!color)return props;props.amountValueColor=color;return props;};var AmountValue=function AmountValue(_ref6){var amount=_ref6.amount,_ref6$size=_ref6.size,size=_ref6$size===void 0?'medium':_ref6$size,_ref6$type=_ref6.type,type=_ref6$type===void 0?'body':_ref6$type,_ref6$weight=_ref6.weight,weight=_ref6$weight===void 0?'regular':_ref6$weight,amountValueColor=_ref6.amountValueColor,isAffixSubtle=_ref6.isAffixSubtle,suffix=_ref6.suffix;var isReactNative=getPlatformType()==='react-native';var affixFontSize=isAffixSubtle?subtleFontSizes[type][size]:normalAmountSizes[type][size];var numberFontFamily=type==='body'?'text':'heading';if(suffix==='decimals'&&isAffixSubtle){var AmountWrapper=isReactNative?Text:React__default.Fragment;return jsxs(AmountWrapper,{children:[jsx(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,lineHeight:amountLineHeights[type][size],color:amountValueColor,fontFamily:numberFontFamily,as:isReactNative?undefined:'span',children:amount.integer}),jsxs(BaseText,{fontWeight:weight,fontSize:affixFontSize,fontFamily:numberFontFamily,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,children:[amount.decimal,amount.fraction]})]});}return jsxs(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,fontFamily:numberFontFamily,color:amountValueColor,lineHeight:amountLineHeights[type][size],children:[amount.integer,amount.decimal,amount.fraction,amount.compact]});};var getAmountByParts=function getAmountByParts(_ref7){var suffix=_ref7.suffix,value=_ref7.value,currency=_ref7.currency,_ref7$fractionDigits=_ref7.fractionDigits,fractionDigits=_ref7$fractionDigits===void 0?2:_ref7$fractionDigits;try{switch(suffix){case'decimals':{var options={intlOptions:{maximumFractionDigits:fractionDigits,minimumFractionDigits:fractionDigits},currency:currency};return pollyfilledFormatNumberByParts(value,options);}case'humanize':{var _options={intlOptions:{notation:'compact',maximumFractionDigits:2,trailingZeroDisplay:'stripIfInteger'},currency:currency};return pollyfilledFormatNumberByParts(value,_options);}default:{var _options2={intlOptions:{maximumFractionDigits:0,roundingMode:'floor'},currency:currency};return pollyfilledFormatNumberByParts(value,_options2);}}}catch(err){return {integer:`${value}`,currency:currency};}};var _Amount=function _Amount(_ref8,ref){var _renderedValue$isPref,_renderedValue$curren;var value=_ref8.value,_ref8$suffix=_ref8.suffix,suffix=_ref8$suffix===void 0?'decimals':_ref8$suffix,_ref8$type=_ref8.type,type=_ref8$type===void 0?'body':_ref8$type,_ref8$size=_ref8.size,size=_ref8$size===void 0?'medium':_ref8$size,_ref8$weight=_ref8.weight,weight=_ref8$weight===void 0?'regular':_ref8$weight,_ref8$isAffixSubtle=_ref8.isAffixSubtle,isAffixSubtle=_ref8$isAffixSubtle===void 0?true:_ref8$isAffixSubtle,_ref8$isStrikethrough=_ref8.isStrikethrough,isStrikethrough=_ref8$isStrikethrough===void 0?false:_ref8$isStrikethrough,color=_ref8.color,_ref8$currencyIndicat=_ref8.currencyIndicator,currencyIndicator=_ref8$currencyIndicat===void 0?'currency-symbol':_ref8$currencyIndicat,_ref8$currency=_ref8.currency,currency=_ref8$currency===void 0?'INR':_ref8$currency,_ref8$fractionDigits=_ref8.fractionDigits,fractionDigits=_ref8$fractionDigits===void 0?2:_ref8$fractionDigits,testID=_ref8.testID,rest=_objectWithoutProperties(_ref8,_excluded);if(__DEV__){if(typeof value!=='number'){throwBladeError({message:'`value` prop must be of type `number` for Amount.',moduleName:'Amount'});}if(color==='neutral'){throwBladeError({message:'`neutral` color is not supported.',moduleName:'Amount'});}var bodySizes=objectKeysWithType(normalAmountSizes.body);if((type==='body'||!type)&&!bodySizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="body"`,moduleName:'Amount'});}var displaySizes=objectKeysWithType(normalAmountSizes.display);if(type==='display'&&!displaySizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="display"`,moduleName:'Amount'});}var headingSizes=objectKeysWithType(normalAmountSizes.heading);if(type==='heading'&&!headingSizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="heading"`,moduleName:'Amount'});}}var _getTextColorProps=getTextColorProps({color:color}),amountValueColor=_getTextColorProps.amountValueColor;var _useTheme=useTheme(),theme=_useTheme.theme;var _useBreakpoint=useBreakpoint({breakpoints:theme.breakpoints}),matchedDeviceType=_useBreakpoint.matchedDeviceType;var isDesktop=matchedDeviceType==='desktop';var renderedValue=getAmountByParts({suffix:suffix,value:value,currency:currency,fractionDigits:fractionDigits});var isPrefixSymbol=(_renderedValue$isPref=renderedValue.isPrefixSymbol)!=null?_renderedValue$isPref:true;var currencySymbol=(_renderedValue$curren=renderedValue.currency)!=null?_renderedValue$curren:currency;var currencyPosition=isPrefixSymbol?'left':'right';var currencySymbolOrCode=currencyIndicator==='currency-symbol'?currencySymbol:currency;var getCurrencyFontProps=function getCurrencyFontProps(){if(isAffixSubtle){return {fontSize:subtleFontSizes[type][size],style:undefined};}var hardcodedSize=currencyHardcodedSizes[type][size];return {fontSize:normalAmountSizes[type][size],style:hardcodedSize?{fontSize:`${hardcodedSize[isDesktop?'desktop':'mobile']}px`}:undefined};};var currencyFontProps=getCurrencyFontProps();var isReactNative=getPlatformType()==='react-native';return jsx(BaseBox,Object.assign({ref:ref,display:isReactNative?'flex':'inline-flex',flexDirection:"row"},metaAttribute({name:MetaConstants.Amount,testID:testID}),getStyledProps(rest),makeAnalyticsAttribute(rest),{children:jsxs(BaseBox,{display:isReactNative?'flex':'inline-flex',alignItems:"baseline",flexDirection:"row",position:"relative",children:[renderedValue.minusSign?jsx(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,lineHeight:amountLineHeights[type][size],color:amountValueColor,as:isReactNative?undefined:'span',marginX:"spacing.2",children:renderedValue.minusSign}):null,currencyPosition==='left'&&jsx(BaseText,{marginRight:"spacing.1",fontWeight:weight,fontSize:currencyFontProps.fontSize,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,style:currencyFontProps.style,children:currencySymbolOrCode}),jsx(AmountValue,{amount:renderedValue,amountValueColor:amountValueColor,type:type,weight:weight,size:size,isAffixSubtle:isAffixSubtle,suffix:suffix,currency:currency}),currencyPosition==='right'&&jsx(BaseText,{marginLeft:"spacing.1",fontWeight:weight,fontSize:currencyFontProps.fontSize,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,style:currencyFontProps.style,children:currencySymbolOrCode}),isStrikethrough&&jsx(BaseBox,{borderBottomColor:amountValueColor,borderBottomWidth:type==='body'?'thin':'thicker',borderBottomStyle:"solid",position:"absolute",width:"100%",top:"50%"})]})}));};var Amount=assignWithoutSideEffects(React__default.forwardRef(_Amount),{displayName:'Amount',componentId:'Amount'});
32
+ var _excluded=["value","suffix","type","size","weight","isAffixSubtle","isStrikethrough","color","currencyIndicator","currency","fractionDigits","testID"];var stripTrailingZerosFromParts=function stripTrailingZerosFromParts(parts){var decimalPart=parts.rawParts.filter(function(_ref){var type=_ref.type;return type==='fraction';}).map(function(_ref2){var value=_ref2.value;return value;}).join('');var hasFraction=parts.rawParts.some(function(_ref3){var type=_ref3.type;return type==='fraction';});if(hasFraction&&/^0+$/.test(decimalPart)){delete parts.decimal;delete parts.fraction;parts.rawParts=parts.rawParts.filter(function(_ref4){var type=_ref4.type;return type!=='decimal'&&type!=='fraction';});}return parts;};var pollyfilledFormatNumberByParts=function pollyfilledFormatNumberByParts(value,options){var _options$intlOptions;var parts=formatNumberByParts(value,options);if((options==null?void 0:(_options$intlOptions=options.intlOptions)==null?void 0:_options$intlOptions.trailingZeroDisplay)==='stripIfInteger'){return stripTrailingZerosFromParts(parts);}return parts;};var getTextColorProps=function getTextColorProps(_ref5){var color=_ref5.color;var props={amountValueColor:'surface.text.gray.normal'};if(!color)return props;props.amountValueColor=color;return props;};var AmountValue=function AmountValue(_ref6){var amount=_ref6.amount,_ref6$size=_ref6.size,size=_ref6$size===void 0?'medium':_ref6$size,_ref6$type=_ref6.type,type=_ref6$type===void 0?'body':_ref6$type,_ref6$weight=_ref6.weight,weight=_ref6$weight===void 0?'regular':_ref6$weight,amountValueColor=_ref6.amountValueColor,isAffixSubtle=_ref6.isAffixSubtle,suffix=_ref6.suffix;var isReactNative=getPlatformType()==='react-native';var affixFontSize=isAffixSubtle?subtleFontSizes[type][size]:normalAmountSizes[type][size];var numberFontFamily=type==='body'?'text':'heading';if(suffix==='decimals'&&isAffixSubtle){var AmountWrapper=isReactNative?Text:React__default.Fragment;return jsxs(AmountWrapper,{children:[jsx(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,lineHeight:amountLineHeights[type][size],color:amountValueColor,fontFamily:numberFontFamily,as:isReactNative?undefined:'span',children:amount.integer}),jsxs(BaseText,{fontWeight:weight,fontSize:affixFontSize,fontFamily:numberFontFamily,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,children:[amount.decimal,amount.fraction]})]});}return jsxs(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,fontFamily:numberFontFamily,color:amountValueColor,lineHeight:amountLineHeights[type][size],children:[amount.integer,amount.decimal,amount.fraction,amount.compact]});};var getAmountByParts=function getAmountByParts(_ref7){var suffix=_ref7.suffix,value=_ref7.value,currency=_ref7.currency,_ref7$fractionDigits=_ref7.fractionDigits,fractionDigits=_ref7$fractionDigits===void 0?2:_ref7$fractionDigits;try{switch(suffix){case'decimals':{var options={intlOptions:{maximumFractionDigits:fractionDigits,minimumFractionDigits:fractionDigits},currency:currency};return pollyfilledFormatNumberByParts(value,options);}case'humanize':{var _options={intlOptions:{notation:'compact',maximumFractionDigits:2,trailingZeroDisplay:'stripIfInteger'},currency:currency};return pollyfilledFormatNumberByParts(value,_options);}default:{var _options2={intlOptions:{maximumFractionDigits:0,roundingMode:'floor'},currency:currency};return pollyfilledFormatNumberByParts(value,_options2);}}}catch(err){return {integer:`${value}`,currency:currency};}};var _Amount=function _Amount(_ref8,ref){var _renderedValue$isPref,_renderedValue$curren;var value=_ref8.value,_ref8$suffix=_ref8.suffix,suffix=_ref8$suffix===void 0?'decimals':_ref8$suffix,_ref8$type=_ref8.type,type=_ref8$type===void 0?'body':_ref8$type,_ref8$size=_ref8.size,size=_ref8$size===void 0?'medium':_ref8$size,_ref8$weight=_ref8.weight,weight=_ref8$weight===void 0?'regular':_ref8$weight,_ref8$isAffixSubtle=_ref8.isAffixSubtle,isAffixSubtle=_ref8$isAffixSubtle===void 0?true:_ref8$isAffixSubtle,_ref8$isStrikethrough=_ref8.isStrikethrough,isStrikethrough=_ref8$isStrikethrough===void 0?false:_ref8$isStrikethrough,color=_ref8.color,_ref8$currencyIndicat=_ref8.currencyIndicator,currencyIndicator=_ref8$currencyIndicat===void 0?'currency-symbol':_ref8$currencyIndicat,_ref8$currency=_ref8.currency,currency=_ref8$currency===void 0?'INR':_ref8$currency,_ref8$fractionDigits=_ref8.fractionDigits,fractionDigits=_ref8$fractionDigits===void 0?2:_ref8$fractionDigits,testID=_ref8.testID,rest=_objectWithoutProperties(_ref8,_excluded);if(__DEV__){if(typeof value!=='number'){throwBladeError({message:'`value` prop must be of type `number` for Amount.',moduleName:'Amount'});}if(color==='neutral'){throwBladeError({message:'`neutral` color is not supported.',moduleName:'Amount'});}var bodySizes=objectKeysWithType(normalAmountSizes.body);if((type==='body'||!type)&&!bodySizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="body"`,moduleName:'Amount'});}var displaySizes=objectKeysWithType(normalAmountSizes.display);if(type==='display'&&!displaySizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="display"`,moduleName:'Amount'});}var headingSizes=objectKeysWithType(normalAmountSizes.heading);if(type==='heading'&&!headingSizes.includes(size)){throwBladeError({message:`size="${size}" is not allowed with type="heading"`,moduleName:'Amount'});}}var _getTextColorProps=getTextColorProps({color:color}),amountValueColor=_getTextColorProps.amountValueColor;var _useTheme=useTheme(),theme=_useTheme.theme;var _useBreakpoint=useBreakpoint({breakpoints:theme.breakpoints}),matchedDeviceType=_useBreakpoint.matchedDeviceType;var isDesktop=matchedDeviceType==='desktop';var renderedValue=getAmountByParts({suffix:suffix,value:value,currency:currency,fractionDigits:fractionDigits});var isPrefixSymbol=(_renderedValue$isPref=renderedValue.isPrefixSymbol)!=null?_renderedValue$isPref:true;var currencySymbol=(_renderedValue$curren=renderedValue.currency)!=null?_renderedValue$curren:currency;var currencyPosition=isPrefixSymbol?'left':'right';var currencySymbolOrCode=currencyIndicator==='currency-symbol'?currencySymbol:currency;var getCurrencyFontProps=function getCurrencyFontProps(){if(isAffixSubtle){return {fontSize:subtleFontSizes[type][size],style:undefined};}if(type==='body'){return {fontSize:normalAmountSizes[type][size],style:undefined};}var hardcodedSize=currencyHardcodedSizes[type][size];return {fontSize:normalAmountSizes[type][size],style:hardcodedSize?{fontSize:`${hardcodedSize[isDesktop?'desktop':'mobile']}px`}:undefined};};var currencyFontProps=getCurrencyFontProps();var isReactNative=getPlatformType()==='react-native';return jsx(BaseBox,Object.assign({ref:ref,display:isReactNative?'flex':'inline-flex',flexDirection:"row"},metaAttribute({name:MetaConstants.Amount,testID:testID}),getStyledProps(rest),makeAnalyticsAttribute(rest),{children:jsxs(BaseBox,{display:isReactNative?'flex':'inline-flex',alignItems:"baseline",flexDirection:"row",position:"relative",children:[renderedValue.minusSign?jsx(BaseText,{fontSize:normalAmountSizes[type][size],fontWeight:weight,lineHeight:amountLineHeights[type][size],color:amountValueColor,as:isReactNative?undefined:'span',marginX:"spacing.2",children:renderedValue.minusSign}):null,currencyPosition==='left'&&jsx(BaseText,{marginRight:"spacing.1",fontWeight:weight,fontSize:currencyFontProps.fontSize,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,style:currencyFontProps.style,children:currencySymbolOrCode}),jsx(AmountValue,{amount:renderedValue,amountValueColor:amountValueColor,type:type,weight:weight,size:size,isAffixSubtle:isAffixSubtle,suffix:suffix,currency:currency}),currencyPosition==='right'&&jsx(BaseText,{marginLeft:"spacing.1",fontWeight:weight,fontSize:currencyFontProps.fontSize,color:amountValueColor,as:isReactNative?undefined:'span',opacity:isAffixSubtle?opacity[800]:1,style:currencyFontProps.style,children:currencySymbolOrCode}),isStrikethrough&&jsx(BaseBox,{borderBottomColor:amountValueColor,borderBottomWidth:type==='body'?'thin':'thicker',borderBottomStyle:"solid",position:"absolute",width:"100%",top:"50%"})]})}));};var Amount=assignWithoutSideEffects(React__default.forwardRef(_Amount),{displayName:'Amount',componentId:'Amount'});
33
33
 
34
34
  export { Amount, getAmountByParts };
35
35
  //# sourceMappingURL=Amount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Amount.js","sources":["../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle, otherwise hardcoded values\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","__DEV__","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","Object","assign","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Amount.js","sources":["../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle.\n // For non-subtle, body uses corresponding body token sizes while heading/display use hardcoded sizes.\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n if (type === 'body') {\n return {\n fontSize: normalAmountSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","__DEV__","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","Object","assign","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -3,7 +3,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
4
  import { getPresets } from './presets.js';
5
5
 
6
- var _excluded=["width","height","className","style","onLoad","onError","preset","assetsPath","gradientMapSrc","gradientMap2Src","gradientMapCanvas","imageSrc"];var DEFAULT_CDN_PATH='https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';var getDefaultAssets=function getDefaultAssets(assetsPath){return {videoSrc:`${assetsPath}/spark-base-video.mp4`,imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,centerGradientMapSrc:`${assetsPath}/colorama-center-gradient-map.jpg`};};function extractConfig(props){props.width;props.height;props.className;props.style;props.onLoad;props.onError;props.preset;props.assetsPath;props.gradientMapSrc;props.gradientMap2Src;props.gradientMapCanvas;props.imageSrc;var config=_objectWithoutProperties(props,_excluded);return Object.fromEntries(Object.entries(config).filter(function(_ref){var _ref2=_slicedToArray(_ref,2),v=_ref2[1];return v!==undefined;}));}var ASSET_KEYS=new Set(['videoSrc','imageSrc','gradientMapSrc','gradientMap2Src','centerGradientMapSrc']);function getPresetDefinition(preset,assetsPath){var presets=getPresets(assetsPath);if(preset&&preset in presets)return Object.assign({},presets[preset]);return {};}function getPresetConfig(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref3){var _ref4=_slicedToArray(_ref3,1),k=_ref4[0];return !ASSET_KEYS.has(k);}));}function getPresetAssets(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref5){var _ref6=_slicedToArray(_ref5,1),k=_ref6[0];return ASSET_KEYS.has(k);}));}function resolveConfig(props,assetsPath){return Object.assign({},getPresetConfig(props.preset,assetsPath),extractConfig(props));}function loadImage(src){return new Promise(function(resolve,reject){var img=new Image();img.crossOrigin='anonymous';img.onload=function(){return resolve(img);};img.onerror=function(){return reject(new Error(`Failed to load image: ${src}`));};img.src=src;});}function loadVideo(src){return new Promise(function(resolve,reject){var video=document.createElement('video');video.src=src;video.crossOrigin='anonymous';video.loop=true;video.muted=true;video.playsInline=true;video.preload='auto';video.oncanplaythrough=function(){return resolve(video);};video.onerror=function(){return reject(new Error(`Failed to load video: ${src}`));};video.load();});}function isSafari(){var ua=navigator.userAgent.toLowerCase();return ua.includes('safari')&&!ua.includes('chrome')&&!ua.includes('android');}function bestGuessBrowserZoom(){var _visualViewport$scale,_visualViewport,_visualViewport$width,_visualViewport2;var viewportScale=(_visualViewport$scale=(_visualViewport=visualViewport)==null?void 0:_visualViewport.scale)!=null?_visualViewport$scale:1;var viewportWidth=(_visualViewport$width=(_visualViewport2=visualViewport)==null?void 0:_visualViewport2.width)!=null?_visualViewport$width:window.innerWidth;var scrollbarWidth=window.innerWidth-document.documentElement.clientWidth;var innerWidth=viewportScale*viewportWidth+scrollbarWidth;var ratio=outerWidth/innerWidth;var zoomPercentageRounded=Math.round(100*ratio);if(zoomPercentageRounded%5===0){return zoomPercentageRounded/100;}if(zoomPercentageRounded===33)return 1/3;if(zoomPercentageRounded===67)return 2/3;if(zoomPercentageRounded===133)return 4/3;return ratio;}function preloadRazorSenseAssets(){return _preloadRazorSenseAssets.apply(this,arguments);}function _preloadRazorSenseAssets(){_preloadRazorSenseAssets=_asyncToGenerator(function*(){var _presetDef$videoSrc,_presetDef$gradientMa,_presetDef$gradientMa2,_presetDef$centerGrad;var preset=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'default';var assetsPath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_CDN_PATH;var presets=getPresets(assetsPath);var presetDef=presets[preset]||{};var defaultAssets=getDefaultAssets(assetsPath);var videoSrc=(_presetDef$videoSrc=presetDef.videoSrc)!=null?_presetDef$videoSrc:defaultAssets.videoSrc;var imageSrc=presetDef.imageSrc;var gradientMapSrc=(_presetDef$gradientMa=presetDef.gradientMapSrc)!=null?_presetDef$gradientMa:defaultAssets.gradientMapSrc;var gradientMap2Src=(_presetDef$gradientMa2=presetDef.gradientMap2Src)!=null?_presetDef$gradientMa2:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetDef$centerGrad=presetDef.centerGradientMapSrc)!=null?_presetDef$centerGrad:defaultAssets.centerGradientMapSrc;var loadPromises=[];if(imageSrc){loadPromises.push(loadImage(imageSrc));}else if(videoSrc){loadPromises.push(loadVideo(videoSrc));}loadPromises.push(loadImage(gradientMapSrc),loadImage(gradientMap2Src),loadImage(centerGradientMapSrc));yield Promise.all(loadPromises);});return _preloadRazorSenseAssets.apply(this,arguments);}
6
+ var _excluded=["width","height","className","style","onLoad","onError","preset","assetsPath","gradientMapSrc","gradientMap2Src","gradientMapCanvas","imageSrc"];var DEFAULT_CDN_PATH='https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';var getDefaultAssets=function getDefaultAssets(assetsPath){return {videoSrc:`${assetsPath}/spark-base-video.mp4`,imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,centerGradientMapSrc:`${assetsPath}/colorama-center-gradient-map.jpg`};};function extractConfig(props){props.width;props.height;props.className;props.style;props.onLoad;props.onError;props.preset;props.assetsPath;props.gradientMapSrc;props.gradientMap2Src;props.gradientMapCanvas;props.imageSrc;var config=_objectWithoutProperties(props,_excluded);return Object.fromEntries(Object.entries(config).filter(function(_ref){var _ref2=_slicedToArray(_ref,2),v=_ref2[1];return v!==undefined;}));}var ASSET_KEYS=new Set(['videoSrc','imageSrc','gradientMapSrc','gradientMap2Src','centerGradientMapSrc']);function getPresetDefinition(preset,assetsPath){var presets=getPresets(assetsPath);if(preset&&preset in presets)return Object.assign({},presets[preset]);return {};}function getPresetConfig(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref3){var _ref4=_slicedToArray(_ref3,1),k=_ref4[0];return !ASSET_KEYS.has(k);}));}function getPresetAssets(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref5){var _ref6=_slicedToArray(_ref5,1),k=_ref6[0];return ASSET_KEYS.has(k);}));}function resolveConfig(props,assetsPath){return Object.assign({},getPresetConfig(props.preset,assetsPath),extractConfig(props));}function loadImage(src){return new Promise(function(resolve,reject){var img=new Image();img.crossOrigin='anonymous';img.onload=function(){return resolve(img);};img.onerror=function(){return reject(new Error(`Failed to load image: ${src}`));};img.src=src;});}function loadVideo(src){return new Promise(function(resolve,reject){var video=document.createElement('video');video.src=src;video.crossOrigin='anonymous';video.loop=true;video.muted=true;video.playsInline=true;video.preload='auto';video.oncanplaythrough=function(){return resolve(video);};video.onerror=function(){return reject(new Error(`Failed to load video: ${src}`));};video.load();});}function isSafari(){var ua=navigator.userAgent.toLowerCase();return ua.includes('safari')&&!ua.includes('chrome')&&!ua.includes('android');}function bestGuessBrowserZoom(){var _visualViewport$scale,_visualViewport,_visualViewport$width,_visualViewport2;var viewportScale=(_visualViewport$scale=(_visualViewport=visualViewport)==null?void 0:_visualViewport.scale)!=null?_visualViewport$scale:1;var viewportWidth=(_visualViewport$width=(_visualViewport2=visualViewport)==null?void 0:_visualViewport2.width)!=null?_visualViewport$width:window.innerWidth;var scrollbarWidth=window.innerWidth-document.documentElement.clientWidth;var innerWidth=viewportScale*viewportWidth+scrollbarWidth;var ratio=outerWidth/innerWidth;var zoomPercentageRounded=Math.round(100*ratio);if(zoomPercentageRounded%5===0){return zoomPercentageRounded/100;}if(zoomPercentageRounded===33)return 1/3;if(zoomPercentageRounded===67)return 2/3;if(zoomPercentageRounded===133)return 4/3;return ratio;}function preloadRazorSenseAssets(){return _preloadRazorSenseAssets.apply(this,arguments);}function _preloadRazorSenseAssets(){_preloadRazorSenseAssets=_asyncToGenerator(function*(){var _presetDef$videoSrc,_presetDef$gradientMa,_presetDef$gradientMa2,_presetDef$centerGrad;var preset=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'default';var assetsPath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_CDN_PATH;var presets=getPresets(assetsPath);var presetDef=presets[preset]||{};var defaultAssets=getDefaultAssets(assetsPath);var videoSrc=(_presetDef$videoSrc=presetDef.videoSrc)!=null?_presetDef$videoSrc:defaultAssets.videoSrc;var imageSrc=presetDef.imageSrc;var gradientMapSrc=(_presetDef$gradientMa=presetDef.gradientMapSrc)!=null?_presetDef$gradientMa:defaultAssets.gradientMapSrc;var gradientMap2Src=(_presetDef$gradientMa2=presetDef.gradientMap2Src)!=null?_presetDef$gradientMa2:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetDef$centerGrad=presetDef.centerGradientMapSrc)!=null?_presetDef$centerGrad:defaultAssets.centerGradientMapSrc;var loadPromises=[];if(imageSrc){loadPromises.push(loadImage(imageSrc));}else if(videoSrc){loadPromises.push(loadVideo(videoSrc));}loadPromises.push(loadImage(gradientMapSrc),loadImage(gradientMap2Src),loadImage(centerGradientMapSrc));yield Promise.all(loadPromises);});return _preloadRazorSenseAssets.apply(this,arguments);}
7
7
 
8
8
  export { DEFAULT_CDN_PATH, bestGuessBrowserZoom, getDefaultAssets, getPresetAssets, isSafari, loadImage, loadVideo, preloadRazorSenseAssets, resolveConfig };
9
9
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","width","height","className","style","onLoad","onError","preset","gradientMapCanvas","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","assign","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","length","presetDef","defaultAssets","loadPromises","push","all"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","width","height","className","style","onLoad","onError","preset","gradientMapCanvas","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","assign","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","length","presetDef","defaultAssets","loadPromises","push","all"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/array/flatten.js';
1
+ import '../node_modules/es-toolkit/dist/compat/array/flatten.js';
2
2
  //# sourceMappingURL=flatten.js.map
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/compat/array/flatten.js';
1
+ import '../node_modules/es-toolkit/dist/array/flatten.js';
2
2
  //# sourceMappingURL=flatten3.js.map
@@ -269,7 +269,8 @@ var _Amount = function _Amount(_ref8, ref) {
269
269
  var currencyPosition = isPrefixSymbol ? 'left' : 'right';
270
270
  var currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;
271
271
 
272
- // Get currency font size - use subtle sizes when isAffixSubtle, otherwise hardcoded values
272
+ // Get currency font size - use subtle sizes when isAffixSubtle.
273
+ // For non-subtle, body uses corresponding body token sizes while heading/display use hardcoded sizes.
273
274
  var getCurrencyFontProps = function getCurrencyFontProps() {
274
275
  if (isAffixSubtle) {
275
276
  return {
@@ -277,6 +278,12 @@ var _Amount = function _Amount(_ref8, ref) {
277
278
  style: undefined
278
279
  };
279
280
  }
281
+ if (type === 'body') {
282
+ return {
283
+ fontSize: normalAmountSizes[type][size],
284
+ style: undefined
285
+ };
286
+ }
280
287
  var hardcodedSize = currencyHardcodedSizes[type][size];
281
288
  return {
282
289
  fontSize: normalAmountSizes[type][size],
@@ -1 +1 @@
1
- {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle, otherwise hardcoded values\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","concat","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle.\n // For non-subtle, body uses corresponding body token sizes while heading/display use hardcoded sizes.\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n if (type === 'body') {\n return {\n fontSize: normalAmountSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","concat","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { getPresets } from './presets.js';
8
8
  var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "preset", "assetsPath", "gradientMapSrc", "gradientMap2Src", "gradientMapCanvas", "imageSrc"];
9
9
  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; }
10
10
  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; }
11
- var DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';
11
+ var DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';
12
12
  var getDefaultAssets = function getDefaultAssets(assetsPath) {
13
13
  return {
14
14
  videoSrc: "".concat(assetsPath, "/spark-base-video.mp4"),
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","concat","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","_width","width","_height","height","_className","className","_style","style","_onLoad","onLoad","_onError","onError","_preset","preset","_assetsPath","_gradientMapSrc","_gradientMap2Src","_gradientMapCanvas","gradientMapCanvas","_imageSrc","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","_objectSpread","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","presetDef","defaultAssets","loadPromises","_args","wrap","_context","prev","next","length","push","all","stop"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","concat","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","_width","width","_height","height","_className","className","_style","style","_onLoad","onLoad","_onError","onError","_preset","preset","_assetsPath","_gradientMapSrc","_gradientMap2Src","_gradientMapCanvas","gradientMapCanvas","_imageSrc","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","_objectSpread","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","presetDef","defaultAssets","loadPromises","_args","wrap","_context","prev","next","length","push","all","stop"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../_virtual/flatten2.js';
2
+ import { __exports as flatten$1 } from '../../../../_virtual/flatten4.js';
3
3
 
4
4
  (function (exports) {
5
5
  'use strict';
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../../_virtual/flatten4.js';
2
+ import { __exports as flatten$1 } from '../../../../../_virtual/flatten2.js';
3
3
  import '../../../../../_virtual/isArrayLike.js';
4
4
  import { __exports as isArrayLike } from '../../../../../_virtual/isArrayLike2.js';
5
5
 
@@ -1,10 +1,10 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
2
  import { __exports as sortBy$1 } from '../../../../../_virtual/sortBy2.js';
3
3
  import '../../../../../_virtual/orderBy.js';
4
- import '../../../../../_virtual/flatten.js';
4
+ import '../../../../../_virtual/flatten3.js';
5
5
  import '../../../../../_virtual/isIterateeCall.js';
6
6
  import { __exports as orderBy } from '../../../../../_virtual/orderBy2.js';
7
- import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
7
+ import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
8
8
  import { __exports as isIterateeCall } from '../../../../../_virtual/isIterateeCall2.js';
9
9
 
10
10
  (function (exports) {
@@ -5,14 +5,14 @@ import '../../../../../_virtual/keysIn.js';
5
5
  import '../../../../../_virtual/unset.js';
6
6
  import '../../../../../_virtual/getSymbolsIn.js';
7
7
  import '../../../../../_virtual/isDeepKey.js';
8
- import '../../../../../_virtual/flatten3.js';
8
+ import '../../../../../_virtual/flatten.js';
9
9
  import '../../../../../_virtual/isPlainObject.js';
10
10
  import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
11
11
  import { __exports as keysIn } from '../../../../../_virtual/keysIn2.js';
12
12
  import { __exports as unset } from '../../../../../_virtual/unset2.js';
13
13
  import { __exports as getSymbolsIn } from '../../../../../_virtual/getSymbolsIn2.js';
14
14
  import { __exports as isDeepKey } from '../../../../../_virtual/isDeepKey2.js';
15
- import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
15
+ import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
16
16
  import { __exports as isPlainObject } from '../../../../../_virtual/isPlainObject2.js';
17
17
 
18
18
  (function (exports) {
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
1
+ import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
2
2
  //# sourceMappingURL=cloneDeep.js.map
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
1
+ import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
2
2
  //# sourceMappingURL=cloneDeep3.js.map
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/array/flatten.js';
1
+ import '../node_modules/es-toolkit/dist/compat/array/flatten.js';
2
2
  //# sourceMappingURL=flatten.js.map
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/compat/array/flatten.js';
1
+ import '../node_modules/es-toolkit/dist/array/flatten.js';
2
2
  //# sourceMappingURL=flatten3.js.map
@@ -269,7 +269,8 @@ var _Amount = function _Amount(_ref8, ref) {
269
269
  var currencyPosition = isPrefixSymbol ? 'left' : 'right';
270
270
  var currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;
271
271
 
272
- // Get currency font size - use subtle sizes when isAffixSubtle, otherwise hardcoded values
272
+ // Get currency font size - use subtle sizes when isAffixSubtle.
273
+ // For non-subtle, body uses corresponding body token sizes while heading/display use hardcoded sizes.
273
274
  var getCurrencyFontProps = function getCurrencyFontProps() {
274
275
  if (isAffixSubtle) {
275
276
  return {
@@ -277,6 +278,12 @@ var _Amount = function _Amount(_ref8, ref) {
277
278
  style: undefined
278
279
  };
279
280
  }
281
+ if (type === 'body') {
282
+ return {
283
+ fontSize: normalAmountSizes[type][size],
284
+ style: undefined
285
+ };
286
+ }
280
287
  var hardcodedSize = currencyHardcodedSizes[type][size];
281
288
  return {
282
289
  fontSize: normalAmountSizes[type][size],
@@ -1 +1 @@
1
- {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle, otherwise hardcoded values\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","concat","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Amount.js","sources":["../../../../../../src/components/Amount/Amount.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { CurrencyCodeType } from '@razorpay/i18nify-js/currency';\nimport { formatNumberByParts } from '@razorpay/i18nify-js/currency';\nimport type { AmountTypeProps } from './amountTokens';\nimport {\n normalAmountSizes,\n subtleFontSizes,\n currencyHardcodedSizes,\n amountLineHeights,\n} from './amountTokens';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { DataAnalyticsAttribute, BladeElementRef, TestID } from '~utils/types';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { objectKeysWithType } from '~utils/objectKeysWithType';\nimport { BaseText } from '~components/Typography/BaseText';\nimport { Text } from '~components/Typography';\nimport { opacity } from '~tokens/global';\nimport type { FontFamily, FontSize } from '~tokens/global';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils/useBreakpoint';\n\n/**\n * Pollyfill function to get around the node 18 error\n *\n * This function is maintained by i18nify team. Reach out to them for any change regarding this.\n */\nconst stripTrailingZerosFromParts = (\n parts: ReturnType<typeof formatNumberByParts>,\n): ReturnType<typeof formatNumberByParts> => {\n const decimalPart = parts.rawParts\n .filter(({ type }) => type === 'fraction')\n .map(({ value }) => value)\n .join('');\n\n const hasFraction = parts.rawParts.some(({ type }) => type === 'fraction');\n\n if (hasFraction && /^0+$/.test(decimalPart)) {\n delete parts.decimal;\n delete parts.fraction;\n parts.rawParts = parts.rawParts.filter(({ type }) => type !== 'decimal' && type !== 'fraction');\n }\n\n return parts;\n};\n\n/**\n * Wrapper that uses pollyfill of i18nify team\n */\nconst pollyfilledFormatNumberByParts: typeof formatNumberByParts = (value, options) => {\n const parts = formatNumberByParts(value, options);\n\n if (options?.intlOptions?.trailingZeroDisplay === 'stripIfInteger') {\n return stripTrailingZerosFromParts(parts);\n }\n\n return parts;\n};\n\ntype AmountCommonProps = {\n /**\n * The value to be rendered within the component.\n *\n */\n value: number;\n /**\n * Sets the color of the amount.\n *\n * @default undefined\n */\n color?: BaseTextProps['color'];\n /**\n * Indicates what the suffix of amount should be\n *\n * @default 'decimals'\n */\n suffix?: 'decimals' | 'none' | 'humanize';\n /**\n * Makes the currency indicator(currency symbol/code) and decimal digits small and faded\n *\n * @default true\n */\n isAffixSubtle?: true | false;\n /**\n * Determines the visual representation of the currency, choose between displaying the currency symbol or code.\n *\n * Note: Currency symbol and code is determined by the locale set in user's browser or set via @razorpay/i18nify-react library.\n *\n * @default 'currency-symbol'\n */\n currencyIndicator?: 'currency-symbol' | 'currency-code';\n /**\n * The currency of the amount. Note that this component\n * only displays the provided value in the specified currency, it does not perform any currency conversion.\n *\n * @default 'INR'\n * */\n currency?: CurrencyCodeType;\n /**\n * If true, the amount text will have a line through it.\n *\n * @default false\n */\n isStrikethrough?: boolean;\n /**\n * Controls the number of decimal places to display when suffix is 'decimals'.\n *\n * @default 2\n */\n fractionDigits?: number;\n} & TestID &\n DataAnalyticsAttribute &\n StyledPropsBlade;\n\ntype ColorProps = {\n amountValueColor: BaseTextProps['color'];\n};\n\ntype AmountProps = AmountTypeProps & AmountCommonProps;\n\nconst getTextColorProps = ({ color }: { color: AmountProps['color'] }): ColorProps => {\n const props: ColorProps = {\n amountValueColor: 'surface.text.gray.normal',\n };\n if (!color) return props;\n props.amountValueColor = color;\n return props;\n};\n\ntype AmountType = Partial<ReturnType<typeof formatNumberByParts>>;\n\ninterface AmountValue extends Omit<AmountProps, 'value'> {\n amountValueColor: BaseTextProps['color'];\n amount: AmountType;\n size: Exclude<AmountProps['size'], undefined>;\n}\n\nconst AmountValue = ({\n amount,\n size = 'medium',\n type = 'body',\n weight = 'regular',\n amountValueColor,\n isAffixSubtle,\n suffix,\n}: AmountValue): ReactElement => {\n const isReactNative = getPlatformType() === 'react-native';\n const affixFontSize = isAffixSubtle ? subtleFontSizes[type][size] : normalAmountSizes[type][size];\n const numberFontFamily: keyof FontFamily = type === 'body' ? 'text' : 'heading';\n if (suffix === 'decimals' && isAffixSubtle) {\n // Native does not support alignItems of Text inside a div, instead we need to wrap is in a Text\n const AmountWrapper = isReactNative ? Text : React.Fragment;\n\n return (\n <AmountWrapper>\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n fontFamily={numberFontFamily}\n as={isReactNative ? undefined : 'span'}\n >\n {amount.integer}\n </BaseText>\n <BaseText\n fontWeight={weight}\n fontSize={affixFontSize}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n >\n {amount.decimal}\n {amount.fraction}\n </BaseText>\n </AmountWrapper>\n );\n }\n\n return (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n fontFamily={numberFontFamily}\n color={amountValueColor}\n lineHeight={amountLineHeights[type][size]}\n >\n {amount.integer}\n {amount.decimal}\n {amount.fraction}\n {amount.compact}\n </BaseText>\n );\n};\n\ntype FormatAmountWithSuffixType = {\n suffix: AmountProps['suffix'];\n value: number;\n currency: AmountProps['currency'];\n fractionDigits?: number;\n};\n\n/**\n * Returns a parsed object based on the suffix passed in parameters\n * === Logic ===\n * value = 12500.45 \n * if suffix === 'decimals' => {\n \"integer\": \"12,500\",\n \"decimal\": \".\",\n \"fraction\": \"45\",\n \"compact\": \"K\",\n \"isPrefixSymbol\": false,\n \"rawParts\": [{\"type\": \"integer\",\"value\": \"12\"},{\"type\": \"group\",\"value\": \",\"},{\"type\": \"integer\",\"value\": \"500\"},{\"type\": \"decimal\",\"value\": \".\"},{\"type\": \"fraction\",\"value\": \"45\"}]\n}\n * @returns {AmountType}\n */\nexport const getAmountByParts = ({\n suffix,\n value,\n currency,\n fractionDigits = 2,\n}: FormatAmountWithSuffixType): AmountType => {\n try {\n switch (suffix) {\n case 'decimals': {\n const options = {\n intlOptions: {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n case 'humanize': {\n const options = {\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n\n default: {\n const options = {\n intlOptions: {\n maximumFractionDigits: 0,\n roundingMode: 'floor',\n },\n currency,\n } as const;\n return pollyfilledFormatNumberByParts(value, options);\n }\n }\n } catch (err: unknown) {\n return {\n integer: `${value}`,\n currency,\n };\n }\n};\n\nconst _Amount = (\n {\n value,\n suffix = 'decimals',\n type = 'body',\n size = 'medium',\n weight = 'regular',\n isAffixSubtle = true,\n isStrikethrough = false,\n color,\n currencyIndicator = 'currency-symbol',\n currency = 'INR',\n fractionDigits = 2,\n testID,\n ...rest\n }: AmountProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n if (__DEV__) {\n if (typeof value !== 'number') {\n throwBladeError({\n message: '`value` prop must be of type `number` for Amount.',\n moduleName: 'Amount',\n });\n }\n // @ts-expect-error neutral color should throw error\n if (color === 'neutral') {\n throwBladeError({\n message: '`neutral` color is not supported.',\n moduleName: 'Amount',\n });\n }\n\n const bodySizes = objectKeysWithType(normalAmountSizes.body);\n if ((type === 'body' || !type) && !bodySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"body\"`,\n moduleName: 'Amount',\n });\n }\n\n const displaySizes = objectKeysWithType(normalAmountSizes.display);\n if (type === 'display' && !displaySizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"display\"`,\n moduleName: 'Amount',\n });\n }\n\n const headingSizes = objectKeysWithType(normalAmountSizes.heading);\n if (type === 'heading' && !headingSizes.includes(size)) {\n throwBladeError({\n message: `size=\"${size}\" is not allowed with type=\"heading\"`,\n moduleName: 'Amount',\n });\n }\n }\n\n const { amountValueColor } = getTextColorProps({\n color,\n });\n\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isDesktop = matchedDeviceType === 'desktop';\n\n const renderedValue = getAmountByParts({ suffix, value, currency, fractionDigits });\n const isPrefixSymbol = renderedValue.isPrefixSymbol ?? true;\n const currencySymbol = renderedValue.currency ?? currency;\n\n const currencyPosition = isPrefixSymbol ? 'left' : 'right';\n const currencySymbolOrCode = currencyIndicator === 'currency-symbol' ? currencySymbol : currency;\n\n // Get currency font size - use subtle sizes when isAffixSubtle.\n // For non-subtle, body uses corresponding body token sizes while heading/display use hardcoded sizes.\n const getCurrencyFontProps = (): {\n fontSize: keyof FontSize | undefined;\n style: { fontSize: string } | undefined;\n } => {\n if (isAffixSubtle) {\n return {\n fontSize: subtleFontSizes[type][size],\n style: undefined,\n };\n }\n\n if (type === 'body') {\n return {\n fontSize: normalAmountSizes[type][size],\n style: undefined,\n };\n }\n\n const hardcodedSize = currencyHardcodedSizes[type][size];\n return {\n fontSize: normalAmountSizes[type][size], // Fallback for token-based rendering\n style: hardcodedSize\n ? { fontSize: `${hardcodedSize[isDesktop ? 'desktop' : 'mobile']}px` }\n : undefined,\n };\n };\n\n const currencyFontProps = getCurrencyFontProps();\n const isReactNative = getPlatformType() === 'react-native';\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n flexDirection=\"row\"\n {...metaAttribute({ name: MetaConstants.Amount, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display={(isReactNative ? 'flex' : 'inline-flex') as never}\n alignItems=\"baseline\"\n flexDirection=\"row\"\n position=\"relative\"\n >\n {renderedValue.minusSign ? (\n <BaseText\n fontSize={normalAmountSizes[type][size]}\n fontWeight={weight}\n lineHeight={amountLineHeights[type][size]}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n marginX=\"spacing.2\"\n >\n {renderedValue.minusSign}\n </BaseText>\n ) : null}\n {currencyPosition === 'left' && (\n <BaseText\n marginRight=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n <AmountValue\n amount={renderedValue}\n amountValueColor={amountValueColor}\n type={type}\n weight={weight}\n size={size}\n isAffixSubtle={isAffixSubtle}\n suffix={suffix}\n currency={currency}\n />\n {currencyPosition === 'right' && (\n <BaseText\n marginLeft=\"spacing.1\"\n fontWeight={weight}\n fontSize={currencyFontProps.fontSize}\n color={amountValueColor}\n as={isReactNative ? undefined : 'span'}\n opacity={isAffixSubtle ? opacity[800] : 1}\n style={currencyFontProps.style}\n >\n {currencySymbolOrCode}\n </BaseText>\n )}\n {isStrikethrough && (\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore: the borderBottomColor error below is thrown here as well\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore- intentionally setting the border color to the color prop for this hacky strikethrough\n borderBottomColor={amountValueColor}\n borderBottomWidth={type === 'body' ? 'thin' : 'thicker'}\n borderBottomStyle=\"solid\"\n position=\"absolute\"\n width=\"100%\"\n top=\"50%\"\n />\n )}\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst Amount = assignWithoutSideEffects(React.forwardRef(_Amount), {\n displayName: 'Amount',\n componentId: 'Amount',\n});\n\nexport type { AmountProps };\nexport { Amount };\n"],"names":["stripTrailingZerosFromParts","parts","decimalPart","rawParts","filter","_ref","type","map","_ref2","value","join","hasFraction","some","_ref3","test","decimal","fraction","_ref4","pollyfilledFormatNumberByParts","options","_options$intlOptions","formatNumberByParts","intlOptions","trailingZeroDisplay","getTextColorProps","_ref5","color","props","amountValueColor","AmountValue","_ref6","amount","_ref6$size","size","_ref6$type","_ref6$weight","weight","isAffixSubtle","suffix","isReactNative","getPlatformType","affixFontSize","subtleFontSizes","normalAmountSizes","numberFontFamily","AmountWrapper","Text","React","Fragment","_jsxs","children","_jsx","BaseText","fontSize","fontWeight","lineHeight","amountLineHeights","fontFamily","as","undefined","integer","opacity","compact","getAmountByParts","_ref7","currency","_ref7$fractionDigits","fractionDigits","maximumFractionDigits","minimumFractionDigits","notation","roundingMode","err","concat","_Amount","_ref8","ref","_renderedValue$isPref","_renderedValue$curren","_ref8$suffix","_ref8$type","_ref8$size","_ref8$weight","_ref8$isAffixSubtle","_ref8$isStrikethrough","isStrikethrough","_ref8$currencyIndicat","currencyIndicator","_ref8$currency","_ref8$fractionDigits","testID","rest","_objectWithoutProperties","_excluded","throwBladeError","message","moduleName","bodySizes","objectKeysWithType","body","includes","displaySizes","display","headingSizes","heading","_getTextColorProps","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isDesktop","renderedValue","isPrefixSymbol","currencySymbol","currencyPosition","currencySymbolOrCode","getCurrencyFontProps","style","hardcodedSize","currencyHardcodedSizes","currencyFontProps","BaseBox","_objectSpread","flexDirection","metaAttribute","name","MetaConstants","Amount","getStyledProps","makeAnalyticsAttribute","alignItems","position","minusSign","marginX","marginRight","marginLeft","borderBottomColor","borderBottomWidth","borderBottomStyle","width","top","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { getPresets } from './presets.js';
8
8
  var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "preset", "assetsPath", "gradientMapSrc", "gradientMap2Src", "gradientMapCanvas", "imageSrc"];
9
9
  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; }
10
10
  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; }
11
- var DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';
11
+ var DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';
12
12
  var getDefaultAssets = function getDefaultAssets(assetsPath) {
13
13
  return {
14
14
  videoSrc: "".concat(assetsPath, "/spark-base-video.mp4"),
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","concat","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","_width","width","_height","height","_className","className","_style","style","_onLoad","onLoad","_onError","onError","_preset","preset","_assetsPath","_gradientMapSrc","_gradientMap2Src","_gradientMapCanvas","gradientMapCanvas","_imageSrc","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","_objectSpread","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","presetDef","defaultAssets","loadPromises","_args","wrap","_context","prev","next","length","push","all","stop"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\nimport type {\n RzpGlassAssets,\n RzpGlassConfig,\n RzpGlassPresetDefinition,\n RzpGlassProps,\n} from './types';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade@latest/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\n/**\n * Load an image from URL\n */\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nfunction loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nfunction isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nfunction bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nasync function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n\nexport {\n DEFAULT_CDN_PATH,\n getDefaultAssets,\n loadImage,\n loadVideo,\n isSafari,\n bestGuessBrowserZoom,\n preloadRazorSenseAssets,\n getPresetAssets,\n resolveConfig,\n};\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","concat","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","extractConfig","props","_width","width","_height","height","_className","className","_style","style","_onLoad","onLoad","_onError","onError","_preset","preset","_assetsPath","_gradientMapSrc","_gradientMap2Src","_gradientMapCanvas","gradientMapCanvas","_imageSrc","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","_objectSpread","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","presetDef","defaultAssets","loadPromises","_args","wrap","_context","prev","next","length","push","all","stop"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../_virtual/flatten2.js';
2
+ import { __exports as flatten$1 } from '../../../../_virtual/flatten4.js';
3
3
 
4
4
  (function (exports) {
5
5
  'use strict';
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../../_virtual/flatten4.js';
2
+ import { __exports as flatten$1 } from '../../../../../_virtual/flatten2.js';
3
3
  import '../../../../../_virtual/isArrayLike.js';
4
4
  import { __exports as isArrayLike } from '../../../../../_virtual/isArrayLike2.js';
5
5
 
@@ -1,10 +1,10 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
2
  import { __exports as sortBy$1 } from '../../../../../_virtual/sortBy2.js';
3
3
  import '../../../../../_virtual/orderBy.js';
4
- import '../../../../../_virtual/flatten.js';
4
+ import '../../../../../_virtual/flatten3.js';
5
5
  import '../../../../../_virtual/isIterateeCall.js';
6
6
  import { __exports as orderBy } from '../../../../../_virtual/orderBy2.js';
7
- import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
7
+ import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
8
8
  import { __exports as isIterateeCall } from '../../../../../_virtual/isIterateeCall2.js';
9
9
 
10
10
  (function (exports) {
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as cloneDeep$1 } from '../../../../../_virtual/cloneDeep2.js';
2
+ import { __exports as cloneDeep$1 } from '../../../../../_virtual/cloneDeep4.js';
3
3
  import '../../../../../_virtual/cloneDeepWith.js';
4
4
  import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
5
5
 
@@ -5,14 +5,14 @@ import '../../../../../_virtual/keysIn.js';
5
5
  import '../../../../../_virtual/unset.js';
6
6
  import '../../../../../_virtual/getSymbolsIn.js';
7
7
  import '../../../../../_virtual/isDeepKey.js';
8
- import '../../../../../_virtual/flatten3.js';
8
+ import '../../../../../_virtual/flatten.js';
9
9
  import '../../../../../_virtual/isPlainObject.js';
10
10
  import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
11
11
  import { __exports as keysIn } from '../../../../../_virtual/keysIn2.js';
12
12
  import { __exports as unset } from '../../../../../_virtual/unset2.js';
13
13
  import { __exports as getSymbolsIn } from '../../../../../_virtual/getSymbolsIn2.js';
14
14
  import { __exports as isDeepKey } from '../../../../../_virtual/isDeepKey2.js';
15
- import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
15
+ import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
16
16
  import { __exports as isPlainObject } from '../../../../../_virtual/isPlainObject2.js';
17
17
 
18
18
  (function (exports) {
@@ -1,9 +1,9 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
2
  import { __exports as matches$1 } from '../../../../../_virtual/matches2.js';
3
3
  import '../../../../../_virtual/isMatch.js';
4
- import '../../../../../_virtual/cloneDeep3.js';
4
+ import '../../../../../_virtual/cloneDeep.js';
5
5
  import { __exports as isMatch } from '../../../../../_virtual/isMatch2.js';
6
- import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep4.js';
6
+ import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep2.js';
7
7
 
8
8
  (function (exports) {
9
9
  'use strict';
@@ -2,12 +2,12 @@ import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelper
2
2
  import { __exports as matchesProperty$1 } from '../../../../../_virtual/matchesProperty2.js';
3
3
  import '../../../../../_virtual/isMatch.js';
4
4
  import '../../../../../_virtual/toKey.js';
5
- import '../../../../../_virtual/cloneDeep.js';
5
+ import '../../../../../_virtual/cloneDeep3.js';
6
6
  import '../../../../../_virtual/get.js';
7
7
  import '../../../../../_virtual/has.js';
8
8
  import { __exports as isMatch } from '../../../../../_virtual/isMatch2.js';
9
9
  import { __exports as toKey } from '../../../../../_virtual/toKey2.js';
10
- import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep2.js';
10
+ import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep4.js';
11
11
  import { __exports as get } from '../../../../../_virtual/get2.js';
12
12
  import { __exports as has } from '../../../../../_virtual/has2.js';
13
13
 
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as cloneDeep$1 } from '../../../../_virtual/cloneDeep4.js';
2
+ import { __exports as cloneDeep$1 } from '../../../../_virtual/cloneDeep2.js';
3
3
  import '../../../../_virtual/cloneDeepWith3.js';
4
4
  import { __exports as cloneDeepWith } from '../../../../_virtual/cloneDeepWith4.js';
5
5
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "12.96.4",
4
+ "version": "12.96.6",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"