@razorpay/blade 12.43.1 → 12.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"propsTypes.js","sources":["../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA8GM,IAAAA,gBAAgB,CAAG,CACvB,KAAK,CACL,SAAS,CACT,QAAQ,CACR,QAAQ,CACR,MAAM,CACN,OAAO,CACP,KAAK,CACL,MAAM,CACN,OAAO;;;;"}
1
+ {"version":3,"file":"propsTypes.js","sources":["../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'feedback'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA8GM,IAAAA,gBAAgB,CAAG,CACvB,KAAK,CACL,SAAS,CACT,QAAQ,CACR,QAAQ,CACR,MAAM,CACN,OAAO,CACP,KAAK,CACL,MAAM,CACN,OAAO;;;;"}
@@ -12,7 +12,7 @@ import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/a
12
12
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
13
13
  import { jsx } from 'react/jsx-runtime';
14
14
 
15
- var validateBackgroundString=function validateBackgroundString(stringBackgroundColorValue){if(__DEV__){if(!stringBackgroundColorValue.startsWith('surface.background')&&!stringBackgroundColorValue.startsWith('overlay.')&&stringBackgroundColorValue!=='transparent'){throwBladeError({message:`Oops! Currently you can only use \`transparent\`, \`surface.background.*\`, and \`overlay.*\` tokens with backgroundColor property but we received \`${stringBackgroundColorValue}\` instead.\n\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,moduleName:'Box'});}}};var validateBackgroundProp=function validateBackgroundProp(responsiveBackgroundColor){if(__DEV__){if(responsiveBackgroundColor){if(typeof responsiveBackgroundColor==='string'){validateBackgroundString(responsiveBackgroundColor);return;}Object.values(responsiveBackgroundColor).forEach(function(backgroundColor){if(typeof backgroundColor==='string'){validateBackgroundString(backgroundColor);}});}}};var makeBoxProps=function makeBoxProps(props){return {display:props.display,overflow:props.overflow,overflowX:props.overflowX,overflowY:props.overflowY,whiteSpace:props.whiteSpace,height:props.height,minHeight:props.minHeight,maxHeight:props.maxHeight,width:props.width,minWidth:props.minWidth,maxWidth:props.maxWidth,textAlign:props.textAlign,flex:props.flex,flexWrap:props.flexWrap,flexDirection:props.flexDirection,flexGrow:props.flexGrow,flexShrink:props.flexShrink,flexBasis:props.flexBasis,alignItems:props.alignItems,alignContent:props.alignContent,alignSelf:props.alignSelf,justifyItems:props.justifyItems,justifyContent:props.justifyContent,justifySelf:props.justifySelf,placeSelf:props.placeSelf,placeItems:props.placeItems,order:props.order,grid:props.grid,gridColumn:props.gridColumn,gridRow:props.gridRow,gridRowStart:props.gridRowStart,gridRowEnd:props.gridRowEnd,gridColumnStart:props.gridColumnStart,gridColumnEnd:props.gridColumnEnd,gridArea:props.gridArea,gridAutoFlow:props.gridAutoFlow,gridAutoRows:props.gridAutoRows,gridAutoColumns:props.gridAutoColumns,gridTemplate:props.gridTemplate,gridTemplateAreas:props.gridTemplateAreas,gridTemplateColumns:props.gridTemplateColumns,gridTemplateRows:props.gridTemplateRows,padding:props.padding,paddingTop:props.paddingTop,paddingBottom:props.paddingBottom,paddingRight:props.paddingRight,paddingLeft:props.paddingLeft,paddingX:props.paddingX,paddingY:props.paddingY,margin:props.margin,marginBottom:props.marginBottom,marginTop:props.marginTop,marginRight:props.marginRight,marginLeft:props.marginLeft,marginX:props.marginX,marginY:props.marginY,gap:props.gap,rowGap:props.rowGap,columnGap:props.columnGap,position:props.position,zIndex:props.zIndex,top:props.top,right:props.right,bottom:props.bottom,left:props.left,backgroundColor:props.backgroundColor,backgroundImage:props.backgroundImage,backgroundSize:props.backgroundSize,backgroundPosition:props.backgroundPosition,backgroundOrigin:props.backgroundOrigin,backgroundRepeat:props.backgroundRepeat,elevation:props.elevation,opacity:props.opacity,visibility:props.visibility,borderWidth:props.borderWidth,borderColor:props.borderColor,borderStyle:props.borderStyle,borderTopWidth:props.borderTopWidth,borderTopColor:props.borderTopColor,borderTopStyle:props.borderTopStyle,borderRightWidth:props.borderRightWidth,borderRightColor:props.borderRightColor,borderRightStyle:props.borderRightStyle,borderBottomWidth:props.borderBottomWidth,borderBottomColor:props.borderBottomColor,borderBottomStyle:props.borderBottomStyle,borderLeftWidth:props.borderLeftWidth,borderLeftColor:props.borderLeftColor,borderLeftStyle:props.borderLeftStyle,borderRadius:props.borderRadius,borderTopLeftRadius:props.borderTopLeftRadius,borderTopRightRadius:props.borderTopRightRadius,borderBottomRightRadius:props.borderBottomRightRadius,borderBottomLeftRadius:props.borderBottomLeftRadius,transform:props.transform,transformOrigin:props.transformOrigin,clipPath:props.clipPath,onMouseEnter:props.onMouseEnter,onMouseLeave:props.onMouseLeave,onMouseOver:props.onMouseOver,onScroll:props.onScroll,draggable:props.draggable,onDragStart:props.onDragStart,onDragEnd:props.onDragEnd,onDragEnter:props.onDragEnter,onDragLeave:props.onDragLeave,onDragOver:props.onDragOver,onDrop:props.onDrop,pointerEvents:props.pointerEvents,children:props.children,tabIndex:props.tabIndex,as:isReactNative()?undefined:props.as};};var _Box=function _Box(props,ref){React__default.useEffect(function(){if(__DEV__){validateBackgroundProp(props.backgroundColor);}},[props.backgroundColor]);React__default.useEffect(function(){if(__DEV__){if(props.as){if(isReactNative()){throwBladeError({message:'`as` prop is not supported on React Native',moduleName:'Box'});}if(!validBoxAsValues.includes(props.as)){throwBladeError({message:`Invalid \`as\` prop value - ${props.as}. Only ${validBoxAsValues.join(', ')} are valid values`,moduleName:'Box'});}}}},[props.as]);return jsx(BaseBox,Object.assign({ref:ref,id:props.id},metaAttribute({name:MetaConstants.Box,testID:props.testID}),makeBoxProps(props),makeAnalyticsAttribute(props)));};var Box=assignWithoutSideEffects(React__default.forwardRef(_Box),{displayName:'Box',componentId:'Box'});
15
+ var validateBackgroundString=function validateBackgroundString(stringBackgroundColorValue){if(__DEV__){if(!stringBackgroundColorValue.startsWith('surface.background')&&!stringBackgroundColorValue.startsWith('overlay.')&&!stringBackgroundColorValue.startsWith('feedback.background')&&stringBackgroundColorValue!=='transparent'){throwBladeError({message:`Oops! Currently you can only use \`transparent\`, \`surface.background.*\`, and \`overlay.*\` tokens with backgroundColor property but we received \`${stringBackgroundColorValue}\` instead.\n\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,moduleName:'Box'});}}};var validateBackgroundProp=function validateBackgroundProp(responsiveBackgroundColor){if(__DEV__){if(responsiveBackgroundColor){if(typeof responsiveBackgroundColor==='string'){validateBackgroundString(responsiveBackgroundColor);return;}Object.values(responsiveBackgroundColor).forEach(function(backgroundColor){if(typeof backgroundColor==='string'){validateBackgroundString(backgroundColor);}});}}};var makeBoxProps=function makeBoxProps(props){return {display:props.display,overflow:props.overflow,overflowX:props.overflowX,overflowY:props.overflowY,whiteSpace:props.whiteSpace,height:props.height,minHeight:props.minHeight,maxHeight:props.maxHeight,width:props.width,minWidth:props.minWidth,maxWidth:props.maxWidth,textAlign:props.textAlign,flex:props.flex,flexWrap:props.flexWrap,flexDirection:props.flexDirection,flexGrow:props.flexGrow,flexShrink:props.flexShrink,flexBasis:props.flexBasis,alignItems:props.alignItems,alignContent:props.alignContent,alignSelf:props.alignSelf,justifyItems:props.justifyItems,justifyContent:props.justifyContent,justifySelf:props.justifySelf,placeSelf:props.placeSelf,placeItems:props.placeItems,order:props.order,grid:props.grid,gridColumn:props.gridColumn,gridRow:props.gridRow,gridRowStart:props.gridRowStart,gridRowEnd:props.gridRowEnd,gridColumnStart:props.gridColumnStart,gridColumnEnd:props.gridColumnEnd,gridArea:props.gridArea,gridAutoFlow:props.gridAutoFlow,gridAutoRows:props.gridAutoRows,gridAutoColumns:props.gridAutoColumns,gridTemplate:props.gridTemplate,gridTemplateAreas:props.gridTemplateAreas,gridTemplateColumns:props.gridTemplateColumns,gridTemplateRows:props.gridTemplateRows,padding:props.padding,paddingTop:props.paddingTop,paddingBottom:props.paddingBottom,paddingRight:props.paddingRight,paddingLeft:props.paddingLeft,paddingX:props.paddingX,paddingY:props.paddingY,margin:props.margin,marginBottom:props.marginBottom,marginTop:props.marginTop,marginRight:props.marginRight,marginLeft:props.marginLeft,marginX:props.marginX,marginY:props.marginY,gap:props.gap,rowGap:props.rowGap,columnGap:props.columnGap,position:props.position,zIndex:props.zIndex,top:props.top,right:props.right,bottom:props.bottom,left:props.left,backgroundColor:props.backgroundColor,backgroundImage:props.backgroundImage,backgroundSize:props.backgroundSize,backgroundPosition:props.backgroundPosition,backgroundOrigin:props.backgroundOrigin,backgroundRepeat:props.backgroundRepeat,elevation:props.elevation,opacity:props.opacity,visibility:props.visibility,borderWidth:props.borderWidth,borderColor:props.borderColor,borderStyle:props.borderStyle,borderTopWidth:props.borderTopWidth,borderTopColor:props.borderTopColor,borderTopStyle:props.borderTopStyle,borderRightWidth:props.borderRightWidth,borderRightColor:props.borderRightColor,borderRightStyle:props.borderRightStyle,borderBottomWidth:props.borderBottomWidth,borderBottomColor:props.borderBottomColor,borderBottomStyle:props.borderBottomStyle,borderLeftWidth:props.borderLeftWidth,borderLeftColor:props.borderLeftColor,borderLeftStyle:props.borderLeftStyle,borderRadius:props.borderRadius,borderTopLeftRadius:props.borderTopLeftRadius,borderTopRightRadius:props.borderTopRightRadius,borderBottomRightRadius:props.borderBottomRightRadius,borderBottomLeftRadius:props.borderBottomLeftRadius,transform:props.transform,transformOrigin:props.transformOrigin,clipPath:props.clipPath,onMouseEnter:props.onMouseEnter,onMouseLeave:props.onMouseLeave,onMouseOver:props.onMouseOver,onScroll:props.onScroll,draggable:props.draggable,onDragStart:props.onDragStart,onDragEnd:props.onDragEnd,onDragEnter:props.onDragEnter,onDragLeave:props.onDragLeave,onDragOver:props.onDragOver,onDrop:props.onDrop,pointerEvents:props.pointerEvents,children:props.children,tabIndex:props.tabIndex,as:isReactNative()?undefined:props.as};};var _Box=function _Box(props,ref){React__default.useEffect(function(){if(__DEV__){validateBackgroundProp(props.backgroundColor);}},[props.backgroundColor]);React__default.useEffect(function(){if(__DEV__){if(props.as){if(isReactNative()){throwBladeError({message:'`as` prop is not supported on React Native',moduleName:'Box'});}if(!validBoxAsValues.includes(props.as)){throwBladeError({message:`Invalid \`as\` prop value - ${props.as}. Only ${validBoxAsValues.join(', ')} are valid values`,moduleName:'Box'});}}}},[props.as]);return jsx(BaseBox,Object.assign({ref:ref,id:props.id},metaAttribute({name:MetaConstants.Box,testID:props.testID}),makeBoxProps(props),makeAnalyticsAttribute(props)));};var Box=assignWithoutSideEffects(React__default.forwardRef(_Box),{displayName:'Box',componentId:'Box'});
16
16
 
17
17
  export { Box, makeBoxProps };
18
18
  //# sourceMappingURL=Box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","__DEV__","startsWith","throwBladeError","message","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","assign","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","sources":["../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n !stringBackgroundColorValue.startsWith('feedback.background') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","__DEV__","startsWith","throwBladeError","message","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","assign","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"propsTypes.js","sources":["../../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA6GA;AACMA,IAAAA,gBAAgB,GAAG,CACvB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO;;;;"}
1
+ {"version":3,"file":"propsTypes.js","sources":["../../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'feedback'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA6GA;AACMA,IAAAA,gBAAgB,GAAG,CACvB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO;;;;"}
@@ -20,7 +20,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
20
20
  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; }
21
21
  var validateBackgroundString = function validateBackgroundString(stringBackgroundColorValue) {
22
22
  if (true) {
23
- if (!stringBackgroundColorValue.startsWith('surface.background') && !stringBackgroundColorValue.startsWith('overlay.') && stringBackgroundColorValue !== 'transparent') {
23
+ if (!stringBackgroundColorValue.startsWith('surface.background') && !stringBackgroundColorValue.startsWith('overlay.') && !stringBackgroundColorValue.startsWith('feedback.background') && stringBackgroundColorValue !== 'transparent') {
24
24
  throwBladeError({
25
25
  message: "Oops! Currently you can only use `transparent`, `surface.background.*`, and `overlay.*` tokens with backgroundColor property but we received `".concat(stringBackgroundColorValue, "` instead.\n\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss \u2728"),
26
26
  moduleName: 'Box'
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","startsWith","throwBladeError","message","concat","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","_objectSpread","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","sources":["../../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n !stringBackgroundColorValue.startsWith('feedback.background') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","startsWith","throwBladeError","message","concat","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","_objectSpread","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,0BAAkC,EAAW;AAC7E,EAAA,IAAI,IAAO,EAAE;IACX,IACE,CAACA,0BAA0B,CAACC,UAAU,CAAC,oBAAoB,CAAC,IAC5D,CAACD,0BAA0B,CAACC,UAAU,CAAC,UAAU,CAAC,IAClD,CAACD,0BAA0B,CAACC,UAAU,CAAC,qBAAqB,CAAC,IAC7DD,0BAA0B,KAAK,aAAa,EAC5C;AACAE,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAAC,gJAAAA,CAAAA,MAAA,CAA0JJ,0BAA0B,EAA4J,gKAAA,CAAA;AACvVK,QAAAA,UAAU,EAAE,KAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AACF,CAAC,CAAA;AAED,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAC1BC,yBAAkE,EACzD;AACT,EAAA,IAAI,IAAO,EAAE;AACX,IAAA,IAAIA,yBAAyB,EAAE;AAC7B,MAAA,IAAI,OAAOA,yBAAyB,KAAK,QAAQ,EAAE;QACjDR,wBAAwB,CAACQ,yBAAyB,CAAC,CAAA;AACnD,QAAA,OAAA;AACF,OAAA;MAEAC,MAAM,CAACC,MAAM,CAACF,yBAAyB,CAAC,CAACG,OAAO,CAAC,UAACC,eAAe,EAAK;AACpE,QAAA,IAAI,OAAOA,eAAe,KAAK,QAAQ,EAAE;UACvCZ,wBAAwB,CAACY,eAAe,CAAC,CAAA;AAC3C,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAChBC,KAAe,EACiD;EAChE,OAAO;AACL;IACAC,OAAO,EAAED,KAAK,CAACC,OAAO;IACtBC,QAAQ,EAAEF,KAAK,CAACE,QAAQ;IACxBC,SAAS,EAAEH,KAAK,CAACG,SAAS;IAC1BC,SAAS,EAAEJ,KAAK,CAACI,SAAS;IAC1BC,UAAU,EAAEL,KAAK,CAACK,UAAU;IAC5BC,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBC,SAAS,EAAEP,KAAK,CAACO,SAAS;IAC1BC,SAAS,EAAER,KAAK,CAACQ,SAAS;IAC1BC,KAAK,EAAET,KAAK,CAACS,KAAK;IAClBC,QAAQ,EAAEV,KAAK,CAACU,QAAQ;IACxBC,QAAQ,EAAEX,KAAK,CAACW,QAAQ;IACxBC,SAAS,EAAEZ,KAAK,CAACY,SAAS;AAE1B;IACAC,IAAI,EAAEb,KAAK,CAACa,IAAI;IAChBC,QAAQ,EAAEd,KAAK,CAACc,QAAQ;IACxBC,aAAa,EAAEf,KAAK,CAACe,aAAa;IAClCC,QAAQ,EAAEhB,KAAK,CAACgB,QAAQ;IACxBC,UAAU,EAAEjB,KAAK,CAACiB,UAAU;IAC5BC,SAAS,EAAElB,KAAK,CAACkB,SAAS;IAC1BC,UAAU,EAAEnB,KAAK,CAACmB,UAAU;IAC5BC,YAAY,EAAEpB,KAAK,CAACoB,YAAY;IAChCC,SAAS,EAAErB,KAAK,CAACqB,SAAS;IAC1BC,YAAY,EAAEtB,KAAK,CAACsB,YAAY;IAChCC,cAAc,EAAEvB,KAAK,CAACuB,cAAc;IACpCC,WAAW,EAAExB,KAAK,CAACwB,WAAW;IAC9BC,SAAS,EAAEzB,KAAK,CAACyB,SAAS;IAC1BC,UAAU,EAAE1B,KAAK,CAAC0B,UAAU;IAC5BC,KAAK,EAAE3B,KAAK,CAAC2B,KAAK;AAElB;IACAC,IAAI,EAAE5B,KAAK,CAAC4B,IAAI;IAChBC,UAAU,EAAE7B,KAAK,CAAC6B,UAAU;IAC5BC,OAAO,EAAE9B,KAAK,CAAC8B,OAAO;IACtBC,YAAY,EAAE/B,KAAK,CAAC+B,YAAY;IAChCC,UAAU,EAAEhC,KAAK,CAACgC,UAAU;IAC5BC,eAAe,EAAEjC,KAAK,CAACiC,eAAe;IACtCC,aAAa,EAAElC,KAAK,CAACkC,aAAa;IAClCC,QAAQ,EAAEnC,KAAK,CAACmC,QAAQ;IACxBC,YAAY,EAAEpC,KAAK,CAACoC,YAAY;IAChCC,YAAY,EAAErC,KAAK,CAACqC,YAAY;IAChCC,eAAe,EAAEtC,KAAK,CAACsC,eAAe;IACtCC,YAAY,EAAEvC,KAAK,CAACuC,YAAY;IAChCC,iBAAiB,EAAExC,KAAK,CAACwC,iBAAiB;IAC1CC,mBAAmB,EAAEzC,KAAK,CAACyC,mBAAmB;IAC9CC,gBAAgB,EAAE1C,KAAK,CAAC0C,gBAAgB;AAExC;IACAC,OAAO,EAAE3C,KAAK,CAAC2C,OAAO;IACtBC,UAAU,EAAE5C,KAAK,CAAC4C,UAAU;IAC5BC,aAAa,EAAE7C,KAAK,CAAC6C,aAAa;IAClCC,YAAY,EAAE9C,KAAK,CAAC8C,YAAY;IAChCC,WAAW,EAAE/C,KAAK,CAAC+C,WAAW;IAC9BC,QAAQ,EAAEhD,KAAK,CAACgD,QAAQ;IACxBC,QAAQ,EAAEjD,KAAK,CAACiD,QAAQ;IACxBC,MAAM,EAAElD,KAAK,CAACkD,MAAM;IACpBC,YAAY,EAAEnD,KAAK,CAACmD,YAAY;IAChCC,SAAS,EAAEpD,KAAK,CAACoD,SAAS;IAC1BC,WAAW,EAAErD,KAAK,CAACqD,WAAW;IAC9BC,UAAU,EAAEtD,KAAK,CAACsD,UAAU;IAC5BC,OAAO,EAAEvD,KAAK,CAACuD,OAAO;IACtBC,OAAO,EAAExD,KAAK,CAACwD,OAAO;IACtBC,GAAG,EAAEzD,KAAK,CAACyD,GAAG;IACdC,MAAM,EAAE1D,KAAK,CAAC0D,MAAM;IACpBC,SAAS,EAAE3D,KAAK,CAAC2D,SAAS;AAE1B;IACAC,QAAQ,EAAE5D,KAAK,CAAC4D,QAAQ;IACxBC,MAAM,EAAE7D,KAAK,CAAC6D,MAAM;IACpBC,GAAG,EAAE9D,KAAK,CAAC8D,GAAG;IACdC,KAAK,EAAE/D,KAAK,CAAC+D,KAAK;IAClBC,MAAM,EAAEhE,KAAK,CAACgE,MAAM;IACpBC,IAAI,EAAEjE,KAAK,CAACiE,IAAI;AAEhB;IACAnE,eAAe,EAAEE,KAAK,CAACF,eAAe;IACtCoE,eAAe,EAAElE,KAAK,CAACkE,eAAe;IACtCC,cAAc,EAAEnE,KAAK,CAACmE,cAAc;IACpCC,kBAAkB,EAAEpE,KAAK,CAACoE,kBAAkB;IAC5CC,gBAAgB,EAAErE,KAAK,CAACqE,gBAAgB;IACxCC,gBAAgB,EAAEtE,KAAK,CAACsE,gBAAgB;IACxCC,SAAS,EAAEvE,KAAK,CAACuE,SAAS;IAC1BC,OAAO,EAAExE,KAAK,CAACwE,OAAO;IACtBC,UAAU,EAAEzE,KAAK,CAACyE,UAAU;AAE5B;IACAC,WAAW,EAAE1E,KAAK,CAAC0E,WAAW;IAC9BC,WAAW,EAAE3E,KAAK,CAAC2E,WAAW;IAC9BC,WAAW,EAAE5E,KAAK,CAAC4E,WAAW;IAC9BC,cAAc,EAAE7E,KAAK,CAAC6E,cAAc;IACpCC,cAAc,EAAE9E,KAAK,CAAC8E,cAAc;IACpCC,cAAc,EAAE/E,KAAK,CAAC+E,cAAc;IACpCC,gBAAgB,EAAEhF,KAAK,CAACgF,gBAAgB;IACxCC,gBAAgB,EAAEjF,KAAK,CAACiF,gBAAgB;IACxCC,gBAAgB,EAAElF,KAAK,CAACkF,gBAAgB;IACxCC,iBAAiB,EAAEnF,KAAK,CAACmF,iBAAiB;IAC1CC,iBAAiB,EAAEpF,KAAK,CAACoF,iBAAiB;IAC1CC,iBAAiB,EAAErF,KAAK,CAACqF,iBAAiB;IAC1CC,eAAe,EAAEtF,KAAK,CAACsF,eAAe;IACtCC,eAAe,EAAEvF,KAAK,CAACuF,eAAe;IACtCC,eAAe,EAAExF,KAAK,CAACwF,eAAe;IACtCC,YAAY,EAAEzF,KAAK,CAACyF,YAAY;IAChCC,mBAAmB,EAAE1F,KAAK,CAAC0F,mBAAmB;IAC9CC,oBAAoB,EAAE3F,KAAK,CAAC2F,oBAAoB;IAChDC,uBAAuB,EAAE5F,KAAK,CAAC4F,uBAAuB;IACtDC,sBAAsB,EAAE7F,KAAK,CAAC6F,sBAAsB;AAEpD;IACAC,SAAS,EAAE9F,KAAK,CAAC8F,SAAS;IAC1BC,eAAe,EAAE/F,KAAK,CAAC+F,eAAe;IACtCC,QAAQ,EAAEhG,KAAK,CAACgG,QAAQ;AAExB;IACAC,YAAY,EAAEjG,KAAK,CAACiG,YAAY;IAChCC,YAAY,EAAElG,KAAK,CAACkG,YAAY;IAChCC,WAAW,EAAEnG,KAAK,CAACmG,WAAW;IAC9BC,QAAQ,EAAEpG,KAAK,CAACoG,QAAQ;AAExB;IACAC,SAAS,EAAErG,KAAK,CAACqG,SAAS;IAC1BC,WAAW,EAAEtG,KAAK,CAACsG,WAAW;IAC9BC,SAAS,EAAEvG,KAAK,CAACuG,SAAS;IAC1BC,WAAW,EAAExG,KAAK,CAACwG,WAAW;IAC9BC,WAAW,EAAEzG,KAAK,CAACyG,WAAW;IAC9BC,UAAU,EAAE1G,KAAK,CAAC0G,UAAU;IAC5BC,MAAM,EAAE3G,KAAK,CAAC2G,MAAM;IAEpBC,aAAa,EAAE5G,KAAK,CAAC4G,aAAa;IAClCC,QAAQ,EAAE7G,KAAK,CAAC6G,QAAQ;IACxBC,QAAQ,EAAE9G,KAAK,CAAC8G,QAAQ;IACxBC,EAAE,EAAEC,aAAa,EAAE,GAAGC,SAAS,GAAGjH,KAAK,CAAC+G,EAAE;GAC3C,CAAA;AACH,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMG,IAA0D,GAAG,SAA7DA,IAA0DA,CAAIlH,KAAK,EAAEmH,GAAG,EAAK;EACjFC,cAAK,CAACC,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI,IAAO,EAAE;AACX5H,MAAAA,sBAAsB,CAACO,KAAK,CAACF,eAAe,CAAC,CAAA;AAC/C,KAAA;AACF,GAAC,EAAE,CAACE,KAAK,CAACF,eAAe,CAAC,CAAC,CAAA;EAE3BsH,cAAK,CAACC,SAAS,CAAC,YAAM;AACpB,IAAA,IAAI,IAAO,EAAE;MACX,IAAIrH,KAAK,CAAC+G,EAAE,EAAE;QACZ,IAAIC,aAAa,EAAE,EAAE;AACnB3H,UAAAA,eAAe,CAAC;AACdC,YAAAA,OAAO,EAAE,4CAA4C;AACrDE,YAAAA,UAAU,EAAE,KAAA;AACd,WAAC,CAAC,CAAA;AACJ,SAAA;QAEA,IAAI,CAAC8H,gBAAgB,CAACC,QAAQ,CAACvH,KAAK,CAAC+G,EAAE,CAAC,EAAE;AACxC1H,UAAAA,eAAe,CAAC;AACdC,YAAAA,OAAO,EAAAC,4BAAAA,CAAAA,MAAA,CAAiCS,KAAK,CAAC+G,EAAE,EAAA,SAAA,CAAA,CAAAxH,MAAA,CAAU+H,gBAAgB,CAACE,IAAI,CAC7E,IACF,CAAC,EAAmB,mBAAA,CAAA;AACpBhI,YAAAA,UAAU,EAAE,KAAA;AACd,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAACQ,KAAK,CAAC+G,EAAE,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEU,GAAA,CAACC,OAAAA;AACC;AAAA,IAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACAR,IAAAA,GAAG,EAAEA,GAAW;IAChBS,EAAE,EAAE5H,KAAK,CAAC4H,EAAAA;AAAG,GAAA,EACTC,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,GAAG;IAAEC,MAAM,EAAEjI,KAAK,CAACiI,MAAAA;AAAO,GAAC,CAAC,CAAA,EAChElI,YAAY,CAACC,KAAK,CAAC,CACnBkI,EAAAA,sBAAsB,CAAClI,KAAK,CAAC,CAClC,CAAC,CAAA;AAEN,CAAC,CAAA;AAEKgI,IAAAA,GAAG,gBAAGG,wBAAwB,eAACf,cAAK,CAACgB,UAAU,CAAClB,IAAI,CAAC,EAAE;AAC3DmB,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,WAAW,EAAE,KAAA;AACf,CAAC;;;;"}
@@ -64,6 +64,7 @@ function useDatesState(_ref) {
64
64
  result.sort(function (a, b) {
65
65
  return a.getTime() - b.getTime();
66
66
  });
67
+ result[1].setHours(23, 59, 59, 999);
67
68
  setValue(result);
68
69
  setHoveredDate(null);
69
70
  setPickedDate(null);
@@ -1 +1 @@
1
- {"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n };\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
1
+ {"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n result[1].setHours(23, 59, 59, 999);\n\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n };\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","setHours","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":";;;;;;AAkBA,SAASA,SAASA,CAACC,IAAU,EAAEC,KAAmB,EAAE;EAClD,IAAMC,MAAM,GAAGC,kBAAA,CAAIF,KAAK,CAAEG,CAAAA,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;IAAA,OAAKD,CAAC,CAACE,OAAO,EAAE,GAAGD,CAAC,CAACC,OAAO,EAAE,CAAA;GAAC,CAAA,CAAA;EACnE,OACEC,KAAK,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,QAAQ,CAACX,IAAI,CAAC,IAChEQ,KAAK,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAACU,KAAK,CAAC,KAAK,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,OAAO,CAACd,IAAI,CAAC,CAAA;AAE5D,CAAA;AAEO,SAASe,aAAaA,CAAAC,IAAA,EAUA;AAAA,EAAA,IAT3BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,sBAAsB,GAAAN,IAAA,CAAtBM,sBAAsB;IACtBC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IAAAC,kBAAA,GAAAT,IAAA,CACZU,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,kBAAA,CAAA;EAEpB,IAAAE,qBAAA,GAA2BC,oBAAoB,CAAC;AAC9CX,MAAAA,IAAI,EAAJA,IAAI;AACJE,MAAAA,KAAK,EAALA,KAAK;AACLC,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,QAAQ,EAARA,QAAQ;AACRK,MAAAA,aAAa,EAAbA,aAAAA;AACF,KAAC,CAAC;IAAAG,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AANKI,IAAAA,MAAM,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,QAAQ,GAAAH,sBAAA,CAAA,CAAA,CAAA,CAAA;EAQvB,IAAAI,SAAA,GAAoCC,QAAQ,CAC1CjB,IAAI,KAAK,OAAO,GAAIc,MAAM,CAAC,CAAC,CAAC,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,IACpE,CAAC;IAAAI,UAAA,GAAAL,cAAA,CAAAG,SAAA,EAAA,CAAA,CAAA;AAFMG,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAGhC,EAAA,IAAAG,UAAA,GAAsCJ,QAAQ,CAAc,IAAI,CAAC;IAAAK,UAAA,GAAAT,cAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAA1DE,IAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAElC,IAAMG,YAA0B,GAAG,SAA7BA,YAA0BA,CAAI1C,IAAI,EAAE2C,WAAW,EAAK;AACxD,IAAA,IAAMC,iBAAiB,GACrB,CAACD,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,MAAM,KAAK1B,IAAI,KAAK,SAAS,CAAA;AAC3E,IAAA,IAAI2B,iBAAiB,EAAE;AACrB,MAAA,IAAMC,QAAQ,GAAGd,MAAM,IAAI,IAAIe,IAAI,EAAE,CAAA;AAErC,MAAA,IAAMC,OAAO,GAAG,IAAID,IAAI,CAACD,QAAQ,CAAC,CAAA;MAClC,IAAIF,WAAW,KAAK,OAAO,EAAE;QAC3BI,OAAO,CAACC,QAAQ,CAAChD,IAAI,CAACiD,QAAQ,EAAE,CAAC,CAAA;QACjCF,OAAO,CAACG,WAAW,CAAClD,IAAI,CAACmD,WAAW,EAAE,CAAC,CAAA;AACzC,OAAC,MAAM,IAAIR,WAAW,KAAK,MAAM,EAAE;QACjCI,OAAO,CAACG,WAAW,CAAClD,IAAI,CAACmD,WAAW,EAAE,CAAC,CAAA;AACzC,OAAA;AAEAnD,MAAAA,IAAI,GAAG+C,OAAO,CAAA;AAChB,KAAA;IAEA,IAAI9B,IAAI,KAAK,OAAO,EAAE;MACpB,IAAImB,UAAU,YAAYU,IAAI,IAAI,CAACf,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5C,QAAA,IAAIvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAAChB,UAAU,EAAElB,KAAK,CAAC,IAAI,CAACI,sBAAsB,EAAE;UACpEe,aAAa,CAAC,IAAI,CAAC,CAAA;UACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,UAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACtB,UAAA,OAAA;AACF,SAAA;AAEA,QAAA,IAAMqB,MAAoB,GAAG,CAACrD,IAAI,EAAEoC,UAAU,CAAC,CAAA;AAC/CiB,QAAAA,MAAM,CAACjD,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;UAAA,OAAKD,CAAC,CAACE,OAAO,EAAE,GAAGD,CAAC,CAACC,OAAO,EAAE,CAAA;SAAC,CAAA,CAAA;AAChD8C,QAAAA,MAAM,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAEnCtB,QAAQ,CAACqB,MAAM,CAAC,CAAA;QAChBZ,cAAc,CAAC,IAAI,CAAC,CAAA;QACpBJ,aAAa,CAAC,IAAI,CAAC,CAAA;AACnB,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IACEN,MAAM,CAAC,CAAC,CAAC,IACT,CAACA,MAAM,CAAC,CAAC,CAAC,IACVvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,IACpC,CAACI,sBAAsB,EACvB;QACAe,aAAa,CAAC,IAAI,CAAC,CAAA;QACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,QAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACtB,QAAA,OAAA;AACF,OAAA;AAEAA,MAAAA,QAAQ,CAAC,CAAChC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;MACtByC,cAAc,CAAC,IAAI,CAAC,CAAA;MACpBJ,aAAa,CAACrC,IAAI,CAAC,CAAA;AACnB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI+B,MAAM,IAAIR,aAAa,IAAIf,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,EAAEb,KAAK,CAAC,EAAE;MAChEc,QAAQ,CAAC,IAAI,CAAC,CAAA;AAChB,KAAC,MAAM;MACLA,QAAQ,CAAChC,IAAI,CAAC,CAAA;AAChB,KAAA;GACD,CAAA;AAED,EAAA,IAAMuD,aAAa,GAAG,SAAhBA,aAAaA,CAAIvD,IAAU,EAAK;AACpC,IAAA,IAAIoC,UAAU,YAAYU,IAAI,IAAIN,WAAW,YAAYM,IAAI,EAAE;MAC7D,OAAO/C,SAAS,CAACC,IAAI,EAAE,CAACwC,WAAW,EAAEJ,UAAU,CAAC,CAAC,CAAA;AACnD,KAAA;AAEA,IAAA,IAAIL,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,IAAIf,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,EAAE;AAC1D,MAAA,OAAO/C,SAAS,CAACC,IAAI,EAAE+B,MAAM,CAAC,CAAA;AAChC,KAAA;AAEA,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAMyB,WAAW,GAAG,SAAdA,WAAWA,GAAS;IACxBnB,aAAa,CAAC,IAAI,CAAC,CAAA;IACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,IAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;GACvB,CAAA;EACD,IAAMyB,gBAAgB,GACpBxC,IAAI,KAAK,OAAO,GACZ,UAACyC,KAAuC,EAAK;AAC3ClC,IAAAA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAGkC,KAAK,CAAC,CAAA;IACrBjB,cAAc,CAAC,IAAI,CAAC,CAAA;AACtB,GAAC,GACDjB,YAAY,CAAA;AAElB,EAAA,IAAMmC,cAAc,GAAG,SAAjBA,cAAcA,CAAI3D,IAAU,EAAK;IACrC,IAAI,EAAE+B,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,CAAC,EAAE;AAChC,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,IAAItC,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,EAAE;AACxC,MAAA,OAAO,EAAEsB,WAAW,IAAIhC,KAAK,CAACgC,WAAW,CAAC,CAAC7B,QAAQ,CAACoB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,KAAA;AAEA,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAM6B,aAAa,GAAG,SAAhBA,aAAaA,CAAI5D,IAAU,EAAK;AACpC,IAAA,IAAI+B,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,EAAE;AAC7B,MAAA,OAAOtC,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,CAAA;AAC7C,KAAA;IAEA,IAAI,EAAEa,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,CAAC,IAAI,CAACN,WAAW,EAAE;AAChD,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,OAAOhC,KAAK,CAACgC,WAAW,CAAC,CAAC7B,QAAQ,CAACoB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAIvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,CAAA;GACtF,CAAA;AAED,EAAA,IAAM2C,eAAe,GAAG,SAAlBA,eAAeA,CAAI7D,IAAU,EAAK;IACtC,IAAIiB,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO;AACL6C,QAAAA,QAAQ,EAAE/B,MAAM,CAACgC,IAAI,CACnB,UAACC,SAAe,EAAA;AAAA,UAAA,OAAKA,SAAS,IAAIxD,KAAK,CAACwD,SAAS,CAAC,CAACZ,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,CAAA;AAAA,SACxE,CAAC;AACD+C,QAAAA,OAAO,EAAEV,aAAa,CAACvD,IAAI,CAAC;AAC5BkE,QAAAA,YAAY,EAAEP,cAAc,CAAC3D,IAAI,CAAC;AAClCmE,QAAAA,WAAW,EAAEP,aAAa,CAAC5D,IAAI,CAAC;QAChC,gBAAgB,EAAG,CAAC,CAAC+B,MAAM,CAAC,CAAC,CAAC,IAAIvB,KAAK,CAACuB,MAAM,CAAC,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,IAAKkD,SAAS;AACpF,QAAA,eAAe,EAAElD,KAAK;AACtB,QAAA,WAAW,EAAAmD,EAAAA,CAAAA,MAAA,CAAKrE,IAAI,CAACiD,QAAQ,EAAE,EAAA,GAAA,CAAA,CAAAoB,MAAA,CAAIrE,IAAI,CAACsE,OAAO,EAAE,CAAA;OAClD,CAAA;AACH,KAAA;AAEA,IAAA,IAAMR,QAAQ,GAAGtD,KAAK,CAACuB,MAAM,CAAC,CAACqB,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,CAAA;IAClD,OAAO;AACL4C,MAAAA,QAAQ,EAARA,QAAQ;MACR,gBAAgB,EAAEA,QAAQ,IAAIM,SAAS;AACvC,MAAA,eAAe,EAAElD,KAAK;AACtB,MAAA,WAAW,EAAAmD,EAAAA,CAAAA,MAAA,CAAKrE,IAAI,CAACiD,QAAQ,EAAE,EAAA,GAAA,CAAA,CAAAoB,MAAA,CAAIrE,IAAI,CAACsE,OAAO,EAAE,CAAA;KAClD,CAAA;GACF,CAAA;AAED,EAAA,IAAMC,mBAAmB,GAAGtD,IAAI,KAAK,OAAO,IAAImB,UAAU,GAAGK,cAAc,GAAG,YAAM,EAAE,CAAA;AAEtF+B,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIvD,IAAI,KAAK,OAAO,IAAI,CAACc,MAAM,CAAC,CAAC,CAAC,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,EAAE;MAChDM,aAAa,CAAC,IAAI,CAAC,CAAA;AACrB,KAAA;AACF,GAAC,EAAE,CAAClB,KAAK,CAAC,CAAC,CAAA;EAEX,OAAO;AACLuB,IAAAA,YAAY,EAAZA,YAAY;AACZe,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBc,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBV,IAAAA,eAAe,EAAfA,eAAe;AACfxB,IAAAA,aAAa,EAAbA,aAAa;AACbD,IAAAA,UAAU,EAAVA,UAAU;AACVqC,IAAAA,eAAe,EAAE1C,MAAM;AACvB2C,IAAAA,kBAAkB,EAAE1C,QAAQ;AAC5BwB,IAAAA,WAAW,EAAXA,WAAAA;GACD,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"propsTypes.js","sources":["../../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA6GA;AACMA,IAAAA,gBAAgB,GAAG,CACvB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO;;;;"}
1
+ {"version":3,"file":"propsTypes.js","sources":["../../../../../../../../src/components/Box/BaseBox/types/propsTypes.ts"],"sourcesContent":["import type { View } from 'react-native';\nimport type { CSSObject } from 'styled-components';\nimport type { MarginProps, PaddingProps, SpacingValueType } from './spacingTypes';\nimport type { MakeObjectResponsive } from './responsiveTypes';\nimport type { Theme } from '~components/BladeProvider';\nimport type { Border, Elevation } from '~tokens/global';\nimport type { DataAnalyticsAttribute, PickCSSByPlatform, TestID } from '~utils/types';\nimport type { Platform } from '~utils';\nimport type { BladeCommonEvents } from '~components/types';\nimport type { DotNotationToken } from '~utils/lodashButBetter/get';\n\ntype LayoutProps = MakeObjectResponsive<\n {\n height: SpacingValueType;\n minHeight: SpacingValueType;\n maxHeight: SpacingValueType;\n width: SpacingValueType;\n minWidth: SpacingValueType;\n maxWidth: SpacingValueType;\n } & PickCSSByPlatform<\n 'display' | 'overflow' | 'overflowX' | 'overflowY' | 'textAlign' | 'whiteSpace'\n >\n>;\n\ntype FlexboxProps = MakeObjectResponsive<\n {\n /**\n * This uses the native gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=gap\n */\n gap: SpacingValueType;\n /**\n * This uses the native row-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=row-gap\n */\n rowGap: SpacingValueType;\n /**\n * This uses the native column-gap property which might not work on older browsers.\n * If you want to support older browsers, you might want to use `margin` instead.\n *\n * @see https://caniuse.com/?search=column-gap\n */\n columnGap: SpacingValueType;\n /**\n * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.\n *\n * @see https://developer.mozilla.org/docs/Web/CSS/flex\n */\n flex: string | number;\n } & PickCSSByPlatform<\n | 'flexWrap'\n | 'flexDirection'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexBasis'\n | 'alignItems'\n | 'alignContent'\n | 'alignSelf'\n | 'justifyItems'\n | 'justifyContent'\n | 'justifySelf'\n | 'placeSelf'\n | 'placeItems'\n | 'order'\n >\n>;\n\ntype PositionProps = MakeObjectResponsive<\n {\n top: SpacingValueType;\n right: SpacingValueType;\n bottom: SpacingValueType;\n left: SpacingValueType;\n } & PickCSSByPlatform<'position' | 'zIndex'>\n>;\n\ntype GridProps = MakeObjectResponsive<\n PickCSSByPlatform<\n | 'grid'\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridAutoColumns'\n | 'gridTemplate'\n | 'gridTemplateAreas'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n >\n>;\n\ntype ColorObjects = 'feedback' | 'surface' | 'interactive';\ntype BackgroundOnlyColorObjects = 'popup' | 'overlay';\ntype BackgroundColorString<\n T extends ColorObjects | BackgroundOnlyColorObjects\n> = `${T}.background.${DotNotationToken<Theme['colors'][T]['background']>}`;\ntype BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationToken<\n Theme['colors'][T]['border']\n>}`;\n\n// Created this as an array so I can reuse it for runtime validation\nconst validBoxAsValues = [\n 'div',\n 'section',\n 'footer',\n 'header',\n 'main',\n 'aside',\n 'nav',\n 'span',\n 'label',\n] as const;\n\ntype BoxAsType = typeof validBoxAsValues[number];\n\n// Visual props that are common for both Box and BaseBox\ntype CommonBoxVisualProps = MakeObjectResponsive<\n {\n borderRadius: keyof Border['radius'];\n borderWidth: keyof Border['width'];\n borderColor: BorderColorString<'surface'>;\n borderTopWidth: keyof Border['width'];\n borderTopColor: BorderColorString<'surface'>;\n borderRightWidth: keyof Border['width'];\n borderRightColor: BorderColorString<'surface'>;\n borderBottomWidth: keyof Border['width'];\n borderBottomColor: BorderColorString<'surface'>;\n borderLeftWidth: keyof Border['width'];\n borderLeftColor: BorderColorString<'surface'>;\n borderTopLeftRadius: keyof Border['radius'];\n borderTopRightRadius: keyof Border['radius'];\n borderBottomRightRadius: keyof Border['radius'];\n borderBottomLeftRadius: keyof Border['radius'];\n } & PickCSSByPlatform<\n | 'backgroundImage'\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundOrigin'\n | 'backgroundRepeat'\n | 'pointerEvents'\n | 'opacity'\n | 'visibility'\n | 'transform'\n | 'transformOrigin'\n | 'clipPath'\n | 'borderStyle'\n | 'borderTopStyle'\n | 'borderBottomStyle'\n | 'borderLeftStyle'\n | 'borderRightStyle'\n > & {\n /**\n * Sets the elevation for Box\n *\n * eg: `theme.elevation.midRaised`\n *\n * @default `theme.elevation.lowRaised`\n *\n * **Links:**\n * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--docs\n */\n elevation?: keyof Elevation;\n }\n>;\n\n// Visual props that are specific BaseBox\n// This is used to ensure some of the more flexible BaseBox props are not passed to Box\ntype BaseBoxVisualProps = MakeObjectResponsive<\n {\n backgroundColor:\n | BackgroundColorString<'feedback'>\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'interactive'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'popup'>\n | 'transparent'\n | (string & Record<never, never>);\n lineHeight: SpacingValueType;\n touchAction: CSSObject['touchAction'];\n userSelect: CSSObject['userSelect'];\n } & PickCSSByPlatform<\n | 'border'\n | 'borderLeft'\n | 'borderRight'\n | 'borderTop'\n | 'borderBottom'\n | 'opacity'\n | 'pointerEvents'\n | 'cursor'\n >\n>;\n\n// Visual props that are specific to Box\ntype BoxVisualProps = MakeObjectResponsive<{\n backgroundColor:\n | BackgroundColorString<'surface'>\n | BackgroundColorString<'overlay'>\n | BackgroundColorString<'feedback'>\n | 'transparent';\n}> & {\n // Intentionally keeping this outside of MakeObjectResponsive since we only want as to be string and not responsive object\n // styled-components do not support passing `as` prop as an object\n as: BoxAsType;\n};\n\ntype StyledPropsBlade = Partial<\n Omit<\n MarginProps &\n Pick<FlexboxProps, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order' | 'flexWrap'> &\n PositionProps &\n Pick<\n GridProps,\n | 'gridColumn'\n | 'gridRow'\n | 'gridRowStart'\n | 'gridRowEnd'\n | 'gridColumnStart'\n | 'gridColumnEnd'\n | 'gridArea'\n > &\n Pick<LayoutProps, 'display'> &\n Pick<CommonBoxVisualProps, 'visibility'>,\n '__brand__'\n >\n>;\n\ntype BoxCallbackProps = Omit<\n Platform.Select<{\n web: {\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseOver: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseEnter: React.MouseEventHandler<HTMLElement>;\n /**\n * **Warning**\n *\n * Make sure to not use Box when you want to create a trigger that performs action on hover.\n * You would probably want to render it as `button` using `styled.button` instead.\n *\n * Use this for hoverable containers in cases like custom menus.\n */\n onMouseLeave: React.MouseEventHandler<HTMLElement>;\n onScroll: React.UIEventHandler<HTMLElement>;\n };\n native: Record<'onMouseOver' | 'onMouseEnter' | 'onMouseLeave' | 'onScroll', undefined>;\n }>,\n '__brand__'\n>;\n\ntype BoxDragAndDropProps = Omit<\n Platform.Select<{\n web: {\n draggable: boolean;\n onDragStart: React.DragEventHandler<HTMLElement>;\n onDragEnter: React.DragEventHandler<HTMLElement>;\n onDragLeave: React.DragEventHandler<HTMLElement>;\n onDragOver: React.DragEventHandler<HTMLElement>;\n onDragEnd: React.DragEventHandler<HTMLElement>;\n onDrop: React.DragEventHandler<HTMLElement>;\n };\n native: Record<\n | 'draggable'\n | 'onDragStart'\n | 'onDragEnter'\n | 'onDragLeave'\n | 'onDragOver'\n | 'onDragEnd'\n | 'onDrop',\n undefined\n >;\n }>,\n '__brand__'\n>;\n\ntype BoxProps = Partial<\n PaddingProps &\n MarginProps &\n LayoutProps &\n FlexboxProps &\n PositionProps &\n GridProps &\n BoxCallbackProps &\n BoxDragAndDropProps &\n CommonBoxVisualProps &\n BoxVisualProps & {\n children?: React.ReactNode | React.ReactNode[];\n tabIndex?: number;\n id?: string;\n } & TestID &\n DataAnalyticsAttribute\n>;\n\n// Visual props have different types for BaseBox and Box. BaseBox has more flexible types and more props exposed.\n// So first we Omit Visual props of Box\n// Then we append BaseBoxVisualProps and some other props for styled-components like class and id\ntype BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> &\n Partial<\n DataAnalyticsAttribute &\n BaseBoxVisualProps & {\n className?: string;\n id?: string;\n tabIndex?: number;\n }\n > &\n BladeCommonEvents;\n\n// ref prop type\ntype BoxRefType = Platform.Select<{\n web: Omit<HTMLElement, 'style'>;\n native: View;\n}>;\n\nexport type { BaseBoxProps, BoxProps, BoxRefType, StyledPropsBlade, FlexboxProps };\nexport { validBoxAsValues };\n"],"names":["validBoxAsValues"],"mappings":"AA6GA;AACMA,IAAAA,gBAAgB,GAAG,CACvB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO;;;;"}
@@ -20,7 +20,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
20
20
  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; }
21
21
  var validateBackgroundString = function validateBackgroundString(stringBackgroundColorValue) {
22
22
  if (false) {
23
- if (!stringBackgroundColorValue.startsWith('surface.background') && !stringBackgroundColorValue.startsWith('overlay.') && stringBackgroundColorValue !== 'transparent') {
23
+ if (!stringBackgroundColorValue.startsWith('surface.background') && !stringBackgroundColorValue.startsWith('overlay.') && !stringBackgroundColorValue.startsWith('feedback.background') && stringBackgroundColorValue !== 'transparent') {
24
24
  throwBladeError({
25
25
  message: "Oops! Currently you can only use `transparent`, `surface.background.*`, and `overlay.*` tokens with backgroundColor property but we received `".concat(stringBackgroundColorValue, "` instead.\n\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss \u2728"),
26
26
  moduleName: 'Box'
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","startsWith","throwBladeError","message","concat","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","_objectSpread","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","sources":["../../../../../../src/components/Box/Box.tsx"],"sourcesContent":["import React from 'react';\nimport BaseBox from './BaseBox';\nimport type { BoxProps, BoxRefType, MakeValueResponsive } from './BaseBox/types';\nimport { validBoxAsValues } from './BaseBox/types/propsTypes';\nimport type { KeysRequired } from '~utils/types';\nimport { isReactNative } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validateBackgroundString = (stringBackgroundColorValue: string): void => {\n if (__DEV__) {\n if (\n !stringBackgroundColorValue.startsWith('surface.background') &&\n !stringBackgroundColorValue.startsWith('overlay.') &&\n !stringBackgroundColorValue.startsWith('feedback.background') &&\n stringBackgroundColorValue !== 'transparent'\n ) {\n throwBladeError({\n message: `Oops! Currently you can only use \\`transparent\\`, \\`surface.background.*\\`, and \\`overlay.*\\` tokens with backgroundColor property but we received \\`${stringBackgroundColorValue}\\` instead.\\n\\n Do you have a usecase of using other values? Create an issue on https://github.com/razorpay/blade repo to let us know and we can discuss ✨`,\n moduleName: 'Box',\n });\n }\n }\n};\n\nconst validateBackgroundProp = (\n responsiveBackgroundColor: MakeValueResponsive<string | undefined>,\n): void => {\n if (__DEV__) {\n if (responsiveBackgroundColor) {\n if (typeof responsiveBackgroundColor === 'string') {\n validateBackgroundString(responsiveBackgroundColor);\n return;\n }\n\n Object.values(responsiveBackgroundColor).forEach((backgroundColor) => {\n if (typeof backgroundColor === 'string') {\n validateBackgroundString(backgroundColor);\n }\n });\n }\n }\n};\n\n/**\n * This function is to filter out any unexpected props passed by the user\n */\nconst makeBoxProps = (\n props: BoxProps,\n): KeysRequired<Omit<BoxProps, 'testID' | 'id' | '__brand__'>> => {\n return {\n // Layout\n display: props.display,\n overflow: props.overflow,\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n whiteSpace: props.whiteSpace,\n height: props.height,\n minHeight: props.minHeight,\n maxHeight: props.maxHeight,\n width: props.width,\n minWidth: props.minWidth,\n maxWidth: props.maxWidth,\n textAlign: props.textAlign,\n\n // Flex\n flex: props.flex,\n flexWrap: props.flexWrap,\n flexDirection: props.flexDirection,\n flexGrow: props.flexGrow,\n flexShrink: props.flexShrink,\n flexBasis: props.flexBasis,\n alignItems: props.alignItems,\n alignContent: props.alignContent,\n alignSelf: props.alignSelf,\n justifyItems: props.justifyItems,\n justifyContent: props.justifyContent,\n justifySelf: props.justifySelf,\n placeSelf: props.placeSelf,\n placeItems: props.placeItems,\n order: props.order,\n\n // Grid\n grid: props.grid,\n gridColumn: props.gridColumn,\n gridRow: props.gridRow,\n gridRowStart: props.gridRowStart,\n gridRowEnd: props.gridRowEnd,\n gridColumnStart: props.gridColumnStart,\n gridColumnEnd: props.gridColumnEnd,\n gridArea: props.gridArea,\n gridAutoFlow: props.gridAutoFlow,\n gridAutoRows: props.gridAutoRows,\n gridAutoColumns: props.gridAutoColumns,\n gridTemplate: props.gridTemplate,\n gridTemplateAreas: props.gridTemplateAreas,\n gridTemplateColumns: props.gridTemplateColumns,\n gridTemplateRows: props.gridTemplateRows,\n\n // Spacing\n padding: props.padding,\n paddingTop: props.paddingTop,\n paddingBottom: props.paddingBottom,\n paddingRight: props.paddingRight,\n paddingLeft: props.paddingLeft,\n paddingX: props.paddingX,\n paddingY: props.paddingY,\n margin: props.margin,\n marginBottom: props.marginBottom,\n marginTop: props.marginTop,\n marginRight: props.marginRight,\n marginLeft: props.marginLeft,\n marginX: props.marginX,\n marginY: props.marginY,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n\n // Position\n position: props.position,\n zIndex: props.zIndex,\n top: props.top,\n right: props.right,\n bottom: props.bottom,\n left: props.left,\n\n // Visual\n backgroundColor: props.backgroundColor,\n backgroundImage: props.backgroundImage,\n backgroundSize: props.backgroundSize,\n backgroundPosition: props.backgroundPosition,\n backgroundOrigin: props.backgroundOrigin,\n backgroundRepeat: props.backgroundRepeat,\n elevation: props.elevation,\n opacity: props.opacity,\n visibility: props.visibility,\n\n // Border\n borderWidth: props.borderWidth,\n borderColor: props.borderColor,\n borderStyle: props.borderStyle,\n borderTopWidth: props.borderTopWidth,\n borderTopColor: props.borderTopColor,\n borderTopStyle: props.borderTopStyle,\n borderRightWidth: props.borderRightWidth,\n borderRightColor: props.borderRightColor,\n borderRightStyle: props.borderRightStyle,\n borderBottomWidth: props.borderBottomWidth,\n borderBottomColor: props.borderBottomColor,\n borderBottomStyle: props.borderBottomStyle,\n borderLeftWidth: props.borderLeftWidth,\n borderLeftColor: props.borderLeftColor,\n borderLeftStyle: props.borderLeftStyle,\n borderRadius: props.borderRadius,\n borderTopLeftRadius: props.borderTopLeftRadius,\n borderTopRightRadius: props.borderTopRightRadius,\n borderBottomRightRadius: props.borderBottomRightRadius,\n borderBottomLeftRadius: props.borderBottomLeftRadius,\n\n // Polygon Support\n transform: props.transform,\n transformOrigin: props.transformOrigin,\n clipPath: props.clipPath,\n\n // callbacks\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseOver: props.onMouseOver,\n onScroll: props.onScroll,\n\n // Drag and Drop\n draggable: props.draggable,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n\n pointerEvents: props.pointerEvents,\n children: props.children,\n tabIndex: props.tabIndex,\n as: isReactNative() ? undefined : props.as, // as is not supported on react-native\n };\n};\n\n/**\n * ## Box\n * \n * Box is the basic Layout component.\n *\n *\n * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.\n *\n * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.\n * \n * ----\n * \n * ### Usage\n * \n * ```jsx\n * <Box display=\"flex\">\n * ```\n\n * #### Responsive Props\n *\n * ```jsx\n * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />\n * ```\n * \n * #### Margin and Padding Shorthands\n * \n * ```jsx\n * <Box padding={[\"spacing.3\", \"spacing.10\"]} />\n * ```\n *\n * ---\n * \n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}\n * \n */\nconst _Box: React.ForwardRefRenderFunction<BoxRefType, BoxProps> = (props, ref) => {\n React.useEffect(() => {\n if (__DEV__) {\n validateBackgroundProp(props.backgroundColor);\n }\n }, [props.backgroundColor]);\n\n React.useEffect(() => {\n if (__DEV__) {\n if (props.as) {\n if (isReactNative()) {\n throwBladeError({\n message: '`as` prop is not supported on React Native',\n moduleName: 'Box',\n });\n }\n\n if (!validBoxAsValues.includes(props.as)) {\n throwBladeError({\n message: `Invalid \\`as\\` prop value - ${props.as}. Only ${validBoxAsValues.join(\n ', ',\n )} are valid values`,\n moduleName: 'Box',\n });\n }\n }\n }\n }, [props.as]);\n\n return (\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n id={props.id}\n {...metaAttribute({ name: MetaConstants.Box, testID: props.testID })}\n {...makeBoxProps(props)}\n {...makeAnalyticsAttribute(props)}\n />\n );\n};\n\nconst Box = assignWithoutSideEffects(React.forwardRef(_Box), {\n displayName: 'Box',\n componentId: 'Box',\n});\n\nexport { Box, makeBoxProps };\n"],"names":["validateBackgroundString","stringBackgroundColorValue","startsWith","throwBladeError","message","concat","moduleName","validateBackgroundProp","responsiveBackgroundColor","Object","values","forEach","backgroundColor","makeBoxProps","props","display","overflow","overflowX","overflowY","whiteSpace","height","minHeight","maxHeight","width","minWidth","maxWidth","textAlign","flex","flexWrap","flexDirection","flexGrow","flexShrink","flexBasis","alignItems","alignContent","alignSelf","justifyItems","justifyContent","justifySelf","placeSelf","placeItems","order","grid","gridColumn","gridRow","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","gridArea","gridAutoFlow","gridAutoRows","gridAutoColumns","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","padding","paddingTop","paddingBottom","paddingRight","paddingLeft","paddingX","paddingY","margin","marginBottom","marginTop","marginRight","marginLeft","marginX","marginY","gap","rowGap","columnGap","position","zIndex","top","right","bottom","left","backgroundImage","backgroundSize","backgroundPosition","backgroundOrigin","backgroundRepeat","elevation","opacity","visibility","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","transform","transformOrigin","clipPath","onMouseEnter","onMouseLeave","onMouseOver","onScroll","draggable","onDragStart","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop","pointerEvents","children","tabIndex","as","isReactNative","undefined","_Box","ref","React","useEffect","validBoxAsValues","includes","join","_jsx","BaseBox","_objectSpread","id","metaAttribute","name","MetaConstants","Box","testID","makeAnalyticsAttribute","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -64,6 +64,7 @@ function useDatesState(_ref) {
64
64
  result.sort(function (a, b) {
65
65
  return a.getTime() - b.getTime();
66
66
  });
67
+ result[1].setHours(23, 59, 59, 999);
67
68
  setValue(result);
68
69
  setHoveredDate(null);
69
70
  setPickedDate(null);
@@ -1 +1 @@
1
- {"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n };\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
1
+ {"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\ntype ChangeValue = 'day' | 'month' | 'year';\ntype OnDateChange = (date: Date, changeValue: ChangeValue) => void;\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange: OnDateChange = (date, changeValue) => {\n const shouldChangeValue =\n (changeValue === 'month' || changeValue === 'year') && type === 'default';\n if (shouldChangeValue) {\n const prevDate = _value || new Date();\n\n const newDate = new Date(prevDate);\n if (changeValue === 'month') {\n newDate.setMonth(date.getMonth());\n newDate.setFullYear(date.getFullYear());\n } else if (changeValue === 'year') {\n newDate.setFullYear(date.getFullYear());\n }\n\n date = newDate;\n }\n\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n result[1].setHours(23, 59, 59, 999);\n\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const handleReset = () => {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n };\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n handleReset,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","changeValue","shouldChangeValue","prevDate","Date","newDate","setMonth","getMonth","setFullYear","getFullYear","isSame","result","setHours","isDateInRange","handleReset","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":";;;;;;AAkBA,SAASA,SAASA,CAACC,IAAU,EAAEC,KAAmB,EAAE;EAClD,IAAMC,MAAM,GAAGC,kBAAA,CAAIF,KAAK,CAAEG,CAAAA,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;IAAA,OAAKD,CAAC,CAACE,OAAO,EAAE,GAAGD,CAAC,CAACC,OAAO,EAAE,CAAA;GAAC,CAAA,CAAA;EACnE,OACEC,KAAK,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAACO,OAAO,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,QAAQ,CAACX,IAAI,CAAC,IAChEQ,KAAK,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,CAACU,KAAK,CAAC,KAAK,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,OAAO,CAACd,IAAI,CAAC,CAAA;AAE5D,CAAA;AAEO,SAASe,aAAaA,CAAAC,IAAA,EAUA;AAAA,EAAA,IAT3BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,sBAAsB,GAAAN,IAAA,CAAtBM,sBAAsB;IACtBC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IAAAC,kBAAA,GAAAT,IAAA,CACZU,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,kBAAA,CAAA;EAEpB,IAAAE,qBAAA,GAA2BC,oBAAoB,CAAC;AAC9CX,MAAAA,IAAI,EAAJA,IAAI;AACJE,MAAAA,KAAK,EAALA,KAAK;AACLC,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,QAAQ,EAARA,QAAQ;AACRK,MAAAA,aAAa,EAAbA,aAAAA;AACF,KAAC,CAAC;IAAAG,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AANKI,IAAAA,MAAM,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,QAAQ,GAAAH,sBAAA,CAAA,CAAA,CAAA,CAAA;EAQvB,IAAAI,SAAA,GAAoCC,QAAQ,CAC1CjB,IAAI,KAAK,OAAO,GAAIc,MAAM,CAAC,CAAC,CAAC,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAI,IACpE,CAAC;IAAAI,UAAA,GAAAL,cAAA,CAAAG,SAAA,EAAA,CAAA,CAAA;AAFMG,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAGhC,EAAA,IAAAG,UAAA,GAAsCJ,QAAQ,CAAc,IAAI,CAAC;IAAAK,UAAA,GAAAT,cAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAA1DE,IAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAElC,IAAMG,YAA0B,GAAG,SAA7BA,YAA0BA,CAAI1C,IAAI,EAAE2C,WAAW,EAAK;AACxD,IAAA,IAAMC,iBAAiB,GACrB,CAACD,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,MAAM,KAAK1B,IAAI,KAAK,SAAS,CAAA;AAC3E,IAAA,IAAI2B,iBAAiB,EAAE;AACrB,MAAA,IAAMC,QAAQ,GAAGd,MAAM,IAAI,IAAIe,IAAI,EAAE,CAAA;AAErC,MAAA,IAAMC,OAAO,GAAG,IAAID,IAAI,CAACD,QAAQ,CAAC,CAAA;MAClC,IAAIF,WAAW,KAAK,OAAO,EAAE;QAC3BI,OAAO,CAACC,QAAQ,CAAChD,IAAI,CAACiD,QAAQ,EAAE,CAAC,CAAA;QACjCF,OAAO,CAACG,WAAW,CAAClD,IAAI,CAACmD,WAAW,EAAE,CAAC,CAAA;AACzC,OAAC,MAAM,IAAIR,WAAW,KAAK,MAAM,EAAE;QACjCI,OAAO,CAACG,WAAW,CAAClD,IAAI,CAACmD,WAAW,EAAE,CAAC,CAAA;AACzC,OAAA;AAEAnD,MAAAA,IAAI,GAAG+C,OAAO,CAAA;AAChB,KAAA;IAEA,IAAI9B,IAAI,KAAK,OAAO,EAAE;MACpB,IAAImB,UAAU,YAAYU,IAAI,IAAI,CAACf,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5C,QAAA,IAAIvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAAChB,UAAU,EAAElB,KAAK,CAAC,IAAI,CAACI,sBAAsB,EAAE;UACpEe,aAAa,CAAC,IAAI,CAAC,CAAA;UACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,UAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACtB,UAAA,OAAA;AACF,SAAA;AAEA,QAAA,IAAMqB,MAAoB,GAAG,CAACrD,IAAI,EAAEoC,UAAU,CAAC,CAAA;AAC/CiB,QAAAA,MAAM,CAACjD,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;UAAA,OAAKD,CAAC,CAACE,OAAO,EAAE,GAAGD,CAAC,CAACC,OAAO,EAAE,CAAA;SAAC,CAAA,CAAA;AAChD8C,QAAAA,MAAM,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAEnCtB,QAAQ,CAACqB,MAAM,CAAC,CAAA;QAChBZ,cAAc,CAAC,IAAI,CAAC,CAAA;QACpBJ,aAAa,CAAC,IAAI,CAAC,CAAA;AACnB,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IACEN,MAAM,CAAC,CAAC,CAAC,IACT,CAACA,MAAM,CAAC,CAAC,CAAC,IACVvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,IACpC,CAACI,sBAAsB,EACvB;QACAe,aAAa,CAAC,IAAI,CAAC,CAAA;QACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,QAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACtB,QAAA,OAAA;AACF,OAAA;AAEAA,MAAAA,QAAQ,CAAC,CAAChC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;MACtByC,cAAc,CAAC,IAAI,CAAC,CAAA;MACpBJ,aAAa,CAACrC,IAAI,CAAC,CAAA;AACnB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI+B,MAAM,IAAIR,aAAa,IAAIf,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,EAAEb,KAAK,CAAC,EAAE;MAChEc,QAAQ,CAAC,IAAI,CAAC,CAAA;AAChB,KAAC,MAAM;MACLA,QAAQ,CAAChC,IAAI,CAAC,CAAA;AAChB,KAAA;GACD,CAAA;AAED,EAAA,IAAMuD,aAAa,GAAG,SAAhBA,aAAaA,CAAIvD,IAAU,EAAK;AACpC,IAAA,IAAIoC,UAAU,YAAYU,IAAI,IAAIN,WAAW,YAAYM,IAAI,EAAE;MAC7D,OAAO/C,SAAS,CAACC,IAAI,EAAE,CAACwC,WAAW,EAAEJ,UAAU,CAAC,CAAC,CAAA;AACnD,KAAA;AAEA,IAAA,IAAIL,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,IAAIf,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,EAAE;AAC1D,MAAA,OAAO/C,SAAS,CAACC,IAAI,EAAE+B,MAAM,CAAC,CAAA;AAChC,KAAA;AAEA,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAMyB,WAAW,GAAG,SAAdA,WAAWA,GAAS;IACxBnB,aAAa,CAAC,IAAI,CAAC,CAAA;IACnBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpBT,IAAAA,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;GACvB,CAAA;EACD,IAAMyB,gBAAgB,GACpBxC,IAAI,KAAK,OAAO,GACZ,UAACyC,KAAuC,EAAK;AAC3ClC,IAAAA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAGkC,KAAK,CAAC,CAAA;IACrBjB,cAAc,CAAC,IAAI,CAAC,CAAA;AACtB,GAAC,GACDjB,YAAY,CAAA;AAElB,EAAA,IAAMmC,cAAc,GAAG,SAAjBA,cAAcA,CAAI3D,IAAU,EAAK;IACrC,IAAI,EAAE+B,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,CAAC,EAAE;AAChC,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,IAAItC,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,EAAE;AACxC,MAAA,OAAO,EAAEsB,WAAW,IAAIhC,KAAK,CAACgC,WAAW,CAAC,CAAC7B,QAAQ,CAACoB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,KAAA;AAEA,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAED,EAAA,IAAM6B,aAAa,GAAG,SAAhBA,aAAaA,CAAI5D,IAAU,EAAK;AACpC,IAAA,IAAI+B,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,EAAE;AAC7B,MAAA,OAAOtC,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,CAAA;AAC7C,KAAA;IAEA,IAAI,EAAEa,MAAM,CAAC,CAAC,CAAC,YAAYe,IAAI,CAAC,IAAI,CAACN,WAAW,EAAE;AAChD,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,OAAOhC,KAAK,CAACgC,WAAW,CAAC,CAAC7B,QAAQ,CAACoB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAIvB,KAAK,CAACR,IAAI,CAAC,CAACoD,MAAM,CAACrB,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC,CAAA;GACtF,CAAA;AAED,EAAA,IAAM2C,eAAe,GAAG,SAAlBA,eAAeA,CAAI7D,IAAU,EAAK;IACtC,IAAIiB,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO;AACL6C,QAAAA,QAAQ,EAAE/B,MAAM,CAACgC,IAAI,CACnB,UAACC,SAAe,EAAA;AAAA,UAAA,OAAKA,SAAS,IAAIxD,KAAK,CAACwD,SAAS,CAAC,CAACZ,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,CAAA;AAAA,SACxE,CAAC;AACD+C,QAAAA,OAAO,EAAEV,aAAa,CAACvD,IAAI,CAAC;AAC5BkE,QAAAA,YAAY,EAAEP,cAAc,CAAC3D,IAAI,CAAC;AAClCmE,QAAAA,WAAW,EAAEP,aAAa,CAAC5D,IAAI,CAAC;QAChC,gBAAgB,EAAG,CAAC,CAAC+B,MAAM,CAAC,CAAC,CAAC,IAAIvB,KAAK,CAACuB,MAAM,CAAC,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,IAAKkD,SAAS;AACpF,QAAA,eAAe,EAAElD,KAAK;AACtB,QAAA,WAAW,EAAAmD,EAAAA,CAAAA,MAAA,CAAKrE,IAAI,CAACiD,QAAQ,EAAE,EAAA,GAAA,CAAA,CAAAoB,MAAA,CAAIrE,IAAI,CAACsE,OAAO,EAAE,CAAA;OAClD,CAAA;AACH,KAAA;AAEA,IAAA,IAAMR,QAAQ,GAAGtD,KAAK,CAACuB,MAAM,CAAC,CAACqB,MAAM,CAACpD,IAAI,EAAEkB,KAAK,CAAC,CAAA;IAClD,OAAO;AACL4C,MAAAA,QAAQ,EAARA,QAAQ;MACR,gBAAgB,EAAEA,QAAQ,IAAIM,SAAS;AACvC,MAAA,eAAe,EAAElD,KAAK;AACtB,MAAA,WAAW,EAAAmD,EAAAA,CAAAA,MAAA,CAAKrE,IAAI,CAACiD,QAAQ,EAAE,EAAA,GAAA,CAAA,CAAAoB,MAAA,CAAIrE,IAAI,CAACsE,OAAO,EAAE,CAAA;KAClD,CAAA;GACF,CAAA;AAED,EAAA,IAAMC,mBAAmB,GAAGtD,IAAI,KAAK,OAAO,IAAImB,UAAU,GAAGK,cAAc,GAAG,YAAM,EAAE,CAAA;AAEtF+B,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIvD,IAAI,KAAK,OAAO,IAAI,CAACc,MAAM,CAAC,CAAC,CAAC,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,EAAE;MAChDM,aAAa,CAAC,IAAI,CAAC,CAAA;AACrB,KAAA;AACF,GAAC,EAAE,CAAClB,KAAK,CAAC,CAAC,CAAA;EAEX,OAAO;AACLuB,IAAAA,YAAY,EAAZA,YAAY;AACZe,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBc,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBV,IAAAA,eAAe,EAAfA,eAAe;AACfxB,IAAAA,aAAa,EAAbA,aAAa;AACbD,IAAAA,UAAU,EAAVA,UAAU;AACVqC,IAAAA,eAAe,EAAE1C,MAAM;AACvB2C,IAAAA,kBAAkB,EAAE1C,QAAQ;AAC5BwB,IAAAA,WAAW,EAAXA,WAAAA;GACD,CAAA;AACH;;;;"}
@@ -1318,7 +1318,7 @@ type BaseBoxVisualProps = MakeObjectResponsive<{
1318
1318
  userSelect: CSSObject['userSelect'];
1319
1319
  } & PickCSSByPlatform<'border' | 'borderLeft' | 'borderRight' | 'borderTop' | 'borderBottom' | 'opacity' | 'pointerEvents' | 'cursor'>>;
1320
1320
  type BoxVisualProps = MakeObjectResponsive<{
1321
- backgroundColor: BackgroundColorString<'surface'> | BackgroundColorString<'overlay'> | 'transparent';
1321
+ backgroundColor: BackgroundColorString<'surface'> | BackgroundColorString<'overlay'> | BackgroundColorString<'feedback'> | 'transparent';
1322
1322
  }> & {
1323
1323
  as: BoxAsType;
1324
1324
  };
@@ -1953,7 +1953,7 @@ declare const Box: React__default.ForwardRefExoticComponent<Partial<PaddingProps
1953
1953
  readonly xl?: "platform-web" | undefined;
1954
1954
  } | undefined;
1955
1955
  } & MakeObjectResponsive<{
1956
- backgroundColor: "transparent" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
1956
+ backgroundColor: "transparent" | "feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
1957
1957
  }, "backgroundColor"> & {
1958
1958
  as: "aside" | "div" | "footer" | "header" | "label" | "main" | "nav" | "section" | "span";
1959
1959
  } & {
@@ -18852,7 +18852,7 @@ declare const InfoGroup: React__default.ForwardRefExoticComponent<{
18852
18852
  readonly xl?: "platform-web" | undefined;
18853
18853
  } | undefined;
18854
18854
  } & MakeObjectResponsive<{
18855
- backgroundColor: "transparent" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
18855
+ backgroundColor: "transparent" | "feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
18856
18856
  }, "backgroundColor"> & {
18857
18857
  as: "aside" | "div" | "footer" | "header" | "label" | "main" | "nav" | "section" | "span";
18858
18858
  } & {
@@ -28763,7 +28763,7 @@ declare const TopNav: React__default.ForwardRefExoticComponent<{
28763
28763
  readonly xl?: "platform-web" | undefined;
28764
28764
  } | undefined;
28765
28765
  } & MakeObjectResponsive<{
28766
- backgroundColor: "transparent" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
28766
+ backgroundColor: "transparent" | "feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
28767
28767
  }, "backgroundColor"> & {
28768
28768
  as: "aside" | "div" | "footer" | "header" | "label" | "main" | "nav" | "section" | "span";
28769
28769
  } & {
@@ -1319,7 +1319,7 @@ type BaseBoxVisualProps = MakeObjectResponsive<{
1319
1319
  userSelect: CSSObject['userSelect'];
1320
1320
  } & PickCSSByPlatform<'border' | 'borderLeft' | 'borderRight' | 'borderTop' | 'borderBottom' | 'opacity' | 'pointerEvents' | 'cursor'>>;
1321
1321
  type BoxVisualProps = MakeObjectResponsive<{
1322
- backgroundColor: BackgroundColorString<'surface'> | BackgroundColorString<'overlay'> | 'transparent';
1322
+ backgroundColor: BackgroundColorString<'surface'> | BackgroundColorString<'overlay'> | BackgroundColorString<'feedback'> | 'transparent';
1323
1323
  }> & {
1324
1324
  as: BoxAsType;
1325
1325
  };
@@ -1737,7 +1737,7 @@ declare const Box: react__default.ForwardRefExoticComponent<Partial<PaddingProps
1737
1737
  readonly xl?: "platform-native" | undefined;
1738
1738
  } | undefined;
1739
1739
  } & MakeObjectResponsive<{
1740
- backgroundColor: "transparent" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
1740
+ backgroundColor: "transparent" | "feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "overlay.background.subtle" | "overlay.background.moderate";
1741
1741
  }, "backgroundColor"> & {
1742
1742
  as: "aside" | "div" | "footer" | "header" | "label" | "main" | "nav" | "section" | "span";
1743
1743
  } & {
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.43.1",
4
+ "version": "12.45.0",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"